目录
VLAN 通信概述
实际网络部署中一般会将不同IP 地址段划分到不同的 VLAN, 同VLAN 且同网段的 PC 之间可直接进行通信, 无须借助三层转发设备, 该通信方式被称为二层通信, VLAN之间需要通过三层通信实现互访, 三层通信需借助三层设备。
Dot1q,也称为802.1Q,是一个IEEE标准,用于在以太网帧中实现VLAN标记。它通过在标准以太网帧的源地址和类型/长度字段之间插入一个4字节的标签来工作。这个标签提供了VLAN的识别和服务质量(QoS)级别。其中,12位用于标识最多4096个不同的VLAN,而3位用于提供8种不同的优先级1。
简而言之,Dot1q是一种封装协议,用于在数据帧中标记VLAN信息,而VLANIF是在三层交换机上用于路由和通信的虚拟接口。
实验一: Dot1q终结子接口
1.实验拓扑
Dotlq终结子接口的实验拓扑如图所示
2.实验步骤
(1)配置PC机的网络。在IPv4配置栏中选中【静态】单选按钮,输入对应的【IP地址】【子网掩码】和【网关】,然后单击【应用】按钮。PC2 的配置步骤与此相同,不同的是修改配置参数。PCI 和PC2的配置分别如图所示。
(2)在交换机LSW1上创建VLAN2和 VLAN3,把G0/0/1接口划入VLAN2,把G0/0/2接口划入VLAN3,把G0/0/3接口设置成Trunk,命令如下:
<Huawei>system-view
[Huawei]undo info-center enable //禁止多余信息
[Huawei]sysname LSW1
[LSW1]vlan batch 2 3 //创建VLAN 2和VLAN 3
[LSW1]interface g0/0/1
[LSW1-GigabitEthernet0/0/1]port link-type access
[LSW1-GigabitEthernet0/0/1]port default vlan 2 //把G0/0/1接口划入 VLAN 2
[LSW1-GigabitEthernet0/0/1]quit
[LSW1]interface g0/0/2
[LSW1-GigabitEthernet0/0/2]port link-type access
[LSW1-GigabitEthernet0/0/2]port default vlan 3 //把G0/0/2接口划入 VLAN 3
[LSW1-GigabitEthernet0/0/2]quit
[LSW1]interface g0/0/3
[LSW1-GigabitEthernet0/0/3]port link-type trunk //连接路由器的接口因为需要传递多 VLAN
的数据, 所以需要配置Trunk
[LSW1-GigabitEthernet0/0/3]port trunk allow-pass vlan 2 3 //Trunk接口允许VLAN 2和
VLAN 3通过
[LSW1-GigabitEthernet0/0/3]quit
在 R1上设置单臂路由, 命令如下:
<Huawei>system-view
[Huawei]undo info-center enable
[Huawei]sysname R1
[R1]interface g0/0/0
[R1-GigabitEthernet0/0/0]undo shutdown //主接口打开后, 不做其他任何配置
[R1-GigabitEthernet0/0/0]quit
[R1]interface g0/0/0.2 //设置子接口G0/0/0.2
[R1-GigabitEthernet0/0/0.2]dot1q termination vid 2 //配置 Dot1q终结VLAN 2,配置此命令后,该子接口可以剥离Tag标签为VLAN 2 的数据帧, 并且发送数据帧时会打上 VLAN 2的Tag 标签
[R1-GigabitEthernet0/0/0.2] ip address 10.1.1.1 24 //配置 IP地址
[R1-GigabitEthernet0/0/0.2]ar p broadcast enable //开启ARP 广播功能, 如果终结子接口上未使能ARP 广播功能,系统会直接把该IP报文丢弃, 从而不能对该IP报文进行转发
[R1-GigabitEthernet0/0/0.2]quit
[R1]interface g0/0/0.3 //设置子接口G0/0/0.3
[R1-GigabitEthernet0/0/0.3]dot1q termination vid 3
[R1-GigabitEthernet0/0/0.3]ip address 10.2.2.1 24
[R1-GigabitEthernet0/0/0.3]arp broadcast enable
[R1-GigabitEthernet0/0/0.3]quit
3.实验调试
使用PC1访问PC2, 可以看到不同 VLAN间的设备可以通过路由设备实现互相通信, 结果如图所示:
实验二:VLANIF接口
1.VLANIF接口实验拓扑如图所示:
使用交换机的三层VLAN间的路由实现不同VLAN间的通信时,在网关设备上配置对应VLAN的VLANIF接口作为此VLAN的网关,并且在VLANIF接口配置对应的网关IP地址中实现不同网段的数据通信。VLANIF接口是一种三层的逻辑接口,支持VLAN Tag的剥离和添加,因此可以通过VLANIF接口实现VLAN之间的通信。
<Huawei>system-view
[Huawei]undo info-center enable //禁止多余信息
[Huawei]sysname LSW1
[LSW1]vlan batch 2 3 //创建VLAN 2和VLAN 3
[LSW1]interface g0/0/1
[LSW1-GigabitEthernet0/0/1]port link-type access
[LSW1-GigabitEthernet0/0/1]port default vlan 2 //G0/0/1属于VLAN 2
[LSW1-GigabitEthernet0/0/1]quit
[LSW1]interface g0/0/2
[LSW1-GigabitEthernet0/0/2]port link-type access
[LSW1-GigabitEthernet0/0/2]port default vlan 3 //G0/0/2属于 VLAN 3
[LSW1-GigabitEthernet0/0/2]quit
在 LSW1上创建 VLANIF 接口,命令如下:
[LSW1]interface Vlanif 2 //创建VLANIF接口,并且在VLANIF接口配置IP 地址
[LSW1-Vlanif2]ip address 10.1.1.1 24//设置IP地址
[LSW1-Vlanif2]undo shutdown //打开接口
[LSW1-Vlanif2]quit
[LSW1]interface Vlanif 3
[LSW1-Vlanif3]ip address 10.2.2.1 24
[LSW1-Vlanif3]undo shutdown
[LSW1-Vlanif3]quit
2.实验调试
PC2访问PC1,可以看到VLANIF接口也能够实现不同VLAN间的通信,如图所示:
思考
数据怎么转发?
当用户主机PC1发送报文给用户主机PC2时, 报文的发送过程如下(假设三层交换机Switch上还未建立任何转发表项):
(1) PC1判断目的IP地址跟自己的IP地址是否在同一网段,如果不在, 则发出请求网关MAC地址的ARP请求报文, 目的IP地址为网关IP 10.1.1.1, 目的MAC地址为全F。
(2)报文到达Switch的G0/0/1接口, Switch给报文添加VID=2的Tag(Tag的VID=接口的PVID) ,然后将报文的源MAC地址+VID与接口的对应关系(1-1-1,2,IF_1)添加进MAC表。
(3) Switch确定报文为ARP请求报文, 且目的IP地址是自己VLANIF 2接口的IP地址, 给PC1以应答, 并将VLANIF 2接口的MAC地址3-3-3封装在应答报文中, 应答报文从G0/0/1接口发出。同时, Switch会将PC1的IP地址与MAC地址的对应关系记录到ARP表中。
(4) PC1收到Switch的应答报文, 将Switch的VLANIF 2接口的IP地址与MAC地址的对应关系记录到自己的ARP表中, 并向Switch发送目的MAC地址为3-3-3、目的IP地址为PC2的IP地址, 即10.2.2.2的报文。
(5)报文到达Switch的G0/0/1接口, 同样给报文添加VID=2的Tag。
(6) Switch根据报文的源MAC地址+VID与接口的对应关系更新MAC表, 并比较报文的目的MAC地址与VLANIF 2的MAC地址, 发现两者相等, 进行三层转发, 根据目的IP地址查找三层转发表, 没有找到匹配项, 向上传送给CPU, 并使其查找路由表。
(7) CPU根据报文的目的IP地址去找路由表, 发现匹配了一个直连网段(VLANIF 3对应的网段) ,于是继续查找ARP表, 没有找到, Switch会在目的网段对应的VLAN 3的所有接口发送ARP请求报文, 目的IP地址是10.2.2.2, 从G0/0/2接口发出。
(8)PC2收到ARP请求报文, 发现请求IP地址是自己的IP地址, 就发送ARP应答报文, 将自己的MAC地址包含在其中。同时, 将VLANIF 3的MAC地址与IP地址的对应关系记录到自己的ARP表中。
(9) Switch的G0/0/2接口收到PC2的ARP应答报文后, 给报文添加VID=3的Tag, 并将PC2的MAC地址和IP地址的对应关系记录到自己的ARP表中。然后, 将PC1的报文转发给PC2,发送前, 同样剥离报文中的Tag。同时, 将PC2的IP、MAC、VID及出接口的对应关系记录到三层转发表中。
至此,PC1完成对PC2的单向访问。PC2访问PC1的过程与此类似。这样, 后续PC1与PC2之间的往返报文都先发送给网关Switch, 由Switch检查三层转发表进行三层转发。