路由原理

路由器工作在 OSI 参考模型的网络层,它的重要作用是为数据包选择最佳路径,最终送 达目的地。那么路由器是怎样选择路径的呢? 在只有一个网段的网络中,数据包可以很容易地从源主机到达目标主机。但是如果一台 计算机要和非本网段的计算机进行通信,数据包可能就要经过很多路由器。如图所示, 主机 A 和主机 B 所在的网段被许多路由器隔开,这时主机 A 与主机 B 的通信就要经过这些中 间路由器,这就要面临一个很重要的问题——如何选择到达目的地的路径。数据包从 A 到达 B 有很多条路径可供选择,但是很显然,在这些路径中在某一时刻总会有一条路径是最好 (最快)的。因此,为了尽可能地提高网络访问速度,就需要有一种方法来判断从源主 机到达目标主机所经过的最佳路径,从而进行数据转发,这就是路由技术。

微信截图_20190806150453.png


路由器的工作原理

(1)主机 1.1 要发送数据包给主机 4.1,因为 IP 地址不在同一网段,所以主机会将数 据包发送给本网段的网关路由器 A。

(2)路由器 A 接收到数据包,先查看数据包 IP 首部中的目标 IP 地址,再查找自己的路 由表。数据包的目标 IP 地址是 4.1,属于 4.0 网段,路由器 A 在路由表中查到 4.0 网段转 发的接口是 S0 接口。于是,路由器 A 将数据包从 S0 接口转发出去。

(3)网络中的每个路由器都是按这样的步骤转发数据的,直至到达路由器 B,再用同样 的转发方法从 E0 口转发出去,最后 4.1 主机接收到这个数据包。

微信截图_20190806150845.png


路由表的形成

路由表示路由器中维护路由条目的集合,路由器根据路由表做路径选择

直连网段:配置IP地址,端口UP状态,形成直连路由(长在自己身上的就是直连)

非直连网段:像20.0.0.0这种不是直接连接路由A上的就是非直连(长在别人身上的就是非直连)

微信截图_20190806151749.png

静态路由:路由器A想发数据到非直连网段1.0就需要在路由A中配置静态路由
由管理员手工配置的,是单向的
缺乏灵活性(应用于规模不大,拓扑结构相对固定的网络中)
默认路由
当路由器在路由表中找不到目标网络的路由条目时,路由器把请求转发到默认路由接口(存在末梢网络时,会大大简化路由的配置)

微信截图_20190806153124.png



路由器转发数据包的封装过程


1,HostA将源和目标IP地址进行封装成数据包,但是因为目标IP不在同一个网段上所以要通过路由器A转发

2,HostA通过ARP广播获得路由器A的E0接口的MAC地址,在HostA的数据链路层将IP数据包封装成数据帧,源mac地址为00-11-12-21-11-11目标mac地址为网关E0接口的mac地址00-11-12-21-22-22

3,路由器A从接口E0接受到数据帧,拆除数据链路层的封装,查找路由表,寻找和目标ip地址相匹配的路由表项,然后根据路由表的下一跳地址将数据包转发在E1接口

4,在E1处我们要重新封装此时还要通过ARP获得路由器B的E1接口的mac地址,然后进行重新封装,此时源mac地址是路由器A的E1接口的mac地址00-11-12-21-33-33,目标mac地址为路由器B的E1接口的mac地址00-11-12-21-44-44

5,路由器B从E1接口接收到数据帧,同样去除数据链路层的封装,对目标ip地址在路由表中进行匹配,然后根据路由器的下一跳信息将数据包传输到E0接口,路由器B发现目标IP网段和自己E0接口的直通直连,此时再通过ARP广播获得HostB的mac地址,再进行封装,此时的源mac地址为路由器B的E0接口的mac地址,目标mac地址为HostB的mac地址,封装完成后直接传输给HostB。

IP一直不变,MAC地址一直在变!!!!!

路由器转发封装过程.png

路由器的每个接口是不同网段,不同的广播域
交换机的每个接口是不同的冲突域

微信截图_20190806112537.png