背景:
在阿里云上,同地域不同账号下的ecs服务器,需要跨网段进行nfs挂载。目标是使A网段(172.16.3.*)下可以将storm处理结果存储在B网段(172.16.2.*)下的nfs目录下,然后在B网段的web服务可以读取同网段nfs目录中的内容,并加载到页面中。
前提是两个网段已经互配了云企业网,可以互相ping通内网ip。而且在/etc/exports下,也添加了对端网段的访问权限:
但是当执行mount -t nfs挂载跨网段的nfs时,就无法挂载了。挂载同网段的nfs是没有问题的。所以问题的焦点就聚焦在了跨网段上。
在A网段ecs上执行shoumount -e B网段ecsip时,提示如下:
经过查找,有提到portmapper服务的,于是在nfs服务器上查看其运行的端口111,也确实存在。
执行rpcinfo -p查看:
但即使在阿里云安全组中开通了tcp和udp类型的111端口映射后,仍然无法执行showmount命令。
后来继续查找发现在/etc/sysconfig/nfs文件中,默认注释掉了MOUNTD_PORT,于是加上了一个自定义的该端口信息:
MOUNTD_PORT=21503
同时,在B网段的阿里云安全组中添加21503的外网端口映射。
重启nfs:service nfs restart
再次查看,就可以跨网段使用showmount命令了:
经过验证,最终在阿里云端配置的端口映射如下(在提供NFS服务的账号安全组下):
注意:最终开通的是UDP 111端口和TCP 21503端口即可。
网友评论