Linux雙線雙網卡雙IP雙網關設置方法

機房上架了一臺測試機,系統是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

對於系統啓動腳本本次並無作更改只是更改了網絡啓動腳本,有興趣的同窗能夠測試下。

相關文章
相關標籤/搜索