一、前言
前面我们介绍了交换机的基本概念与ARP协议,归纳起来有以下重点:
1)交换机各端口默认是互通的,在此前提下,PC仅知晓目标IP时,通过ARP协议广播的方式“询问”目标设备的MAC地址
2)在此过程中,PC生成了ARP表(IP-MAC对照表),交换机生成了MAC表(MAC-端口对照表)
3)于是,PC在仅知晓目标设备IP时,可以通过ARP表查询得到目标的MAC地址,发给交换机后,交换机通过查询MAC表将数据传递给正确的端口
而交换机实现其功能的大前提就是各端口间是“互通”的,而且串联、级联在一起的交换机,所有端口都是“互通”的,这在便利的同时也产生了新的问题,路由器就是用于解决这个问题的设备。
二、广播域与广播风暴
我们知道交换机组成的网络中,端口都是互通的,这个互通体现在“广播”,即交换机组成的网络中,任一设备广播的消息都能被网络中其他所有设备接收到,我们称这些设备处于一个“广播域”。
不仅是ARP协议,实质上有许多应用都基于广播来实现,这就导致网络中有非常多广播报文实时在传递。如果我们网络规模较小时还可以正常使用,一旦网络规模非常大,接入设备非常多时,整个网络就被各种广播包所充斥以至于影响到正常的数据传输,这就是所谓“广播风暴”。
三、广播隔离与路由互联
如果让我们来解决这个问题我们该怎么办呢?最直接的办法是我们开发一个新设备来连接交换机组成的网络,它必须具备下面2个特性:
1)不转发广播包
2)可以根据IP转发包
很显然这个设备就是路由器。如下图所示的网络中,我们使用路由器三个端口将三个交换机组成的网络连在一起。
1、广播隔离
根据前面ARP学到的知识,当PC机需要依据目标IP进行通讯时,它并不知道目标IP的位置,所以它需要发一个ARP广播包问一下目标是否在网络中。由于路由器隔绝广播的特性,这个广播包到达路由器AR2后就会被丢弃。
2、端口IP
为实现其功能,路由器每一个端口都可以配置独立的IP,我们像下图这样配置一下其端口IP。每个端口有了自己的IP后,它们就可以作为目标来收PC发的包,3个端口可以像3个独立的PC一样工作。
3、网关
有了端口的IP后,PC机可以在找不到目标PC时直接将数据包扔给路由器来处理,这就是所谓的“网关”了。PC的网络配置中有一个“默认网关”的设置就是干这个的。所以当PC3的通讯目标是PC4时,它可以直接将数据包丢给路由器,路由器再转发给PC4。
4、数据包如何到达路由
如下图所示,PC3目标IP是192.168.2.11时,它知道这个IP不在当前交换机网络中(至于它是如何知道的以后再说),所以它会将包发给网关,但它只知道网关的IP不知道MAC呀,这时候其实还是ARP协议发挥作用(补一句,路由器的每个端口除了能配置不同IP外还都有独立的MAC地址)。
有了之前交换机和ARP协议的基础,这里其实就很好看懂了,PC3通过ARP协议能生成相应的ARP表,网络中的交换机能生成相应的MAC地址表。此外,路由器的G 0/0/0也有ARP表(惊喜意外吗),所以前面说的将路由器的3个端口想象成3台独立的PC是非常合理的。至此,PC3的数据包到达路由器的G0/0/0端口我们可以理解了吧。同理,这个数据包如果能够到达路由器正确的端口,它也就能够顺利到达PC4了,因为路由器的端口也可以发ARP广播呀(再次将端口想象成独立的PC)。
5、路由如何工作
在路由器内部只需要有下图这样的记录,来自PC3的数据就能顺利到达PC4,这样的记录我们称为路由表。
6、子网
但逐条路由去写有点复杂了,所以在做网络规划时,我们一般把PC3所在的网络规划为“192.168.1.0”这样的子网,把PC4所在的网络规划为“192.168.2.0”这样的子网。路由中可以用192.168.1.0代替192.168.1.1-255这256个IP,如此路由器中只需要有如下3条路由就可以实现3个子网的数据互通。
如果我们将两个不同子网的PC连在交换机网络中,也就是不经过路由器会怎样?什么也不会发生,不同子网的PC无法直接通讯,这个后面再说。
同时,PC机其实也是根据子网来判定是否将数据直接丢给路由器。比如PC3的目标IP是192.168.1.12,那它会在交换机网络中使用ARP协议来寻找目标设备。但如果目标IP是192.168.2.11,PC机知道其子网是192.168.2.0,与自己所处子网不同,所以它会直接将数据交给“默认网关”也就是路由器。
另外,路由器的两个端口不支持配置成同一个子网,也就是两个端口必须配置成两个不同的子网IP,有效避免逻辑混乱。
四、回顾
简单回顾一下今天的内容:
1)交换机组成的网络称为广播域,由于广播风暴的影响,交换机网络无法无限扩展
2)路由器可以隔离广播,所以用路由器将交换机组成的网络连接在一起
3)路由器的每一个端口可以像独立PC一样工作,可以单独配置其IP,也有自己的MAC
4)我们还将PC的默认网关设置为路由器对应端口的IP,这样当PC机在交换机网络中找不到目标IP时会将数据交给路由器处理
5)路由器内部有一张路由表,记录了到目标IP应该走那个端口
6)我们在规划时就将交换机组成的网络划分为一个子网,路由器实际上是将不同子网联系在一起的设备,同时路由表也可以简化为到不同子网应该走哪一个端口