华为云流量模型学习(二)
本文通过实验验证了同VPC同主机下虚拟机互访的流量路径。实验使用两台openEuler24虚拟机,通过创建namespace模拟VM环境,并构建由Linux网桥(qbr)和OVS网桥(br-int)组成的网络拓扑。关键点包括: 采用veth对连接VM和网桥 qbr网桥过滤非本机流量(基于MAC地址) OVS网桥br-int通过NORMAL规则实现传统交换功能 测试结果显示VM间通信正常,流量经ve
相同vpc同主机互访
一、完整图:

plyxxxx:这个本质是网桥,核心功能是基于 MAC 地址过滤非本机流量 。
关键过滤规则
- 规则 1:仅允许目标 MAC 为本机接口 MAC 的单播帧通过。
- 规则 2:允许广播帧(MAC 地址为
FF:FF:FF:FF:FF:FF)和组播帧通过。 - 规则 3:允许预配置的信任 MAC 地址通过(如网关、监控设备)。
以下实验vm虚拟机使用veth结合namespace代替,ply设备仅作为过滤器,过滤非本机流量,实验中未体现。
二、实验:

这里采用两台openEuler 24版的虚拟机做测试:
1.环境:
|
主机名 |
操作系统 |
管理网卡ens32 |
业务网卡ens33 |
|
|
com01 |
openEuler24 |
192.168.174.4 |
这里后面与br-ethx做桥接,不配ip |
|
|
com02 |
openEuler24 |
192.168.174.4 |
这里后面与br-ethx做桥接,不配ip |
2.创建vm1,vm2的名称空间
[root@com01 ~]# ip netns add vm1
[root@com01 ~]# ip netns add vm2
# 验证命名空间是否创建成功
[root@com01 ~]# ip netns list
vm1
vm2
2.创建 veth 对并分配接口
vm1:
# 创建veth对(veth-a和veth-b)
ip link add veth-vm1-a type veth peer name veth-vm1-b
# 将veth-vm1-b放入vm1命名空间
ip link set veth-vm1-b netns vm1
# 先up,再查看veth对状态
ip link set veth-vm1-a up
ip link show veth-vm1-a
ip netns exec vm1 ip link set veth-vm1-b up
ip netns exec vm1 ip link show veth-vm1-b
vm2的也同理:
# 创建veth对(veth-a和veth-b)
ip link add veth-vm2-a type veth peer name veth-vm2-b
# 将veth-vm2-b放入vm2命名空间
ip link set veth-vm2-b netns vm2
# 查看veth对状态
ip link set veth-vm2-a up
ip link show veth-vm2-a
ip netns exec vm2 ip link set veth-vm2-b up
ip netns exec vm2 ip link show veth-vm2-b
3.两个名称空间里的veth接口配置ip
ip netns exec vm1 ip addr add 192.168.1.2/24 dev veth-vm1-b
ip netns exec vm2 ip addr add 192.168.1.3/24 dev veth-vm2-b
4.创建qbr网桥
# 创建qbr网桥
brctl addbr qbr-vm1
brctl addbr qbr-vm2
# 启用网桥
sudo ip link set qbr-vm1 up
sudo ip link set qbr-vm2 up
# 查看网桥状态
sudo brctl show
按照实验拓扑图规划,把veth口的A端都加入网桥中:
brctl addif qbr-vm1 veth-vm1-a
brctl addif qbr-vm2 veth-vm2-a
5.创建br-int
启动ovs服务:
systemctl enable --now openvswitch
##博主在安装操作系统的时候,勾选了安装OVS服务,没有勾选的可以使用yum安装:yum install -y openvswitch
创建br-int虚拟交换机:
ovs-vsctl add-br br-int
创建两对veth,用于连接qbr与br-int:
ip link add veth-qbr-vm1-a type veth peer name veth-qbr-vm1-b
ip link add veth-qbr-vm2-a type veth peer name veth-qbr-vm2-b
ip link set veth-qbr-vm1-a up
ip link set veth-qbr-vm1-b up
ip link set veth-qbr-vm2-a up
ip link set veth-qbr-vm2-b up
将a端加入对应qbr:
brctl addif qbr-vm1 veth-qbr-vm1-a
brctl addif qbr-vm2 veth-qbr-vm2-a
查看qbr:

b端加入br-int中:
ovs-vsctl add-port br-int veth-qbr-vm1-b
ovs-vsctl add-port br-int veth-qbr-vm2-b
查看br-int:

6.ping测试:
7.查看br-int流表:

可见br-int现在只有一条规则,这条规则意味着:所有未被更高优先级规则匹配的流量,将按照传统交换机的方式(基于 MAC 地址学习)进行转发。在这种情况下,流量仍然会经过 OVS,但转发逻辑由 NORMAL 动作处理,而非显式的流表规则。
现在就相当于一个二层交换机。然后我们再查看mac地址表(port1对应veth-qbr-vm1-b,port2对应veth-qbr-vm2-b,两个mac地址就是vm1的地址和vm2的地址):

vm1:

vm2:
本实验模拟了同vpc同主机下虚拟机互访的流量走向,下一节实验同vpc不同主机下的流量如何走。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)