linux多网口配置多IP

假设物理网口为 eth0, eth1

eth0: 192.168.5.25
eth1: 192.168.5.27


1、配置ARP响应模式

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 2 > /proc/sys/net/ipv4/conf/lo/rp_filter

2、配置网口路由表

子网掩码:21
网关:192.168.3.1

ip route add 192.168.0.0/21 dev eth0 src 192.168.5.25 table 10000
ip route add 192.168.0.0/21 dev eth1 src 192.168.5.27 table 10001

ip route add default dev eth0 via 192.168.3.1 table 10000
ip route add default dev eth1 via 192.168.3.1 table 10001

ip rule add from 192.168.5.25 table 10000
ip rule add from 192.168.5.27 table 10001


3、测试
ip route get to 192.168.3.1 from 192.168.5.25
ip route get to 192.168.3.1 from 192.168.5.27

从eth1(192.168.5.27) ping测试目标
ping -I eth1 192.168.5.26
可以在eth1看到请求、响应包。

从外部查看 arp -a,可以看到 5.25, 5.27的mac地址分别对应 eth0, eth1。

从外部ping 192.168.5.27,并且在多网卡设备上抓包 (tcpdump -i eth1 icmp),可以在eth1看到请求、响应包。
 

你可能感兴趣的:(Linux,网络编程,linux多网口,linux多ip)