1. 路由基础回顾
概念
- AS(Aotonomous System): 自治系统,由同一机构管理的路由器集合。
- LAN(Local Area Network): 局域网,用户所使用的网络
- WAN(Wideless Area Network): 广域网,运营商网络
- 广播域:一个广播帧能在网络中到达的所有地方,也就是arp广播能到达的所有地方。
- 路由器:根据IP地址,查找相应的路由表进行转发的设备。
- 路由表:路由器转发的规则表,包括下一跳、优先级、开销、路由协议等
- 路由协议:一种计算路由的一系列规则集合
1.1 静态路由
由管理员自己手动配置的,比较难维护。
规则为:目的地址、网络掩码、下一跳
配置命令:
sh
ip route-static 192.168.2.0 255.255.255.0 10.1.12.2
浮动路由(静态路由备份):
配置两条静态路由,一条优先级低,一条优先级高。
sh
ip route-static 192.168.2.1 24 10.1.12.2
ip route-static 192.168.2.1 24 10.1.21.2 preference 100
静态路由负载分担:
将两条链路配置成相同的优先级
sh
ip route-static 192.168.2.1 24 10.1.12.2
ip route-static 192.168.2.1 24 10.1.21.2 preference 100
1.2 动态路由协议
不需要手动配置,由路由协议本身进行计算、收敛。
按区域分为两类:内部网关协议(Internal Gateway Protocol)、外部网关协议(External Gateway Protocol)
内部网关协议又分为:OSPF、RIP、ISIS、EIGRP
外部网关协议主要是BGP。
按计算方式分为两类:基于距离矢量各基于链路状态。
基于距离矢量的协议主要是RIP和BGP;相邻路由器之间互相交换整个路由表,进行矢量迭加,最后学到整个网络的路由表。
特点:
- 路由器间周期性交换路由表
- 交换整张路由表
- 水平分割;为了防环,发出去的路由,不再接收。
缺点:
- 基于跳数,忽略了带宽时延等因素
- 交换路由信息的方式,定期广播整张路由表。在稍大 的网络中开销很大,很难维护,收敛很慢。
基于链路状态协议采用链路状态(Link State, LS)算法,从相邻路由器学到路由,把路由器划分区域,收集区域内所有链路状态信息,根据链路状态信息生成网络拓扑结构,从面计算整个网络的路由。
基于链路状态协议主要有OSPF、ISIS。在实际的现网中用到的主要是基于链路状态的协议。
2. OSPF基础
OSPF工作流程:
- 邻居关系建立
- 同步链路信息数据库(LSDB: Link State DataBase)
- 计算最优路径,并添加到路由表中
Router-ID: 在自治系统中唯一标识一台运行OSPF的路由器。
- 建议手动配置Router-ID
- 未手动配置Router-ID,会使用路由器的全局Router-ID
- 全局Router ID是设备第一个配置了IP并且UP的接口IP
3. BFD检测直连故障
3.1 BFD是什么?
BFD: Bidirectional Forwarding Detection,双向转发检测,是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。
BFD本身并知道链路状态,而是要根据上层协议的状态来工作的。
BFD周期性的向对端发送心跳报文,从而来判断对方是否在线,如果不在线就通知给上层协议作后续处理。
3.2 BFD单跳检测
一般的直连链路,有一方断线是能直接检测到的;
但在上面的图中,假设PC1和PC2之间的两个路由器R1、R2之间配置的是浮动路由。如果R1、R2之间没有交换机,我们将主路由一个端口给Down掉后,是能自动切到备份链路的。但是我们加了一个交换机后,路由器就无法直接感知对方端口状态了。这时候BFD就可以发挥作用了。
配置BFD
sh
#使能bfd
[R1]bfd
[R1-bfd]quit
#配置本端和对端的IP
[R1]bfd float-ip bind peer-ip 10.1.12.2 \
source-ip 10.1.12.1
[R1-float-ip]discriminator local 1
[R1-float-ip]discriminator remote 2
将BFD状态和静态路由表项进行联动
sh
ip route-static 192.168.2.0 255.255.255.0 10.1.12.2 track bfd-session float-ip
R2的配置类似,只是bfd里面的描述符要进行对调,也可以直接设置为auto不配置。
查看bfd会话状态
sh
display bfd session all
3.3 单臂回声
有时候链路可能只有一端支持bfd检测,我们就可以利用单臂回声配置一侧的。与上面唯一不同的是,需要与出接口绑定而没有对端IP。
sh
[R1]bfd one-arm bind peer-ip 10.1.12.2 interface \ GigabitEthernet0/0/0 one-arm-echo
[R1-one-arm] discriminator local 1
[R1-one-arm] commit
同样与静态地址联动
sh
ip route-static 8.8.8.8 255.255.255.255 10.1.12.2 track bfd-session one-arm
ip route-static 8.8.8.8 255.255.255.255 10.1.21.2 preference 100
4. 问题
4.1 为什么路由器互联两个接口间要配置相同网段的IP?
不一定需要配置相同网段的IP,
最终还是要根据链路的类型来确定。
对于最常用的以太网协议来说,由于封装成帧需要对方的mac地址。如果互联的两个路由器的接口不在同一网段,路由器意识到两者不在同一网段,是不会发arp广播的,进而无法获取到mac地址,最终就不能通信。
而如果是P2P链路则需要在同一网段。
4.2 Loopback接口有什么用?
Loopback接口是环回地址,需要手动配置。
它的性质
(1)始终UP,具有环回特性;收到包后不再继续转发该包。
(2)可以配置单播地址,用来标识路由器。
在OSPF中,Loopback接口可以用来当做路由器的Router ID。