十六、OSPF区域
1、 区域0:汇总每个区域的网络拓扑到其他区域。所有的域间通信量必须通过骨干区域,非骨干区域不能直接交换数据包。
2、 路由器类型:IR、BR、ABR、ASBR
3、 IR:所有接口都属于同一区域的路由器。
4、 BR:至少有一个接口是与骨干area0相连的路由器。Area0不一定是骨干区域,但骨干区域–定是area0,要成为骨干必须有一个邻接关系在里面
5、 ABR:连接其他区域到骨干区域,至少一个接口属于骨干区域。
6、 ASBR: OSPF域外部的通信量进入0SPF域的网络路由器。
7、 0SPF的虚链路:一条通过非骨干区域连接到骨干区域的链路。通过非骨干区域修复分段的骨干区域。它是逻辑通道,通过最优路径到达另一端。
- 它必须配置带两台ABR之间。
- 虚链路所经过的区域必须有全部路由选择信息。就是传送区域。
- 传送区域不能是末梢区域。
- 4虚链路是属于骨干区域的。
十七、LSA组步调
I0S11. 3之前:整个LSDB与LSRrefreshTime相关联(统一的计时器) ,每隔30分钟,路由器重发源与自己的所有LSA,不管这些LSA的老化时间。所以每隔30分钟,就产生一个区域通信量和CPU利用高峰。但让每个LSA有单独的计时器又是很浪费资源的。
一个折中的方案就是组步调,通过延迟重刷新时间,将这些LSA分组,每4min进行一- 次重刷新一组LSA。每4分钟一组!
命令: timers lsa- group- pacing ?/timers pacing lsa- group ?
十八、OSPF特殊区域
1、 Stubarea:不允许AS外部LSA通告在其内部进行泛洪扩散的区域,也不能有虚链路,无类型4和类型5!这区域的ABR向网络内通告一条summary LSA, 这条summaryLSA为缺省路由0.0.0.0。如果存在多余一个的ABR可能会产生次优路径。不存在ASBR,骨干区域不能为stub。
- Stub area 内Hello包中可选项E-bit被置0 (详见数据包可选项)。
- Stub area内的路由器不接受任何E- bit=1的hello包。这样就确保了
- stub area内 的路由器有相同的LSDB。
- Area area-id stub确保区域内所有路由器都配置此命令。否则无法建立邻居,一直 处于down状态
-
Area area-id default-cost ?外部网络通告到stubABR.上的度量值!
2、 Totally stubby area:阻塞类型3类型4和类型5。这样更节省内存,使用缺省路由到达除这个区域以外的所有目的地址!ABR只通告一条类型3的缺省路由,其他类型3不通告。
Area area-id stub no-summary 只需要在ABR.上配置加上no-summary
3、 NSSA:允许外部路由通告到0SPF自主系统内部,同时也保留自主系统其余部分的末梢区域特征。NSSA内的ASBR始发7类LSA通告那些外部网络地址。类型7会被ABR阻塞,被转换为5类。
- P-bit:NSSA的ASBR会设置或清除这个位。P-bit=1, NSSA的ABR收到后会将7类转为5类通告。P-bit=0, 不会7转5。就是不通告, 其他区域无法知道,只有一种情况P-bit=0就是NSSA区域的ABR进行重分布的时候。
- Area area-id nssa translate type7 suppress-fa (7转5后将FA字段变为0.0.0. 0, FA=forward address)
-
Area area-id nssa defaul t-informat ion-origi nate向NSSA以类型7(N2)的方式注入一- 条默认路由。ABR上设置! (必须,否则没有缺省)Area area-id nssa no-redistribute如 果ABR也是ASBR这可以阻止ABR向NSSA内部通告类型7。
4、 Totally NSSA :和NSSA相同只是在NSSA内部也没有类型3LSA。 只用在ABR上就可以。Area area-id nssa no- summary只会向NSSA内通告一个3类的缺省路由到NSSA区域.
5、 正常区域:有1类2类3类4类5类Stub area:有1类2类3类
6、 Stub area:有1类2类3类
7、 Totally stub:有1类2类3类只有缺省
8、 NSSA:有1类2类3类7类
9、 otally NSSA:有 1类2类3类只有缺省7类
十九、SPF的计算
1、 完整的SPF计算:以自己为根对目标网段的LSA进行详细的链路层计算和网络层计算,得出到达目的地的最佳路由。Area内是完整的SPF计算。
2、 部分SPF计算:计算到达area外的目的地。因为外部LSA和汇总LSA没有详细的链路状态信息(只路由可达信息),只计算到ABR的SPF算法。
3、
二十、OSPF建立邻接的过程
1、 R1首先有效,发送hello给R2。 由于没有任何邻居所以邻居列表为空,DR/BDR为0.0.0.0
2、 R2收到R1的hello后,将R1置为init,并发hello给R1,邻居列表加上R1的RID,并且DR/BDR为自己接口地址
3、 R1收到R2hel lo看到自己RID于是2WAY,然后到EXStart, R1发空的DBD,序列号为X,I=1, M=1 (图打印错误), MS=1,声明自己为主。
4、 R2收到DBD后将R1置为EXStart,响应一个DBD,序列号为Y,R2的RID更高,它把MS=1,声明自己为主
5、 主从协商完,R1将R2置Exchange,发送DBD给R2,序号为Y。MS=0, M=1, I=0
6、 R2收到这个DBD后,将R1置Exchange, 发DBD给R1,序列号为Y+1.这个DBD包含了link state sumnary list中LSA头部。
7、 R1收到后,返回一个序列号相同的DBD, 直至R2发出最后-一个DBD, M=0
8、 exchange状态完成,但是R1请求列表中还有LSR,所以进入loading
9、 R2收到最后一个DBD后,将R1置为FULL, 因为R2请求列表为空了
10、 R1发送LSR,R2发送LSU,过程直到R1请求列表为空,R1把R2也转换到full
二十一、OSPF路由器
1、 目的类型
- 网络条目:数据包所要转发的目的网络地址。
-
路由器条目:到达ABR和ASBR路由器的路由。
Show ip os border-routers查看ABR和ASBR路由器。这个内部的路由表中的所有目的地都是ABR和ASBR的路由器ID。
注意:i=区域内路由, I=区域间路由路径类型(0 0IA E1/N1 E2/N2)
2、 路径类型(0、 0IA、 E1/N1、 E2/N2)
- 0区域内路径:路由器在area内就可以到达的路径。
- 0IA区域间路径:目的地在其他区域但是还属于0SPF自主域内。
- E1外部路径类型1:目的地只在OSPF自主域外的路径。当其他协议自主域的重分布到OSPF时,ASBR需要给这些通告的路由指定一一个代价值。(ASBR通 告的外部代价+内部路由器到ASBR的代价)
-
E2外部路径类型2:目的地只在0SPF自主域外的路径。(只计算外部的开销,外部开销默认为20,BGP为1。 而且为默认设置)
3、 0SPF路由表的查找
- 最长匹配原则。
- 0路由>01A路由>E1路由>E2路由
- 如果有多条等代价、等路径类型的路由器存在,可以负载均衡。Maximum- pashs (1-16)
- 任何路由信息的发布必须经过骨干区域到达其他区域,所以非骨干区域不宜直接连接,否则应该在同-一个区域。
- 如果一个路由器同时属于两个非骨干区域。那么它会就近选择一个区域访问骨千0。
- 末节区域,对E1/E2可能有次优路径。
- 完全末节区域,对E1/E2和0IA可能有次优。. NSSA对E1/E2可能有次优路径。
-
完全NSSA对E1/E2和0IA可能有次优路径。
4、 0SPF对E2外部路由的选路原则:
- 都为E2类型的情况下,cost越小越优先。
- 在cost相同的情况下,选择到ASBR的最优路径。
-
如还相同则负载均衡。
5、 0SPF对E1外部路由的选路原则:
- 1都为E1类型的情况下,cost越小越优先。
- 如果有多条路径的处部代价+到ASBR代价相同则直接进行负载均衡。
二十二、按需链路上的OSPF
1、 0SPF具有抑制hello数据包和LSA重刷新的能力,以便链路不是永久的有效。按需链路最初会执行LSDB同步,之后只会激活这条链路去泛洪有变化的LSA,这些变化包括:
- LSA可选字段产生变化
- 在老化时间达到时收到了LSA通告的新实例
- LSA头部的长度字段发生了变化
-
LSA的内容发生了变化,不包括头部、校验和或序列号
2、 按需链路上OSPF的LSA数据包的修改:
- 1由于OSPF没有周期性的重复刷新,当LSA到达maxage不会被宣布无效。它通过指定DoNotAge位来完成。 通过DoNotAge位置1, LSA:洪到链路对端,age对端会增加一个InfTransDe lay指定的秒数,当这条LSA被安装如LSDB中不会再老化。
-
所有路由器必须能支持DoNotAge位, 因此在所有LSA中增加一个DC位,通过设置此标志,其他路由器就知道该路由器支持按需链路.上的0SPF。
Ip ospf demand-circuit
3、 在按需链路上配置0SPF的注意事项:
- 只有在区域的LSDB中所有LSA设置了DC位, 设置了DoNotAge位的LSA才被允许进入该区域。
- 按需链路0SPF的所在区域内所有路由器都必须支持在按需链路.上的0SPF。
- 如果按需链路0SPF在非末节区域实现,那所有非末节区域必须支持按需链路上的0SPF。DC位是在类型5LSA实现的。
- 应该把按需链路0SPF的区域限制在stub、 totally stub、NSSA、 totallyNSSA。这样可以限制LSA数量, 也可以取消在所有router支持DC。
- 如果DC上有VC,那么此VC被认为按需链路。6 :按需链路的0SPF丧失了稳定性。
-
重刷新可以在两端路由器除按需链路的所有接口发生,这有可能导致两端LSA序列号不同。
4、
二十三、数据包的可选项
1、 DC-bit:当始发路由器支持按需链路上的OSPF时,该比特置1
2、 EA-bit:始发路由器具有接受和转发外部属性LSA时该比特置1
3、 N-bit (NP-bit):只用在hello中,置1则支持NSSA外部属性
4、 LSA,置0则不接受和发送NSSA外部LSA,链路两端设置不一致无法形成邻居,当N=1则E=0, N=0则E=1。
5、 P -bit:只用在ENSSA外部头部。用来告诉NSSA区域的ABR把类型7转为类型5。
6、 MC-bit:当始发路由器支持IP组播,该位被设置,用于MOSPF
7、 E-bit:始发路由器具有接收AS外部LSA (5类)能力时,此位置1。非stub区域一般都设置此比特。不一-致无法形成邻居。
8、 T-bit:当路由器支持TOS时,该比特被置1 (后被MT位替换掉)
9、 L-bit:当0SPF包包含0SPF LLS data block时此位置1,一般都置1,新版本几乎所有hello/DD包都包含这个信息。
10、 0-bit:当始发路由器支持0paque LSA (类型9、10、11)置1。
11、 MT-bit:置1表示路由器支持多拓扑(不广泛使用,只有理论)
12、 DN-bit:避免MPLS VPN环路,在类型3设置DN位后接收路由器不能在0SPF路由计算中使用该LSA.从VPN一个客户端的一个PE学到的路由不能重分布回另一个PE。跨域无效,就是ASBR会删除此位信息。解决方法tag field(5类防环)
二十四、配置OSPF的注意事项
1、 路由进程只在本地有效。当只有一个区域时,不一定是骨干0
2、
- passsive-interfack在OSPF中为不收不发hello,将接口被动无法形成邻居。
- passsive-interfack在RIP中为只收不发(组播或广播更新),可以配置单播发送更新。
- passsive- interfack在EIGRP中为不收不发hello,将接口被动无法形成邻居。
-
passsive-interfack在ISIS中为不收不发hello (将接口被动会在接口上执行no ip routerisis),但是还会通告该接口网络,而且是没有链路开销的通告。
3、 OSPF的network命令是从第一条开始往下按顺序执行。(特性: network命令排列深度优先)
4、 如果0SPF不能发现一个有效的IP地址做他的RID, 那OSPF不会启动。
5、 OSPF把loopback看成末梢网络,loopback接 口的地址被看成是一个主机路由。
6、 OSPF使用一个接口IP当做RID,但是这个接口不一定需要运行0SPF。
7、 OSPF将辅助地址当成末梢网络,从而不会再这些网络发hello包,因此辅助地址无法建邻居。
二十五、OSPF LSDB的过程保护
1、 如果设备运行在一个很大的OSPF路由选择域,而有的设备并没有很强大的内存,那么可以在这台设备配置LSDB的过载保护。命令如下:
Max-lsa ? (OSPF进 程可在LSDB中存储的不是自己的LSA的最大数量)
- 可选<1-100> threshold-percentage:达到MAX LSA多大比例后发出警告(默认75%)
- 可选超过MAX -LSA后只发出警告! (默认禁用)
- 可选<ignore-time 1-17895 分钟>超过MAX- LSA后忽略所有邻居的时间(默认5分钟)
- 可选<ignore- count 1-65534> 可以连续进入忽略状态的次数( 默认为5次,超过后永久性关闭)
- 可选<rest-time 235791分钟>多长时间后i gnore-count重置为0 (默认10分钟)
二十六、OSPF的路由汇总
1、 路由汇总对0SPF路由选择进程占用的内存、带宽、CPU周期、有直接影响。
2、 不进行汇总所有的LSA都会传播到主干中,导致不必要的网络数据流和路由器开销。因为每当LSA通告后,所有路由器都会用SPF算法进行最短路径计算,每收到一-次计算一次。
3、 汇总后可以减小运算,而且某条链路出现故障,拓扑变化不会传播到主干,这样区域外其他地方将不会发生LSA扩散。
4、 如果这个子网地址被汇总后包含在一个汇总地址中,那么单独的子网和它的稳定性就不再被通告出去了。0SPF中任何汇总范围内更精确的地址都会被抑制!
5、 两种汇总路由的度量值都来源于汇总的明细路由中的最小度量值!
6、 区域间汇总时,ABR只能汇总相连区域的路由。ABR连接areal、 area2它 不能汇总area3的路
7、 区域间路由汇总:区域之间的路由汇总,配置在ABR上。不能汇总(类型5)和类型3)Area ? Range x.x.x.x x.x.x.x (advertise/not-advertise)cost ?汇总路由度量。(advert ise/not-advert ise) ABR是否通告汇总的0IA路由
8、 OSPF汇总后不会自动产生Null口的路由,需要手动配置(用来避免路由黑洞和路由环路)
9、 Discard- router internal ABR汇 总后产生null口路由。无论何时在配置汇总时都应该确认是否为这个汇总地址增加了null路由,也可以用静态路由创建。
10、 部路由汇总:汇总从其他路由选择域注入到OSPF中的路由,配置在ASBR上。
11、 Summary . address x.x.x.x X.x.x.x (not-adverti seASBR不通告汇总的外部路由) tag(标记)外部汇总路由会自动产生nul 1路由(默认执行discard-router external)
二十七、OSPF的认证
1、 通过对邻居进行身份验证,路由器将对收到的每个路由选择更新分组的信源进行身份识别。
2、 默认情况下,OSPF使用身份认证方法为null, OSPF支持简单密码身份认证和MD5身份认证。
3、 3OSPF的MD5身份认证,在每个0SPF分组中加入一个不递减的序列号,防止重放攻
4、 如果配置了区域认证,那么必须在整个区域配置认证。
5、 OSPF的认证信息在0SPF头部,所以不管哪种OSPF包都包含认证信息。每个包都含认证信息。
6、 不管是区域认证还是接口认证,密码类型必须和认证方式相匹配。
7、 设备间认证类型优于区域认证类型。
8、 配置认证后不配置认证密码也可以建立邻接关系。如果要配置,链路上所有路由器都要配置。
9、 只有在配置相应的认证类型后,认证密码才生效。
10、 简单密码的更换需要中断邻接关系,MD5方式可以无缝的切换密码。
11、 0SPF的简单认证(区域认证)
- Area 0 authentication在区域间启用了简单认证
-
Ip ospf authentication key在区域内相应接口配置接口密码。所分配口令不必整个区域- .致,但是一对路由器之间必须相同。
12、 0SPF的简单认证(设备间认证)
- Ip ospf authentication 在设备内启用简单认证
- Ip ospf authentication-key在区域内相应接口配置接口密码。也不必区域内一致。
-
OSPF的MD5认正它会用OSPF数据包内容和密码计算- 个hash值,这个hash值、key-id、和一个不变小的序列号一起传送,拥有相同口令的路由器会计算出相同的hash值。
13、 OSPF的MD5认证(区域认证)
- Area 0 authent icat ion message-digest在区域内启用了MD5认证
- Ip ospf message-digest-key key-id (1-255) md5 password 在区域内相应接口配置接口密码。所分配口令不必整个区域-致,但是一-对路由器之间必须相同。
- Key-id=0说明没有认证密码。设备两端key- id和密码不一致不能认证成功
- 如果同时配置明文认证和MD5认证,MD5认证优于明文认证,明文不起作用!
- 如配置了多个key-id,优先使用最后配置的-个key-id。0SPF总是优先使用最后配置的key-id,并且如果收到-一个新的key- id,它就会停止发送旧的key-id.4
-
在相邻路由器上,同样的key- id必须对应相同的密钥值。
14、 OSPF的MD5认证(设备间认证)
- Ip ospf authent icat ion message-digest在 设备间启用MD5认证
- Ip ospf message- digest-key key-id (1-255) md5 password 特点同上(下面是KID切换实例)
- 路由器A和B使用key-id 10进行数据包的交换。这时管理员给A路由器配置了新的key-id 9。
- A路由器用新的key-id 9给B路由器发hello包。B路由器收到后如果存在key-id 9那么就停止发送key-id 10,开始发送key-id 9. 这样两端都启用了新的密钥。 H-ma
- B路由器收到后如果没有key-id9,它继续发送key-id10,而A路由器每次都发送2个hello包分别为key-id 9和key-id 10。直到B路由器成功的切换掉key-id 10。
二十八、OSPF的虚链路
1、 用于连接分段的骨干区域或将一 -个区域通过中转区域连接到骨干区域。
2、 应该只将虚链路作为临时的解决方案或备用连接,而不应将其作为一种主干设计。
3、 它在两个ABR之间建立逻辑通道,类似于0SPF的邻接关系,但他们不必直接相连。
4、 在虚链路上单播发hello.邻居建立起来后hel lo被抑制,虛链路通告的LSA的DNA (DoNotAge选项被设置,因此不会老化。而且没有每30min的泛洪,因为它被当成DC按需电路。
5、 虚链路所经过的区域叫transit area,它必须拥有完整的路由信息。它不能为stub区域
6、 虚链路配置在两个ABR之间。虚链路的cost也是从出接口累加的,虚链路的网络类型为P2P
7、 虚链路是属于骨干区域0的一个接口。
8、 Area area-id virtual-link router-id (area- id传输区域router- id对端的RID)
9、 virtual-link属 于骨千0区域,所以配 置骨干0区域认证时候,virtual-link 也需配置密码。
10、 Virtual-link只是骨千0的一一个链路,所以它与骨干0区域其他链路配置认证无异
11、 简单设备认证
Area area-id virtual-link router- id authentication
12、 area area-id virtual-link router- id authent icat ion-key
13、 MD5设备认证
area area-id virtual-link router- id authent icat ion message-digesti
area area-id virtual-link router- id message-digest-key ? md5 ?
二十九、默认路由
1、 Default-information originate {always/ metric/metric-typel
2、 向区域内以5类通告默认路由。通告路由器会变成ASBR。
3、 如果没有always选项,那么路由表里面必须有一条缺省的静态路由才能向内通告,always选项不管有没有这条路由都会向OSPF区域内通告默认路由
4、 Metric的缺省为1,可以指定向内通告的缺省路由的度量!
5、 Metric- type指定类型,缺省通告为E2类型。
三十、重分布的默认度量
1、 Default- metric cost
2、 重分布到0SPF的路由,如果redistribute没 有指定度量值的话可以用以上命令分配一个度量值。该度量值不会影响redistribute命令指定的度量值( redistribute的优于default-metric)。
3、 Default-metric cost 对于重分布直连路由无效。
4、 redistribute进0SPF的路由条目缺省metric: BGP为1,其他为20。
三十一、管理距离
1、 用来修改本地路由选择表中所有OSPF路由的管理距离。
2、 Distance ?也可以更改external/inter-area/ intra-area这些类型路由的本地管理
3、 Distance ? Source wildcard ACL可以控制来自哪个源的路由条目的本地管理距离。后面还可以加访问挖制列表控制。
三十二、过滤路由
1、 Distribute-list ? (acl/route- map/prefix) In 阻L:OSPF将LSDB中的LSA放进路
2、 Distribute-list ? In interface- type number阻止从该接口接收的LSA放入路由表
3、 由于该命令只是控制本地路由表的安装,所以不会影响其他路由器的路由表。
4、 对于距离矢量协议(RIP/EIGRP) 该命令可以控制路由表条目从某个接口的发送(out)和接收(in)。但是链路状态协议发送的不是路由条目而是LSA信息,所以该命令在OSPF上只能控制本地路由表。而out参数在OSPF中没有意义,除非过滤从距离矢量协议重分布进0SPF的路由表项!
5、 Distribute-list ? 0ut eigrp 1控制从eigrp进程重分布进OSPF的过滤列表,只out有效
6、 ISIS协议里面没有该命令。BGP的使用和其他距离矢量协议相同,而且可以在nei ghbor后使用。
7、 MOSPF-LSA:Cisco路由器并不支持MOSPF,但缺省情况下会接收类型6的LSA并会产生syslogIgnore lsa mospf 这条命令可以阻止SYSL0G的产生!
8、 等价负载均衡:Maximum-paths 1-16 默认可以在4条链路负载均衡最大16条!默认情况下0SPF只支持等价
三十三、OSPF timers
1、 Timers throttle spf delay interval
2、 De lay:收到拓扑变化到开始用SPF算法计算最短路径的时间间隔。默认为5S。
3、 Interval:连续的使用SPF算法计算的间隔。缺省为10S。这个间隔可以有效的防止网络上的抖动接口导致的频繁的发送LSA拓扑变化而进行SPF计算。
三十四、阻止LSA的扩散
1、 默认情况下,路由器收到LSA的时候会向除收到该LSA的接口外的其他所有接口扩散。Ip ospf database-filter all out用于阻止LSA在使用该命令的接口扩散。
2、 Neighbor x. x.x. x database-filter all out用来防止LSA在非广播网络上泛洪到邻居。
3、 缺省情况下每30min就会更新一次LSA,如果LSA没变化,说明网络很稳定,在网络稳定的情况下每30min一次的LSA重扩散是多余的,我们可以让LSA带DNA位一起发送,同时也抑制了定期更新,只有发生变化时LSA才被重扩散。
4、 Ip ospf flood-reduction 使用时邻居关系会被重置。
三十五、Clear commands
1、 Clear ip ospf ospf-id conuters (int, neighbor/清空邻居状态变换计数器。
2、 Clear ip ospf process重启OSPF进程。
3、 Clear ip ospf redistribute 清除重分布进0SPF的路由条目。
三十六:OSPF常用的查看命令
1、 查看(router-id)路由器通过的路由条目Show ip ospf database adv-router router-id
2、 查看有自己通告的LSA信息Show ip ospf database self-originate
3、 查看接口上待泛洪排队列的LSA列表Show ip ospf floot-list
4、 查看路由器在接口上的请求LSA的情况Show ip ospf request-list
5、 显示等待重传的LSA列表Show ip ospf reteansmission
6、 显示在路由器上已经配置了的汇聚地址Show ip ospf summary-address
7、 显示一个OSPF邻接关系形成的过程Debug ip ospf adj
8、 显示OSPF的SPF的计算过程Debug ip ospf spf
9、 显示OSPF的事件(邻接关系形成、SPF算法、DR的选举、LSA扩散等)Debug ip ospf evevt