linux 双网卡双网段设置路由转发

背景

网络情况

linux 双网卡: 网卡A(ens3)和网卡B(ens8)是双网卡, 双网段。

网卡A, 网段:192.168.31.0/24, ip: 192.168.31.131,

网卡B, 网段:10.11.0.0/24, ip: 10.11.0.1

需求:

将网络请求经过网卡A转发,转发给网段10.11.0.0/24上的其它机器。

配置

开启内核IP转发功能:

在运行时临时开启IP转发:

sysctl -w net.ipv4.ip_forward=1

若要永久生效,编辑 /etc/sysctl.conf 文件,在其中添加或取消注释以下行:

net.ipv4.ip_forward = 1

然后执行 sysctl -p 或重启系统使更改生效。

  1. 配置iptables规则: 添加相应的iptables规则以允许从网卡A进入的流量转发到网卡B对应的网段。假设网卡A的IP地址为192.168.31.10,网卡B连接到10.11.0.0/24网段,可以添加如下规则:
# 1. 安装 iptables
yum install iptables-services -y

# 2. 允许转发
iptables -A FORWARD -i ens3 -o ens8 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i ens8 -o ens3 -j ACCEPT

# 3. 增加MASQUERADE规则(NAT转换)
# 如果需要从192.168.31.0/24出去的数据包源地址转换成10.11.0.x地址的话
iptables -t nat -A POSTROUTING -o ens8 -j MASQUERADE

# 如果不需要NAT,则无需上述MASQUERADE规则

# 4. 保存路由规则
service iptables save

配置路由表:

根据情况,可能需要确保正确设置了主机自身的路由,以便知道如何到达10.11.0.0/24网段。通常情况下,由于网卡B已经连接到该网段,系统应该能自动学习到相关路由。如果没有,则手动添加静态路由:

route add -net 10.11.0.0 netmask 255.255.255.0 dev ens8

这条命令将确保所有目标地址属于10.11.0.0/24的数据包通过ens8发送。

完成以上步骤后,来自192.168.31.0/24网段的网络请求理论上就能够被Linux系统正确转发至10.11.0.0/24网段了。同时请确保防火墙或者安全策略没有阻止必要的通信。对于生产环境,请根据实际情况调整iptables规则以满足具体的安全需求。

客户端配置

客户端机器是192.168.31.0/24网段。

windows

如果客户端是windows机器, 需要在cmd命令行设置永久静态路由:

route -p add 10.11.0.0/24 192.168.31.1

linux

如果是linux机器,且只在192.168.31.0/24网段, 需要执行如下命令:

route add -net 10.11.0.0/24 gw 192.168.31.131
举报
评论 0