IP路由表

作用:匹配数据包的dip,指导其进行数据转发;
来源:直连路由(无需配置,生来就有)
非直连路由(需要依靠路由协议获取)

路由协议

作用:构建ip路由器

分类

(1)依据工作原理分类
静态路由:由管理员手工配置dip、下一跳等参数构建路由表,无法动态感知拓扑变化,无需交互报文;
动态路由协议:由设备自动计算生成路由构建路由表,动态感知拓扑变化,需要交互报文;

(2)依据工作范围
IGP(内部网关协议):工作在一个as内,会周期更新路由,可以触发更新;(ospf[1800s/3600s]、isis[900/1500s]、rip[30s/90s])

AS(路由域/自治系统):运行独立的管理策略的区域,一般是一个企业网;

BGP(边界网关路由协议):工作在AS间,不可以周期更新路由,可以触发更新;

(3)根据计算方式分类
距离矢量路由协议:会传递路由信息,不会传递拓扑信息;(RIP、BGP)

链路状态路由协议:既会传递路由信息、也会传递拓扑信息;
运行链路状态路由协议的设备会先收集全网的链路状态信息(拓扑信息,链路开销、网络结构....),再运行spf算法计算出最优路由,放进路由表;(ospf、isis)

(4)根据传递路由时是否携带掩码
有类路由协议:携带掩码(ospf、isis、BGP、RIP)
无类路由协议:不携带掩码;
——————————————————————————————————————————
控制层面:路由传递的方向;
数据层面:数据去往目的地的方向;

ospf(开放式最短路径优先协议)

工作过程

1、建立ospf邻居关系(hello报文)

2、建立邻接关系(同步LSDB):DD、LSR、LSU、LSACK
LSDB(链路状态数据库):每一台运行了ospf的设备都有,里面存放lsa;
LSA(链路状态通告信息):包含了本设备的链路状态信息;

3、运行spf算法,得出最优路由,放进路由表;

报文

结构:ospf——网络层——数据链路层
协议号:89
ospf:ospf头部+报文详细信息

hello报文:用于发现、建立、维护ospf邻居,周期发送(10s/30s),感知邻居的离开(超时时间一般为hello时间的4倍40s/120s);

DD报文(数据库描述报文):携带lsa的摘要信息,用于告知对端,本设备上有哪些lsa;

LSR(lsa请求报文):携带lsa的摘要信息,用于请求自身缺少的lsa

LSU(lsa更新报文):携带lsa的详细信息,用于回应LSR的请求;

LSACK(lsa确认报文):携带lsa的摘要信息,用于回应LSU;

报文关键字段

ospf头部
router id
格式:32bit、点分十进制;
作用:唯一标识一台ospf路由器;

来源

1、手工配置

[Huawei]ospf 1 router-id 1.1.1.1

修改router id需要重置ospf进程:

<Huawei>reset ospf process  [Huawei]router id 2.2.2.2        //全局下配置 

如果一台设备既在全局下下配置了router id也在ospf下配置了,那么ospf会用ospf下配置的;

2、自动选举
a、在loopback接口ip中选择最大的;
b、在物理接口ip中选择最大的;

区域划分:ospf基于接口来划分区域
区域id:标识报文的发送区域;
格式:32位、点分十进制
area 0:0.0.0.0
area 1:0.0.0.1

area 0:骨干区域,必须要有
area x(x=/=0):非骨干区域,可有可无
分类:骨干区域
非骨干区域:普通区域
特殊区域:stub、totally stub、nssa、totally nssa;

划分规则

1、骨干区域必须要有,仅有1个;
2、非骨干区域必须围绕着骨干区域建立

Hello报文

1、掩码:hello报文发送接口的掩码
2、hello时间/超时时间
3、dr优先级、dr地址、bdr地址
4、活跃邻居(邻居列表):本设备包含的邻居的router id
5、option字段:标识区域类型
E N
1 0 普通区域(骨干/非骨干)
0 0 stub/totally stub
0 1 nssa/totally nssa

Hello报文中影响邻居关系建立的因素

1、版本要一致
2、router id不能一致
3、区域id要一致
4、认证要通过
5、掩码要一致
6、hello时间/超时时间要一致
7、option字段(E、N)要一致

(注:每一份hello报文都需要进行检测)

DD报文

MTU:接口的最大传输单元,默认为1500字节;
flag:
I:初始化字段,用于标识该DD报文是否为第一份,I=1代表是,I=0代表不是;
M(more):后续位,用于标识后续是否还有DD报文等待发送;
MS:主位,主路由器=1,从路由器=0,最开始大家都认为自己是主;

DD序列号:随机产生,用于确保后续DD报文交互的有序性;

邻居状态机

down:初始状态,没有收到任何的ospf报文,可以发送hello报文;

init:收到hello报文,检测通过,其中不包含自身的router id;

2-way:收到hello报文,检测通过,其中包含自身的router id

当双方都进入了2-way,意味着邻居关系建立完成;
在该状态下需要通过hello报文进行DR/BDR的选举

exstart:交互空的DD报文;

exchange:
正式开始交互携带lsa摘要信息的DD报文
由从设备先开始发送,其中DD序列号沿用主设备发送的空DD中的,后续过程中只有主设备有资格将序列号+1,从设备只能复制序列号回应;
如果主/从设备没有收到对方的正确序列号的DD报文,则会不停将上一份DD进行5s重传;
当双方发送的DD中的m都为0时结束该状态

loading:
设备针对自己需要的LSA进行LSR请求,对端收到后回应LSU(携带lsa的详细信息),最终LSACK确认;
没有收到回应也会进行5s重传;

FULL:LSDB同步完成,重传列表为空;

当双方均进入FULL状态邻接关系建立完成;

目的

1、检查双方的MTU值是否一致,默认不开启检查;
2、选举主从关系,router id大的为主;
3、确定序列号,用于确保后续DD报文交互的有序性;

DR/BDR

选举时机:2-way状态下进行选举;
选举报文:hello报文;

选举规则:越大越优

1、先比较DR优先级(默认为1,可调范围0~255,其中0代表不参与选举)
2、router id

DR(指定路由器):一个网段有且仅有一个;
BDR(备份指定路由器):一个网段有且仅有一个;
DRother(非指定路由器):一个网段有0到多个;

作用

1、减少网络中邻接关系的数目,从而减少报文交互,节省链路带宽;
2、在一个网段内,作为一个伪节点进行SPF计算;

原理

1、DR跟BDR可以建立邻接关系;
2、DR跟DRoher可以建立邻接关系;
3、BDR跟DRoher可以建立邻接关系;
4、DRoher之间无法建立邻接关系;

注:DRother之间依靠DR/BDR完成LSDB的同步;

特点

1、有备份
2、无法抢占

无法抢占是为了节省链路资源;
为什么BDR作为DR的备份,不会浪费链路资源:因为BDR跟DRoher可以建立邻接关系

无法抢占的原理:
wait time(等待时间):默认跟超时时间一样(40s/120s)

当设备发送出第一份hello报文开始就会开始计时,在wait time时间内,设备无法参与选举,如果收到的hello报文中DR/BDR字段有内容,则直接承认他们的地位;

优先级最高的设备一定是DR吗? 不一定
最先运行ospf的设备一定是DR吗? 一定(优先级为0/网络类型为p2p、p2mp)

ABR(区域边界路由器)
定义:即在骨干区域存在full的邻接关系,也在非骨干区域存在full邻接关系的设备;

ospf cost
cost=接口的参考带宽/实际带宽;
越小越优
GE——1
S——48

调整配置

interface GigabitEthernet0/0/1
ospf cost 10

网络类型

作用:让ospf可以适应不同的底层链路协议;
224.0.0.5:所有ospf设备
224.0.0.6:DR/BDR

网络类型底层物理链路是否选举DR/BDRhello/超时时间报文发送方式备注
广播型网络(MA)以太网链路10s/40s组播:hello、LSU、LSACK(224.0.0.5/224.0.0.6)单播:DD、LSR
P2P串行链路不选10s/40s所有报文都是组播发送(224.0.0.5)
NBMAFR(帧中继)30s/120s所有报文都是单播报文
P2MP手工修改不选30s/120s组播:hello其余:单播

P2P网络不需要选举DR/BDR的原因,因为用串行链路相连的设备,只能是两台路由器直接相连,无论是否选举DR/BDR,结果都是两台设备建立邻接关系,因此为了加快邻居的建立过程,没有必要选举;

当只有两台设备用以太网链路直连时,可以将接口的网络类型调成P2P,加快收敛速度;

在ospf中,一定会有DR/BDR吗?
不一定

网络类型为P2P、P2MP时没有;
当网段内所有设备的dr优先级均为0时;

网络类型如何影响邻居关系的建立?(当hello时间调整为一致时)

1、NBMA型网络只能跟NBMA型建立;
2、MA型网络可以跟P2P、P2MP建立full的邻接关系,但是计算路由时会出错;
3、P2P、P2MP可以建立full的邻接关系,计算路由正常

display ospf interface all                  //查看接口的ospf信息
[R3-GigabitEthernet0/0/0]ospf timer         //调整hello/超时时间
interface GigabitEthernet0/0/0
ospf network-type p2p                   //调整网络类型           

ospf认证

作用:加强ospf建立邻接时的安全性;
只有认证通过了,邻接关系才能正常建立;
认证通过:认证类型、密码一致;

注意:认证字段放在ospf头部,每一份ospf报文都要进行认证;

认证方式

1、接口认证
2、区域认证

认证类型

1、明文认证(simple)
2、密文认证(md5、keychain、华为私有)

密码的显示方式:display this能否看得见密码

1、plain:可见
2、cipher:不可见

配置

明文认证

//接口
interface GigabitEthernet0/0/0
ospf authentication-mode simple plain huawei 
//区域
ospf 1 router-id 2.2.2.2 
area 0.0.0.0 
authentication-mode simple cipher %$%$d)TA+;

特点

1、只需要配置密码,无需配置key id;
2、抓包时可以看见密码;
3、不会携带加密序列号

密文认证

//MD5配置
interface GigabitEthernet0/0/0
ospf authentication-mode md5 1 plain huawei

如果一个接口既配置了接口认证,该接口所在的区域也配置了区域认证,会以接口认证为准;

特点

1、需要配置key id
2、抓包看不见密码
3、会携带加密序列号

key id的作用:用于标识密码;
加密序列号的作用:防重放攻击(设备收到滞后的序列号报文不会进行任何处理)

nterface GigabitEthernet0/0/0
ospf authentication-mode null             //撤销认证

keychain认证
可以随着时间更改keyid与密码,加强认证的灵活性与安全性;
认证过程跟md5一致;

配置

keychain 1 mode periodic daily
key-id 1
key-string plain huawei
send-time daily 00:00 to 12:00
receive-time daily 00:00 to 12:00
key-id 2
key-string cipher %$%$E$yj@*|&,8ZB+g"siIE>c2hS%$%$
send-time daily 12:01 to 23:59
receive-time daily 12:01 to 23:59

interface GigabitEthernet0/0/0
ospf authentication-mode keychain 1