CentOS雙ISP配置
目標: 一臺服務器通過多個網卡連接多個網絡沪编,能夠保證不同網絡的來的數據能夠按照原路返回逊谋,同時通過這兩個網絡中任意一個的外網ip或域名訪問正常。
環(huán)境
![](http://7xqcl9.com1.z0.glb.clouddn.com/2016-06-01-14647750446103.jpg)
- 網絡環(huán)境:
- 兩個網段192.168.199.0/24 192.168.1.0/24蹋肮,兩個網段物理隔離,分別從兩個不同的ISP供應商連接互聯網璧疗。
- TPlink路由器綁定域名 longxintaiye.f3322.net
- 極路由綁定域名 longsun.jios.org
- 服務器:
- 操作系統(tǒng): CentOS 7 minimal
- 兩個物理網卡分別綁定兩個網橋br0 br1坯辩,實際相當于兩個物理網卡(后面直接把網橋當作物理網卡來理解)
- br0連接極路由:ip 192.168.199.11 通過極路由映射端口22,外網訪問地址為 longsun.jios.org:1122
- br1連接路由器TPLink:ip 192.168.1.11 通過TPLink映射端口22崩侠,外網訪問地址為 longxintaiye.f3322.net:1122
- 測試機
- 阿里云服務器漆魔,CentOS 7 安裝Telnet 外網測試訪問22端口是否能通
iproute2 與 route命令
- route命令屬于net-tools工具包的一個命令,從2001年不再維護却音,很多l(xiāng)inux內核支持的新的網絡特性無法通過route命令實現
- iproute2從centos7以后替換net-tools工具的成為系統(tǒng)默認網絡工具改抡,支持route策略配置及流量控制等功能
為什么只有用iproute2的ip命令才能夠解決雙路問題?
- ip route 命令支持定義多張路由表系瓢,每個路由表都可以自由設定默認路由靜態(tài)路由等策略
- ip rule 支持定義策略阿纤,將不同類型的網絡數據跟不同路由表綁定,例如:
- 極路由192.168.199.0/24網絡里發(fā)送到br0網卡上的數據包夷陋,會根據br0的路由表T2(自定義標號為202)指定的網關192.168.199.1返回極路由欠拾;
-
TPLink路由器中192.168.1.0/24網絡里發(fā)送到br1網卡的數據包會根據br1對應的路由表T1(自定義標號為201)中的默認網關192.168.1.1胰锌,發(fā)送回TPLink;
- route只能維護一張路由表藐窄,只能有一個默認網關比如:192.168.1.1
-
TPLink路由器發(fā)送到br1網卡的數據包资昧,會根據默認路由表中的網關送回到192.168.1.1 TPLink去,此時鏈路正常
-
2. 極路由發(fā)送到br0網卡的數據包荆忍,會根據route的默認路由表中的網關送回到192.168.1.1格带, TPLink沒有接受過這個數據包,也無法獲取源地址正確的轉回去东揣。
![](http://7xqcl9.com1.z0.glb.clouddn.com/2016-06-01-14647837608304.jpg)
如何配置iproute2
為物理網卡創(chuàng)建單獨的路由表
iproute定義路由表的配置文件在/etc/iproute2/rt_table,最多可以有255個路由表践惑。我們只需要分別為br1 br0創(chuàng)建T1 T2路由表,編輯/etc/iproute2/rt_table并添加201 T1 202 T2保存退出即可
分別為向新創(chuàng)建的路由表添加路由規(guī)則(非持久化嘶卧,重啟機器或網絡后失效)
為br1添加路由規(guī)則到T1表中
#將從192.168.1.11來到數據包指定到br1網卡上
/usr/sbin/ip route add 192.168.1.0/24 dev br1 src 192.168.1.11 table 201
#指定本路由表默認網關為192.168.1.1
/usr/sbin/ip route add default via 192.168.1.1 table 201
#查看路由表
/usr/sbin/ip route show table T1
為br0添加路由規(guī)則到T2表中
#將從192.168.199.11來到數據包指定到br1網卡上
/usr/sbin/ip route add 192.168.199.0/24 dev br0 src 192.168.199.11 table 202
#指定本路由表默認網關為192.168.199.1
/usr/sbin/ip route add default via 192.168.199.1 table 202
#查看路由表
/usr/sbin/ip route show table T2
通過ip rule制定策略尔觉,將路由表與網絡數據綁定(非持久化,重啟機器或網絡后失效)
將來自于網關192.168.1.1的數據包綁定到路由表T1上芥吟,按照T1的路由規(guī)則執(zhí)行
/usr/sbin/ip rule add from 192.168.1.11 table T1
將來自于網關192.168.199.1的數據包綁定到路由表T2上侦铜,按照T1的路由規(guī)則執(zhí)行
/usr/sbin/ip rule add from 192.168.199.11 table T2
測試
在阿里云的主機上通過telnet命令測試,服務器域名及服務器在兩個路由器上對應的外網映射端口钟鸵,如果有交互操作說明可以連通钉稍,注意關閉服務器上的防火墻。
iproute定義的route 和rule持久化棺耍,避免重啟機器或網絡后失效
-
新增路由表
echo " 201 T1
202 T2" >> cat /etc/iproute2/rt_tables
```
-
為br0 br1 創(chuàng)建route規(guī)則配置文件
echo " 192.168.199.0/24 dev br0 src 192.168.199.11 table 202
default via 192.168.199.1 table 202
" > /etc/sysconfig/network-scripts/route-br0
echo "
192.168.1.0/24 dev br1 src 192.168.1.11 table 201
default via 192.168.1.1 table 201
" > /etc/sysconfig/network-scripts/route-br1
```
-
創(chuàng)建rule規(guī)則文件
echo " from 192.168.199.11 table T2 " > /etc/sysconfig/network-scripts/rule-br0 echo " from 192.168.1.11 table T1 " > /etc/sysconfig/network-scripts/rule-br1
-
重啟網絡檢查路由配置情況
systemctl restart network ip route show table T1 ip route show table T2 ip rule show
-
從外網測試連接成功
centos終于可以像windows一樣自動判斷來源網卡設定回歸的路由
route命令的缺陷
route命令創(chuàng)建的路由表相當于贡未,iproute2中的main路由表,只能設置一個網關蒙袍,會根據default網關的添加順序及metric權重值來取做唯一的網關俊卤,一般情況下最后添加的及metric最小的默認路由生效
ip route + ip rule實現雙ISP接入網絡配置
route命令詳解
iproute2 策略路由與流量控制筆記
Linux策略性路由應用及分析(iproute2)
ip route 官方手冊
iproute2 之 ip命令使用教程手冊