上一篇文章写到三层交换机实现多个 VLAN 之间互相通讯, 有朋友提问要如何进行配置, 可有案例分析. 其实那天我在写的时候也有做过模拟, 只是后来没有保存. 今天重新模拟一次, 并附上详细配置命令, 希望能够帮助到大家.
首先回忆下 VLAN 间数据传输的三种端口模式各自代表的含义:
Access 类型的端口只能属于 1 个 VLAN, 一般用于连接计算机的端口, 也可以连接交换机和交换机.
Trunk 类型的端口可以允许多个 VLAN 通过, 可以接收和发送多个 VLAN 的报文, trunk 口一般用于连接两台交换机, 这样可以只用一条 trunk 连接实现多个 vlan 的扩展. 对于 trunk 口发送出去的报文, 只有默认 vlan 的报文不带 vlan ID, 其它 vlan 的报文都要带 vlan ID(要不然, 对端的交换机不知道该报文属于哪个 vlan, 无法处理, 也就不能实现 vlan 跨交换机扩展了). 简而言之, trunk 端口的设计目的就是通过一条连接实现多个 vlan 的跨交换机扩展.
Hybrid 类型的端口可以实现比 trunk 端口更多的功能, trunk 端口是 hybrid 端口的真子集. 可以允许多个 VLAN 通过, 可以接收和发送多个 VLAN 的报文, 可以用于交换机之间连接, 也可以用于连接用户的计算机. hybrid 端口可以加入多个 vlan, 并可以设置该 vlan 的报文通过该端口发送是否带 vlan ID(trunk 端口不能设置, 只有默认 vlan 的报文不带 vlan ID 进行发送).
以下配合每个端口模式在 eNSP 模拟器上模拟的实验:
一, Trunk+Access 链路端口混合模式案例
由于 Access 链路类型端口是单一 VLAN, 而且连接计算机的, 所以跟 Trunk 链路类型端口合并成一个案例, 节约大家学习时间.
通过配置使都在 vlan2 的 PC1 和 PC2 互通, 同 vlan3 的 PC3 和 PC4 互通.
SwitchA 配置命令:
- <Huawei>system-view
- [Huawei]sysname SwitchA
- [SwitchA]vlan batch 2 3 // 批量创建 VLAN, 也可以分两次创建 VLAN 2 VLAN 3
- [SwitchA]int vlanif 2
- [SwitchA-Vlanif2]ip address 192.168.100.1 255.255.255.0
- [SwitchA-Vlanif2]quit
- [SwitchA]int vlanif 3
- [SwitchA-Vlanif3]ip address 192.168.200.1 255.255.255.0
- [SwitchA-Vlanif3]quit
- [SwitchA] int G0/0/1
- [SwitchA-GigabitEthernet0/0/1]port link-type access // 与连接 PC1 的端口链路类型设置为 access
- [SwitchA-GigabitEthernet0/0/1]port default vlan 2 // 将端口 G0/0/1 加入 vlan 2
- [SwitchA-GigabitEthernet0/0/1]int G0/0/2 // 可以直接跳入 G0/0/2 , 新手可以先 quit 到系统视图
- [SwitchA-GigabitEthernet0/0/2] port link-type access // 与连接 PC2 端口链路类型设置为 access
- [SwitchA-GigabitEthernet0/0/2] port default vlan 3 // 将端口 GE1/0/2 加入 vlan3
- [SwitchA] int G0/0/3
- [SwitchA-GigabitEthernet0/0/3] port link-type trunk // 因为有 vlan2 vlan3 两个 vlan, 将交换机互联的端口链路类型设置为 trunk
- [SwitchA-GigabitEthernet1/0/3] port trunk allow-pass vlan 2 3 // 将端口 G0/0/3 加入 vlan2 和 vlan 3
SwitchB 和 SwitchA 的配置差不多, 大家参考 SwitchA 的配置文件.
将 PC1 和 PC2 配置在一个网段, 比如 192.168.100.2/24 和 192.168.100.3/24, 网关皆为 192.168.100.1;
将 PC3 和 PC4 配置在一个网段, 比如 192.168.200.2/24 和 192.168.200.3/24, 网关皆为 192.168.200.1;
测试结果: PC1 可以与 PC2ping 通, PC3 可以与 PC4ping 通.
PC1 ping 通 PC2
PC3 ping 通 PC4
二, Hybrid 链路类型端口案例
上篇文章有朋友提到 Hybrid 链路类型端口模式功能非常强大而且相当复杂, 今天下午复习了下, 确实在很多方面变现出它的先进性.
使用 Hybrid 链路类型配置让 PC3 与 PC1,PC2 互通, PC1 与 PC2 之间不通.
LSW1 配置命令:
- <Huawei>system-view
- [Huawei]sysname LSW1
- [LSW1]vlan batch 2 3 99
- [LSW1]int g0/0/1
- [LSW1-GigabitEthernet0/0/1]undo port hybrid vlan 1
- [LSW1-GigabitEthernet0/0/1]port hybrid tagged vlan 99
- [LSW1-GigabitEthernet0/0/1]port hybird untagged vlan 2 3
- [LSW1-GigabitEthernet0/0/1]int g0/0/2
- [LSW1-GigabitEthernet0/0/2]undo port hybrid vlan 1
- [LSW1-GigabitEthernet0/0/2]port hybrid pvid vlan 2
- [LSW1-GigabitEthernet0/0/2]port hybird untagged vlan 2 99
- [LSW1-GigabitEthernet0/0/2]int g0/0/3
- [LSW1-GigabitEthernet0/0/3]undo port hybrid vlan 1
- [LSW1-GigabitEthernet0/0/3]port hybrid pvid vlan 3
- [LSW1-GigabitEthernet0/0/3]port hybird untagged vlan 3 99
- [LSW1-GigabitEthernet0/0/3]quit
SwitchB 和 SwitchA 的配置差不多, 大家参考 SwitchA 的配置, 再次不再累赘.
PC1,PC2 和 PC3 的 IP 地址分别顺序设置为 192.168.1.1/24,192.168.1.2/24,192.168.1.3/24, 网关不填.
测试结果为:
这里有必要对 Hybrid 原理解释一下:
1,pvid 这个属性只针对进入该端口的! 没有标签的! 普通的! 数据包有效, 作用是将没有标签的普通数据包打上 pvid 中配置的标签号;
2,hybrid 属性中, tag 是针对于端口的接收方向的 (从该端口进来的流量允许带有这些 vlan 标签的通过),untag 是针对端口的发送方向的 (从该端口出去的流量去除这些 vlan 标签);
Hybird 实例配置分析 (非常有必要解释):
1, 为了让我们更加简洁的理解 hydrid 的属性, 首先在所有的端口上移除了 vlan1 这个默认有的 vlan, 假设为所有端口初始不属于任何 vlan, 都不能相互之间通信;
2,pvid 是当普通的主机数据帧进入交换机端口后被打上的 vlan-tag 的属性, 在途中可以看出 PC1,PC2,PC3 的流量在进入交换机的时候分别会被打上 vlan2,vlan3,vlan99 的 vlan 标签;
3,untag 后面的 vlan 就是该端口属于的 vlan, 那么不难看出 LSW1 的 G0/0/1 属于 vlan2,3,G0/0/2 属于 vlan2,99,G0/0/3 属于 vlan3,99, 而 untag 的动作是在流量出端口去往主机的时候把 vlan-tag 全部去除, 那么不难看出 LSW1 的 G0/0/1 将去除 vlan2,3 的标签, G0/0/2 去除 vlan2,1099 的标签, G0/0/3 去除 vlan3,99 的标签 (还原成普通帧).
LSW2 的 G0/0/1 属于 vlan99,G0/0/2 属于 vlan99, 在流量出端口的时候会去除 vlan99 的标签 (还原成普通帧).
PC1 与 PC2 之间的通信分析: 当 PC1 发送 arp 去请求 PC2 的 MAC 地址的时候, PC1 会将数据包广播发往 LSW1 的 G0/0/2 接口, LSW1 收到后发现是个普通的不带标签的数据帧, 于是根据接口的 pvid 给该帧打上 vlan2 的 tag, 然后往 vlan2 中进行泛洪, 无奈 G0/0/3 端口只属于 vlan3,99 所以无法收到 vlan2 中的泛洪, 故 PC1 与 PC2 通信失败.
PC1 与 PC3 之间的通信分析: PC1 把帧给 LSW1 后在 G0/0/2 打上 pvid vlan2 的 tag, 从 G0/0/1 转发出去, 同时 untag 掉这个帧 vlan2 的标签, LSW2 从 G0/0/1 收到普通的帧后打上 vlan99 的 tag 后从 G0/0/2 转发给 PC3(去掉 vlan99 的 tag 后转发给 PC3),PC3 回包给 PC1 过程: PC3 把帧丢给 LSW2 的 G0/0/2 后被 pvid 打上 vlan99 的 tag 后, LSW2 根据 mac 表和 vlan 信息将帧从 G0/0/1 口转发出去,! 这里因为并没有 untag 属性所以转发的帧并不会去除任何 vlan, 而是以 vlan99 的帧从 G0/0/1 转发出去!(G0/0/1 配置的 tag vlan 99 是为了让这个端口能转发 vlan99 的数据帧) 当 LSW1 拿到 LSW2 发来的带有 vlan99 的 tag 的数据帧后, 根据 G0/0/1 上配置的 tag vlan99 属性, 放行 vlan99 的数据帧, 然后根据 mac 表和 vlan 信息把帧丢给 G0/0/2, 由 G0/0/2 端口将 vlan99 的 tag 去除后转发给 PC1, 完成了 PC1 与 PC3 的整个通信过程.
PC2 与 PC3 的通信过程同理 PC1 与 PC3.
Hybrid 确实有点复杂, 不过它的功能非常强大, 集合了 Access 和 Trunk 的优点, 还能适合基于汇聚层设备做网关, MAC 地址划分, IP 子网划分地的配置. 欢迎在下方留言提问, 看下哪里不大了解的?
来源: https://www.cnblogs.com/chenlinlab/p/9461361.html