路由与交换 基础 5 Vlan 基础 2 单臂路由
问一: 为什么叫这个路由器 “单臂路由器”?
答: 这个路由器的目的是在VLAN见转发数据包, 只要有一条连线接到交换机,故名单臂路由器。
 
问二: 为什么单臂路由器要设两个子接口?
答:单臂路由器用一个接口与交换机的trunk接口相连,这个接口得模拟trunk接口,最简单的方法是给每个VLAN配置一个子接口,如图,图中有VLAN 2, VLAN 3, 所以配置了两个子接口F0/1.2, F0/1.3分别属于VLAN 2,VLAN 3。
 
问三: 为什么单臂路由器的子接口共用一个MAC?
答: 路由器的接口收到数据包,检查此包的目的MAC地址, 如果和接口的一样就收下,进行路由转发, 不一样就丢弃。 不管数据包从那一个子接口收到,只要它的目的MAC地址和接口的MAC地址一样就行, 所以子接口共用一个MAC。
 
问四:什么是ARP代理?为什么Vlan间路由要用到Arp代理?
答: 若两个主机A, B经路由器R相连,A要用ARP查询B的MAC地址,A所发的ARP request不能跨越路由器在第二个网段查询。ARP代理解决了这个问题,R1收到A的ARP request时,代表B发送ARP reply,告诉 A:我是B, 这是我的MAC地址 (给的是R1的MAC地址)。
如图所示,在VLAN间用路由器转发数据包,各个主机、路由器的ARP表的建立是由R1 的ARP代理功能完成的。
 
附上设备配置命令:(以Cisco路由交换设备为例)
 
1) 配置VLAN access, trunk接口
S1(config)#inter f0/1
S1(config-if)#switchport access vlan 2
S1(config-if)#inter f0/2
S1(config-if)#switchport access vlan 2
S1(config)#inter f0/3
S1(config-if)#switchport access vlan 3
S1(config-if)#inter f0/4
S1(config-if)#switchport access vlan 3
 
S1(config-if)#inter f0/5
S1(config-if)#switchport mode trunk
S1(config-if)#switchport trunk allowed vlan all
 
2) 配置单臂路由器子接口,每个子接口都设IP地址,并有VLAN 封装能力。
R1(config)#inter F0/1
R1(config-if)#no shutdown
R1(config-if)#inter F0/1.2
R1(config-subif)#encapsulation dot1Q 2
R1(config-subif)#ip address 10.0.2.100 255.255.255.0
R1(config-if)#inter F0/1.3
R1(config-subif)#encapsulation dot1Q 3
R1(config-subif)#ip address 10.0.3.100 255.255
 
3) 检查路由表:刚配置好的子接口成为路由表的新条目。
R1#show ip route
10.0.0.0/24 is subnetted, 2 subnets
C        10.0.2.0 is directly connected, F0/1.2
C        10.0.3.0 is directly connected, F0/1.3