静态路由 静态路由其实就是手动配置每一条路由,包括IP网段、子网掩码、下一跳(哪个接口) 想要路由,路由器必须做到以下几点: 知道目的IP所走的路由 标记处下一跳,或者从哪个接口发出去 发现所有可能的路径 选择最优的一条路径 维护和校验路由信息
静态路由实验 如下拓扑: 静态路由配置 //包括目的网段、子网掩码、下一跳ip(或者出接口) 1)在R1上配置目的ip3.3.3.3/24的网段(3.3.3.0)、子网掩码(255.255.255.0)、下一跳地址(172.16.12.2)或者出接口(f0/0) 2)现在R1上有了目的路由,但R2上没有,所以还是照旧配置, 3)此时网络还不通的原因是:ping包是一个有去有回的过程所以,还得在R3上配置回往R1的路由。R2不用配置,因为其有直连路由。 R1(config)#ip route 192.168.23.0 255.255.255.0 172.16.12.2 //跟下一跳ip地址 R3(config)#ip route 172.16.12.0 255.255.255.0 s1/0 //跟出接口 下一跳地址和出接口有一个最明显的区别:如果使用下一跳地址,就不会用到代理arp,因为发送arp请求时,请求的是下一跳的Mac地址,而不是目标ip的Mac地址。 因此,写静态路由的时候,最好是跟下一跳的ip地址,虽然代理arp的功能是默认开启的,但就怕对方手动关掉代理 arp。 如上图:R1和R2之间是以太网,二层要封装Mac,所以跟出接口或者下一跳,优先下一跳 R2和R3之间是点到点网络,不会封装Mac层,所以两者均可。 结论: 1.以太网写静态路由,优先跟下一跳地址;想要跟出接口,必须确保对端proxy-arp是开启的 2.点到点网络写静态路由,跟出接口或下一跳均可以。 注意: 在R1上ping 3.3.3.3通了之后,并不能保证在R3上ping R1就一定能通,因为R1上没有去往R3的路由。 配置R1的虚拟0端口,loopback端口是默认开启的 R1#conf t R1(config)#int loopback 0 R1(config-if)#ip address 172.16.100.10 255.255.255.0 no掉loopback 0端口 R1(config)#no int loopback 0 关闭路由功能 R1(config)#no ip routing //正常网络上一定别敲,否则所有的动态路由功能全部丢失。 在shutdown一条路由的端口时,路由消失,成为无效路由。 路由表的查询原则 1、最长匹配 查询掩码最长的路由,如:
① 3.3.3.0 255.255.255.0 172.168.12.2 ② 3.3.3.0 255.255.255.128 null 0 此时结果是,走第②跳路由,null 0 表示废弃路由,丢掉。故链路不通。 2、递归查询 ![]() 假如去往3.3.3.3,进行的查询如下: 先得到3.3.3.0 172.16.12.2 ;
然后是查询如何去往172.16.12.2 ; 再得到 172.16.12.0/25 null 0 ; 由此可见,在递归查询的同时,也在进行着最长匹配 静态网络互通 网络中的所有路由器,都拥有除自己直连路由以外的,其他所有非直连 路由,才能实现全网互连。
浮动静态路由 ![]() 从下面走,当下面不可达时,切换到备份路径。 要实现浮动静态路由,配置一个参数,即管理距离即可。 管理距离:一条路由的信任度,越小越优先。范围是0-255,但255默认失效 任何一条路由,管理距离是255,都是无效路由,浮动不上来 直连路由的距离(distance):0 静态路由的距离(distance):1
可以在show ip route 后面跟一条ip地址,看到其详细的信息。 ![]() 等价路由:去往某个地址,有多个下一跳, ![]() 浮动路由的配置 R1(config)#ip route 3.3.3.0 255.255.255.0 172.16.12.2 20 //在路由后面加个管理距离就行
默认路由 0.0.0.0 0.0.0.0 8.8.8.8 ----> 地址全0,掩码全0,下一跳给某个地址
静态路由的优点: 简单、高效、比较稳定、适合小型网络 静态路由的缺点: 配置量大、有可能环路或者走次优路径、不能自动的适应拓扑变更。 |