linux-vlan(1)

VLAN

1.topo

2.创建命名空间

ip netns add ns1

ip netns add ns2

ip netns add ns3

3.创建veth设备

ip link add ns1-veth0 type veth peer name ns21-veth0

ip link add ns3-veth0 type veth peer name ns23-veth0

4.veth设备放入命名空间,启动接口

ip link set ns1-veth0 netns ns1

ip link set ns3-veth0 netns ns3

ip -netns ns1 link set ns1-veth0 up

ip -netns ns3 link set ns3-veth0 up

ip link set ns21-veth0 netns ns2

ip link set ns23-veth0 netns ns2

ip -netns ns2 link set ns21-veth0 up

ip -netns ns2 link set ns23-veth0 up

5.创建br0,添加接口到br0

ip netns exec ns2 brctl addbr br0

ip netns exec ns2 ip link set br0 up

ip netns exec ns2 brctl addif br0 ns21-veth0

ip netns exec ns2 brctl addif br0 ns23-veth0

6.创建vlan

6.1.创建ns1 vlan

ip netns exec ns1 ip link add link ns1-veth0 name ns1-veth0.100 type vlan id 100

ip netns exec ns1 ip link set dev ns1-veth0.100 up

ip netns exec ns1 ip link add link ns1-veth0 name ns1-veth0.200 type vlan id 200

ip netns exec ns1 ip link set dev ns1-veth0.200 up

6.2.创建ns2 vlan

ip netns exec ns2 ip link add link ns21-veth0 name ns21-veth0.100 type vlan id 100

ip netns exec ns2 ip link set dev ns21-veth0.100 up

ip netns exec ns2 ip link add link ns21-veth0 name ns21-veth0.200 type vlan id 200

ip netns exec ns2 ip link set dev ns21-veth0.200 up

ip netns exec ns2 ip link add link ns23-veth0 name ns23-veth0.100 type vlan id 100

ip netns exec ns2 ip link set dev ns23-veth0.100 up

ip netns exec ns2 ip link add link ns23-veth0 name ns23-veth0.200 type vlan id 200

ip netns exec ns2 ip link set dev ns23-veth0.200 up

6.3.创建ns3 vlan

ip netns exec ns3 ip link add link ns3-veth0 name ns3-veth0.100 type vlan id 100

ip netns exec ns3 ip link set dev ns3-veth0.100 up

ip netns exec ns3 ip link add link ns3-veth0 name ns3-veth0.200 type vlan id 200

ip netns exec ns3 ip link set dev ns3-veth0.200 up

7.添加子接口到br0

ip netns exec ns2 brctl addif br0 ns21-veth0.100

ip netns exec ns2 brctl addif br0 ns21-veth0.200

ip netns exec ns2 brctl addif br0 ns23-veth0.100

ip netns exec ns2 brctl addif br0 ns23-veth0.200

8.配置地址

ip -netns ns1 addr add 1.1.1.11/24 dev ns1-veth0.100

ip -netns ns1 addr add 1.1.1.12/24 dev ns1-veth0.200

ip -netns ns3 addr add 1.1.1.31/24 dev ns3-veth0.100

ip -netns ns3 addr add 1.1.1.32/24 dev ns3-veth0.200

9.测试

9.1测试1

ip netns exec ns1 ping -c 3 -W 1 1.1.1.31 -I ns1-veth0.100

ip netns exec ns1 ping -c 3 -W 1 1.1.1.31 -I ns1-veth0.200

为什么走不同的vlan都可以ping通1.1.1.31?

9.2测试2

ip netns exec ns1 ping -W 1 1.1.1.31 -I ns1-veth0.100

ip netns exec ns2 tcpdump -i ns21-veth0 -e

ip netns exec ns2 tcpdump -i ns23-veth0 -e

ip netns exec ns2 tcpdump -i br0 -e

ns1通过ns1-veth0.100 ping 1.1.1.31时,ns21-veth0和ns23-veth0 vlan id都是100,br0不带vlan id。

9.3测试3

ip netns exec ns1 ping 3 -W 1 1.1.1.31 -I ns1-veth0.200

ip netns exec ns2 tcpdump -i ns21-veth0 -e

ip netns exec ns2 tcpdump -i ns23-veth0 -e

ip netns exec ns2 tcpdump -i br0 -e

ns1通过ns1-veth0.200 ping 1.1.1.31时,ns21-veth0是vlan id是200,ns23-veth0 vlan id是100,br0不带vlan id。

为什么带不同的vlan id都可以ping通1.1.1.31?

9.4测试4

ping 1 1.1.1.32 为什么指定ns23-veth0、ns23-veth0.100、ns23-veth0.200都不行,只能指定br0?

10.删除

ip netns del ns1

ip netns del ns2

ip netns del ns3

11.参考

VLAN - ArchWiki

相关推荐
蜡笔小炘4 分钟前
LVS -- 持久链接(Persistent Connection)实现会话粘滞
运维·服务器
生活很暖很治愈23 分钟前
Linux——孤儿进程&进程调度&大O(1)调度
linux·服务器·ubuntu
JoySSLLian36 分钟前
手把手教你安装免费SSL证书(附宝塔/Nginx/Apache配置教程)
网络·人工智能·网络协议·tcp/ip·nginx·apache·ssl
HalvmånEver39 分钟前
Linux:线程同步
linux·运维·服务器·线程·同步
Zach_yuan42 分钟前
自定义协议:实现网络计算器
linux·服务器·开发语言·网络
岁杪杪1 小时前
关于运维:LINUX 零基础
运维·服务器·php
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [drivers][I2C]I2C
linux·笔记·学习
猫头虎1 小时前
如何解决 OpenClaw “Pairing required” 报错:两种官方解决方案详解
网络·windows·网络协议·macos·智能路由器·pip·scipy
VekiSon1 小时前
Linux内核驱动——杂项设备驱动与内核模块编译
linux·c语言·arm开发·嵌入式硬件
tianyuanwo1 小时前
企业级NTP客户端配置指南:基于内部NTP服务器的实践
运维·服务器·ntp客户端