设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 552|回复: 2
收起左侧

【YESLAB】Vlan 技术 802.1Q

[复制链接]
发表于 2020-3-11 11:42:12 | 显示全部楼层 |阅读模式
“Vlan 技术 802.1Q”                 
                       ——华为交换机处理方式之我见

不管在学习过程还是在实际的项目工作中,大家对 vlan 技术都不陌生而且都可 以灵活运用,虽然会用但对于数据桢在何时打上 vlan tag,如何在 trunk 链路上 传输、何时剥离 vlan tag 以及在华为交换机的交换机制又是怎样的呢?大家可能 有这方面的困惑,今天有我和大家一块儿探讨一下数据桢交换的详细过程:
11.png

特别简单的环境:如上图所示有两台华为的 S3700 交换机分别是 SW1 和 SW2,各创建一个 vlan 10,然后起一个 vlanif 10,它们在同一个网段互联地址为 10.1.12.1 和 10.1.12.2,现在问 题来了,要想让这两个地址相互通信,SW1 和 SW2 的 E0/0/1 口的链路类型因为配置成哪种 模式呢?我这有三个选项:A:两端的链路类型都为 access、B:两端的链路类型都为 trunk, 并允许 vlan 10 通过、C:一端为 access 一端为 trunk,具体哪个可以实现通信以及是如何实 现通信的呢,我们通过实验验证来分析一下:

一、两端的链路类型都为 access


22.png
通过测试两端的链路类型都为 access 时可以相互通信,分析通信过程:SW1 向 SW2 发 ping 包,假如 SW1 已知 SW2 的 MAC 地址,在这里我们不去过多讨论 ARP,SW1 和 SW2 在同一个网段可以完成三层封装,创建了 vlan 并起了 vlanif 10,二层封装时就由 Ethernet2 帧添加了 vlan tag 10 变成了 802.1q 的帧格式,交换机查找 MAC 地址表需要 从 SW1 的 E0/0/1 口发出,E0/0/1 的链路类型为 access 在发送数据帧时需要剥离 tag, 这时在链路上传输时二层帧是 Ethernet2 型(如图 2),到达 SW2 的 E0/0/1 口,此端口 的链路的类型也为 access,access 在接收到没有打 tag 的数据帧时打上接口的 PVID 10, 再交由 vlanif 10 的三层接口剥离 vlan tag 10 数据包到达了 SW2,通信是一个双向的过程 一去一回,反之毅然,从而实现了双方通信。 图 2:
33.png
二、两端的链路类型都为 trunk

44.png
通过测试两端的链路类型都为 trunk 时可以相互通信,分析通信过程:SW1 向 SW2 发 ping 包,假如 SW1 已知 SW2 的 MAC 地址,在这里我们不去过多讨论 ARP,SW1 和 SW2 在同一个网段可以完成三层封装,创建了 vlan 并起了 vlanif 10,二层封装时就由 Ethernet2 帧添加了 vlan tag 10 变成了 802.1q 的帧格式,交换机查找 MAC 地址表需要 从 SW1 的 E0/0/1 口发出, E0/0/1 的链路类型为 trunk 在发送数据帧时查看该帧的 VLAN ID 10 在 Trunk 的允许发送列表中,在我们没有修改 trunk 端口 pvid 时默认为 1,则直接 发送,这时在链路上传输时二层帧是打上 vlan tag 的 802.1q 帧格式(如图 3),到达 SW2 的 E0/0/1 口,此端口的链路的类型也为 trunk,trunk 口在接收到打 tag 的数据帧时不做 改变,再交由 vlanif 10 的三层接口剥离 vlan tag 10 数据包到达了 SW2,通信是一个双向 的过程一去一回,反之毅然,从而实现了双方通信。 图 3:

55.png
三、一端为 access 一端为 trunk

a.png


  通过测试一端为 access 一端为 trunk 不能相互通信,分析原因:SW1 向 SW2 发 ping 包, 由于 SW1 不知道 SW2 的 MAC 地址,需要发送 ARP 请求,创建了 vlan 并起了 vlanif 10, ARP 的封装在 Ethernet2 帧添加了 vlan tag 10 变成了 802.1q 的帧格式,从 SW1 的 E0/0/1 口发出,E0/0/1 的链路类型为 trunk 在发送数据帧时查看该帧的 VLAN ID 10 在 Trunk 的 允许发送列表中,在我们没有修改 trunk 端口 pvid 时默认为 1,则直接发送,这时在链路 上传输时二层帧是打上 vlan tag 的 802.1q 帧格式(如图 4),到达 SW2 的 E0/0/1 口,此 端口的链路的类型access,access口在收到一个打vlan tag的数据帧时会丢弃此数据帧, 所以双方无法通信。 图 4:
b.png
3.1、一端为 access 一端为 trunk 在某些情况下是可以通信,这种情况是什么情况呢?
c.png

当 trunk 口的 PVID 为 10 时,SW1 在从 trunk 口发送数据帧时查看该帧的 VLAN ID 10 在 Trunk 的允许发送列表中,而端口的 pvid 和 vlan tag 一致时,则剥离 vlan tag 发送,这时 在链路上传输时二层帧是 Ethernet2 型(如图 5) ,到达 SW2 的 E0/0/1 口,此端口的链 路的类型也为 access,access 在接收到没有打 tag 的数据帧时打上接口的 PVID 10,再交 由 vlanif 10 的三层接口剥离 vlan tag 10 数据包到达了 SW2,通信是一个双向的过程一去 一回,反之毅然,从而实现了双方通信。 图 5:

d.png
上述实验里提到了 PVID,大家对 PVID 了解多少呢,通过以下实验来巩固一 下吧!
情况一、
e.png

  
AR1 可以和 AR2 通信吗?

fff.png
答案是不通,分析原因: AR1 上首次和 AR2 通信没有对端的 MAC 地址无法完成二层封装,首先由 AR1 发起 ARP 请求,到达 SW1 的 E0/0/2 口,E0/0/2 口为 access 在收到一个没有打 vlan tag 的数据帧 是打上端口的 pvid 10,在交换机内泛洪,从 E0/0/1 口发出,E0/0/1 口的链路类型为 trunk 在发送数据帧时查看该帧的 VLAN ID 10 在 Trunk 的允许发送列表中, trunk 端口 pvid 为 20,则直接发送,到达 SW2 的 E0/0/1 口,此端口的链路的类型也为 trunk,trunk 口在 接收到打 tag 的数据帧时不做改变,交换机内部需要交由 vlan10 的端口去处理,SW2 上 E0/0/2 不属于 vlan10 不做处理,最终是 ARP 请求失败无法通信(如图 6) 图 6:
图6.png


情况二、


图7.png
答案是不通,但可以实现 AR1 到 AR2 的单向通信,分析原因: AR1 上首次和 AR2 通信没有对端的 MAC 地址无法完成二层封装,首先由 AR1 发起 ARP 请求,到达 SW1 的 E0/0/2 口,E0/0/2 口为 access 在收到一个没有打 vlan tag 的数据帧 是打上端口的 pvid 10,在交换机内泛洪,从 E0/0/1 口发出,E0/0/1 口的链路类型为 trunk 在发送数据帧时查看该帧的 VLAN ID 10 在 Trunk 的允许发送列表中, trunk 端口 pvid 为 20,则直接发送,到达 SW2 的 E0/0/1 口,此端口的链路的类型也为 trunk,trunk 口在 接收到打 tag 的数据帧时不做改变,交换机内部需要交由 vlan10 的端口去处理,E0/0/2 端口类型为 access,在发送数据帧是剥离 vlan tag 到达 AR2,实现了单向通信,但是 AR2 在 ARP 请求时以单播形式到达 SW2 的 E0/0/2 口打上 pvid 10 ,从 E0/0/1 口发出时查看 该帧的VLAN ID 10在Trunk的允许发送列表中, trunk端口pvid和vlan tag相同,剥离vlan tag 发送,到达 SW1 的 E0/0/1 口为 trunk,该帧不包含 Tag,将打上端口的 PVID 20,交 换机内部需要交由 vlan20 的端口去处理,SW1 上 E0/0/2 不属于 vlan20 不做处理,最终 是 ARP reply 失败,无法通信。(如图 7)

图 7:AR2 收到了 AR1 的 ARP 请求

N.png
N2.png


情况三、

情况3.png



答案是可以互通,分析原因:

分析原因.png

假设 AR1 已知 AR2 的 MAC 地址,AR1 发送 ping 包,到达 SW1 的 E0/0/2 为 access,在 收到一个没有打 vlan tag 的数据帧打上端口的 pvid 10,交换机内部交由 E0/0/1 口发送, E0/0/1 为 trunk 链路,该帧的 VLAN ID 10 在 Trunk 的允许发送列表中, trunk 端口 pvid 和 vlan tag 相同,剥离 vlan tag 发送,在 trunk 链路上传输时此数据帧为 Ethernet2 型(如 图 8),到达 SW2 的 E0/0/1 口时,E0/0/1 口为 trunk 链路,该帧不包含 Tag,将打上端 口的 PVID 20,交换机内部需要交由 vlan20 的端口去处理,SW2 上 E0/0/2 为 access,在 发送数据帧时剥离 tag 发送,数据成功到达 AR2,通信是一个双向的过程一去一回,反 之毅然,从而实现了双方通信。



图 8:

最后.png

讲到这里大家对 vlan 技术的掌握又加深了多少呢?如果还对其它通信技术的技术细节 感兴趣,请加入我们 YESLAB 吧!



                                                            

如果有兴趣欢迎加入YESLAB团队
专属课程顾问,请联系她V:13676251281.(立即在线沟通)
鸿鹄专用图.gif





 楼主| 发表于 2020-3-11 13:25:41 | 显示全部楼层
11111111111111111
沙发 2020-3-11 13:25:41 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2020-3-26 20:50:50 | 显示全部楼层
dddddddddd
板凳 2020-3-26 20:50:50 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-4-19 10:05 , Processed in 0.060251 second(s), 9 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表