ospf
ABR和ASBR的区别
官方建议中大型网络的规模参考 根据spf算法 而不是路由器的硬件性能强弱
a ABR最多关联3个区域
b 单区域内路由器最多50台
c 一台运行ospf的路由器 邻接关系的邻居最多60台
路由器的角色
ABR 不同的接口被宣告进不同的区域 其中至少一个接口在area0 所有接口都运行ospf协议
ASBR 不同的接口被宣告进不同的区域 系统边界路由器 除了运行ospf外还会运行其他的某种路由协议 将其他协议 的路由通过重分发的形式引入到ospf域内 必须关联多个区域
可以是ABR 可以是area0内的路由器 也可以是常规区域内非ABR的路由器
一 LSA
类型 共11种 常用前7种
第6类LSA 在单播中不存在 MOSPF 为组播做路由
第7类LSA 是特殊的nssa类型的 单讲
重点1 2 3 4 5是本节的重点内容
LSA的研究方向
a 传播范围
b 该LSA的通告者 谁产生的
c LSA包含的内容 包含的是拓扑信息还是路由信息
1 router LSAs
a 在单区域内泛洪 不会通过ABR-----传播范围
b one router LSA (type1) for every router in an area
每个区域内的每台路由器生成一条类型为1的LSA 无论一台路由器有多少个接口宣告进一个区域
都只发送一条1类LSA
identified by the router id of the originating router
每条1类LSA中的唯一标识符是router id
当在路由器接口宣告ospf域时 举例network 192.168.1.1 0.0.0.0 area 0 就会在area0内发送一类LSA
c 包含的内容:单区域内纯拓扑信息
1 描述该路由器所有的直连的链路列表 这些链路信息是单区域内 不会跨区域
2 链路的前缀 掩码及链路类型
实验
r1 12.1.1.1 255.255.255.0 开启环回口
router-id 1.1.1.1
network 1.1.1.1 0.0.0.0 area 0.0.0.0
network 12.1.1.1 0.0.0.0 area 0.0.0.0
r2 12.1.1.2 255.255.255.0
router-id 2.2.2.2
network 2.2.2.2 0.0.0.0 area 0.0.0.0
network 12.1.1.2 0.0.0.0 area 0.0.0.0
router ospf 110
建立邻居关系 查看路由是否都能得到
查看LSDB命令 显示本地的链路状态数据库
show ip ospf database
在图中可以看到有两条1类的LSA 但是在r1和r2上一共宣告了4个接口在area0中
所以结论是无论一个路由器宣告几个接口在一个区域内 都只发送一条1类的LSA报文
区域内所有的LSA信息应该一致所以在r2上的图与此图完全一致
link id 为1类LSA标识 是router -id
adv router -=====advertise 通告 表明通告者 也就是哪个路由器发出的这个LSA router-id
age 老化时间 60分钟 从小到大计时
seq 序列号 最初应该是0x80000001
checksum 校验和
link count 链路数量 关于此条LSA共有3条链路 但是宣告时候只有一个环回口和一个物理接口串口
正常是应该有两个
串口在1类LSA信息 会形成两条链路信息 一条末节网络链路信息 另一条点到点链路信息
所以实际链路是===link count-1
一台路由器如果拥有router-id 并且与其他路由器已经建立邻接关系
如果想强制修改router-id 一种方式是重新启动 另一种方式是重置路由器ospf进程
router-id *.*.*.* 先修改成需要的值 再清理ospf的进程
clear ip ospf process
以上是LSA的摘要信息
下面介绍1类LSA的详细内容 命令
show ip ospf database router
总结:传播范围: 只能在一个区域内传递 不能穿越ABR
通告者:每台属于一个区域的路由器都会基于该区域通告一条1类LSA
包含内容:拓扑信息 其中描述该路由器所有宣告进该区域的链路的前缀 掩码 网络类型以及度量值
LINK-ID:通告该LSA的路由器的RID
ADV ROUTER :通告该LSA的路由器的RID
2.NETwork LSA 网络LSA
范围:floods winthin its area only ;does not cross ABR--------区域内 不同穿越ABR
通告者:advertised by the DR of the broadcast network--------DR
内容:one network(type2)LSA for each transit broadcast or NBMA network in an area
includes list of attached routers on the transit link
includes subnet mask of link
MA网段 在单区域内 DR通告一条2类LSA
有多少个MA网段就会有多少份2类LSA
内容与1类LSA内容一致 都是拓扑信息
包含所有和该MA网段直连的路由器列表 router-id
描述该MA网段的掩码长度是多少位
实验
定义ip地址 点到点同上实验
MA网段 100.1.1.0
r1 100.1.1.1
r2 100.1.1.2
宣告network 100.1.1.1 0.0.0.0 area 0
现在出现了 net link states 2类LSA
DR 是r2
adv router =====r2的id
link id====r2接口的ip地址
缺少link count 在2类LSA中不描述链路逻辑客观信息
详细看信息
show ip ospf database network
问题1:在上图中再加一r3用串口与r1相连 也在area0中 r3收到100网段的路由 是通过几类LSA获得
答案:1类和2类相加 才能得到路由条目
形成路由条目的要素 :前缀 掩码 度量值
总结:传播范围 同1类
通告者:MA网段中的DR
包含的内容:纯拓扑信息
该MA 网段直连的所有路由器的RID信息 该MA 网段的掩码
LINK-ID:该MA网段DR接口的ip地址
ADV Router: 该DR的RID
3.summary LSA 默认不汇总 可以汇总
域间传递的LSA
正常情况下ABR域间传递LSA时不做汇总
传递范围:除了关于这些路由产生的区域之外的所有其他的ospf路由选择域
area1产生的由abr1传到area0和area2
通告者:ABR
内 容:纯路由信息
一台ABR 收到多条1类LSA 2类LSA 从而形成多条路由 ABR分别针对每条域间路由生成一条3类 LSA 发到其他区域
实验:
r1 s1/0 13.1.1.1 255.255.255.0
network 13.1.1.1 0.0.0.0 area 1
r3 s1/1 13.1.1.3 255.255.255.0
loopback 3.3.3.3 255.255.255.0
network 13.1.1.3 0.0.0.0 area 1
network 3.3.3.3 0.0.0.0 area 1
此时r3不会收到area0中的1类和2类LSA
查看路由表
显示show IP route
路由表中显示的是O IA 表示ospf inter area 域间路由
Show ip ospf database
ADV ROUTER 为r1的router-id
Link-id ===== 域间路由条目前缀 4条3类LSA
显示3类LSA详细内容
Show ip ospf database summary
r1通告的r1环回口的 1.1.1.1 /32 metric 1
r2的环回口 2.2.2.2/32 metric11
r1-r2串口 12.1.1.0 /24 metric 64
r1-r2MA网段 100.1.1.0 /24 metric 10
r1#show ip ospf database
会显示area0的1类LSA 2类LSA 3类的LSA(原因ABR会将area1的路由传递给area0) 共两条3的环回口和13 网段
area1的1类LSA 3类LSA
每个ABR关于每个区域维护一张独立的LSDB
总结:传播范围:除了该区域外的整个ospf路由选择域
通告者:ABR
内容:一条3类LSA包含一条ospf域间路由 O IA
LINK-ID:3类LSA路由的前缀
ADV ROUTER:ABR的RID 3类LSA在ospf路由选择域内传递的时候为了保证可达性 每跨越一个ABR都会 自动改写为该ABR的RID
5.EXTERNAL LSA 外部LSA
实验
在以前的图中再加入r4 和r5
r4 s1/0 ospf 24.1.1.2 255.255.255.0
loopback0 4.4.4.4 255.255.255.0
fa0/1 24.1.1.4 255.255.255.0
r5 fa 0/0 eigrp 45.1.1.5 255.255.255.0
loopback 0 5.5.5.5 255.255.255.0
r5#router eigrp 90
no auto-summary
network 5.5.5.5 0.0.0.0
network 45.1.1.5 0.0.0.0
此时查看r4的路由条目 其中有O IA和D 标记的路由
r2上验证 ABR和ASBR
r2#show ip ospf border-routers
此时未显示r4的信息
ASBR 满足的条件 1 . 运行多协议 2.重分发
r4#router ospf 110
redistribute eigrp 90 subnets
再次在r2上 show ip route 出现了O E2的路由 即外部引入的路由条目
r2#show ip ospf border-routers 会出现r4为ASBR的信息
r4#show ip ospf database
会出现5类的LSA信息 不会和任何区域关联 相较之前的字段 多出了tag字段
tag字段的意义 阿拉伯数字 默认为0 举例在route map抓包时 可以抓取Tag标签的路由条目
而不是前缀
r4#show ip ospf database external 显示详细内容
总结 5类
传递范围:整个ospf路由选择域
通告者:ASBR
内容:纯路由信息 一条ospf域外路由对应一条5类LSA
link-id 域外路由的路由前缀
ADV Router:ASBR 的RID 该LSA在ospf域内传递的时候 ADV Router值不会发生任何改变
r2通过show ip ospf database router 1类LSA 可以看出r4是ASBR
1类LSA报头中的2个bit 一个是B位 另一个是E位 单区域中通常都置0 ,但是当一台路由器连接多 个区域的时候,形成ABR时候 B位会置位 显示 area border router ;r4的通告信息会显示 AS BOUNDARY ROUTER E位置位
r2能知道r4是ASBR 但是r1和r3由于收不到r4的1类LSA的信息 所有1和3不知道r4是ASBR
由此出现了4类的LSA
4 .Summary ASB LSA
实验 同5实验图
r4#show IP ospf database
area2中 有1类 3类 5类
r2#show IP ospf database
area2中有1类 3类 5类
area0有summary ASB link states 此为4类LSA
#show ip ospf database asbr-summary
r1#show IP ospf database
其中的area0中的4类LSA与r2上看到的一样
但是在area1中的4类LSA的ADV Router变成了R1 link-id没有变化
结论:传递范围 除了ASBR所在的区域之外的整个路由选择域
通告者 和ASBR在同一个区域的ABR的路由器
包含内容 纯拓扑信息 描述了ASBR所在的位置
LINK-ID ASBR的RID
ADV Router 通告者ABR的RID 并且该值每跨越一个ABR都会自动改变 同3类LSA
总结 1类 和2类LSA形成的路由是O标记的标准域内ospf路由
3类形成的路由是O IA 的域间路由
5类形成的路由是O E1或者O E2(缺省)的 域外路由
6.O E1和O E2路由的区别
r2#show ip route
从图中可以看到 O O IA O E2标记的路由条目中的管理距离和度量值
r1#show IP route
在r1和r2中 的O E2标记的到5.5.5.0的度量值都是20 没有变化
同理在r3上的度量值也是20 也就是度量值不累加 由于此路由是eigrp协议引进ospf域内的 计算度量值的方法不同 所以强制设置一个度量值 此度量值不变 称为seed metric 种子度量值
种子度量值 :对于ospf 将bgp路由重分发进入 则seed metric默认为1 所有其他外部路由缺省seed metric是20.
将OE2修改为OE1的方法
1.在通告者(ASBR)上修改 r4 做重分发时修改
2.命令
r4#router ospf 110 110为ospf 进程号
#redistribute eigrp 90 subnets metric-type 1 90为eigrp进程号
3.查看r2# show IP ospf database external metric type 变为1
show IP route OE2变为OE1
但是度量值20变为84
ospf 度量值===控制层面路由流向入接口的度量值累加
默认20未变 r2的s1/1 串口为10的8次方/1544000==64 所以度量值为20+64=84
r1的s1/1接口度量值为84+10=94
r3的s1/1接口度量值为94+64=158
所以 1关心内网路径好坏时候使用OE1 2 内网小 不需要判断路径好坏 则使用OE2
4.修改种子度量值的方法
r4#router ospf 110
#redistribute eigrp 90 subnets metric-type 1 metric 100 tag 20
其中的100是修改后的度量值 tag 20表示给此路由条目加上一个标识 便于高级工具抓取 做策略
查看r2#show ip ospf database
或者#show ip route
查看路由条目明细 #show IP route 5.5.5.0 255.255.255.0
7.路由的汇总和聚合及特性
域间汇总需要在ABR上部署 实现对3类LSA的汇总传递
域外汇总需要在ASBR上部署 实现对5类LSA的汇总传递
a 域间汇总
要求:在r1上增加的4个网段 202.10.8.0-202.10.11.0/24 实现汇总
命令:开启4个环回口 主机位设置为1
loopback5 202.10.8.1
loopback6 202.10.9.1
loopback7 202.10.10.1
loopback8 202.10.11.1
同时宣告4个环回口进入ospf
router ospf 110
network 202.10.8.0 0.0.3.255 area 0
在r1上将4个loopback类型网络还原成自然掩码
int loopback 5
IP ospf network point-to-point
同理6 7 8 一样设置
在r2和r3上验证
show IP route ospf
在r1上做汇总 汇总命令与rip与eigrp的区别 前者是链路级别 后面的两个是接口级别
r1#router ospf 110
#area 0 range 202.10.8.0 255.255.252.0 只是针对3类LSA做的汇总
域间汇总完成 此时r3中show IP ospf database中显示的汇总的路由 但是在r4上显示的同样是明细路由并没有汇总 原因是r2与r1直连能够收到4条明细路由 此时r2作为ABR同样把4条路由转换成3类LSA 明细路由 传递给其他区域 如果想在所有区域内都收到汇总的路由 建议将区域中的所有ABR都做路由汇总
所以r2同样需要汇总
r2#router ospf 110
#area 0 range 202.10.8.0 255.255.252.0
域间汇总的参数
area 命令中有3个参数
advertise (default)
cost 度量值 可以修改 体现ospf的高可控性
例如 area 0 range 202.10.8.0 255.255.252.0 cost 36 就将度量值修改成36 再发送出去
not-advertise 汇总之后不通告 可以用于路由过滤 明细和汇总路由都被抑制
举例1 area 0 range 202.10.8.0 255.255.252.0 not-advertise
在r3上show ip route ospf之后会发现汇总路由消失了
举例2 如果想实现抑制8.0和9.0的路由条目 但是放行10.0和11.0的的路由条目
可以将前两个汇总成一条路由 not-advertise 202.10.8.0 255.255.254.0
后两个汇总成一条路由 默认通告即可 202.10.10.0 255.255.254.0
即可实现路由的过滤 繁琐不建议
题外话 路由过滤的方式简介 使用前缀列表抓取
要求同上 过滤8 9 放行10和11
r1#ip prefix-list 10 seq 10 deny 202.10.8.0/23 ge 24 le 24 拒绝这些路由
#ip prefix-list 10 seq 10 permit 0.0.0.0/0 le 32 放行所有路由
#router ospf 110
#area 1 filter-list prefix 10 in
然后在聚合
r1#area 0 range 202.10.10.0 255.255.254.0
b 域外汇总
需要在ASBR上做
r5开启loopback5-8 4个环回口 并且汇总
ip地址分别对应 192.168.8.0/24 9.0 10.0 11.0
r5#router eigrp 90
#network 192.168.8.0 0.0.3.255
在r4上查看 #show ip route eigrp 90 可以看到明细路由
r4#router ospf 110
#summary-addreess 192.168.8.0 255.255.252.0
会生成指向null0接口的汇总路由
在r2和r1上都可以看到此汇总路由
OSPF LSDB OVERLOAD PROTECTION
LSDB过载保护 主要用于性能不高的路由器 过载保护
实验略
修改OSPF度量值
#ip ospf cost interface-cost
默认是10的8次方除以接口带宽
#int serial 1/1
#IP ospf cost 66 将度量值修改为66
***比较重要的命令 auto-cost reference-bandwidth ref-bw
10的8次方 相当于带宽的百兆 当网络内千兆和万兆时度量值都是1 无法区分更好的路径
所以需要修改计算公式中的分子的大小 即将10的8次方改大 改成10次方或更多
命令
r3#router ospf 110
#auto-cost reference-bandwidth 100 其中100是缺省值
可以将100改为10000 即万兆
所以如果接口为百兆则度量值为100
千兆度量值为10
万兆度量值为1
所以路径好坏 可见
但是要注意在ospf中 进程级别和接口级别都可以配置度量值 接口级别的优先级比进程级别的优先级 更高 所以上面的例子中 r3#show IP ospf interface 查看 cost没有变化
需要先去掉接口级别的度量值修改 no IP ospf cost 66 然后才能看到cost的值已经改变