华为云流量模型学习(二)

发布于:2025-07-05 ⋅ 阅读:(16) ⋅ 点赞:(0)

相同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不同主机下的流量如何走。


网站公告

今日签到

点亮在社区的每一天
去签到