第一节 静态路由基础
路由器(Router)确定数据包走向的最终依据是路由表,而路由表中的路由条目来源多种多样,例如当一个接口配置好IP地址并no shutdown后(接口双UP状态),路由表中即出现一条路由条目。
如上图所示,该路由是一条直连路由,一条路由的信息大致可包括以下几部分:
1.该条路由的来源,如C表示该路由条目是直连接口下的一个网络
2.目标网络号,即该路由条目对应的网络号,表示通过本路由可到达的网络,后面跟的是一个路由信息,如直连is directly connnected或者下一跳IP地址via x.x.x.x
3.出接口/下一跳IP地址,要去往该路由条目对应的网络,该从本路由器的哪个接口转发数据包/该发向哪个IP地址。
以上所述为直连路由,除此之外,还可以手动添加路由条目进路由表,告知路由器去往远端网络的数据包该如何发送,即静态路由。
静态路由的语法:
ip route 目标网络号 目标网络号掩码 下一跳接口IP地址/出接口
第二节 静态路由配置方式的区别
1.路由表
当静态路由配置为出接口时,路由表中显示为is directly connected,即路由器认为该网络为直连网络。而配置为下一跳IP地址时,路由表中显示via+下一跳IP。
2.ARP
直连网络路由器发送数据包前,首先会对目的IP地址进行ARP解析。
当静态路由配置成出接口,路由器会认为目的网络是直连网络,连接在某个接口下。如R1配置一条ip route 25.1.1.0 255.255.255.0 e0/2,即在R1的路由表中会出现如下路由
即代表R1拥有25.1.1.0/24的条目,并且R1认为25.1.1.0/24网络是直连网络,因此当R1有去往25.1.1.0/24的数据包时,ARP报文直接请求25.1.1.5的MAC地址。R2收到后,发现25.1.1.5并不在本地,但是自己本地有25.1.1.0/24的路由条目,因此R2这台路由器会响应ARP请求(这个过程就称之为ARP代理)。此过程结束后,可以发现R1的ARP表项中IP与MAC并不是真实映射。同时,当25.1.1.0/24有多个目的IP时,这些IP都将出现在ARP表项中,且对应的MAC地址均为R2的F0/0接口。
当静态路由配置成下一跳IP地址的时候,类似于网络,只要将该路由对应的数据包发送给下一跳IP地址即可。如R1配置一条ip route 26.1.1.0 255.255.255.0 12.1.1.2,在R1的路由表中会出现如下路由:
如R1收到一个数据包ping 26.1.1.6且静态路由配置为下一跳IP地址的时候,路由器会认为,要去往26.1.1.0/24网络,只要将数据包发往12.1.1.2即可,因此当R1有去往12.1.1.0/24网络的数据包时,ARP报文请求12.1.1.2的MAC地址。R2收到后发现是本地的IP地址因此对其进行ARP响应。此时R3上12.1.1.2的ARP条目是真实映射,并且无论26.1.1.0/24内有多少IP地址,R1要去往该网络只需要这一个ARP条目。
第三节 默认路由
公网的路由条目数量众多,当一个企业的出口路由器想要访问公网时,就需要拥有公网上的所有路由条目,此时可以使用默认路由来表示这些路由,当本地路由条目和路由器路由表中的路由条目都无法匹配上时,则匹配默认路由进行数据的通信。
默认路由的语法: ip route 0.0.0.0 0.0.0.0 出接口/下一跳IP地址
默认路由在路由表中的体现:
默认路由的拓展:
默认路由语法的第三段可以写出接口,也可以写下一跳IP地址,该如何选择更优?
——当下一跳IP地址足够稳定的时候,使用下一跳IP地址的配置方式可使得设备的ARP负担不会太大。
——但当下一跳IP地址不稳定的时候(如3天更换一次,7天更换一次),盲目的跟从配置下一跳IP地址可能会导致需要经常修改默认路由中的下一跳IP地址字段的值,过于繁琐。因此,为了保证网络长久的运行,配置出接口更为稳妥。
一般来说,企业的出口路由器部署默认路由时,绝大多数都是使用的出接口的方式来部署,因为企业出口路由器的Dilaer口做的是PPPoE(以太网点对点协议)的拨号,由运营商来分配地址,这个地址会进行定期更新。因此,部署出接口更为稳妥。