OSPF总结
OSPF
触发更新
管理距离110
OSPF没有传输层,直接封装于IP,协议号为89
OSPF使用组播地址
所有路由器224.0.0.5 DR和BDR:224.0.0.6
链路状态路由协议
1.路由器将自己接口所在的链路署名后发送给邻居
2.邻居将此信息保存在链路状态数据库中
3.收敛完成后(路由器几乎收到全网拓扑),使用SPF计算最短路由,写入路由表
OSPF邻居建立
只与DR和BDR建立邻居,若有其他路由器,则卡在2-way的状态
7种状态
Down
路由器未运行OSPF
Init
路由器收到对方发过来的Hello中没有自己的route-id
2-way
路由器收到对方发过来的Hello中有自己的route-id,表示已经双向通信
如果是广播网络,则等待40s,等所有路由器的hello包都充分交换,最大作为DR,过时不候
Ex-Start
路由器发送空的DBD(链路状态描述信息)用于选举谁来主导整个过程,比较Router-id大
L(置位表示选举未完成)、M(置位表示这不是最后一条消息)、MS(置位表示自己的Master)
Ex-Change
路由器互相交换DBD,(Slave先把自己的DBD发给Master)
比对哪些LSA是自己没有的
Loading
向对方发送LSR请求那些自己需要的LSA
接受对方的LSU,并且回复LSAck确认
Full
完成建立过程
OSPF报文类型
5种报文类型
Hello 建立和维护OSPF邻居关系。
DBD 链路状态数据库描述信息(描述LSDB中LSA头部列表)
LSR 链路状态请求,向OSPF邻居请求链路状态信息
LSU 链路状态更新(包含一条或多条LSA)
LSAck 确认报文
OSPF的三张表
邻居表
链路状态数据库
sh ip ospf database
age死亡时间(3600s),更新时间(1800s)
会定时刷新,每一次刷洗序列号+1
路由表
LSA类型
1.Router 用于描述自己借接口的链路相关信息 本区域传递
2.Network DR产生的,用于描述所在网段的信息 本区域传递
3.Summary ABR产生的,用于搬运区域之间的路由 OSPF全境传递
4.Summary ASB ABR产生,用于告知内部如何离开本AS OSPF全境传递
5.Type-5 ASBR产生,用于描述AS外部路由信息 OSPF全境传递
7.Type-7 NSSA内部的ASBR产生,用于描述AS外部路由信息 只在NSSA中传递
路由类型
O OSPF区域内路由
O IA OSPF区域间路由
O E1 1类外部路由(每经过一台路由器,都加上metric),此类型在NSSA中显示为O N1
O E2 2类外部路由(在OSPF境内始终是原metric),此类型在NSSA中显示为O N2
如果从四种类型中学到同一条路由:O>O IA>O E1>O E2
OSPF特殊区域
stub
不会学习境外的路由 产生默认路由
router ospf 1
area 1 stub //每个路由器都要配置
totally stub
不会学习区域外路由 产生默认路由
在设置了stub的基础上,在ASBR上设置
router ospf 1
arae 1 stub no-summary
NSSA
该区域内不允许存在5类LSA,外部路由以7类LSA出现,ABR再转为5类LSA发送到其他区域
可以引入外部路由
router ospf 1
area 1 nssa
area 1 nssa default-information-originate
//下发默认路由(默认不下发),一般只配置在ABR
//只有NSSA默认不下发默认路由
坑:有可能Forward address(引入外部路由的路由器)到达不了
解决方案:ABR在将7类LSA转换为5类LSA时将Forward地址改为自己
router ospf 1
area 1 nssa translate type7 suppress-fa
Totally NSSA
不会学习其他区域的路由
router ospf 1
area 1 nssa no-summary
route-id
优选环回接口中最大的
次选物理接口中最大的
在不重启路由器的情况下,只能手工修改。
DR的选举
1.先比接口优先级(默认为1,为0则不参与选举)
ip ospf priority 10 //修改接口优先级
2.route-id大者为DR,其次为BDR
“某个路由器是DR”这个说法是错误的,应该说是某个接口是DR或者某个路由器在某个区域是DR
某个接口单独起OSPF协议,它自己就会成为DR
DR发生故障一定是BDR成为DR,BDR从其他路由器里选
路由宣告
router ospf 1
network 172.16.0.0 0.0.255.255 area 0 //宣告进area 0
OSPF默认路由的注入
router ospf 1
default-information originate
default-information originate always //即是本地不存在默认路由,也下发默认路由
default-information originate always [metric-type 1|2] //设置路由类型,默认为OE2,不累积metric
路由汇总
无法在区域内汇总,因为所有路由器都知道整个网络的拓扑
可以在ABR和ASBR上汇总
在ABR上汇总
router ospf 1
area 1 range 172.16.0.0 255.255.0.0 //汇总区域1内的路由到其他区域
在ASBR上汇总
router ospf 1
summary-address 10.0.0.0 255.0.0.0
路由过滤
表示告诉其他路由器这条路由
在ABR汇总或者ASBR汇总命令后加not-advertise,这条命令就不再是汇总,而是路由过滤
非骨干区连接非骨干区
这样会导致不与骨干区相连的非骨干区学不到路由(因为没有ABR为其传递路由)
可以在中间的非骨干区打一条隧道
解决方案1:
子接口 //两个路由器都要设置
interface Ethernet0/0.1 //这个接口的ip按原来的,不变
encapsulation dot1Q 10
ip address 192.168.12.1 255.255.255.0
ip ospf 1 area 1
!
interface Ethernet0/0.2
encapsulation dot1Q 20
ip address 192.168.21.1 255.255.255.0
ip ospf 1 area 0
解决方案2:
GRE(通用路由封装)(ipip)
interface Tunnel0 //区域边界路由器上设置(其中一台设置完之后才是ABR)
ip address 192.168.54.4 255.255.255.0
ip ospf 1 area 0
tunnel source Ethernet0/1
tunnel destination 192.168.45.5
tunnel mode gre ip
解决方案3:
OSPF特有虚链路
router ospf 1
area 2 virtual-link 5.5.5.5 //5.5.5.5是对端的route-id
点对点
接口下:ip ospf network point-to-point
点对点不会选举DR和BDR
取消点对点,万一配置错误(在多台设备的局域网里配置点对点)
ip ospf network broadcast
被动接口
router ospf 1
passive-interface {e0/0 | default}
default将所有接口作为被动接口,然后可以单独no掉某个接口的passive
OSPF COST
OSPF接口COST=10^8/接口带宽 //修改接口逻辑带宽是无法改变COST的
接口模式下:ip ospf cost 10 //直接修改接口cost
以设备名作为router-id(DNS服务)
//1.开启DNS服务:
ip dns-server
ip host R1 1.1.1.1
//2.ip domain lookup
//3.ip ospf name-lookup
//4.ip name-server {DNS服务器IP}
router ospf 1 //路由重分布
redistribute connected subnets //redistribute(重新分配; 再分配)
//将直连路由以外部的方式宣告进ospf
-----
OSPF身份验证
明文:
接口认证:Router(config-if)# ip ospf authentication-key password
Router(config-if)# ip ospf authentication
区域认证:Router(config-if)# ip ospf authentication-key password
Router(config-router)# area area-id authentication
密文:
接口认证:Router(config-if)# ip ospf message-digest-key key-id md5 <key>
Router(config-if)# ip ospf authentication message-digest
区域认证:Router(config-if)# ip ospf message-digest-key key-id md5 <key>
Router(config-router)# area area-id authentication messae-digest