我有一台运行CentOS 6.4的
Linux服务器,用作iSCSI目标.服务器是多宿主的,有两个NIC,都在同一个子网上. iSCSI多路径负责负载平衡/故障转移,因此我需要的是每个NIC独立运行.如何配置此系统以避免始终伴随多宿主设置的所有奇怪路由和ARP问题,例如从源的不同接口返回流量,或接受发送到IP的IP的一个接口其他.绑定解决方案不是一种选择,因为它存在iSCSI连接问题.
重要的东西:
> eth0:IP 10.1.1.242 / SN 255.255.252.0 / GW 10.1.1.254
> eth1:IP 10.1.1.243 / SN 255.255.252.0 / GW 10.1.1.254
解决方法
我意识到我从未跟上过这个问题.使用一些优秀的互联网资源
here和
here,我想出了以下配置.希望这有助于某人.
假设您有两个接口eth0和eth1,IP地址为10.1.1.242和10.1.1.243.这都在/ 22网络上,默认网关为10.1.1.254.
>首先创建两个路由表,每个NIC一个:
echo "1 lan1" >> /etc/iproute2/rt_tables` echo "2 lan2" >> /etc/iproute2/rt_tables`
>接下来,将每个接口的路由添加到适当的表:
ip route add 10.1.0.0/22 dev eth0 src 10.1.1.242 table lan1 ip route add default via 10.1.1.254 dev eth0 table lan1 ip route add 10.1.0.0/22 dev eth1 src 10.1.1.243 table lan2 ip route add default via 10.1.1.254 dev eth1 table lan2
>最后,添加规则以确定使用哪个表:
ip rule add from 10.1.1.242/32 table lan1 ip rule add to 10.1.1.242/32 table lan1 ip rule add from 10.1.1.243/32 table lan2 ip rule add to 10.1.1.243/32 table lan2
这样可以防止流量在内部穿过NIC,从而可以保留冗余或使用每个NIC来实现不同的功能.