因公司业务需要需在服务器上配置电信,联通两个运营商的IP地址,实现数据分别从两个地址传输,即两个IP地址都能与外界网络互通。
当时我发现在服务器的两块网卡上分别配置两个IP地址及网关,重启网络服务之后,系统会默认选取其中一块网卡的网关做为数据传输网关,这样造成的后果就是一块网卡无法与外界通信,后来手动为那块无法通信的网卡添加路由指向之后,结果不是把系统的默认路由替换掉就是路由指向不生效,导致还是无法让那个两块网卡同时与外界网络互相通信,后来尝试在系统中创建两张路由表分别传输两张网卡的数据:
具体操作如下:
电信网络192.168.1.2/24网关192.168.1.1 联通网络172.16.1.2/24网关172.16.1.1
第一步: 第一块网卡添加电信网络完整的地址信息,包括IP地址,掩码,网关 #vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.2 NETMASK=255.255.255.0 GATEWAY=192.168.1.1
第二块网卡只添加IP地址,掩码,不添加网关 #vim /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=172.16.1.2 NETMASK=255.255.255.0
第二步: 分别为电信,联通创建两个路由表 #vim /etc/iproute2/rt_tables 252 tel 252 cnc
第三步:增加路由规则 #ip route flush table tel #ip route add default via 192.168.1.1 dev eth0 src 192.168.1.2 table tel #ip rule add from 192.168.1.2 table tel 此处是设置电信为网关,并可实现让电信的资源访问只从eth0网卡出去
#ip route flush table cnc #ip route add default via 172.16.1.1 dev eth1 src 172.16.1.2 table cnc #ip rule add from 172.16.1.2 table cnc 此处是设置联通的网关,并可实现让联通的资源访问只从eth1网卡出去
第四步:配置networking启动脚本文件 #vim /etc/init.d/networking ip route flush table tel ip route add default via 192.168.1.1 dev eth0 src 192.168.1.2 table tel ip rule add from 192.168.1.2 table tel ip route flush table cnc ip route add default via 172.16.1.1 dev eth1 src 172.16.1.2 table cnc ip rule add from 172.16.1.2 table cnc exit 0 第五步:退出并重启网络 #chmod u+x /etc/init.d/networking #/etc/init.d/networking restart
第六步:设置开机自启 因为已经做好的启动脚本,只需要在开机自启文件中加入开机时执行启动脚本即可 #vim /etc/rc.local /etc/init.d/networking restart
此时电信跟联通的地址都可以正常访问。