本文欢迎转载,转载请注明出处和作者。
上一篇已经讲解完二层子网内的通信了,那么跨二层的通信(子网间通信)如何实现呢?
1、网络拓扑
继续在上一节的基础上,修改拓扑图如下:
(参考02-03两个实验,完成trunk,VTP,vlan的配置,并且确保同网段之间可以ping通,配置不再粘贴)
《【实战演练】Packet Tracer玩转CCNA实验02-VLAN基本配置》
《【实战演练】Packet Tracer玩转CCNA实验03-VTP配置
》
2、配置命令
R1(使用Generic路由器):
Continue with configuration dialog?[yes/no]no
Router>en
Router#conf t
Router#host R1
R1(config)#int fa0/0
R1(config-if)#no shut
R1(config-if)#interface fa 0/0.10
R1(config-subif)#encapsulation dot1q 10
R1(config-subif)#ip address 192.168.10.254 255.255.255.0
R1(config-subif)#no shutdown
R1(config-subif)#interface fa 0/0.20
R1(config-subif)#encapsulation dot1q 20
R1(config-subif)#ip address 192.168.20.254 255.255.255.0
R1(config-subif)#no shutdown
SW2:
Switch(config)#int fa0/23
Switch(config-if)sw mo trunk
Switch(config-vlan)sw trunk allow vlan all
PC1~4:
将网关配置为对应的网段内的网关。(PC1、3为192.168.10.254,PC2、4为192.168.20.254)
3、结果验证
PC1上ping PC2/PC4,第一个包会不通,后面都通了。
并且PC1上运行tracert 192.168.20.2,会显示有2跳,经过192.168.10.254然后到达目标。
在R1上面时候,show ip route,可以查看路由表。
看到有两条C开头的路由条目(C代表connected,表示是路由器的直连路由),路由器就是靠查路由表来决定将包扔往哪个端口出站入站的。
4、理论解释
单臂路由,意思指只用了一条上行链路,然后接入到路由器,然后实现vlan间的通信。
又到了死记硬背的时候了,后面再去理解:
路由器的一个端口就是一个网段/vlan/子网!不同端口不能划入同一个子网
路由器的一个端口就是一个网段/vlan/子网!不同端口不能划入同一个子网
路由器的一个端口就是一个网段/vlan/子网!不同端口不能划入同一个子网
重要的事情说三遍!!!
所以,根据前面所说,不同VLAN就是不同的子网/网段,而路由器的不同端口必须划入不同子网,所以理论上交换机与路由器中间的连接,必须要用2条物理链路与占用路由器两个物理接口。
这里就有个新的技术概念,子接口。
int fa0/0.10,这里就是在fa0/0下面划分了个10的子接口,每个子接口是一个逻辑端口,也要遵循上面死记硬背的原理。
使用子接口,就可以在一个物理端口上面划分无数的逻辑子接口,省了物理链路与物理端口(节省投资),并且可以划分入不同的网段。
encapsulation dot1q 10是将路由器的子接口打上vlan标签10。
然后对路由器的子接口配置IP地址与子网掩码,并且路由器上面是自带路由功能的。
(注意,子接口配置IP地址,但是物理接口不要配置)
然后PC配置了默认网关,当计算源、目的IP只不在一个子网,就会将包扔给网关。(详细请参考之前的文章最后的理论解释部分)
包到达网关后,网关就会查找路由表,然后判断如何发送。
如上述的案例,192.168.20/0/24的路由条目,后面写着fa0/0.20,意思说去往这个网段的包,往fa0/0.20端口转发就对了。