欢迎光临散文网 会员登陆 & 注册

彻底搞懂vlan打/剥tag过程!!!

2023-08-19 13:12 作者:VMwareNSX  | 我要投稿

vlan tag问题,一直是一个比较绕的问题。主要是因为不同厂商处理的机制不同。

H3C的交换机针对这个问题。具体处理方式如下(摘自h3c网络之路)

下面看cisco的处理方式

对于cisco设备,需要换一种思路去理解。

pvid只是本地概念。pc进入access口打虚标签( H3C打实标签 )。离开access口脱虚标签(虚标签的提出只是为了方便理解)

对于cisco路由器来说,不设置缺省网关的情况下,no ip routing后ping任何地址都可以触发arp广播查询

在cisco语境里,pvid表达虚标签含义,tag表达实标签含义 native vlan只在trunk链路上有意义     ##native有天生的,天然的意思。

access接口收到带有tag的报文直接丢弃。

关于虚标签,其实这里可以这么想,access口子肯定只能属于某一个固定的vlan,假设有很多access接口都划入vlan 7,那么帧进入这些接口以后。

交换机进行学习,表项里面都含有pvid=7参数即可,这样不同vlan的数据的表项就有办法进行区分。但是如果是两个交换机,这一招就不好使咯。

打个比方,一个交换机可以理解为一个家庭的大房子,大房子有很多房间。家长可以依据房间号(接口)去区分进出房间的孩子(数据包),并且房间可以

属于不同区(pvid),但是一旦离开这个大房间去另一个家庭的大房子,走大门(trunk口子)出去后,对于另外一个家庭来说都是从自己大门(trunk)进来,

则完全没法区分,办法是,离开大门的时候穿上衣服即可。在自己家的区内转悠,则不需穿衣服,因为我是依据房间号来划分的区,你从哪里进来,就是哪个区。

啰嗦这么多,只是为了解释pvid只是一个本地概念。

区分报文需要实标签。就相当于为数据包穿上不同颜色的衣服。native vlan则可以不穿衣服。因为trunk链路两端约定好同一个vlan不穿衣服。那么转发也不会有任何问题。

这就像两个交换机上都只有一个vlan时的通信一样。

测试拓扑1

SW1#sh run | se 1/3|1/12

interface FastEthernet1/3

switchport access vlan 13

interface FastEthernet1/12

switchport access vlan 13

SW1#

SW2#sh run | se 1/12|1/5

interface FastEthernet1/5

switchport access vlan 25

interface FastEthernet1/12

switchport access vlan 25

SW2#

测试一下

SW1和SW2上分别起svi口子,具体sw1 int vlan13=35.1.1.13/24  sw2 int vlan25=35.1.1.25/24.进行下测试

好的,把R5的地址改成55.1.1.5/24

R3和R5均开启no ip routing

在SW1和SW2上,分别起svi

SW1#sh run int vlan 13

Building configuration...

Current configuration : 60 bytes

!

interface Vlan13

ip address 35.1.1.13 255.255.255.0

end

SW2#sh run int vlan 25

Building configuration...

Current configuration : 60 bytes

!

interface Vlan25

ip address 35.1.1.25 255.255.255.0

end

中间链路保持之前的access不变。

SW1#sh run int f 1/12

Building configuration...

Current configuration : 61 bytes

!

interface FastEthernet1/12

switchport access vlan 13

end

SW2#sh run int f 1/12

Building configuration...

Current configuration : 61 bytes

!

interface FastEthernet1/12

switchport access vlan 25

end

测试。

做下改变。中间链路改为trunk

sw1和sw2都创建vlan 12 并分别起svi 分别是12.1.1.1/24 12.1.1.2/24

sw1上测试

这是最基本的,符合预期,肯定可以ping通。补充一句。在交换机上创建svi地址,和交换机上属于特定vlan的access口子接一台pc,效果是一样的。

这个通过mac地址表就可以反映出来。 哈哈。网络本质,看透四张表。

下面改下哈。

在sw2上no掉int vlan 12. 并且其vlan 99的svi int vlan 99=12.1.1.99/24    (sw1和sw2上都有vlan 99)

测试

发现不通。

sw1上12.1.1.99  查路由表出接口vlan 12,所有会首先通过trunk口子发送99的arp请求(tag=12),到达sw2的trunk口子后。会去到pvid=12的vlan里泛洪。无响应。因此不通。

好,下面native vlan该登场咯,看有没有办法,让12.1.1.99有法子ping通。

思路是这样。把sw1的native vlan设置为12,这样从trunk出去的报文不带tag,因为12.1.1.99地址是起在vlan99上的,所以,我在sw2上把native vlan设置为99.这样arp报文能到达

vlan 99里。响应报文属于vlan 99,因为native vlan=99,所以出接口报文不打tag,到达sw1的trunk口子,因为native vlan=12,所以,响应报文会送达vlan 12里。双向通信ok。

好的。测试下。这里的理念有点神似与MPLS VPN


彻底搞懂vlan打/剥tag过程!!!的评论 (共 条)

分享到微博请遵守国家法律