linux bridge划分vlan

该文描述了一组Linux命令,用于创建和设置网络桥接设备br-hdp,添加tap接口tf0-tf3并将其设置为桥接的主设备,配置VLAN标签,并在QEMU中使用virtio-net-pci设备模拟网络接口。通过这些步骤,实现了不同VLAN间的通信,并通过ethtool验证了网络配置的效果。
摘要由CSDN通过智能技术生成

create and set bridge

brctl addbr br-hdp
ip l set up dev br-hdp
# enable vlan filter
echo 1 > /sys/class/net/br-hdp/bridge/vlan_filtering

create and set tap

ip tuntap add tf0 mod tap
ip tuntap add tf1 mod tap
ip tuntap add tf2 mod tap
ip tuntap add tf3 mod tap

ip l set master br-hdp dev tf0
ip l set master br-hdp dev tf1
ip l set master br-hdp dev tf2
ip l set master br-hdp dev tf3

ip l set up dev tf0
ip l set up dev tf1
ip l set up dev tf2
ip l set up dev tf3

# pvid: tag vid if ingress has not vlan tag
# untagged: untag egress packet
# more details refer to command 'man bridge' in linux
bridge vlan add dev tf0 vid 11 pvid untagged
bridge vlan add dev tf1 vid 11 pvid untagged
bridge vlan add dev tf2 vid 22 pvid untagged
bridge vlan add dev tf3 vid 22 pvid untagged

[root@5fc7e1d8e068 ~]# bridge vlan show
port              vlan-id
virbr0            1 PVID Egress Untagged
virbr0-nic        1 PVID Egress Untagged
br-hdp            1 PVID Egress Untagged
tf0               1 Egress Untagged
                  11 PVID Egress Untagged
tf1               1 Egress Untagged
                  11 PVID Egress Untagged
tf2               1 Egress Untagged
                  22 PVID Egress Untagged
tf3               1 Egress Untagged
                  22 PVID Egress Untagged
vnet0             1 PVID Egress Untagged

set vm parameters

<qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='virtio-net-pci,netdev=tf0,id=tf0,mac=00:5d:73:55:cc:08,addr=0a.0'/>
    <qemu:arg value='-netdev'/>
    <qemu:arg value='tap,ifname=tf0,id=tf0,script=no,downscript=no'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='virtio-net-pci,netdev=tf1,id=tf1,mac=00:5d:73:55:cc:09,addr=0b.0'/>
    <qemu:arg value='-netdev'/>
    <qemu:arg value='tap,ifname=tf1,id=tf1,script=no,downscript=no'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='virtio-net-pci,netdev=tf2,id=tf2,mac=00:5d:73:55:cc:0a,addr=0c.0'/>
    <qemu:arg value='-netdev'/>
    <qemu:arg value='tap,ifname=tf2,id=tf2,script=no,downscript=no'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='virtio-net-pci,netdev=tf3,id=tf3,mac=00:5d:73:55:cc:0b,addr=0d.0'/>
    <qemu:arg value='-netdev'/>
    <qemu:arg value='tap,ifname=tf3,id=tf3,script=no,downscript=no'/>
</qemu:commandline>

start vm and load virtio modules

[root@host ~]# ethtool -i enp0s10|grep bus-info
bus-info: 0000:00:0a.0
[root@host ~]# ethtool -i enp0s11|grep bus-info
bus-info: 0000:00:0b.0
[root@host ~]# ethtool -i enp0s12|grep bus-info
bus-info: 0000:00:0c.0
[root@host ~]# ethtool -i enp0s13|grep bus-info
bus-info: 0000:00:0d.0

result

ping -I enp0s10 baidu.com后tcpdump enp0s11可抓到包,enp0s12,13抓不到包
ping -I enp0s12 baidu.com后tcpdump enp0s13可抓到包,enp0s10,11抓不到包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值