Linux双网卡同网段使用策略路由控制流量哪张网卡进就哪张网卡出

您所在的位置:网站首页 一个网卡配置两个不同网段的ip地址(比如应用道闸项目) Linux双网卡同网段使用策略路由控制流量哪张网卡进就哪张网卡出

Linux双网卡同网段使用策略路由控制流量哪张网卡进就哪张网卡出

2023-05-17 16:53| 来源: 网络整理| 查看: 265

环境:

双网卡同网段:

ens33:192.168.172.109

ens37:192.168.172.119

Centos7操作系统

net.ipv4.conf.all.arp_ignor=1

net.ipv4.conf.ens33.arp_ignor=1

net.ipv4.conf.ens34.arp_ignor=1

net.ipv4.conf.all.rp_filter = 1

net.ipv4.conf.ens33.rp_filter = 1

net.ipv4.conf.ens34.rp_filter = 1

实验背景

在一台宿主机上用VMware创建一台虚拟机,添加两张网卡,都是桥接模式,然后在上面的环境下,虚拟机的其中一张网卡是宿主机ping不通的,另一张可以通,详情见下,现在是要求使用策略路由来使它们能够互通。

在环境下ping不通原因

 

在这个环境下,宿主机只能ping通其中一个网卡的ip,另一个是不通的。

这是因为arp_ignore的参数设置,详细看下:

arp_ignore参数的作用是控制系统在收到外部的arp请求时,是否要返回arp响应。

arp_ignore参数常用的取值主要有0,1,2,3~8较少用到:

0:响应任意网卡上接收到的对本机IP地址的arp请求(包括环回网卡上的地址),而不管该目的IP是否在接收网卡上。

1:只响应目的IP地址为接收网卡上的本地地址的arp请求。

2:只响应目的IP地址为接收网卡上的本地地址的arp请求,并且arp请求的源IP必须和接收网卡同网段。

3:如果ARP请求数据包所请求的IP地址对应的本地地址其作用域(scope)为主机(host),则不回应ARP响应数据包,如果作用域为全局(global)或链路(link),则回应ARP响应数据包。

4~7:保留未使用

8:不回应所有的arp请求

所以这里我们设置了arp_ignore=1, 简单理解就是规定你流量从哪个网卡进就从哪个网卡出,如果走错了,那它就会把你丢了。

图中可以看到进来的是ens33网卡,出去也是ens33网卡,,所以我们把arp_ignore设置为1时,它ens37网卡ping不通了,所以这里我们就要使用策略路由来让它们分流,规定它流量从哪里来就哪里出。

策略路由

模板:

 实验实例:

我们在/etc/iproute2/rt_tables文件插入两张路由表(Linux最大可支持255张路由表,包括table id、table name)。

我们在这两张路由表上添加规则和路由进去:

[root@localhost ~]# ip rule add from 192.168.172.109 table ens33 #代表源地址为192.168.172.109的流量 [root@localhost ~]# ip rule add from 192.168.172.119 table ens37 #代表源地址为192.168.172.119的流量 [root@localhost ~]# ip route add default via 192.168.172.239 dev ens33 table ens33 #行为为下一跳192.168.172.239并从网卡ens33出去 [root@localhost ~]# ip route add default via 192.168.172.239 dev ens37 table ens37 #行为为下一跳192.168.172.239并从网卡ens37出去

 配置完成后,我们就可以ping通两张网卡了



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3