機房上架了一臺測試機,系統是Ubuntu 9.04 X64的系統,母機IBM X336機器。用戶需求是雙線,故採用一個網卡配置電信地址,另外一個網卡配置聯通地址,安裝好系統後配置好IP發現聯通地址和電信地址只能有一個能夠ping通,若電信地址配置網關,聯通地址不配網關,則只能ping通電信地址,反之只能ping通聯通地址,若同時配置聯通和電信地址則兩個都不通。linux
由於不是我們公司的網絡,對於上層實現方式也不清楚,只知道聯通和電信引至不一樣的VLAN,並且電信聯通不不能透傳,但他們有其餘機器有一樣的介入方式的機器卻能夠正常出外網,這樣就排除網絡的問題了,並且此臺機器原來是2003系統的時候也能夠正常訪問網絡,也排除了機器網卡的問題了。那麼就只有是這個操做系統有問題了。通過求助google等大師,終於搞定。下面是具體操做流程:ubuntu
ubuntu雙網卡雙IP.不一樣網關.不一樣子網.如何同時ping通兩塊網卡的解決方法,centos
服務器環境以下:、服務器
系統:Ubuntu 9.04 X64 server網絡
電信IP(TEL):114.80.0.4 netmask 255.255.255.128 gateway 114.80.0.3oop
聯通IP(CNC):112.65.0.2 netmask 255.255.255.0 gateway 112.65.0.1測試
1.配置網卡信息google
# vi /etc/network/interfaces操作系統
auto lo
iface lo inet loopbackrest
# The primary network interface
auto eth0
iface eth0 inet static
address 114.80.0.4
netmask 255.255.255.128
gateway 114.80.0.3
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 202.96.209.133
auto eth1
iface eth1 inet static
address 112.65.0.2
netmask 255.255.255.0
保存配置信息並從新啓動網卡
# /etc/init.d/networking restart
2.增長2個路由表分別是電信:tel 聯通:cnc
# vi /etc/iproute2/rt_tables
252 tel
251 cnc
保存並推出
3.增長路由規則
# ip route flush table tel
# ip route add default via 114.80.0.3 dev eth0 src 114.80.0.4 table tel
# ip ruleadd from 114.80.0.4 table tel
此處是設置電信的網關,並可實現讓電信的資源訪問只從eth0網卡出去
# ip route flush table cnc
# ip route add default via 112.65.0.1 dev eth1 src 112.65.0.2 table cnc
# ip rule add from 112.65.0.2 table cnc
此處是設置聯通的網關,並可實現讓聯通的資源訪問只從eth1網卡出去
4.配置networking啓動腳本文件 在結尾exit 0以前增長以下內容
# vi /etc/init.d/networking
ip route flush table tel
ip route add default via 114.80.0.3 dev eth0 src 114.80.0.4 table tel
ip rule add from 114.80.0.4 table tel
ip route flush table cnc
ip route add default via 112.65.0.1 dev eth1 src 112.65.0.2 table cnc
ip rule add from 112.65.0.2 table cnc
exit 0
5,退出並重啓網絡
# /etc/init.d/networking restart
此時再測試機器網絡狀況,就會發現電信和聯通的地址均可以正常訪問了。此方法還能夠實現讓從電信IP過來的請求按照電信路由返回,從網通IP過來的請求從網通路由返回。
補充:網上有些大神說若是服務器重啓,或者網絡服務重啓,上述的路由規則就失效了,因此你須要把上面這段命令寫入系統啓動腳本和網絡啓動腳本
若是是ubuntu/debian,系統啓動腳本是/etc/rc.local
若是是RedHat/CentOS,系統啓動腳本是/etc/rc.d/rc.local
若是是ubuntu/debian,網絡啓動腳本是/etc/init.d/networking
若是是RedHat/centos,網絡啓動腳本是/etc/rc.d/init.d/network
對於系統啓動腳本本次並無作更改只是更改了網絡啓動腳本,有興趣的同窗能夠測試下。