Linux 雙網(wǎng)卡雙IP配置

Linux 雙網(wǎng)卡雙IP配置

當(dāng)一臺(tái)服務(wù)器接了兩根網(wǎng)線,配置了兩個(gè)IP,此時(shí)網(wǎng)絡(luò)數(shù)據(jù)包的流向是如何走的?

我在cnaaa.com上購買了云服務(wù)器。

先說一下背景,原服務(wù)器IP為192.168.10.83,網(wǎng)關(guān)為192.168.10.254,已經(jīng)通了部分業(yè)務(wù)。因臨時(shí)調(diào)整需要在該服務(wù)器上部署一套數(shù)據(jù)庫代替之前的業(yè)務(wù),要求被替換的業(yè)務(wù)IP轉(zhuǎn)移至當(dāng)前服務(wù)器上。該數(shù)據(jù)庫業(yè)務(wù)與原服務(wù)器IP不在一個(gè)網(wǎng)段,新業(yè)務(wù)IP為172.16.100.152,網(wǎng)關(guān)為172.16.100.254。

此時(shí)服務(wù)器的兩塊網(wǎng)卡上分別配置了不同網(wǎng)段的IP:

  • 192.168.10.83 (A網(wǎng)卡接口)
  • 172.16.100.152 (B網(wǎng)卡接口)

原網(wǎng)絡(luò)的默認(rèn)網(wǎng)關(guān)是在A上,當(dāng)在第二塊網(wǎng)卡配置好IP后,此時(shí)對(duì)外第二塊網(wǎng)卡的網(wǎng)絡(luò)實(shí)際上是不通的。B網(wǎng)絡(luò)在服務(wù)器上沒有配置路由,所有數(shù)據(jù)包的默認(rèn)路由都是從A出去的,數(shù)據(jù)包默認(rèn)不會(huì)從B出去。

此時(shí)B網(wǎng)絡(luò)雖然網(wǎng)線是通的,但只有同網(wǎng)段是可達(dá)的。同網(wǎng)段的IP,不需要路由即可達(dá),但跨網(wǎng)段的數(shù)據(jù)包只有在路由指導(dǎo)下才知道從哪個(gè)物理接口出去。

此時(shí)如果需要讓B網(wǎng)絡(luò)的IP與所有局域網(wǎng)IP都通,需要將默認(rèn)路由從A上改到B上。

首先查看路由表

# route -nKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         192.168.10.254  0.0.0.0         UG    0      0        0 bond0172.16.100.0    0.0.0.0         255.255.255.0   U     0      0        0 em3192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 bond0

同網(wǎng)段的路由走相應(yīng)網(wǎng)卡接口出去,此時(shí)192.168.10.0/24 走網(wǎng)卡 bond0 ,172.16.100.0/24 走網(wǎng)卡 em3。默認(rèn)路由走 bond0,所謂的默認(rèn)路由即目的地址為0.0.0.0的路由,當(dāng)目的地址為0.0.0.0,就代表目的地址為任意地址,比如互聯(lián)網(wǎng)地址?;ヂ?lián)網(wǎng)的IP我們是沒法提前預(yù)知的,所以互聯(lián)網(wǎng)的目的地址要使用0.0.0.0。當(dāng)大部分網(wǎng)絡(luò)都走一個(gè)網(wǎng)卡接口出去時(shí),我們會(huì)優(yōu)先把默認(rèn)路由設(shè)置在這個(gè)網(wǎng)卡接口上。我們需要通過route命令調(diào)整一下路由表:

刪掉默認(rèn)路由

route del default

添加新的默認(rèn)路由

route add default gw 172.16.100.254 dev em3

重新打印新的路由表

# route -nKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         172.16.100.254   0.0.0.0         UG    0      0        0 em3172.16.100.0    0.0.0.0         255.255.255.0   U     0      0        0 em3192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 bond0

此時(shí)默認(rèn)路由轉(zhuǎn)到了B接口上,所有的IP到B接口都是通的,除了A接口所在的網(wǎng)段,即192.168.10.0/24段到A接口192.168.10.83是通的,但不通B接口的地址172.16.100.152。因?yàn)樵诼酚杀碇?92.168.10.0/24網(wǎng)段走的就是接口A,它不會(huì)走到接口B。如果此時(shí)192.168.10.0/24段的IP需要和接口B通信,此時(shí)需要寫明細(xì)路由,手工將固定IP指到相應(yīng)接口。

比如192.168.10.26需要和172.16.100.152通信,可以這樣寫路由

route add -host 192.168.10.26 gw 172.16.100.254 dev em3

此時(shí)路由表如下:

# route -nKernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         172.16.100254   0.0.0.0         UG    0      0        0 em3172.16.100.0    0.0.0.0         255.255.255.0   U     0      0        0 em3192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 bond0192.168.10.26   172.16.100.254  255.255.255.255 UGH   0      0        0 em3

在路由表中為目的地址192.168.10.26指定網(wǎng)關(guān)為172.16.100.254,并且從網(wǎng)卡的em3接口出去,此時(shí)192.168.10.26就不再通192.168.10.83了。我們可以通過指定網(wǎng)卡物理接口的形式執(zhí)行ping來測(cè)試網(wǎng)絡(luò)的連通性。

# ping -I bond0 192.168.10.26PING 192.168.10.26 (192.168.10.26) from 192.168.10.83 bond0: 56(84) bytes of data.
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容