tagged和untagged遵循以下五条原则
1.
| Tagged数据帧 | Tagged数据帧 | Untagged数据帧 | Untagged数据帧 |
| in | out | in | out |
Tagged端口 | 原样接收 | 原样发送 | 按端口的pvid打 tag标记 | 按端口的pvid打 tag标记 |
Untagged端口 | 丢弃 | 去掉tag标记发送 | 按端口的pvid打 tag标记 | 发送 |
2. 端口的tagged和untagged设置,并非对于物理端口的设置,而是对属于这个物理端口的vlan的设置,也就是说一个vlan可以在这个端口下是tag的,另一个vlan在这个端口下untagged的
3. 每个端口只有一个pvid,而且和这个pvid相同tag的vid,在这个端口上一定是untagged的
4. 端口的pvid参数,作用是当接收到没有标签的数据包时进行打标操作,不影响设备内部的数据转发
5. 如果拥有和tag标记相同的vid的物理端口,不管这个vid在这个物理端口是untagged的还是tagged的,都可以接收来自内部的有这个tag标记的数据包
6. 如果拥有和tag标记相同的vid的物理端口,只有当这个vid在这个物理端口是tagged的时候,才能够接收来自外部的有这个tag标记的数据包
下面是实际情况,港湾6808下面连接了港湾24E
第一种情况:
1.港湾6808上的1/1端口连接港湾24E的25端口,在1/1端口上vlan 2是untagged的,vlan3是tagged的
2.港湾24E的25端口上vlan3是tag的,vlan2047(默认vlan)是untagged的
3.配置港湾24E的2,3,4,5为vlan3的untagged端口,其他端口不做配置
Harbour_6808(config)# show running-config
!VLAN config
interface vlan Test2 2
add port 1/1 untagged
ip address 192.168.2.1 255.255.255.0
exit
interface vlan Test3 3
add port 1/1 tagged
ip address 192.168.3.1 255.255.255.0
exit
Harbour_24E(config)# show running-config
!Vlan config
create vlan Test3 tag 3
config vlan Test3 add port 25 tagged
config vlan Test3 add port 2,3,4,5 untagged
config port 2 inputvlan Test3
config port 3 inputvlan Test3
config port 4 inputvlan Test3
config port 5 inputvlan Test3
config ipaddress 192.168.2.230 255.255.255.0
Harbour_24E (config)# show vlan
VLAN ID : 2047
Name : default
Mac address : 00:05:3b:0a:62:23
Tagged Ports :
Untagged Ports : 1 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Description : normal
VLAN ID : 3
Name : Test3
Mac address : 00:05:3b:0a:62:23
Tagged Ports : 25
Untagged Ports : 2 3 4 5
Description : normal
做完上述配置后,在港湾24E上查看vlan相关信息,发现2,3,4,5端口是vlan3的untagged,其他端口是vlan2047(默认vlan)的untagged口
PC2自动获取地址流程如下:
1.DHCP工作流程是:DHCP Discover,DHCP Offer,DHCP request和DHCP Ack
2.流程1,PC2使用DHCP获取地址时,会往端口2广播DHCP Discover报文,港湾24E上的端口2上vlan3是untagged的,所以从该端口接收数据时,会为该数据打上vlan3的vlan信息,这里遵循的是原则1
3.流程2,然后发送到本地的vlan3,同时也会发送到和vlan3有相同vid的物理端口,这里遵循的是原则5。如果vlan3在某个端口上是untagged的,会剥离vlan信息发送出去,如果在某个端口是tagged的,会直接发送有vlan3信息的数据包。这里遵循的是原则1,这里会在端口25上发送有vlan3信息的数据包
4.港湾6808从对端收到有vlan3信息的数据包,因为在本地端口1/1上,vlan3是tagged的,所以可以接收处理该数据包,这里遵循的是原则6。然后发送到本地的vlan3,同时也会发送到和vlan3有相同vid的物理端口,这里遵循的是原则5。
5.流程3,港湾6808上设置了两个DHCP池,vlan3的DHCP池对应的网关地址是192.168.3.1/24,所以港湾6808上的vlan3会回应该DHCP Discover报文。因为在端口1/1上,vlan3是tagged的,所以会为该数据包添加vlan3的vlan信息
6.流程4,港湾24E从对端收到有vlan3信息的数据包,因为在本地端口1/1上,vlan3是tagged的,所以可以接收处理该数据包,这里遵循的是原则6。然后会发送到本地的vlan3,同时也会发送到和vlan3有相同vid的物理端口。如果vlan3在某个端口上是untagged的,会剥离vlan信息发送出去,如果在某个端口是tagged的,会直接发送有vlan3信息的数据包。这里遵循的是原则1,这里会在端口2上发送剥离vlan信息的数据包
7.DHCP的其他数据包类似如上流程
第二种情况是:更改配置港湾24E的2为vlan3的tagged端口
Harbour_24E(config)# config vlan Test3 add port 2 tagged
C119_5Floor_88_230(config)# show vlan
VLAN ID : 2047
Name : default
Mac address : 00:05:3b:0a:62:23
Tagged Ports :
Untagged Ports : 1 2 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Description : normal
VLAN ID : 3
Name : Test3
Mac address : 00:05:3b:0a:62:23
Tagged Ports : 2 25
Untagged Ports : 3 4 5
PC2自动获取地址流程如下:
1.DHCP工作流程是:DHCP Discover,DHCP Offer,DHCP request和DHCP Ack
2.流程1,PC2使用DHCP获取地址时,会往端口2广播DHCP Discover报文,港湾24E上的端口2上vlan2047是untagged的,所以从该端口接收数据时,会为该数据打上vlan2047的vlan信息,这里遵循的是原则1
3.流程2,发送到本地的vlan2047,同时也会发送到有和vlan2047相同vid的物理端口,这里遵循的是原则5。如果vlan2047在某个端口上是untagged的,会剥离vlan信息发送出去,如果在某个端口是tagged的,会直接发送带有vlan2047信息的数据包。这里遵循的是原则1,这里会1,3,25上发送有vlan2047信息的数据包,发送剥离vlan信息的数据包
4.港湾6808从对端收到没有vlan信息的数据包,因为在本地端口1/1上,vlan2是untagged的。然后发送到本地的vlan2,同时也会发送到和vlan2有相同vid的物理端口,这里遵循的是原则5。
5.流程3,港湾6808上设置了两个DHCP池,vlan2的DHCP池对应的网关地址是192.168.2.1/24,所以港湾6808上的vlan2会回应该DHCP Discover报文。因为在端口1/1上,vlan2是untagged的,所以发送DHCP Offer时发送不带有vlan信息的数据包
6.流程4,港湾24E从对端收到没有vlan信息的数据包,因为在本地端口1/1上,vlan2047是untagged的。然后会发送到本地的vlan2047,同时也会发送到和vlan2047有相同vid的物理端口。如果vlan2047在某个端口上是untagged的,会剥离vlan信息发送出去,如果在某个端口是tagged的,会直接发送带有vlan2047信息的数据包。这里遵循的是原则1,这里会在1,2,3上发送剥离vlan信息的数据包
7.DHCP的其他数据包类似如上流程