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

相关推荐
TechWayfarer1 分钟前
账号安全实战:基于IP归属地基线的三原则异地登录风控模型
服务器·网络·python·安全·网络安全
Edward111111114 分钟前
SSL/TSL配置 集群节点间通信加密还有客户端
linux·服务器·ssl
我科绝伦(Huanhuan Zhou)17 分钟前
在eNSP中简单组网及基础连通性测试
网络
Codigger官方21 分钟前
Ubuntu 与 Fedora:两大 Linux 发行版怎么选?
linux·运维·ubuntu
難釋懷23 分钟前
Redis网络模型-基于epoll的服务器端流程
网络·数据库·redis
程序员老舅38 分钟前
Linux:谁把根目录卸载了?
linux·c++·容器·linux内核·文件系统·根目录
东北甜妹1 小时前
K8s pod优先级 和 HPA水平扩缩容
linux·运维·服务器
heimeiyingwang1 小时前
【架构实战】容器网络CNI:让Pod与Pod、Pod与外界自由通信
网络·架构
无限进步_1 小时前
【Linux】网络发展背景与协议分层模型
linux·运维·网络
比昨天多敲两行1 小时前
Linux命令行参数,环境变量和程序地址空间
linux·运维·服务器