首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NFS流量将与不同的IP地址和相同的子网进行接口。

NFS流量将与不同的IP地址和相同的子网进行接口。
EN

Server Fault用户
提问于 2018-03-12 17:16:52
回答 1查看 3.3K关注 0票数 2

我的NFS服务器有3个接口: 0: 1Gb,1: 10 1Gb,2: 10 1Gb。

Iface 0仅用于管理目的,1/2用于两种不同的挂载。

所有接口都位于同一个子网(/24)上。

\x> iface 0/1/2

我的客户端被配置为通过接口1和2连接到nfs。

代码语言:javascript
复制
$ mount
...
iface1:/home on /home type nfs4 (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.1.1.3,local_lock=none,addr=172.1.1.1)
iface2:/scratch on /scratchlair type nfs4 (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.1.1.3,local_lock=none,addr=172.1.1.2)
...

其中i面1和2分别为172.1.1.{1,2}。Iface 0是172.1.1.5。

我的问题是,在服务器上,我看到所有的流量通过nload到达iface 0。I Ifaces 1和2没有显示流量。

这对于连接到nfs服务器的所有10个客户端来说都是一样的。

是什么导致通信流转到iface 0,以及如何迫使nfs客户端的流量通过配置的接口?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2018-03-13 11:27:24

要完成这项工作,您必须为所有三个inet接口配置单独的路由表和规则,并启用arp_filter

您还可能首先要在VM环境中测试这一点,因为您可以在接下来的步骤中很容易地中断任何连接,并且肯定会出现一些hickup。

首先启用arp_filter

代码语言:javascript
复制
sysctl net.ipv4.conf.default.arp_filter=1

要使其永久化,请将其添加到/etc/sysctl.conf中。根据您的发行版,您还可以将其放置到/etc/sysctl.d/下面的文件中。

代码语言:javascript
复制
echo net.ipv4.conf.default.arp_filter = 1 >> /etc/sysctl.conf

现在,让我们添加路由表。

代码语言:javascript
复制
cat << TABLES >> /etc/iproute2/rt_tables 
101 rt1
102 rt2
103 rt3
TABLES

假设您有一个/24网络掩码,并且您的默认网关是172.1.1.254。此外,在下面的示例中,接口0、1和2是eth0eth1eth2,它们可能与您的设置不匹配,因此您必须采用它。

代码语言:javascript
复制
ip route add 172.1.1.0/24 dev eth0 src 172.1.1.5 table rt1
ip route add table rt1 default via 172.1.1.254 dev eth0
ip rule add table rt1 from 172.1.1.5

ip route add 172.1.1.0/24 dev eth1 src 172.1.1.1 table rt2
ip route add table rt2 default via 172.1.1.254 dev eth1 
ip rule add table rt2 from 172.1.1.1    

ip route add 172.1.1.0/24 dev eth2 src 172.1.1.2 table rt3
ip route add table rt3 default via 172.1.1.254 dev eth2
ip rule add table rt2 from 172.1.1.2

要使这些路由表和规则永久化,您必须将上述步骤添加到NIC配置中。在基于RHEL的系统上,这将如下所示。

eth0的路由和规则。

代码语言:javascript
复制
cat << ROUTE > /etc/sysconfig/network-scripts/route-eth0
172.1.1.0/24 dev eth0 src 172.1.1.5 table rt1
table rt1 default via 172.1.1.254 dev eth0
ROUTE

cat << RULE > /etc/sysconfig/network-scripts/rule-eth0
table rt1 from 172.1.1.5
RULE

eth1的路由和规则。

代码语言:javascript
复制
cat << ROUTE > /etc/sysconfig/network-scripts/route-eth1
172.1.1.0/24 dev eth1 src 172.1.1.1 table rt2
table rt2 default via 172.1.1.254 dev eth1
ROUTE

cat << RULE > /etc/sysconfig/network-scripts/rule-eth1
table rt2 from 172.1.1.1   
RULE

eth2的路由和规则。

代码语言:javascript
复制
cat << ROUTE > /etc/sysconfig/network-scripts/route-eth2
172.1.1.0/24 dev eth2 src 172.1.1.2 table rt3
table rt3 default via 172.1.1.254 dev eth2
ROUTE

cat << RULE > /etc/sysconfig/network-scripts/rule-eth2
table rt3 from 172.1.1.2   
RULE

正如注释中所概述的那样,只为接口使用不同的子网并为不同的子网在客户端上分配IP别名可能更容易。

我已经在VM环境中用CentOS7 NFS服务器测试了这一点。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/901253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档