<OSPF(Open Shortest Path First)>

·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  4*Hello =120S    

·OSPF Cost = 108/BW (bps)

·OSPF的5种报文:
 1)Hello:发现并建立邻接关系。
 2)DBD:包含路由的摘要信息。
 3)LSR:向另一台路由器请求特定路由的完整信息。对DBD的一个隐式确认。
 4)LSU:回应LSR该条路由的完整信息。
 5)LSAck:对LSR/LSU做确认。因为IP是不可靠的。

Route-ID:
 为唯一标识OSPF域中路由器。
 设置Route-ID的优先顺序:
 1)手工指定Route-ID x.x.x.x(可任意,但不能重复)
 2)最大的Loopback IP
 3)最大的接口IP(保证接口是激活状态)

OSPF建邻居的必要条件:
 1)Hello/Dead Intervals
 2)Area ID
 3)Authentication Password
 4)Stub Area Flag

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>

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)>

·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
  域内路由,仅在本区域传递,描述本区域链路、路由信息,不会穿越ABR。

LSA2(Net Link States)
R1#show ip ospf database network 
  只有MA网络才会产生LSA2,由DR发出,仅在本区域传递。

LSA3(Summary Net Link States)
R1#show ip ospf database summary
  域间路由,能泛洪到整个AS,由ABR发出,穿越一个ABR,其ADV Router就会变成此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.

LSA5(Type-5 AS External Link States)
R1#show ip os database external
  域外路由,不属于某个区域,ASBR产生,泛洪到整个AS。不会改变ADV Router。

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。

R4(config-router)#redistribute rip subnets metric 8

<修改Cost参考值>

R1(config)#router os 110
R1(config-router)#auto-cost reference-bandwidth 1000 (Mbps)

<域间汇总>

R2(config)#router os 110
R2(config-router)#area 0 range 172.16.32.0 255.255.224.0 cost 2
         (汇总哪个区域的路由,明细在哪个区域)

本地产生 O  172.16.32.0/19 is a summary, 00:00:06, Null0
建议在本区域的所有ABR上做。
not-advertise 汇总时加上此参数,汇总,但是不传递此路由。

<域×××总>

R4(config)#router os 110
R4(config-router)#summary-address 44.0.0.0 255.0.0.0 (在ASBR上做)
可加not-advertise参数,也可加tag参数,用route-map进行过滤。

本地产生 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] ------- seed metric默认值为1。重分布的seed metric为20。

router)#default-information originate metric 3 type 1 --- 修改类型为1,metric 3。

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)

·必须将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

R2(config-router)#area 2 nssa no-redistribution
 (对ABR上有外部路由进入NSSA区域时,将其阻止)

R2(config-router)#area 2 nssa no-summary
 (Totally NSSA,阻止LSA3/4/5,由ABR产生LSA3默认路由传播到NSSA其他路由器)

R2(config-router)#area 2 nssa no-redistribution default-in no-summary
 (LSDB中会出现LSA3/7默认路由,路由表中只会显示LSA3默认路由)


<OSPF区域问题>

1)在ABR上起不同OSPF进程,进行OSPF之间的重分布。

2)虚链路:
 R3(config-router)#area 2 virtual-link 2.2.2.2
          (中转区域)   (对方Router-ID)   

·远离Area0 / 分隔的Area 0       

R2#show ip os virtual-links

3)Tunnel:
config)#int tunnel 1
config-if)#tunnel source serial 0
                         (要用物理接口,如用Loopback口会出现路由翻动)
config-if)#tunnel destination 2.2.2.2 (对方Router-ID)
                              目标:一定要有去往目标的路由条目。
                            
<负载均衡>

·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种认证
 每种认证都分为 Clear Text & MD5

R1#deb ip ospf adj

Link:
 R1(config-router)#int s1
 R1(config-if)#ip ospf authentication-key wolf  (配明文密码)
 R1(config-if)#ip ospf authentication       (启动明文认证)

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
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
 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 (对方直连接口主机路由)

·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(加BROADCAST参数)
             手工DR(HUB成为DR)           手工DR(HUB成为DR)
________________________________________________________________________________________

             P2MP NBMA                                P2MP
             手工NEI(单播更新)           自动NEI
 自动映射        自动MAP                 自动MAP
32位主机路由         无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
 R5(config-if)#frame-relay map ip 145.1.1.4 501
 
·POINT_TO_MULTIPOINT 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

 R4: O  145.1.1.5/32 [110/128] via 145.1.1.1, 00:00:24, Serial1
 产生/32主机路由,且下一跳指向HUB,所以不需手工MAP。
·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  

================================================================================================== 

NP+
链路状态协议及OSPF的三张表
网络分层各种区域及各种LSA类型
OSPF各种包类型
OSPF接口的各种网络类型
OSPF建邻居的必要条件以及各种过程?及OSPF的COST
OSPF的验证
OSPF的汇总
OSPF的重分布
OSPF的虚链路
OSPF的过滤
OSPF在区域内是链路状态协议,在区域间是距离矢量协议。

链路状态协议的特性:
OSPF三张表查看:
#show ip ospf neighbor ------- 查看邻居表
#show ip ospf database ------- 查看database数据库
#show ip route ospf ---------- 查看路由表

网络分层与各种区域
为什么分层?
1,路由翻动时不会影响到其它区域;
2,减少路由表条目(可以在边界汇总);
3,减小路由器资源消耗;
4,减少LSA泛洪。

有哪几种区域?
1,骨干区域backbone(area 0)可以传递其它区域LSA
可以有1、2、3、4、5号LSA
2,规则区域(非骨干区域)
可以有1、2、3、4、5号LSA
与backbone唯一不同处是不能传递其它区域的LSA
3,stub
stub(过滤了4、5类LSA,stub区域不能有ASBR,stub区域的ABR会产生默认路由向stub区域内泛洪)可以有1、2、3类LSA
产生的默认路由:3类 OIA  cost为1
区域内的所有路由器都要为stub区域。
在ABR上:
router)#area 1 default-cost 16 ---------- 修改特殊区域内默认路由的cost值
stub区域的ABR,会deny OE 的LSA,不会deny OIA
把自己产生的3号LSA过滤掉,其它区域产生的3类LSA会在stub区域内泛洪。
OIA路由要计算延路metric值。
stub的其它区域中除了ABR,其它路由器不能产生默认路由。

Stub区域不能作为虚链路的中转区域。

4,total stub
在stub的基础上过滤了3类的LSA
在ABR上:
router)#area 1 stub no-summary no-summary 只需做在ABR上。
产生的默认路由:3类 OIA  cost为1
修改cost同stub.
可以有1、2类LSA,只有一条3类LSA:是默认路由。
当stub区域有两个ABR时,一个是totoal stub 一个是stub,如果走OSPF域内路由会从stub域内走,如果走外部路由,则从totoal stub区域走。

5,NSSA(Not-So-Stubby Areas)
(过滤4、5类LSA,允许区域内部有ASBR。区域内部产生的外部LSA定义为7类。再经过NSSA的ABR时,7类LSA转5类LSA。)可以有1、2、3、7类LSA。
默认情况下是不会产生默认路由。
在ABR上:
router)#area 1 nssa default-information-originate --------- 产生一条7类打N2的默认路由,路由表中不需要有静态路由。
改cost值同stub区域命令。
router)#area 1 nssa translate type7 suppress-fa ------------------- 在七转五的过程中将forward address 抑制掉。
用上命令,计算cost时计算距离是NSSA ABR的距离。FA(forward address)

NSSA区域内部的路由器不是ABR如何产生默认路由?
1,先写一条静态默认路由;
2,area 1 nssa default-information-originate
此时在NSSA内部是七类LSA,经过ABR时就7转5

6,totoal NSSA
(过滤4、5类LSA,允许区域内部有ASBR。区域内部产生的外部LSA定义为7类。再经过NSSA的ABR时,7类LSA转5类LSA。)可以有1、2、7类LSA。
产生一条3类打OIA的默认路由
router)#area 1 nssa no-summary
router)#area 1 nssa no redistribution
   当NSSA区域中的ABR即是ABR又是ASBR(不是7转5,而是自己主动重分布)时,而且会向NSSA域内公布一条默认路由,这时需在NSSA后加上no-redistribution用来抑制将外部LSA重分布进NSSA区域。
产生5类的默认路由
default-information origiate ------------- 在OSPF域内产生5类默认路由,必须要有一条默认的静态路由。
default-information origiate always ------ 加了always这个参数时就是不需要路由表中有这条默认路由。
default-information origiate route-map A -- 允许符合条件的

在NSSA区域有两个ABR时,Router-ID大的ABR进行7转5。
NSSA中的forward address 是其它ASBR最后宣告进OSPF的接口IP地址。
NSSA的forward address有环回口就选环回口,选最新的宣告进OSPF的环回口,如果没有环回口就选物理接口,也是选最新的宣告进OSPF的物理接口。
当先宣告环回口,再宣告物理接口时,会选择哪一个为forward address ?

当一个路由器一个是totoal stub 一个是stub,走内部路由是stub区域,
走外部路由走totoal NSSA,走内部路由走NSSA区域。
域内路由走明细,外部路由走默认。


OSPF LSA类型
LSA:Link-State Advertisement(链路状态数据库)
LSA-1 OSPF中同一个区域内维护一个database数据库,本路由器产生。
#show ip ospf database router --------- 查看database数据库,包括自己直连的接口,包括自己的邻居。
对于非多访问网络的直连链路,描述的是:a stub network,对于多访问网络,描述的是:a transit network
a stub network描述DR地址以及自己与DR相连的接口地址
a transit network描述非多访问网络的网络号以及子网掩码,描述自己的邻居,对方的Router-id以及自己与邻居相连的直连接口。
#show ip ospf database router x.x.x.x ---------- 查看某条路由的database

LSA-2 由DR产生的,DR是接口的特性。
#sh ip ospf database network --------- 查看LSA-2信息
Link-ID是DR的接口地址
包括金访问网络链路下所有路由器的Router-id,还包括这条链路的子网掩码

LSA-3 区域间,由ABR产生,必须一端连接到Area 0
#show ip ospf database summary ------- 查看LSA-3信息
LSA-3其实是路由,每经过一个ABR advertise-route会改变为经过那个ABR的Router-id.

LSA-4 由ABR产生,描述的是其它区域的ASBR的Route-id,每经过一个ABR,ADV-route会改变
#show ip ospf database asbr-summary ---- 查看LSA-4信息

LSA-5 由ASBR产生,其实是路由,不属于任何区域,5类LSA在除了特殊区域以外,其它OSPF域内所有区域泛洪。
#show ip ospf database external -------- 查看LSA-5信息

LSA-6 (MOSPF)cisco路由器不支持,要deny掉
router)#ignore lsa mospf -------- deny掉mospf。

LSA-7 其实是路由,存在于NSSA区域中
#show ip ospf database nssa-external --- 查看LSA-7信息

看database数据库时看四项:
1,区域ID   2,LSA类型   3,Link-ID  4,ADV Router

*重分布直连进一个协议时必须挂Router-map

OSPF的各种包类型及其作用
Hello:建立和维护邻居关系
DBD:数据库描述包(带LSA头部,协商主从关系)
LSR:请求LSA(不带LSA头部)
LSU:更新LSA(LSA详细信息)
LSAck:确认LSU(LSA头部用来做确认LSU)

#show ip ospf request-list ------ 可看到路由器向邻居请求的LSA信息
LSR靠TYPE ,Link-ID,ADV-Router,area-ID来请求LSA详细信息

OSPF选路
O>OIA>ON>OE1>OE2 相同时比较forwarding metric
forwarding metric是路由器计算到其它区域ASBR的一个距离。

OSPF接口的各种网络类型
#show ip ospf interface ethernet 0 -------- 查看接口网络类型
#show ip ospf virtual-links
if)#ip ospf hello-interval 10 ------------- 修改Hello时间
if)#ip ospf dead-interval 40 -------------- 修改dead时间
if)#ip ospf network point-to-multipoint --- 修改接口网络类型

网络类型               Hello时间(秒)           手工建立neighbor     产生32位路由     默认的二层链路
P2P                      10                       不需要                没有        串口,HDLC,PPP
broadcast                10                        需要                 没有         以太链路
P2MP                     30                       不需要                有        
P2MP-non                 30                        需要                 有
NBMA                     30                        需要                 没有         帧中继的主接口和多点子接口
Loopback                 没有                      不需要                有         
virtual-link             10(虚链路建立好以后)       需要                 没有

改Dead时间,Hello时间不会改
改Hello时间,Dead时间会改变。

NBMA基本配置
FR环境下的NBMA不需要broadcast,二层不broadcast
FR环境下NBMA基本配置:
1,HUB端指neighbor
2,spoke端priotiy 0 (优先级为0)
3,spoke端相互映射FR map

NBMA单播更新,FR中的broadcast是允许广播和组播的流量。

 此NBMA拓扑相当于
FR环境下P2MP(二层broadcast)
不需neighbor,优先级不需要为0
 在P2MP中相当于
P2MP产生32位主机路由通告给其它邻居或路由器(检测网络可达方法)
1,spoke端之间不需要相互map
2,产生32位主机路由检测网络可达情况

P2MP-non:当二层链路不想产生广播又想用P2P时就用P2MP-non
P2MP-non:(cisco私有,点到多点非广播)


特例:

看不到neighbor的情况:
1,NBMA FR环境
NBMA网络中spoke端指neighbor ,show run时看不到neighbor 命令,show ip ospf neighbor 可看到neighbor 状态。
因为思科默认neibhgor是做在HUB端,spoke端prioity为0时看不到neighbor,prioity为其它值时是可以看到neighbor命令的。

在spoke端指neighbor到HUB端是可以建邻居。

OSPF进程中,neighbor 没有用处,在进程删除不掉?
要删除没用的网络:1,先配一个接口IP与neighbor同一网段;
                 2,将这个接口类型改为P2MP或P2MP-non;
                 3,删除neighbor

2,OSPF中指neighbor,不宣告接口,neighbor看不到
1,将接口类型改为其它网段
2,指neighbor
3,将接口类型改回来

OSPF中重分布直连比重分布协议优先级高
如同时进行,必须将本路由宣告进协议的接口,也不重分布直连里匹配。

重分布直连一定要挂route-map

重分布是基于什么的?
1,基于路由表
2,基于宣告进协议的直连接口,掩码多少位看路由表

--------------------------------------------------------------------------------------------------

什么情况下成为full状态,而不能收到LSA?

1,两台路由器对它们中间直连链路认为不一样,学不到路由。
2,在没有区域0的情况下,没有4号LSA,5号的LSA也不会放进路由表中。

OSPF建立邻居必要条件:
1,Hello和dead intervals time
2,Area-ID
3,Authentication password(认证)
4,Stub area flag(未节区域标记)


if)#ip ospf dead-interval minimal hello-multiplier 3     3代表一秒钟发3个hello包。dead时间变为1秒。

hello-interval不一样,dead-interval一样的时候可以建邻居。

在建邻居时,当MTU不匹配的时候,会停在EXSTART或者EXCHANGE状态。

显示确认:发了一个LSU必须收到一个LSACK。
隐式确认:在DBD发送时,当路由器接收一个主路由器发过来的DBD消息,再发给主路由器DBD信息时的序列号相同,用序列号来确定DBD信息。

第一个DBD包不带任何LSA头部,是用来协商主从关系。

用Route-ID选主从关系,Route-ID大的为主,Route-ID小的为从。

路由器的E0口不能直接改MTU,可以改IP MTU,IP MTU 受限于MTU,IP MTU的最大值就是MTU。

R#ip mtu 1400 路由器上修改MTU值, ip mtu的值不能大于mtu。
SW ig)#system mtu 1500 交换机上修改MTU值,改过后必须保存重启才会起效。
SW#show system mtu 看交换机MTU值。
邻接的开始Exstart状态,邻接完成是full状态。
邻居是Two-way状态。

#clear ip ospf process 清OSPF进程。

if)#ip ospf  mtu -ignore    接口下做,忽略MTU(做在MTU小的一方)

多访问网络中选DR,如果子网掩码不同,邻居是建不起来。网络类型也不是建邻居的必要条件。

OSPF cost 值

接口的cost值计算方法 : 108/接口带宽
路由带宽cost值算法:沿路入向接口cost 值磊加,就是这条路由的cost值。

默认重分布进OSPF的路由是OE2的,cost值默认值是20

如何修改OSPF cost值:1,修改接口带宽。#bandwidth 1000
                                               2,修改参考带宽。的OSPF域内所有路由器都需要改。router)#auto-cost reference-bandwidth 100
                                               3,接口模式下修改cost值  if)#ip ospf cost 1000
                    4,重分布时OE2改为OE1。  #re ei 100 sub metric-type OE1
                                               5,重分布时加metric值。  #re ei 100 sub metric 10
                                               6,default-metric。用来修改重分布进来路由的cost值。
                    7,重分布时挂Route-map set metric值。
                    8,neighbor x.x.x.x cost 1000  只有在点到多点的情况下才可以更改。
                    9,router)#area 1 default-cost 16 ------- 特殊区域修改COST值。
作业:
default-metric,对哪些重分布进来的路由起效果?
1,直连 (不起效果)
2,静态  (起效果)
3,其它协议(起效)

OSPF认证  明文认证/密文认证

1,链路认证; 
链路认证方式
明文:if)#ip ospf authentication
密文:if)#ip ospf authentication message-digest
链路的认证密码
明文:if)#ip ospf authentication-key cisco cisco是密码,如果后面有空格,空格也算是密码。
密文:if)#ip ospf message-digest-key 1 md5 cisco 1代表是key-id,cisco是密码。

2,区域认证;
区域认证主要作用是:减少配置命令
在进程内打开区域认证方式
明文:router)#area 1 authentication ------ area 1 启用明文认证
密文:router)#area 1 authentication message-digest ---- area 1 启用密文认证
在链路上做认证密码
明文:if)#ip ospf authentication-key cisco
密文:if)#ip ospf message-digest-key 1 md5 cisco

3,虚链路认证。
在进程中做认证密码;在虚链路中做认证必须两边都做。
明文:router)#area 1 virtual-link 3.3.3.3 authentication-key cisco ----- 创建明文密码
调用:router)#area 1 virtual-link 3.3.3.3 authentication ---- 虚链路中调用
密文:router)#area 1 virtual-link 3.3.3.3 authentication message-digest-key 1 md5 cisco ----- 创建密文密码
调用:router)#area 1 virtual-link 3.3.3.3 authentication message-digest  --------- 虚链路中调用

明文认证的密码只能有一个,密文认证密码可以有多个。

OSPF认证最后配置的KEY为youngest-key 如youngest-key没有匹配则发所有的K,如youngset-key匹配则只发youngest-key,前面的key不发送。


OSPF汇总

域间汇总:做在ABR上
range区域间汇总只能汇总1,2类的LSA,将它变为3类的LSA发送过去。
#show ip ospf border-routers --------- 查看ABR/ASBR
域间汇总路由标记是OIA
Area 0 是可以做区域间汇总
*OSPF和汇总和EIGRP的汇总都会产生一条指向Null0的汇总路由。


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上做。

域×××总:做在ASBR上
summary-address只能汇总自己产生的五类和七类的LSA
成为ASBR的条件:有重分布的动作,而不管有没有重分布进来的路由,都算是ASBR。
ASBR能产生五类和七类的LSA
#summary-address 172.16.12.0 255.255.252.0  -------- 汇总
#clear ip ospf processes  --------------- 清OSPF进程
 
OSPF的重分布

直连的优于协议的
重分发加subnet,可以加metric,tag等参数。
ospf向eigrp重分布的时候注意汇总路由。因为ospf和eigrp汇总会产生指向Null0的汇总路由,在ospf向eigrp重分布时要deny掉eigrp重分布进来的路由。
作业:
将以下IP地址重分布到OSPF中,要求metric值和tag值要符合条件:
tag       ip             metric
20     192.168.12.0      100/100
20     192.168.13.0      110/100
10     192.168.14.0      110/50
10     100.1.32.0        110/100
20     100.1.33.0        110/50
20     20.1.64.0         110/50
20     20.1.65.0         110/50
20     200.1.1.0         110/100

router)#redistribute eigrp 90 subnets metric 50 tag 20 route-map XXX
在重分布时可以直接改tag和metric ,route-map是在重分布后改一些参数。
route-map XXX per 10
match ip add 1
set metric 100
set tag 10
exit
router-map XXX per 20
match ip add 2
set metric 100
route-map XXX per 30
match ip add 3
set tag 10
acc 1 permit 100.1.32.0 0.0.0.0
acc 2 permit 200.1.1.0
acc 2 permit 192.168.12.0 0.0.1.0
acc 3 per 192.168.14.0

OSPF虚链路
使用虚链路的环境
1,连接没有和区域0直连的area
2,区域0分割(三种方法)
3,区域0冗余(防止区域0分割)
虚链路是属于area 0的,但不一定是有area 0才可以做虚链路。
虚链路默认的认证方式和区域0认证方式一样。
如题目要求,区域0为明文,密码为cisco,这时必须在虚链路上做认证。

router)#area 1 virtual-link 1.1.1.1 ---------- 做虚链路
                            对方Route-id
虚链路只能做在标准区域,stub区域和NSSA区域是不能做虚链路。因为标准区域拥有全LSA,而stub和NSSA区域没有全部的LSA。
不需要在虚链路上打认证方式,只需要在区域认证上打上认证。

当区域0只有一条链路连接,这时需做一条虚链路做备份:LAB
虚链路完成需看两个参数,一是UP,二是FULL
virtual-link hello包10秒钟发送一次,虚链路建立完成后就不再发送hello包。
LSA周期性的更新不会在virtual-link上传播。
router)area 1 v 2.2.2.2 hello-interval ----------- 修改虚链路hello时间
router)area 1 v 2.2.2.2 dead-interval ------------ 修改虚链路dead时间
DNA(Do not age):不会老化
rotuer)#net 10.1.13.0 0.0.0.255 area 0.0.1.0 ------------- 用a.b.c.d 表示,此命令等同于宣告进area 256
                                      (256)

区域0分割的三种方法:
1,虚链路;
R2--------R1-------R3--------R5
  (Area0)  (Area1)  (Area2)
R1-R3 做虚链路
R1:
router)#area 1 virtual-link 3.3.3.3 ----- 对方的R-ID,不需要有这条路由,因为在1类的LSA中就可以发现对方的R-ID。
R3:
router)#area 1 virtual-link 1.1.1.1 ----- 对方的R-ID

#show ip ospf virtual-links -------- 查看虚链路状态,,,查看是要看邻接状态是否是FULL状态。不能看协议是否UP。

2,tunnel;

R2--------R1-------R3--------R5
   (A0)     (A256)     (A0)
area0分割,当R3宣告进A0中的接口没有一个能建立起邻居,则这时R3可以学到R2的路由信息,当R3宣告进A0的接口有一个能够建立起邻居关系,则R3学不到R2的路由信息。
R3建时收不到,不建可收到。

R1和R3做tunnel
R1if)#tunnel source s1
  if)#tunnel destination 10.1.13.3
R3if)#tunnel source s1
  if)#tunnel destination 10.1.13.1
R1ig)interface tunnel 0
  if)#ip unnumbered lo 0 ----- lo 0必须是area0里面的接口:::借用lo0口的IP地址。
R3ig)#interface tunnel 0
  if)#ip unnumbered lo 0 ----- lo 0必须是area0里面的接口
建tunnel的接口unnumber地址必须为同一区域(area 0)
#show ip ospf tunnel 0 det --------- 可看到tunnel 0为哪一个区域建的。

3,多进程重分布。

在OSPF中两个进程的Router-id不能相同。

OSPF多进程中重分布 metric值不会变(原来路由是多少就是多少不变),显示标记为O E2
OSPF中一条链路不能共享在两个进程,后宣告的进程不起效,不会发Hello包,也不会发送路由。

进程重分布:
R2--------R1-------R3--------R5
  (Area0)  (Area1)  (Area2)
R3:
router ospf 110
   net 13.1.1.0
   re os 120 su
router ospf 120
   net 35.1.1.0
   re os 110 su

OSPF的过滤

1、distribute-list 1 in/out方向
in方向跟接口,out方向跟协议,不能跟接口,因为OSPF发的是LSA,而不是路由,所以out方向不能跟接口。

只有标准的访问控制列表在IGP里面有效,扩展的访问列表在IGP中无效。
作业:
测试扩展访问控制列表在IGP的过滤中是否有效。

distribute-list 1 out ei 100
外部的EIGRP进到OSPF的哪些路由
out跟协议必须与重分布命令配合使用,相当于在重分布后面挂route-map
distribute permit是过滤掉的,deny是可以进来的。
distribute是过滤路由,而不是过滤掉LSA

2、area 0 range 2.2.2.0 255.255.255.0 not-advertise ----------- 不通告2.2.2.0 这条路由
not-advertise ---- 可将1、2号LSA转为3号LSA过滤掉。
not-advertise只对1类2类LSA转3类时起效果,将这种特殊的3号LSA过滤掉。

area 0 range不可以超网汇总。

3、summary-address 2.2.2.0 255.255.255.0 not-advertise
只能对本路由器产生的5、7类LSA起效果
这种相当于在重分布时挂route-map,或者是distribute-list out +protocol来过滤路由。
重要用途:可以在NSSA的ABR上过滤7转5的LSA。

?在NSSA的distribute-list out +proocol是否起效果?

4、area 1 filter-list prefix WORD in/out
过滤任何的3号LSA
in对应前面的area X,进到area X中来。
out对应前面的area X,从area X 出去。

5、对接口下的邻居过滤所有LSA
if)#ip ospf database-filter all out ------ 接口下过滤所有LSA
邻居关系不会down,但是不会发送路由过去。

6、对特定的邻居过滤LSA
进程下做:
router)#neighbor x.x.x.x database-filter all out --- 对特定邻居过滤所有LSA
neighbor后面跟参数cost、database-filter在所有网络类型中都起效,但只有在P2MP中可看到此命令。
neighbor后面全部都是IP地址。
neighbor x.x.x.x database-filter all out ---- 在其它网络类型中起效果,有邻居关系,只有在P2MP可看到,其它网络模式下看不到。

有LSA放不进路由表的情况:
1,两对设备对它们中间链路认识不一样;
2,在没有区域0的情况下,没有4号LSA,5号的LSA也不会放进路由表中。
5号类型需要有4号类型才能放进路由表?
不一定,在同一个区域内部是不需要有4号类型的,在不同区域需要有4号的LSA才可。

distance ospf external/inter-area/intra-area
distance 121 3.3.3.3  0.0.0.0
           (gateway或者RID)0.0.0.0为通配符
用来修改管理距离,external 7类LSA,inter-area 3、5类LSA ,intra-area 1、2类LSA

在OSPF在哪种网络类型中需要指neighbor?
1,NBMA网络;
2,P2MP-non时。


default-information origiate ------------- 在OSPF域内产生5类默认路由,必须要有一条默认的静态路由。
default-information origiate always ------ 加了always这个参数时就是不需要路由表中有这条默认路由。
default-information origiate route-map A -- 允许符合条件的

OSPF中只宣告第二地址不宣告第一地址不能建立邻居关系,第二地址的路由不能传递。
宣告了第一地址,也宣告了第二地址,第二地址和第一地址必须宣告进同一个区域内,这时用第一地址建立邻居关系,可以传递第二地址的路由。两边第二地址不在同一网段也可以传递路由,因为OSPF是链路状态协议,没有水平分割。


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Point-To-Point网络可以达到full状态,
只要是MA网络,都有可能不能达到FULL状态。
只有建立邻接关系才可以相互交互LSDB。
MA网络中选DR/BDR
所有的路由与DR建立邻接关系,Dother之间为To-Way状态。
To-Way状态,收到一个hello包,包含自己的Router-ID。
To-way 之后,Exstart start 之前选举DR/BDR。
第一个DBD确定主从关系(Master/Slave),来控制谁先发送DBD。Router-ID高的被选为Master,先发送DBD信息。
DBD有三个字段:I(Initial)   M(More)    MS(Master/Slave)
                    1          1              1             0x7  ----------- 第一个DBD包
                    0          1              1             0x3  ----------- Master发的DBD包

                    0          1              0             0x2  ----------- Slave发过来的DBD包
=================================================================================================
隐式确认:每一个DBD包都有一个seq Num.(序列号),发送一个DBD,值加1。
           A  -----  B
          200       100
          201       202
==============================
Loading State 对LSR、LSU的回应。

OSPF建邻居状态:Down ---------- Init ----- To-way -------- Exstart ------- Exchange ------- Loading ------- Full
                (Hello packet)                   (DR/BDR)  (M/S)         (交互DBD信息)     (LSAck)                                     


router)#log-adjacency-changes detail ---------- 显示邻接关系详细过程
#show ip o n ------------------ 显示的是对方的状态,DR/BDR,都是显示对方的,如要查看自己的,就要在对方查看。

router)#redistribute rip subnets metric-type 1 ---------- 修改外部路由为OE1
router)#redistribute rip subnets metric-type 1 metric 10 ----- 修改重分布进来seed metric值为10,类型为OE1
router)#redistribute rip subnets ?  ---------- ?
if)#ip ospf cost 5 ---------- 修改接口cost值。
如:10M 100M 1000M 如在默认情况下cost值分别为:10 1  1 这时100M和1000M就分不出优劣,此时需要修改OSPF运算方式,将108改为109:
router)#auto-cost reference-bandwidth 1000 ------------ 默认为100是108,修改为1000时就是109
OSPF下发默认路由:
router)#default-informatioon originate ------------ 先写一条默认路由,然后用此命令下发默认路由。

#show ip ospf border-routers ---------- 查看邻居的状态。

有没可能只有4类的LSA,没有5类的LSA?
1,域间汇总时过滤掉5类LSA;
2,重分布Null 0口;
3,重分布时过滤掉所有路由。

在ABR上
router)#area 2 nssa not-redistribution no-summary
router)#area 2 nssa no-redistribution default-information-originate no-summary
路由表中有3类的LSA 一条3类的默认路由,过滤掉7类,3类的路由。<一条命令做一件事>

passive-interface 在OSPF中passive接口,不收不发,不能建邻居。

OSPF网络类型
六种网络类型:
1,Loopback :--------------- 产生32位主机路由。
2,Broadcast :-------------  组播建邻居,选DR/BDR。
3,Point-to-Point :--------  组播建邻居,不选DR。
4,P2MP :------------------  组播建邻居,不选DR,产生到达对端直连接口的32位主机路由。
5,NBMA :------------------  单播建邻居(只需单边Neighbor,HUB neighbor SPOKE),Hello tiem 30, dead time 120,选DR。
6,P2MP NBMA :-------------  单播建邻居(只需单边Neighbor),不选DR,对端直连接口的32位主机路由。

P2P,Broadcast, Hello timer 10 S
NBMA,P2MP,P2MP Non Hello timer 30 S

FR环境下的各种网络类型
1,Hub & Spoke 同一网段;
2,Hub 有到Spoke端的映射。

NBMA
单播更新
有DR(HUB)
手工MAP(Spoke)无需Broadcast

BMA
组播(fram map broadcast)
有DR(HUB)
不需要MAP(Spoke), 注:如要手工MAP,建立邻居则不需加Broadcast

P2MP-NBMA
单播
无DR
产生32位主机路由(Spoke端不需手工MAP)
产生路由下一跳指向HUB端

P2MP
组播(fram map broadcast)
无DR
不需要MAP