静态路由配置及其可能产生的路由环路问题
静态路由配置
目的网络就是要数据包要发送至的网络
吓一跳的意思就是为了发送到目的网络,下一跳要发到哪
直连网络就是路由器直接与网络相连,所以路由器直接就可以知道目的网络的网络地址
可以通过其IP地址和地址掩码得到其无分类的IP地址
而如果R1要妆发给R2怎么办呢?
R1的路由表中并没有R2的记录,也就是它并不知道R2的存在。所以这时候怎么办呢?
这时候我们就可以自己为其设置静态路由。
比如R1要给192.168.2.0/24转发数据包,我们知道它必须转发给R2的接口0,所以下一跳的地址应该设置成R2的接口0的地址10.0.0.2.
R2转发给R1道理也相同。
那么如何转发IP数据报到包含众多的网络的因特网呢?如何一个个写,那么路由表就会写得很满。
所以可以有一个默认路由,目的网络设置为0.0.0.0/0,下一跳为10.0.02,也为静态。
特定主机路由:
选择网络前缀最长的进行转发
静态路由配置可能产生的路由环路问题
假设R2路由表要转发给192.168.1.0/24的下一跳设置成了10.0.1.2,那么下一跳就转发给了R3,R3再从自己的路由表中找到该目的网络对应的下一跳,转发给了R2,R2又转发给了R3,R3又转发给了R2,如此循环……
为了解决这个问题,IP数据报首部设有生存时间TTL字段,IP数据报进入路由器后,TTL的值会减1,若减1后不为0,则被路由器转发,否则被丢弃。
聚合了不存在的网络而导致路由环路
192.168.1.0/24和192.168.2.0/24具有22个共同前缀,所以可以聚合,所以R2的路由表中可以记录一条192.168.0.0/22 (理解了路由聚合的问题)
所以当R2要转发给192.168.1.0/24或192.168.2.0/24时,查表转发,查到了192.168.0.0/22时就会发现符合,下一跳就发给R1的接口1.
聚合路由其实包含了以下四个网络
但只有2,3是存在于我们的网络拓扑中,其它都是不存在的。
所以有可能有这种情况,如果现在让你转发192.168.0.0/24,路由器发现其符合192.168.0.0/22所以就会转发到R1的接口1,而R1寻找自己的路由记录,发现并没有,所以就默认接口转发(通过0.0.0.0/00),又给了R2。所以就循环起来了。
针对这种情况,我们可以添加聚合的不存在的路由
假设R2要转发192.168.0.0/24,所以就在其路由表中查找,,发现
这两条都符合,那么会选择哪一条呢?
会选择前缀比较长的那一条,也就是24比22长,所以选择24.所以直接去黑洞,有去无回。
网络故障导致的路由环路
假设R1的接口0出了故障,那么R1本该转发给接口0的就不见了,它就会转发给默认路由,所以就又可能产生网络环路。
为了应对这种问题,我们可以在R1的路由表中添加关于R1接口0的黑洞路由。
加深以下特定主机路由和目的主机路由的理解
特定主机路由
也就是可能能从两条路走,但是网络管理人员就默认了让它走R2上面的路。
至于为什么?
可能是各种安全问题吧。
默认主机路由
就是比如主机1要传1个数据报到网络5,但是路由1的路由表中并没有网络5.
那么我们可以设置一个默认路由,也就是说虽然路由1中的路由表没有。
但是我们觉得路由标2比较神通广大,它可能有1,所以我们设置一个默认路由。让路由1解决不了的就传给默认路由2.