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

相关推荐
dessler13 分钟前
Hadoop HDFS-高可用集群部署
linux·运维·hdfs
泽泽爱旅行20 分钟前
awk 语法解析-前端学习
linux·前端
少妇的美梦18 小时前
logstash教程
运维
chen94519 小时前
k8s集群部署vector日志采集器
运维
chen94519 小时前
aws ec2部署harbor,使用s3存储
运维
轻松Ai享生活1 天前
5 节课深入学习Linux Cgroups
linux
白帽黑客沐瑶1 天前
【网络安全就业】信息安全专业的就业前景(非常详细)零基础入门到精通,收藏这篇就够了
网络·安全·web安全·计算机·程序员·编程·网络安全就业
christine-rr1 天前
linux常用命令(4)——压缩命令
linux·服务器·redis
三坛海会大神5551 天前
LVS与Keepalived详解(二)LVS负载均衡实现实操
linux·负载均衡·lvs
東雪蓮☆1 天前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs