出接口为BMA(Broadcast Multiple Access,广播型多路访问)
当在AR4上配置一条只有出接口的静态路由时,到达1.1.1.1/32的路由是不通的
ip route-static 1.1.1.1 255.255.255.255 GigabitEthernet0/0/0
因为BMA接口接入一个广播网络,该网络中同时接入了多台设别,因此如果仅仅为静态路由指定出接口,那么路由器将无法判断究竟将该数据包发往哪一个下一跳设备。
当AR4转发到达1.1.1.1/32的数据包时,会从该接口广播ARP Request报文,用于查询处于本地直连网段中1.1.1.1/32的MAC地址。AR1收到这个ARP Request报文,缺省情况下是不会应答的,毕竟AR1的g0/0/0口的IP地址不是1.1.1.1/32。所以此时AR4无法将目的IP地址为1.1.1.1/32的报文转发出去(因为无法获得关于1.1.1.1/32的MAC地址)。因此出接口为BMA时必须指定下一跳的IP地址。
也可以在AR1的g0/0/0口上激活ARP代理来解决上述问题
arp-proxy enable
当激活了ARP代理后,AR1的G0/0/0口收到1.1.1.1/32的广播ARP Request报文时,由于AR1直连1.1.1.1/32网段,因此它将应答这个ARP Request报文,并且以自己的G0/0/0口的MAC地址(代替1.1.1.1/32对应的真实MAC地址)进行应答,AR4会在其ARP表中创建一个表项,将IP地址1.1.1.1/32与AR1的G0/0/0口的MAC地址进行绑定。此时,AR4将到达1.1.1.1/32的报文发送出去后,AR1收到,将报文解除封装,然后解析数据包IP头部中的目的IP地址并进行路由查询,发现目的IP地址就在本地直连网段中,于是重新封装报文,然后将其转发到目的地。ARP代理有点“ARP欺骗”的味道
出接口为P2P(Point-to-Point,点对点)
在AR4上配置,发现到5.5.5.5/32的路由是通的,因此在P2P时,是可以仅仅指定出接口的(也可以指定下一跳的IP地址)
ip route-static 5.5.5.5 255.255.255.255 Serial2/0/1
出接口为NBMA(Non-Broadcast Multiple Access,非广播多路访问)
该接口类型能够连接多台设备,但是并不支持广播。拥有帧中继接口的路由器维护着一张帧中继映射表,用于存储帧中继链路对端设备的IP地址及本地DLCI(Data Link Connection Identifier,数据链路连接标识)的对应关系。当路由器要通过帧中继接口向链路对端的某台路由器发送数据时,路由器在帧中继映射表中查询下一跳IP地址(帧中继链路对端的设备IP地址)及DLCI的映射,并为报文进行帧中继的封装,在帧头中写入DLCI号,报文被送入帧中继网络后,DLCI号用于确保数据能够顺利到达对端。由于路由器使用的帧中继接口可以连接多台设备,而且在通过帧中继接口发送数据时,需要用到报文的下一跳IP地址对应的DLCI,因此在为其配置静态路由时,如果出接口类型为NBMA,则必须指定下一跳IP地址。
图中,AR4的S2/0/0通过帧中继与AR3建立连接,此时AR4已经得到了AR3的S2/0/0口对应的DLCI并且完成了帧中继接口的相关配置。现在AR4只需要静态路由,就能到达3.3.3.3/32
#
interface Serial2/0/0
link-protocol fr
ip address 34.1.1.4 255.255.255.0
#
#
interface Serial2/0/0
link-protocol fr
fr interface-type dce
fr dlci 20
ip address 34.1.1.3 255.255.255.0
#
静态路由与BFD(Bidirectional Forwarding Detection,双向转发检测)联动
如图,当AR4去往195.168.1.1/24时候,可以从AR2上走,也可以从AR3上走,AR4上配置
//AR4
ip route-static 195.168.1.1 255.255.255.255 24.1.1.2
ip route-static 195.168.1.1 255.255.255.255 34.1.1.3 preference 80
根据优先级(默认60),他选择从24.1.1.2这条链路上走,如果24.1.1.2这条链路断开,会自动切换到34.1.1.3上
但是当AR2的G0/0/0口断开时,该浮动路由是感知不到的,所以需要通过BFD(Bidirectional Forwarding Detection,双向转发检测),现在在AR2和AR4上分别配置BFD
//AR2
#
bfd aa bind peer-ip 24.1.1.4
discriminator local 10
discriminator remote 20
commit
#
//AR4
#
bfd bb bind peer-ip 192.168.1.2
discriminator local 20
discriminator remote 10
commit
#
ip route-static 192.168.1.0 255.255.255.0 24.1.1.2
ip route-static 192.168.1.0 255.255.255.0 34.1.1.3
ip route-static 195.168.1.1 255.255.255.255 24.1.1.2 track bfd-session bb
ip route-static 195.168.1.1 255.255.255.255 34.1.1.3 preference 80
#
此时在AR2的G0/0/0口上shutdown,此时BFD的检测状态会从UP变为DOWN(通过命令display bfd session all查看),与之关联的静态路由会立即失效,从而使得备份路由能够浮现,这时在AR4上查看路由表会发现下一跳变成了34.1.1.3
静态路由与NQA(Network Quality Analysis,网络质量分析)联动
在AR4上配置一个NQA实例,使用ICMP测试机制探测到AR2的192.168.1.2/24的可达性。当NQA检测到192.168.1.2/24可达时,静态路由生效,否则,静态路由失效,此时浮动路由将出现在路由表中
#
ip route-static 195.168.1.1 255.255.255.255 24.1.1.2 track nqa admin test1
#
nqa test-instance admin test1
test-type icmp
destination-address ipv4 192.168.1.2
frequency 6
interval seconds 2
timeout 2
probe-count 2
start now
#
//可以使用如下指令查看NQA
display naq results
display nqa history