使用brctl来演示如何用vlan id来构造不同的子网


linux中brctl建立的一个br设备,只能实现一个vlan的报文转发;
一个接口输出的报文如果需要增加vlan id,则需要建立vlan子接口;
一个vlan子接口只接收该物理接口中的带相关vlan id的报文;
一个vlan子接口发送的报文,在该物理接口发送时会携带vlan id;

command:
#新建虚拟网络,方便在一个物理机里的模拟两个子网之间的通信
ip netns add ns1
ip netns add ns2
#新建veth pair接口,实现底层联通的一对虚拟接口
ip link add veth0_0 type veth peer name veth0_1
ip link add veth1_0 type veth peer name veth1_1
ip link add veth2_0 type veth peer name veth2_1
ip link add veth3_0 type veth peer name veth3_1
ip link add veth4_0 type veth peer name veth4_1
#新建vlan子接口,该接口将收发带vlan tag的报文
ip link add link veth4_0 name veth4_0.100 type vlan id 100
ip link add link veth4_0 name veth4_0.200 type vlan id 200
ip link add link veth4_1 name veth4_1.100 type vlan id 100
ip link add link veth4_1 name veth4_1.200 type vlan id 200
#新建bridge设备
brctl addbr br100_0
brctl addbr br100_1
brctl addbr br200_0
brctl addbr br200_1
#给bridge设备连接接口
brctl addif br100_0 veth0_0 veth4_0.100
brctl addif br100_1 veth2_0 veth4_1.100
brctl addif br200_0 veth1_0 veth4_0.200
brctl addif br200_1 veth3_0 veth4_1.200
#相关设备linkup
ip link set dev br100_0 up
ip link set dev br100_1 up
ip link set dev br200_0 up
ip link set dev br200_1 up
ip link set dev veth0_0 up
ip link set dev veth1_0 up
ip link set dev veth2_0 up
ip link set dev veth3_0 up
ip link set dev veth4_0 up
ip link set dev veth4_0.100 up
ip link set dev veth4_0.200 up
ip link set dev veth4_1 up
ip link set dev veth4_1.100 up
ip link set dev veth4_1.200 up
#把源设备和目的设备放到不同的虚拟网络中进行隔离,避免其绕开bridge进行直接通信
 ip link set veth0_1 netns ns1
 ip link set veth1_1 netns ns1
 ip link set veth2_1 netns ns2
 ip link set veth3_1 netns ns2
#给原设备和目的设备设置IP地址
ip netns exec ns1 ifconfig veth0_1 10.10.0.1 netmask 255.255.255.0
ip netns exec ns1 ifconfig veth1_1 10.10.1.1 netmask 255.255.255.0
ip netns exec ns2 ifconfig veth2_1 10.10.0.2 netmask 255.255.255.0
ip netns exec ns2 ifconfig veth3_1 10.10.1.2 netmask 255.255.255.0
#从源设备ping目的设备
ip netns exec ns1 ping 10.10.0.2
ip netns exec ns1 ping 10.10.1.2
#tcpdump抓包验证收到了带vlan id的报文
tcpdump -i veth4_0 -xxe
tcpdump -i veth4_1 -xxe
ip netns exec ns1 tcpdump -i veth0_1 -xxe
ip netns exec ns2 tcpdump -i veth2_1 -xxe

经过验证,我们可以通过vlan子接口来实现vlan tag的产生和总结;

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值