什么是路由器?

路由器是一个可以进行路由和转发的网络设备,能够隔离广播域、指定访问规则、进行子网间速率的适配、将不同类型的网络互联等,主要提供了路由和转发两种机制。
路由:路由器运行路由协议生成路由表,通过查找路由表来确定去往目的端应该走哪些设备,决定数据包从源端到目的端所经过的路由路径。
转发:查找IP头部信息确定目的地址来转发IP包,将路由器输入端的数据包移送到适当的路由器输出端。
路由器可以分为两个部分,路由引擎和转发引擎,控制层面的交给路由引擎,数据层面的交给转发引擎,这是路由器提供的两种不同的报文处理路径。其中路由引擎可以看作是软件层面(需要CPU、内存、操作系统来运行路由协议),路由协议计算的结果是以路由表的形式输出出来,有了路由表就可以进行路由,路由表进行映射形成FIB表(转发信息表)。这两个表都用来保存路由信息,但路由表包含更多的信息IP地址/IP子网、下一跳、路由度量、转发时间等,转发表值包含IP地址/IP子网和下一跳/出接口,路由器实际转发时使用的时转发表。

OSPF
Spf(short path first,D.J算法)
以自己为根运行spf算法,可以分为两步
第一步:到达其它路由器(树干)
第二部:到达自身各网段(树叶)

学习Ospf最重要的三点:状态的变换、状态包的参与、导致状态卡的原因
为什么会卡在某一个状态?
Down ospf没有运行
Init 没收到对方的包
Two-way 没有选举成功
Exstart mtu不匹配
Exchang mtu发生变化,包太大被过滤(包的交互有问题)
Loading LSA加载不完全(如:请求5个包回4个)

哪些情况会引发?
1、 相同的route-id
2、 认证有问题
3、 区域id不同
4、 特殊区域标识不一致
5、 优先级都为0
6、 MTU不一致
7、 包交互问题
8、 LSA加载不完整
9、 Hello时间不一致
10、MA网络类型,掩码不一致(不在一个子网)
11、虚链路两个ABR的出接口ospf包不通
12、shame-link不通

1类LSA的网络类型分为4种:
Point to point点到点
Transit多路(点到多点实际上时点到点的集合)
Stub末节
Virtual link虚链路

为什么要有2类LSA,2类时如何解决1类的问题的?

为什么模拟OSPF时需要设置loopback 为什么要使用ospf_路由表

2类LSA
如图,R1、R4、R5都连接在N9上,在1类LSA中R5不知道N9连接了哪些设备,而2类LSA可以解决这个问题,指明N9连接了哪些设备

所有路由表的复制行为都是一种距离矢量行为

3类LSA(复制域间路由,具备距离矢量的特点)
区域间星型结构防环
到达ABR无环,进而到达其它区域路由条目也是无环的(都是树状结构)
区域间存在水平分割(当存在多个ABR时防环)

4类LSA(辅助5类LSA,因为5类无法解决下一跳的问题)

是一种特殊的3类LSA,传播属性和通告者属性与3类相同,只是通告的内容不同,3类通告域间路由,4类通告域间route-id,

为什么模拟OSPF时需要设置loopback 为什么要使用ospf_子网_02

4类从ABR(R2)发出,告诉R1要到达ASBR(R7)必须要到达R2

为什么模拟OSPF时需要设置loopback 为什么要使用ospf_路由表_03

正常情况R1到达R5的A接口路径时R1-R2-R3-R4-R5,但时如果有FA地址,5类选择下一跳就不会按照ASBR的指向去选择,而会按照FA的地址做指向选择(将ASBR的指向覆盖成FA的指向),路径为R1-R2-R3-R5,所以FA可以修正次优路径。

FA地址本身是下一跳,会引起路由表的递归查找,如果递归不到或递归到的不是O或OIA开头的路由,该5类失效(路由表上消失),该现象称为路由不加表,BMA与点到点建邻(一个需要进行DR、BDR选举一个不需要,一个有two-way一个没有)也会引发此现象(因为spf算法错乱无法计算路由)。

5类不加表还有一个引发点就是4类可能被过滤

为什么模拟OSPF时需要设置loopback 为什么要使用ospf_路由表_04

上图网络环境如果想做到扩展性好的方案,推荐MA、NBMA(MA和NBMA分支站点接口优先级设为0)或mgre支持伪组播(组播映射),一般最好的方案是点到多点(通过mgre的配置改良可以克服点到多点必须绕行的缺点)

可以做点到点,但会占用较多的子网,并且在hub上会开启较多的tunnel,后果就是配置繁琐,改动不方便

不支持组播的原因:当有新的点出现时,在hub上还要指邻居,灵活性不够,每增加一个点都需要手动建立邻居