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

相关推荐
小涵8 分钟前
企业SRE/DevOps向的精通Linux课程培训课程
linux·运维·devops·1024程序员节
航Hang*19 分钟前
第1章:初识Linux系统——第8节:查看/修改权限控制和ACL
linux·运维·服务器·笔记·操作系统
一个处女座的程序猿O(∩_∩)O22 分钟前
深入浅出 SSE:实现服务器向客户端的单向实时通信
运维·服务器
捷智算云服务23 分钟前
DGX A100服务器常见故障解析与维修攻略
运维·服务器
安当加密24 分钟前
基于TDE透明加密实现异地服务器间文件自动加密传输的实践与思考
运维·服务器
悠悠1213830 分钟前
Jenkins 从0基础到有点基础——如何安装
运维·jenkins
我爱钱因此会努力1 小时前
初始化服务器
linux·运维·服务器·tcp/ip·centos
曦月合一1 小时前
解决由于没有远程桌面授权服务器可以提供许可证,远程会话被中断.的方法
运维·服务器·window server
angushine1 小时前
Shell脚本判断服务器SSH免密是否配置完成
运维·服务器·ssh
想唱rap1 小时前
C++list类的模拟实现
linux·运维·服务器·数据结构·c++·windows·list