以下是我对vlan的一点理解。
大家知道,交换机会把广播报文(目的mac地址全1的报文)和未知单播报文从所有端口转发出去(除了报文的接收端口),这就是广播。(对未知多播报文如何处理呢,我不知道,应该也会广播出去,这是一个遗留问题,哪位同学知道的请教教我哈)。一般交换机会发送很多广播报文,如果按照上面的处理方法,势必会影响整个网络的通信。vlan就是为了划分广播域而产生的。划分vlan之后,广播只在一个vlan内进行,这就大大减少了广播报文对网络性能的影响。
交换机的端口加入vlan有三种方式,分别是access、trunk和hybrid。
1、access端口只能加入一个vlan,一般用来连接交换机和pc,也可以连接交换机和交换机。
2、trunk端口可以加入多个vlan,就是说可以允许多个vlan的报文通过。trunk端口有一个默认vlan,如果收到的报文没有vlan ID,就把这个报文当做默认vlan的报文处理。trunk口一般用于连接两台交换机,这样可以只用一条trunk连接实现多个vlan的扩展(因为trunk允许多个vlan的数据通过,如果用access口,那么一个vlan就要一条连接,多个vlan要多个连接,而交换机的接口是有限的)。对于trunk口发送出去的报文,只有默认vlan的报文不带vlan ID,其它vlan的报文都要带vlan ID(要不然,对端的交换机不知道该报文属于哪个vlan,无法处理,也就不能实现vlan跨交换机扩展了)。简而言之,trunk端口的设计目的就是通过一条连接实现多个vlan的跨交换机扩展。
3、trunk端口是hybrid端口的特例,就是说hybrid端口可以实现比trunk端口更多的功能。hybrid端口可以加入多个vlan,并可以设置该vlan的报文通过该端口发送是是否带vlan ID(trunk端口不能设置,只有默认vlan的报文不带vlan ID进行发送)。通过下面的两个例子(转载的),大家应该可以看出hybrid端口的设计目的。
例一:『配置环境参数』
1. PC1、PC2和PC3分别连接到二层交换机SwitchA的端口E0/1 、E0/2和 E0/3,端口分属于VLAN10、20和30,服务器连接到端口G2/1,属于VLAN100。
2. PC1的IP地址为10.1.1.1/24,PC2的IP地址为10.1.1.2/24,PC3的IP地址为10.1.1.3/24,服务器的IP地址为10.1.1.254/24。
『组网需求』
1. PC1和PC2之间可以互访;
2. PC1和PC3之间可以互访;
3. PC1、PC2和PC3都可以访问服务器;
4. 其余的PC间访问均禁止。
【SwitchA相关配置】
1. 创建(进入)VLAN10,将E0/1加入到VLAN10
[SwitchA]vlan 10
[SwitchA-vlan10]port Ethernet 0/1
2. 创建(进入)VLAN20,将E0/2加入到VLAN20
[SwitchA]vlan 20
[SwitchA-vlan20]port Ethernet 0/2
3. 创建(进入)VLAN30,将E0/3加入到VLAN30
[SwitchA]vlan 30
[SwitchA-vlan30]port Ethernet 0/3
4. 创建(进入)VLAN100,将G2/1加入到VLAN100
[SwitchA]vlan 100
[SwitchA-vlan100]port GigabitEthernet 2/1
5. 配置端口E0/1为Hybrid端口,能够接收VLAN20、30和100发过来的报文
[SwitchA]interface Ethernet 0/1
[SwitchA-Ethernet0/1]port link-type hybrid
[SwitchA-Ethernet0/1]port hybrid vlan 20 30 100 untagged
6. 配置端口E0/2为Hybrid端口,能够接收VLAN10和100发过来的报文
[SwitchA]interface Ethernet 0/2
[SwitchA-Ethernet0/2]port link-type hybrid
[SwitchA-Ethernet0/2]port hybrid vlan 10 100 untagged
7. 配置端口E0/3为Hybrid端口,能够接收VLAN10和100发过来的报文
[SwitchA]interface Ethernet 0/3
[SwitchA-Ethernet0/3]port link-type hybrid
[SwitchA-Ethernet0/3]port hybrid vlan 10 100 untagged
8. 配置端口G2/1为Hybrid端口,能够接收VLAN10、20和30发过来的报文
[SwitchA]interface GigabitEthernet 2/1
[SwitchA-GigabitEthernet2/1]port link-type hybrid
[SwitchA-GigabitEthernet2/1]port hybrid vlan 10 20 30 untagged
例二:『配置环境参数』
1. PC1、PC2和PC3分别连接到二层交换机SwitchA的端口E0/1 、E0/2和 E0/3,端口分属于VLAN10、20和30;PC4和PC5分别连接到二层交换机SwitchB的端口E0/1和E0/2,端口分属于VLAN10和20;
2. SwitchA通过端口G2/1,连接到SwitchB的端口G1/1;SwitchA的端口G2/1和SwitchB的端口G1/1均不是Trunk端口;
3. PC1的IP地址为10.1.1.1/24,PC2的IP地址为10.1.1.2/24,PC3的IP地址为10.1.1.3/24,PC4的IP地址为10.1.1.4/24,PC5的IP地址为10.1.1.5/24。
『组网需求』
1. PC1和PC3之间可以互访;
2. PC2和PC3之间可以互访;
3. PC1和PC4之间可以互访;
4. PC2和PC5之间可以互访;
5. 其余PC之间均禁止互相访问。
【SwitchA相关配置】
1. 创建(进入)VLAN10,将E0/1加入到VLAN10
[SwitchA]vlan 10
[SwitchA-vlan10]port Ethernet 0/1
2. 创建(进入)VLAN20,将E0/2加入到VLAN20
[SwitchA]vlan 20
[SwitchA-vlan20]port Ethernet 0/2
3. 创建(进入)VLAN30,将E0/3加入到VLAN30
[SwitchA]vlan 30
[SwitchA-vlan30]port Ethernet 0/3
4. 配置端口E0/1为Hybrid端口,能够接收VLAN30发过来的报文
[SwitchA]interface Ethernet 0/1
[SwitchA-Ethernet0/1]port link-type hybrid
[SwitchA-Ethernet0/1]port hybrid vlan 30 untagged
5. 配置端口E0/2为Hybrid端口,能够接收VLAN30发过来的报文
[SwitchA]interface Ethernet 0/2
[SwitchA-Ethernet0/2]port link-type hybrid
[SwitchA-Ethernet0/2]port hybrid vlan 30 untagged
6. 配置端口E0/3为Hybrid端口,能够接收VLAN10和20发过来的报文
[SwitchA]interface Ethernet 0/3
[SwitchA-Ethernet0/3]port link-type hybrid
[SwitchA-Ethernet0/3]port hybrid vlan 10 20 untagged
7. 配置端口G2/1为Hybrid端口,能够接收并透传VLAN10和20发过来的报文
[SwitchA]interface GigabitEthernet 2/1
[SwitchA-GigabitEthernet2/1]port link-type hybrid
[SwitchA-GigabitEthernet2/1]port hybrid vlan 10 20 tagged
【SwitchB相关配置】
1. 创建(进入)VLAN10,将E0/1加入到VLAN10
[SwitchA]vlan 10
[SwitchA-vlan10]port Ethernet 0/1
2. 创建(进入)VLAN20,将E0/2加入到VLAN20
[SwitchA]vlan 20
[SwitchA-vlan20]port Ethernet 0/2
3. 配置端口G1/1为Hybrid端口,能够接收并透传VLAN10和20发过来的报文
[SwitchA]interface GigabitEthernet 2/1
[SwitchA-GigabitEthernet2/1]port link-type hybrid
[SwitchA-GigabitEthernet2/1]port hybrid vlan 10 20 tagged
【补充说明】
对于Hybrid端口来说,可以同时属于多个VLAN。这些VLAN分别是该Hybrid端口的PVID,以及手工配置的”untagged”及”tagged”方式的VLAN。一定要注意对应端口的VLAN配置,保证报文能够被端口进行正常的收发处理。
利用Hybrid端口的特性��一个端口可以属于多个不同的VLAN,来完成分属不同VLAN内的同网段PC机的访问需求。
此应用在二层网络中,对相同网段的主机进行访问权限的控制。
我总结的hybrid端口的设计目的是――实现不同vlan之间的互通,这个功能通过access和trunk口是实现不了的。