linux 控制网卡流量,如何管理和控制多网卡 Linux 虚拟机的流量走向

如何管理和控制多网卡 Linux 虚拟机的流量走向

02/28/2018

本文内容

现象描述

多网卡虚拟机默认会使用主网卡跟外界进行通信,其他的辅网卡默认是不会被用来跟外界通信,可以使用本文介绍的方法修改虚拟机(CentosMultiNic-VM)的配置文件,从而实现其他的子网的虚拟机(TestVM)可以借助多网卡虚拟机的辅助网卡 eth2 访问公网,默认是通过主网卡 eth1 访问公网。

拓扑如下:

9fc27a884822cbbcfa2098462b8ac69d.png

前期准备

准备两台虚拟机 CentosMultiNic-VM / TestVM ,其中 CentosMultiNic-VM 为多网卡虚拟机。

3cb4c9ff03ff9ade2c54e33bb24ddf14.png

创建虚拟网络 172.22.5.0/26,并且划分子网如下图所示:

8b787b1b798272513de8b6dc89ee7d5c.png

CentosMultiNic-VM 的三个网卡以及分别位于对应的子网:

eth1--subnet1

eth2 --subnet2

eth3 – subnet3

配置部分

配置 UDR 到 subnet3,从而实现子网 subnet3 的下虚拟机 TestVM 可以将流量引向 CentosMultiNic-VM。

b02572ad4b030c939a05528f52d4f1cd.png

通过 Azure 门户针对网卡开启 IP 转发设置,如下图所示:

eth1

b925878e7fcaa52ecedc32735a5b4033.png

eth2

4816b5366e1f0b4ed6863e1edd666902.png

eth3

a85a9ce8b0ceb66dd1714f91299d8053.png

在虚拟机 CentosMultiNic-VM 修改配置:

默认虚拟机的路由是通过 eth1 出去访问公网,如下图所示:

6d9a19b082a60203d86eccdfa594649b.png

删除系统自带的默认路由,并且添加默认路由指定下一条为 eth2,当删除系统自带的默认路由以后,可能会导致系统无法通过 SSH登录,建议可以在虚拟网络VNET中新建一台 jump server 做跳板机进行配置。

5204cc1deabbb96a8b34c78b019b46c9.png

通过使用 iptables 的 nat 表做 snat 转换

534746fb98e47b41d6348fd821e68d57.png

开启 linux 内核的 ip_forwarding 选项:

sed -ri 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf

sysctl -p

8b79f989c5193bf9ef7c016c47d3277c.png

测试

此时在 TestVM 中进行 ping 测试,同时在 CentosMultiNic-VM 上抓包,如下图所示:

3cff9c4075e4a6d17a8268022a83d250.png

在 CentosMultiNic-VM 抓包发现,ICMP 报文会经过 eth2,如下图所示:

b6b671d1399d3f7e032cf1fcd34e0fb4.png

另外,此时再次从公网访问虚拟机主网卡的公网 IP 就发现无法 SSH 了,如下图所示:

f73588eae76d90c1b7ba7742747f4b6c.png

这是因为在虚拟机内部修改了系统的默认路由导致的,可以通过配置策略路由来解决该问题:

在系统路由表的配置文件添加自定义路由表:

a0374fc09710842e94468aeecd70451a.png

添加规则:从 172.22.5.68 离开的数据包去查找路由表 table1:

23c3b2291983d38127e0ac01c49d0558.png

添加策略路由后发现可以正常访问了,如下图所示:

9d73a0975e667b9df415c687344e89aa.png

综上所述:可以在 linux 系统内添加多网卡和调整默认路由,使其他的虚拟机可以通过多网卡虚拟机的辅助网卡访问公网, 来控制虚拟机的流量走向

以及通过使用策略路由,仍然可以实现SSH登录主网卡。

由于上述配置在虚拟机重启以后就会消失,如果想要永久生效的话,可以写入到/etc/rc.local 里。

3b3ec95e28f530dfac333d1a76964d1e.png


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部