1. 三个口的命令分别有哪些
首先,要先明确一点,在没有进行任何配置的时候,所有接口默认是hybrid,pvid 和 untag 均为1
1.access口
通过port link-type access
之后,再使用port default ?
发现只有一个命令 port default vlan x
,
port default vlan x :使得pvid和untag都置为x(untag和pvid保持一致)
2. trunk
通过port link-type trunk
之后,再使用port trunk ?
发现命令如下:
port trunk allow-pass vlan x y z
port trunk pvid vlan x(单独设置pvid,注意:pvid只能有一个)
port trunk allow-pass vlan x y z :假如使用了port trunk allow-pass vlan 1 2
,没有单独设置pvid,则pvid默认为1,且untag是会和pvid保持一致的,所以untag也为1,那么tag呢?
tag= 所有vlan - untag =2
3. hybrid
通过port link-type hybrid
之后,再使用port hybrid ?
发现命令如下:
pvid,tag,untag都可以单独设置。
port hybrid pvid vlan x (单独设置pvid)
port hybrid tag vlan x (单独设置 tag)
port hybrid untag vlan x (单独设置untag)
port hybrid vlan x(这个命令我暂时还没用到过)
2. 用一个小例子来验证
拓扑图如下,配置都在图中进行了标注:
我创建了vlan 2,因此整个网络总共2个vlan,一个默认vlan 1,一个创建的vlan 2.
可以使用命令dis port vlan active
来查看交换机每个接口的配置情况:
LSW1
发现:
- 对于access,使用
port default vlan 2
之后,pvid和untag都跟着变成了2 - 使用了
port trunk allow-pass vlan 1 2
之后,pvid是默认的1,untag和pvid保持一致,而tag变成2,同理,如果 我再额外创建vlan 3,并且使得这个口可以通过vlan 3,我们来看变化,tag等于所有vlan- untag:
- 并且要注意:trunk口中,untag是会和pvid保持一致的,现在我再使用命令
port trunk pvid vlan 2
来改变pvid,则会有如下结果,untag和pvid一样又变成了2,那么tag就变成了所有vlan-untag=1 和 3:
LSW2
发现:
- 使用
port default vlan 2
之后,pvid和untag都跟着变成了2 - 使用了
p hybrid pvid vlan 2
就把pvid改成了2 - 使用了
p hybrid untag vlan 2
就把2加入了untag(最初的untag是默认值1) - hybrid不像access和trunk,pvid和untag会保持一致。untag可以有多个,且untag和pvid是分开配置的,没有影响,并且tag也和untag没有关系,如上图,没有设置tag,tag就不存在。(如下图:我使用命令
p hybrid pvid vlan 3
,可以发现只是pvid变成了3,untag仍然是1~2,tag仍然不存在)
总结
- access和trunk口,untag和pvid保持一致,且trunk口可以单独设置pvid
- 对于access口:
port default vlan x
就是令pvid=x,untag=x - 对于trunk口:
port trunk allow-pass vlan x y
(没有设置pvid的情况下),pvid =1,untag= 1,tag=所有vlan-untag,设置了pvid如port trunk pvid vlan x
,则pvid=x,untag=x,tag=所有vlan-untag - 对于hybrid口:untag和pvid和tag互不影响,分别进行设置。只是,默认untag=1,如果使用
port hybrid untag vlan 2
则把2加入untag
3. access、trunk、hybrid口的收发规则
4. 分析
现在用pc1去ping pc2,能ping通吗?
答:不能。pc1发出的包能到pc2,但是pc2进行回复的包到不了pc1
解释如下
-
先分析pc1的包发往pc2的过程
-
再分析pc2回复pc1的过程
通过抓包验证
1.用pc1 ping pc2,在A
处抓包:
可以看出,是有arp广播包,以及 回复的arp单播包的。
2.再用pc2去ping pc1,在B
处抓包,可以看出是没有包的: