<OSPF(Open Shortest Path First)>
1 serial default cost 64 bandwidth 1.544m/kbps
2 ethernet default cost 10 bandwidth 10m
3 loopback default cost 1 bandwidth 8G
OSPF 中的被动接口也是不收不发
·OSPF属于IGP,是Link-State协议,基于IP Pro 89。
·采用SPF算法(Dijkstra算法)计算最佳路径。
·快速响应网络变化。
·网络变化是触发更新。
·以较低频率(每隔30分钟)发送定期更新,被称为链路状态刷新。
OSPF维护的3张表:
1)Neighbor Table:
确保直接邻居之间能够双向通信。
2)Topology Table:
LSDB(Link-State DataBase),同一区域的所有路由器LSDB相同。
3)Routing Table:
对LSDB应用SPF算法,选择到达目标地址的最佳路由放入路由表。
·Transit area (backbone or area 0)
主要功能:为快速、高效地传输数据包。通常不接用户。
·Regular areas (nonbackbone areas)
主要是连接用户。而且所有数据都必须经过area 0中转。
包括:Stub / Totally Stubby / NSSA
·为减少LSA和LSDB,OSPF用Area来分隔路由器。
区域中的路由器保存该区域中所有链路和路由器的详细信息,
但只保存其他区域路由器和链路的摘要信息。
·P2P链路可以到达FULL状态。
·MA网络,所有路由器只和DR/BDR(Backup Designated Router)到达FULL状态。
·路由更新只在形成FULL状态的路由器间传递。
·Hello Intervals:10S/30S
·Dead Interval:4*Hello =40S 不同于其它协议的三倍于Hello时间
·OSPF Cost = 108/BW (bps) 环回口的COST值是1,serial口的COST值是64,以太口是10
·OSPF的5种报文:
1)Hello:发现并建立邻接关系。
2)DBD:包含路由的摘要信息。
DBD包中有三个字段:I、M、master/slaver
I
M
M/S
1
1
1
0
1
0
0
1
1
分别是0x7,0x2,0x3
3)LSR:向另一台路由器请求特定路由的完整信息。
4)LSU:回应LSR该条路由的完整信息。在OSPF中,只有LSU需要显示确认
5)LSAck:对DBD/LSU做确认。
Route-ID:
为唯一标识OSPF域中路由器。
设置Route-ID的优先顺序:
1)手工指定Route-ID x.x.x.x(可任意,但不能重复)
2)最大的Loopback IP
3)最大的接口IP(保证接口是激活状态)higher active physical interface ip
ID也可以写成十进制格式,例如:0.0.1.0=256
OSPF建邻居的必要条件:
1)Hello/Dead Intervals
2)Area ID
3)Authentication Password
4)Stub Area Flag
5)MTU
6)subnet mask(必须是同一个网段)
DR/BDR的选举:
1)比较优先级,越大越优(默认为1,如设为0表示不参与选举)
2)比较Route-ID,越大越优。
·DRother发送给DR/BDR用224.0.0.6
·DR发送给DRother用224.0.0.5
·非MA网络(没有DR/BDR),路由器都用224.0.0.5
OSPF中,DR的选举有以下特点:1、不抢占
2、when DR down,BDR成为DR
3、DR是一个接口的概念
4、不同网段分别选DR/BDR
<OSPF>
R1(config)#router ospf 110
R1(config-router)#network 1.1.1.0 0.0.0.255 area 0(正/反掩码皆可)
R1(config-router)#network 12.1.1.0 255.255.255.0 area 0
R1#show ip protocols
R1#show ip ospf interface
R1#show ip ospf interface brief
R1#show ip ospf neighbor
查看Router-id
network 1.1.1.0 0.0.0.255 area 0.0.0.0
不同进程号
不同Area
Hello/Dead Intervals
R4(config-if)#ip ospf hello-interval 9
(dead自动*4)
R4(config-if)#ip os dead-interval 80
<DR/BDR>
1)DR正常时,即使有新的Pri比DR高的路由器也不能抢占成为DR。
2)DR正常时,BDR只接收所有信息,但转发LSA和同步LSDB的任务由DR完成,当DR故障时,BDR自动成为DR,完成原DR的工作,并选举新的BDR。
3)DR是个接口概念。每个网段都会选举DR。
R1#show ip os database
<LSA(Link-State Advertisement)>
1、
传播范围 2、由谁产生 3、包含内容
·ADV Router指Router-id
1 2 3 4 5 7
Link ID RID DR IP Route ASBR RID Route Route
LSA1(Router Link States)
R1#show ip ospf database router 查看LSDB中的1类LSA的详细信息
域内路由,仅在本区域传递,描述本区域链路、路由信息,不会穿越ABR。
每台路由器都会产生。包含本路由器的直连的邻居,我所连的网络的路由信息
Link ID: router ID
ADV router: router ID
三种信息:Another network stub network transit network(Ma网络的一些信息)
LSA2(Net Link States)
R1#show ip ospf database network
只有MA网络才会产生LSA2,由DR发出,仅在本区域传递。标识出本MA网中有哪些路由器以及本网的掩码信息。
Link ID: DR的接口IP
ADV router: router ID
LSA3(Summary Net Link States)
R1#show ip ospf database summary
域间路由,能泛洪到整个AS,由ABR发出,穿越一个ABR,其ADV Router就会变成此ABR的Router-id.
包含本区哉中的所有路由信息
Link ID: 路由route(网络号)
ADV router: ABR的router ID(经过一个ABR,就会改为这个ABR的router ID)
LSA4(Summary ASB Link States)
R1#show ip os database asbr-summary
把ASBR的Router-id传播到其他区域,用于其他区域的路由器得知ASBR的位置。由ABR产生并发出,穿越一个ABR,其ADV Router就会变成此ABR的Router-id.
在ASBR直连的区域内,不会产生4类的LSA,因为ASBR会发出一类的LSA,其中会指明自已是ASBR
Link ID: ASBR的RID
ADV router: ABR的router ID(经过一个ABR,就会改为这个ABR的router ID)
LSA5(Type-5 AS External Link States)
R1#show ip os database external
域外路由,不属于某个区域,ASBR产生,泛洪到整个AS。不会改变ADV Router。
包含域外的路由
Link ID: 路由(网络号)
ADV router: ASBR的router ID (unchange)
LSA7(Type-7 AS External Link States)
R2#show ip os database nssa-external
只存在于NSSA区域中。
R2(config-if)#bandwidth 5000
R2(config-if)#ip ospf cost 30
·重分布进OSPF的路由默认为E2,Cost=20,且传递过程中不改变COST。
如果改为E1类型,则在传输过程中会累加每个入接口的cost值
R4(config-router)#redistribute rip subnets metric 8
新命令:
Router(config-router)#max-lsa maximum-number [threshold-percentage] [warning-only] [ignore-time] [ignore-count] [reset-time]
<修改Cost参考值>
R1(config)#router os 110
R1(config-if)#ip ospf cost 10
R1(config-router)#auto-cost reference-bandwidth 1000 (Mbps10的六次方)在COST公式中修改分子,本例修改分子为10的九次方
<域间汇总>
R2(config)#router os 110
R2(config-router)#area 0 range 172.16.32.0 255.255.224.0
(汇总哪个区域的路由)
本地产生 O 172.16.32.0/19 is a summary, 00:00:06, Null0
建议在本区域的所有ABR上做。
<域外汇总>
R4(config)#router os 110
R4(config-router)#summary-address 44.0.0.0 255.0.0.0 (在ASBR上做)
本地产生 O 175.5.64.0/22 is a summary, 00:00:04, Null0
<向OSPF域注入默认路由>
第一种做法:
R4(config)#ip route 0.0.0.0 0.0.0.0 Serial 0
R4(config-router)#default-information originate
O*E2 0.0.0.0/0 [110/1]
第二种做法:
R4(config-router)#default-information originate always
R4(config-router)#default-information ori alw metric-type 1 metr 3
<Stub>
·将某区域设为Stub可缩小区域的LSDB,降低内存消耗。阻止LSA4/5进入Stub区域。
R2(config-router)#area 2 stub
·由ABR发出一条LSA3默认路由给Stub的其他路由器。
默认的Seed Cost=1
R2(config-router)#area 2 default-cost 6 (在ABR上做,改Seed Cost=6)在同时有两个ABR的情况下,通过修改这个COST值来实现选路
·必须将Stub区域的所有路由器都配成Stub。
Stub区域不能用作虚链路的中转区域。
Stub中不能出现ASBR。
Area 0不能配成Stub。
<Totally Stubby > Cisco 私有
·更加缩小区域的LSDB,在Stub基础上,阻止LSA3。(阻止LSA3/4/5)
R2(config-router)#area 2 stub no-summary (只需在ABR上做)
<NSSA(Not-So-Stubby Areas)>
·只有NSSA区域中才会现LSA7,可以存在ASBR。
阻止LSA4/5。
ABR将LSA7转成LSA5,传播到其他区域。
R2(config-router)#area 2 nssa (没有产生默认路由)
R2(config-router)#area 2 nssa default-information-originate
(在ABR上做,由ABR产生一条LSA7默认路由传播到NSSA其他路由器,默认Seed Cost=1,并且不会发生变化)
R2(config-router)#area 2 default-cost 6 (在ABR上做,改Seed Cost=6)
R2(config-router)#area 2 nssa default-information-originate metric 6 metric-type 1
Metric-type 1的作用是将N2类型的路由改为N1类型的路由
R2(config-router)#area 2 nssa no-redistribution 在ABR上做
(对ABR上有外部路由进入NSSA区域时,将其阻止,因为在ABR向nssa区域下发默认路由后,不需要它再将它直连的一些外部区域路由传进NSSA区域)以上两个命令可以打在一起。
R2(config-router)#area 2 nssa no-summary 把三类的LSA也干掉,同时也下发一条默认路由,并且这条默认路由会取代default-information-originate所下发的默认路由
(Totally NSSA,阻止LSA3/4/5,由ABR产生LSA3默认路由传播到NSSA其他路由器)
R2(config-router)#area 2 nssa no-redistribution default-information-originate no-summary
(LSDB中会出现LSA3/7默认路由,路由表中只会显示LSA3默认路由)
<OSPF区域问题>
1)在ABR上起不同OSPF进程,进行OSPF之间的重分布。
例如:R3的s1口在area 1中,进程号是10,s0口在area 3中,进程号是20
Router ospf 10 router ospf 20
Redistribute ospf 20 subnets redistribute ospf 10 subnets
2)tunnel 只要在区域的两个过界上配置
Int tunnel 1 int tunnel 3
Tunnel source s1 tunnel source s1
Tunnel destination 13.1.1.3 tunnel destination 13.1.1.1
Ip add 111.1.1.1 255.255.255.0 Ip add 111.1.1.3 255.255.255.0
Router ospf 10 router ospf 10
Net 111.1.1.0 0.0.0.255 area 0 net 111.1.1.0 0.0.0.255 area 0
3)虚链路:
最简单的方法,只需在区域的两台边界路由器上配就可以了
R3(config-router)#area 2 virtual-link 2.2.2.2
(中转区域) (对方Router-ID)
·远离Area0 / 分隔的Area 0
R2#show ip ospf virtual-links
<负载均衡>
·OSPF只支持等价的负载均衡。(默认为4条)
R1#show ip protocols
R1(config)#router ospf 110
R1(config-router)#maximum-paths 6(最多6条)
<被动接口>
R1(config)#router ospf 110
R1(config-router)#passive-interface loopback 0
接口将不收发Hello包,但此接口还是被宣告进OSPF。
其他路由器仍可收到这接口的路由。
<认证>
·分Link/Area/Virtual-Link 3种认证
每种认证都分为 simple password (plain Text) & MD5
R1#debug ip ospf adj
Link:同一链路上的路由器之间,在接口下做
R1(config-router)#int s1
R1(config-if)#ip ospf authentication-key wolf (配明文密码)
R1(config-if)#ip ospf authentication (启动明文认证)
R1(config-if)#ip ospf message-digest-key 1 md5 wolf (配密文密码)
R1(config-if)#ip ospf authentication message-digest (启动密文认证)
Area:接口下配密码,进程下调用
R1(config-router)#int s0
R2(config-if)#ip ospf message-digest-key 1 md5 wolf (配密文密码)
R2(config-router)#area 0 authentication Message-digest (启动密文认证)
区域内的所有路由器都要认证。
Virtual-Link:
R2(config-router)#area 2 virtual-link 2.2.2.2 message-digest-key 1 md5 wolf (配密文密码)
R2(config-router)#area 2 virtual-link 2.2.2.2 authentication message-digest (启动密文认证)
如果Area0启动认证,在Virtual-Link上也要启动相应的认证。
<OSPF Network Type>
1)LOOPBACK: Loopback 32位主机路由
2)POINT_TO_POINT: Serial / FR's P2P Subif / BRI (无DR,组播更新)
3)BROADCAST: Ethernet / Token Ring (选举DR,通过组播建邻居,更新)
4)NON_BROADCAST(NBMA): FR's Physical / FR's MP Subif (单播更新,选举DR)
5)POINT_TO_MULTIPOINT: (无DR,出现/32主机路由)
6)POINT_TO_MULTIPOINT NON_BROADCAST: (无DR,单播,出现/32主机路由)
[2/3] Hello:10S [4/5/6] Hello:30S
·每种接口都被赋予了默认的OSPF Network Type,但可手工对其修改。
将Serial的Network Type改为Boradcast,测试不同网段选举DR。
·NON_BROADCAST NBMA
FR的物理接口和多点子接口默认是NBMA网络类型
R1(config-if)#ip ospf network non-broadcast
R1(config)#router os 110
R1(config-router)#neighbor 12.1.1.2 由于是单播更新,必须指定邻居(只需一方设置就OK,一般在Hub指Spoke)
·POINT_TO_MULTIPOINT (BORADCAST)
R1(config-if)#ip ospf network point-to-multipoint
O 12.1.1.1/32 [110/64] via 12.1.1.1, 00:01:12, Serial0 (对方直连接口主机路由是32位)
·POINT_TO_MULTIPOINT NON_BROADCAST
R2(config-if)#ip ospf network point-to-multipoint non-broadcast
R2(config)#router os 110
R2(config-router)#neighbor 12.1.1.1
用show ip ospf interface serial 0看不到non-broadcast,只能show run
<同一网段Hub & Spoke OSPF>
·FR环境:关闭反向ARP,手工映射。
HUB可访问Spoke,Spoke之间不能互访。
________________________________________________________________________________________
应用环境 不支持广播的物理网络 支持广播的物理网络
(FR map 不加Broadcast) (FR map 加Broadcast)
________________________________________________________________________________________
单播 组播
________________________________________________________________________________________
NON_BROADCAST BROADCAST
手工NEI 自动NEI
手工映射 手工MAP 手工MAP
手工DR 手工DR
________________________________________________________________________________________
P2MP NBMA P2MP
手工NEI 自动NEI
自动映射 自动MAP 自动MAP
无DR 无DR
________________________________________________________________________________________
·NON_BROADCAST
·3层是NBMA,2层是否让通过广播都无所谓。(FR map后加不加Broadcast皆可)
在HUB端(R1)单播
R1(config)#router os 110
R1(config-router)#neighbor 145.1.1.4
R1(config-router)#neighbor 145.1.1.5
确保HUB成为DR,和Spoke交互路由信息。
R1(config)#int s0
R1(config-if)#ip ospf priority 2
R4/R5(config-if)#ip ospf priority 0
R4: O 5.5.5.0 [110/65] via 145.1.1.5, 00:00:07, Serial
手工MAP(Spoke 端的互访)
R4(config-if)#frame-relay map ip 145.1.1.5 401
R5(config-if)#frame-relay map ip 145.1.1.4 501
·BROADCAST
·3层是BMA,2层也一定要让广播通过。(FR map后一定要加Broadcsat)
R1(config-if)#fram ma ip 145.1.1.4 104 broadcast
R1(config-if)#fram ma ip 145.1.1.5 105 broadcast
确保HUB成为DR,和Spoke交互路由信息。
R1(config)#int s0
R1(config-if)#ip ospf priority 2
R4/R5(config-if)#ip ospf priority 0
R4: O 5.5.5.0 [110/65] via 145.1.1.5, 00:00:07, Serial
手工MAP
R4(config-if)#frame-relay map ip 145.1.1.5 401 broadcast
R5(config-if)#frame-relay map ip 145.1.1.4 501 broadcast
·POINT_TO_MULTIPOINT NON_BROADCAST cisco专有的
·3层是NBMA,2层是否让通过广播都无所谓。(FR map后加不加Broadcast皆可)
在HUB端(R1)单播
R1(config)#router os 110
R1(config-router)#neighbor 145.1.1.4
R1(config-router)#neighbor 145.1.1.5
R4: O 145.1.1.5/32 [110/128] via 145.1.1.1, 00:00:24, Serial1
产生/32主机路由,且下一跳指向HUB,所以不需手工MAP。这就是32位的好处。
·POINT_TO_MULTIPOINT 全自动,最好的
·3层是允许广播,2层也一定要让广播通过。(FR map后一定要加Broadcsat)
·R1#show ip os neighbor detail
DR is 0.0.0.0 BDR is 0.0.0.0
P2P/P2MP/P2MP NBMA都不需要选举DR/BDR,所以DR is 0.0.0.0 BDR is 0.0.0.0
·POINT_TO_POINT(做不同网段)
HUB端起2个P2P子接口:
interface Serial0
encapsulation frame-relay
no frame-relay inverse-arp
interface Serial0.14 point-to-point
ip address 14.1.1.1 255.255.255.0
frame-relay interface-dlci 104
interface Serial0.15 point-to-point
ip address 15.1.1.1 255.255.255.0
frame-relay interface-dlci 105