共计 5016 个字符,预计需要花费 13 分钟才能阅读完成。
想要搞懂容器网络和k8s网络,还是得重新学一下网络这块内容,快速回顾下以前的网络知识
什么是vlan?
VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信,而VLAN间不能直接通信,从而将广播报文限制在一个VLAN内。
- 控制广播域:每一个vlan都是一个独立的广播域,这样就减少了广播对网络宽带的占用,提高了网络传输效率,并且一个VLAN出现了广播风暴不会影响其他的VLAN。二层转发的单播、组播、广播报文只能在组内转发,节省了带宽,提高了网络处理能力
- 增强网络安全性:由于只能在同一VLAN内的端口之间交换数据,不同的VLAN的端口之间不能直接访问,因此vlan可以限制个别主机访问服务器等资源。所以,通过划分VLAN可以提高网络的安全性
- 简化网络管理:一个VLAN可以根据内部职能,对象组成应用将不同地理位置的用户划分为一个逻辑网段,在不改动网络物理连接的情况下可以任意地将工作站在工作组或子网间移动。利用VLAN技术,大大减轻了网络管理和维护工作的负担,降低了网络维护的费用
帧格式
- TPID:Tag protocol identifier 标签协议标识符,表示数据帧类型,0x8100 表示 IEEE 802.1Q 帧,长度为 2 个字节
- TCI:Tag control information,包含了数据帧控制信息,同样由 2 个字节组成
- PCP(PRI):Priority code point,表示数据帧的优先级。之前的名称为 PRI,具体含义没变。PCP 占 3 bits,所以取值范围为 0 ~ 8,值越大表示优先级越高。如果发生拥塞,交换机首先发送优先级最高的数据包
- DEI(CFI):Drop eligible indicator 丢弃资格标识符,表示 MAC 地址封装是否符合规范格式,之前的名称为 CFI。DEI 占 1 bit,0 表示 MAC 地址以标准格式进行封装
- VID:VLAN identifier,表示帧所属的 VLAN。一般情况下在 TCI 中,只关心 VID。VID 占 12 bits,取值范围为 0 ~ 4095,总计可以标识 4096 个 VLAN
链路和端口模式
对于带vlan和不带vlan帧的链路可以分为
- 接入链路(Access Link):连接用户主机和交换机的链路。通过的帧为不带Tag 的以太网帧
- 干道链路(Trunk Link): 连接交换机和交换机的链路。通过的帧一般为带Tag 的VLAN 帧,也允许通过不带Tag 的以太网帧
交换机端口模式
- 接入端口(Access Port):
- 接入端口只能属于一个VLAN
- 接入端口接收处理方法:一般只接收”未打标签”的普通以太网MAC帧。根据接收帧的端口PVID值给帧”打标签”,即插入4字节的VLAN标记字段,字段中的VID取值与端口PVID取值相等
- 接入端口发送处理方法:若帧中的VID与端口的PVID相等,则”去标签”并转发该帧;否则不转发
- 干道端口(Trunk Port)
- 干道端口可以属于多个VLAN
- 干道端口发送处理方法
- 对VID等于PVID的帧,“去标签,再转发”
- 对VID不等于PVID的帧,直接转发
- 干道端口接收处理方法:
- 接收”未打标签”的帧。根据接收帧的端口的PVID给帧”打标签”,即插入4字节的VLAN标记字段,字段中的VID取值与端口的PVID取值相等
- 如该端口允许进入,则直接接收”已打标签的帧”,否则丢弃
- 混合端口(仅华为,略)
实验抓包分析
在ClIENT4,CLIENT2,LSW2的Ethernet 0/0/1同时抓包,此时用CLIENT1 ping CLIENT2
CLIENT2上的包
从上图可以看到并没有vlan 10 的数据帧信息,因为vlan帧信息在进入交换机时才tag,出了交换机后则会untag,所以在access 口中看不到vlan帧信息
ClIENT4上的包
在CLIENT4上并没有抓到arp请求,因为它们属于不同vlan,广播域是隔离的。
LSW2干道链路上的包
而对于在LSW2的Ethernet 0/0/1抓包中,可以看到CLIENT 1的arp请求。此链路是干道链路(Trunk Link),CLIENT 1 的报文经过LSW1 Trunk口时,LSW1发现报文的VID为10和自身的PVID(此时使用默认值1)不匹配,则不去除vlan tag,直接进入Trunk转发逻辑,发现允许vlan 10 和vlan 20都放行,最后转发带tag的报文出去
wireshark增加vlanID字段的方式
编辑->首选项->外观->列,添加Custom类型,fields为vlan.id即可
另外一种直接点开数据帧右键其vlanID值选择应用为列
实验配置
LSW1配置
system-view
sysname LSW1
vlan batch 10 20
port-group 1
group-member Ethernet 0/0/1 Ethernet 0/0/2
port link-type access
port default vlan 10
quit
#
port-group 2
group-member Ethernet 0/0/3 Ethernet 0/0/4
port link-type access
port default vlan 20
quit
#
interface Ethernet 0/0/5
port link-type trunk
port trunk allow-pass vlan all
quit
查看此时vlan配置和port vlan 配置
[LSW1]display vlan
The total number of vlans is : 3
--------------------------------------------------------------------------------
U: Up; D: Down; TG: Tagged; UT: Untagged;
MP: Vlan-mapping; ST: Vlan-stacking;
#: ProtocolTransparent-vlan; *: Management-vlan;
--------------------------------------------------------------------------------
VID Type Ports
--------------------------------------------------------------------------------
1 common UT:Eth0/0/5(U) Eth0/0/6(D) Eth0/0/7(D) Eth0/0/8(D)
Eth0/0/9(D) Eth0/0/10(D) Eth0/0/11(D) Eth0/0/12(D)
Eth0/0/13(D) Eth0/0/14(D) Eth0/0/15(D) Eth0/0/16(D)
Eth0/0/17(D) Eth0/0/18(D) Eth0/0/19(D) Eth0/0/20(D)
Eth0/0/21(D) Eth0/0/22(D) GE0/0/1(D) GE0/0/2(D)
10 common UT:Eth0/0/1(U) Eth0/0/2(U)
TG:Eth0/0/5(U)
20 common UT:Eth0/0/3(U) Eth0/0/4(U)
TG:Eth0/0/5(U)
VID Status Property MAC-LRN Statistics Description
--------------------------------------------------------------------------------
1 enable default enable disable VLAN 0001
10 enable default enable disable VLAN 0010
20 enable default enable disable VLAN 0020
[LSW1]display port vlan
Port Link Type PVID Trunk VLAN List
-------------------------------------------------------------------------------
Ethernet0/0/1 access 10 -
Ethernet0/0/2 access 10 -
Ethernet0/0/3 access 20 -
Ethernet0/0/4 access 20 -
Ethernet0/0/5 trunk 1 1-4094
Ethernet0/0/6 hybrid 1 -
Ethernet0/0/7 hybrid 1 -
Ethernet0/0/8 hybrid 1 -
LSW2配置
system-view
sysname LSW2
vlan batch 10 20
port-group 1
group-member Ethernet 0/0/2
port link-type access
port default vlan 10
quit
#
interface Ethernet 0/0/1
port link-type trunk
port trunk allow-pass vlan all
quit
查看此时vlan配置和port vlan 配置
[LSW2]display vlan
The total number of vlans is : 2
--------------------------------------------------------------------------------
U: Up; D: Down; TG: Tagged; UT: Untagged;
MP: Vlan-mapping; ST: Vlan-stacking;
#: ProtocolTransparent-vlan; *: Management-vlan;
--------------------------------------------------------------------------------
VID Type Ports
--------------------------------------------------------------------------------
1 common UT:Eth0/0/1(U) Eth0/0/3(D) Eth0/0/4(D) Eth0/0/5(D)
Eth0/0/6(D) Eth0/0/7(D) Eth0/0/8(D) Eth0/0/9(D)
Eth0/0/10(D) Eth0/0/11(D) Eth0/0/12(D) Eth0/0/13(D)
Eth0/0/14(D) Eth0/0/15(D) Eth0/0/16(D) Eth0/0/17(D)
Eth0/0/18(D) Eth0/0/19(D) Eth0/0/20(D) Eth0/0/21(D)
Eth0/0/22(D) GE0/0/1(D) GE0/0/2(D)
10 common UT:Eth0/0/2(U)
TG:Eth0/0/1(U)
VID Status Property MAC-LRN Statistics Description
--------------------------------------------------------------------------------
1 enable default enable disable VLAN 0001
10 enable default enable disable VLAN 0010
[LSW2]display port vlan
Port Link Type PVID Trunk VLAN List
-------------------------------------------------------------------------------
Ethernet0/0/1 trunk 1 1-4094
Ethernet0/0/2 access 10 -
Ethernet0/0/3 hybrid 1 -
Ethernet0/0/4 hybrid 1 -
修改trunk pvid命令
interface Ethernet 0/0/1
port link-type trunk
port trunk pvid 10
参考:
https://blog.csdn.net/m0_65544268/article/details/131808723
https://blog.csdn.net/HinsCoder/article/details/130781332