VLAN
属于二层交换技术,因此若要实现VLAN
间通信便需要来到第三层—网络层
单臂路由的原理是通过一台路由器,使VLAN
间互通数据通过路由器进行三层转发。
单臂路由可以通过配置物理接口将其逻辑化为多个子接口,以便节约路由器上宝贵的物理接口资源。
实验目的
- 了解单臂路由工作原理,学会配置单臂路由
- 理解数据在跨VLAN通信中的转发过程
实验拓扑
实验步骤
-
配置交换机各端口类型,同时划分各端口所属
VLAN
S1: <S1>system-view //进入系统视图 [S1]vlan batch 10 20 30 //在交换机S1上创建VLAN 10,VLAN 20,VLAN 30 [S1]interface Ethernet 0/0/1 //进入e0/0/1接口 [S1-Ethernet0/0/1]port link-type access //将此接口设置为Access类型 [S1-Ethernet0/0/1]port default vlan 10 //此接口默认VLAN为VLAN 10 [S1-Ethernet0/0/1]quit [S1]interface e0/0/2 [S1-Ethernet0/0/2]port link-type access [S1-Ethernet0/0/2]port default vlan 20 [S1-Ethernet0/0/2]quit [S1]interface g0/0/2 //进入g0/0/2接口 [S1-GigabitEthernet0/0/2]port link-type trunk //将此接口设置为Trunk类型 [S1-GigabitEthernet0/0/2]port trunk allow-pass vlan all //此端口运行带有任何VLAN标签的 帧通过 [S1-GigabitEthernet0/0/2]quit
S2: //大部分与S1类似,此处不再注释 <Huawei>system-view //进入系统视图 [Huawei]sysname S2 //将此设备改名为S2 [S2]undo info-center en //取消消息提醒 [S2]vlan batch 10 20 30 //在交换机S2上创建VLAN 10,VLAN 20,VLAN 30 [S2]interface Ethernet 0/0/1 [S2-Ethernet0/0/1]port link-type access [S2-Ethernet0/0/1]port default vlan 30 [S2-Ethernet0/0/1]quit [S2]interface g0/0/2 [S2-GigabitEthernet0/0/2]port link-type trunk [S2-GigabitEthernet0/0/2]port trunk allow-pass vlan all [S2-GigabitEthernet0/0/2]quit
S3: //与S1,S2类似 <Huawei>system-view [Huawei]sysname S3 [S3]vlan batch 10 20 30 [S3]interface g0/0/1 [S3-GigabitEthernet0/0/1]port link-type trunk [S3-GigabitEthernet0/0/1]port trunk allow-pass vlan all [S3-GigabitEthernet0/0/1]quit [S3]interface g0/0/2 [S3-GigabitEthernet0/0/2]port link-type trunk [S3-GigabitEthernet0/0/2]port trunk allow-pass vlan all [S3-GigabitEthernet0/0/2]quit [S3]interface g0/0/3 [S3-GigabitEthernet0/0/3]port link-type trunk [S3-GigabitEthernet0/0/3]port trunk allow-pass vlan all [S3-GigabitEthernet0/0/3]quit
到此处,各
VLAN
区域均划分完毕,此时各PC
之间互相ping
不通,我们希望通过设置单臂路由使其相互ping
通 -
将路由器
g0/0/1
接口逻辑化为三个子接口,分别作为三个PC
的网关[R1]interface g0/0/1.1 [R1-GigabitEthernet0/0/1.1]ip ad [R1-GigabitEthernet0/0/1.1]ip address 192.168.1.254 24 //设置子接口的IP地址与掩码 [R1-GigabitEthernet0/0/1.1]dot1q termination vid 10 //子接口处接收VLAN 10数据时自动剥 离VLAN 10标签;当此处发送数据时则自动加上VLAN 10标签 [R1-GigabitEthernet0/0/1.1]arp broadcast enable //开启后子接口才能发送ARP广播报文【普通 接口默认就是开启的】,ping功能就是建立在ARP基础上 [R1-GigabitEthernet0/0/1.1]quit [R1]interface g0/0/1.2 [R1-GigabitEthernet0/0/1.2]ip address 192.168.2.254 24 [R1-GigabitEthernet0/0/1.2]dot1q termination vid 20 [R1-GigabitEthernet0/0/1.2]arp broadcast enable [R1-GigabitEthernet0/0/1.2]quit [R1]interface g0/0/1.3 [R1-GigabitEthernet0/0/1.3]ip address 192.168.3.254 24 [R1-GigabitEthernet0/0/1.3]dot1q termination vid 30 [R1-GigabitEthernet0/0/1.3]arp broadcast enable [R1-GigabitEthernet0/0/1.3]quit //当VLAN数据都能被剥离后【dot1q设置后...】,对于路由器而言整个二层网络就像没有设置VLAN一样,因此PC网段便成了直连路由,此时更新自己路由表
完成此步骤后,各
PC
间便能跨VLAN
相互ping
通。以PC2 ping PC3
为例分析整个过程
-
PC2
会广播一个ARP请求
,询问网关第MAC地,请求首先经过S1
的e0/0/2
的Access
接口进入并被打上VLAN 20
的标签,S1
将此ARP请求
从其余端口广播出去,发现e0/0/1
端口的默认路由为VLAN 10
,因此此路不通,所以ARP请求
最后往g0/0/2
的Trunk
端口发送出去并且仍然携带VLAN 20
标签 -
同理,
ARP请求
被S3
的g0/0/2
的Trunk
接口接收并转发,ARP请求
到S2
时无法经由e0/0/1
发送给PC3
,因此此端口的默认路由为VLAN 30
,与ARP请求
所携带的VLAN 10
标签不同,所以此路也不通路,最后ARP请求
只能经由S3
的g0/0/1
端口发送出去 -
包来到
R1
的g0/0/1
端口,此端口已被逻辑化为3
个子接口,此时路由器将此ARP请求
的VLAN 10
标签与3
个子端口的VID
进行比对,发现其中有个端口的VID
正好为VLAN 10
,因此将此ARP请求
接收,同时剥离其VLAN
标签,也就是说当包被路由器接收后不携带任何标签。同时R1
通过此端口回复一个ARP报文
【这就是端口要开始ARP
广播的原因】用于告知此网关的MAC地址
,PC1
收到后即可按照此MAC地址
直接进行发送数据至网关 -
紧接着
R1
查看自身路由表,发现PC3
正好在自己的路由表中,通过层层查询,最后经由g0/0/1.3
转发出去,同时打上此端口的VID
,即VLAN 30
标签,数据经此来到S3
-
面对携带了
VLAN 30
的数据包,S3
同样会从其余端口转发出去,包来到S1
后发现标签与e0/0/1
与e0/0/2
不同,因此不进行转发;包来到S2
处后发现标签正好与e0/0/1
相同,因此去标签转发。PC3
由此成功收到数据包,需要告知PC1
自己已成收数据,同理发送ARP请求
寻找自己的网关地址,最后来到PC1
处,自此ping
操作成功
本实验取自华为公司《HCNA网络技术实验指南》,此书对于新手学习计算机网络协议以及熟悉eNSP操作十分友好,强烈推荐!!!