linux 控制网卡流量,如何管理和控制多网卡 Linux 虚拟机的流量走向
如何管理和控制多網(wǎng)卡 Linux 虛擬機(jī)的流量走向
02/28/2018
本文內(nèi)容
現(xiàn)象描述
多網(wǎng)卡虛擬機(jī)默認(rèn)會(huì)使用主網(wǎng)卡跟外界進(jìn)行通信,其他的輔網(wǎng)卡默認(rèn)是不會(huì)被用來跟外界通信,可以使用本文介紹的方法修改虛擬機(jī)(CentosMultiNic-VM)的配置文件,從而實(shí)現(xiàn)其他的子網(wǎng)的虛擬機(jī)(TestVM)可以借助多網(wǎng)卡虛擬機(jī)的輔助網(wǎng)卡 eth2 訪問公網(wǎng),默認(rèn)是通過主網(wǎng)卡 eth1 訪問公網(wǎng)。
拓?fù)淙缦?#xff1a;
前期準(zhǔn)備
準(zhǔn)備兩臺(tái)虛擬機(jī) CentosMultiNic-VM / TestVM ,其中 CentosMultiNic-VM 為多網(wǎng)卡虛擬機(jī)。
創(chuàng)建虛擬網(wǎng)絡(luò) 172.22.5.0/26,并且劃分子網(wǎng)如下圖所示:
CentosMultiNic-VM 的三個(gè)網(wǎng)卡以及分別位于對應(yīng)的子網(wǎng):
eth1--subnet1
eth2 --subnet2
eth3 – subnet3
配置部分
配置 UDR 到 subnet3,從而實(shí)現(xiàn)子網(wǎng) subnet3 的下虛擬機(jī) TestVM 可以將流量引向 CentosMultiNic-VM。
通過 Azure 門戶針對網(wǎng)卡開啟 IP 轉(zhuǎn)發(fā)設(shè)置,如下圖所示:
eth1
eth2
eth3
在虛擬機(jī) CentosMultiNic-VM 修改配置:
默認(rèn)虛擬機(jī)的路由是通過 eth1 出去訪問公網(wǎng),如下圖所示:
刪除系統(tǒng)自帶的默認(rèn)路由,并且添加默認(rèn)路由指定下一條為 eth2,當(dāng)刪除系統(tǒng)自帶的默認(rèn)路由以后,可能會(huì)導(dǎo)致系統(tǒng)無法通過 SSH登錄,建議可以在虛擬網(wǎng)絡(luò)VNET中新建一臺(tái) jump server 做跳板機(jī)進(jìn)行配置。
通過使用 iptables 的 nat 表做 snat 轉(zhuǎn)換
開啟 linux 內(nèi)核的 ip_forwarding 選項(xiàng):
sed -ri 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
sysctl -p
測試
此時(shí)在 TestVM 中進(jìn)行 ping 測試,同時(shí)在 CentosMultiNic-VM 上抓包,如下圖所示:
在 CentosMultiNic-VM 抓包發(fā)現(xiàn),ICMP 報(bào)文會(huì)經(jīng)過 eth2,如下圖所示:
另外,此時(shí)再次從公網(wǎng)訪問虛擬機(jī)主網(wǎng)卡的公網(wǎng) IP 就發(fā)現(xiàn)無法 SSH 了,如下圖所示:
這是因?yàn)樵谔摂M機(jī)內(nèi)部修改了系統(tǒng)的默認(rèn)路由導(dǎo)致的,可以通過配置策略路由來解決該問題:
在系統(tǒng)路由表的配置文件添加自定義路由表:
添加規(guī)則:從 172.22.5.68 離開的數(shù)據(jù)包去查找路由表 table1:
添加策略路由后發(fā)現(xiàn)可以正常訪問了,如下圖所示:
綜上所述:可以在 linux 系統(tǒng)內(nèi)添加多網(wǎng)卡和調(diào)整默認(rèn)路由,使其他的虛擬機(jī)可以通過多網(wǎng)卡虛擬機(jī)的輔助網(wǎng)卡訪問公網(wǎng), 來控制虛擬機(jī)的流量走向
以及通過使用策略路由,仍然可以實(shí)現(xiàn)SSH登錄主網(wǎng)卡。
由于上述配置在虛擬機(jī)重啟以后就會(huì)消失,如果想要永久生效的話,可以寫入到/etc/rc.local 里。
總結(jié)
以上是生活随笔為你收集整理的linux 控制网卡流量,如何管理和控制多网卡 Linux 虚拟机的流量走向的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 查看进程id对应的路径,Li
- 下一篇: linux磁盘同步函数,Linux系统调