歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

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

機房上架了一台測試機,系統是Ubuntu 9.04 X64的系統,母機IBM X336機器。用戶需求是雙線,故采用一個網卡配置電信地址,另一個網卡配置聯通地址,安裝好系統後配置好IP發現聯通地址和電信地址只能有一個可以ping通,若電信地址配置網關,聯通地址不配網關,則只能ping通電信地址,反之只能ping通聯通地址,若同時配置聯通和電信地址則兩個都不通。

因為不是咱們公司的網絡,對於上層實現方式也不清楚,只知道聯通和電信引至不同的VLAN,而且電信聯通不不能透傳,但他們有其他機器有同樣的介入方式的機器卻可以正常出外網,這樣就排除網絡的問題了,而且此台機器原來是2003系統的時候也可以正常訪問網絡,也排除了機器網卡的問題了。那麼就只有是這個操作系統有問題了。經過求助google等大師,終於搞定。下面是具體操作流程:

ubuntu雙網卡雙IP.不同網關.不同子網.如何同時ping通兩塊網卡的解決方法,

服務器環境如下:、

系統:Ubuntu 9.04 X64 server

電信IP(TEL):114.80.0.4 netmask 255.255.255.128 gateway 114.80.0.3

聯通IP(CNC):112.65.0.2 netmask 255.255.255.0 gateway 112.65.0.1

1.配置網卡信息

# vi /etc/network/interfaces

auto lo
iface lo inet loopback

# 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

對於系統啟動腳本本次並沒有做更改只是更改了網絡啟動腳本,有興趣的同學可以測試下。

Copyright © Linux教程網 All Rights Reserved