作用:匹配数据包的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、非骨干区域必须围绕着骨干区域建立
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
1、版本要一致 2、router id不能一致 3、区域id要一致 4、认证要通过 5、掩码要一致 6、hello时间/超时时间要一致 7、option字段(E、N)要一致
(注:每一份hello报文都需要进行检测)
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报文交互的有序性;
选举时机: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/BDR | hello/超时时间 | 报文发送方式 | 备注 |
---|---|---|---|---|---|
广播型网络(MA) | 以太网链路 | 选 | 10s/40s | 组播:hello、LSU、LSACK(224.0.0.5/224.0.0.6) | 单播:DD、LSR |
P2P | 串行链路 | 不选 | 10s/40s | 所有报文都是组播发送(224.0.0.5) | 无 |
NBMA | FR(帧中继) | 选 | 30s/120s | 所有报文都是单播报文 | 无 |
P2MP | 手工修改 | 不选 | 30s/120s | 组播:hello | 其余:单播 |
P2P网络不需要选举DR/BDR的原因,因为用串行链路相连的设备,只能是两台路由器直接相连,无论是否选举DR/BDR,结果都是两台设备建立邻接关系,因此为了加快邻居的建立过程,没有必要选举;
当只有两台设备用以太网链路直连时,可以将接口的网络类型调成P2P,加快收敛速度;
在ospf中,一定会有DR/BDR吗? 不一定
网络类型为P2P、P2MP时没有; 当网段内所有设备的dr优先级均为0时;
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报文都要进行认证;
1、接口认证 2、区域认证
1、明文认证(simple) 2、密文认证(md5、keychain、华为私有)
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