Lab_6 OSPF
1.OSPF的基本概念及特点... 1
2.OSPF邻接关系的建立流程... 3
3.不同网络类型中OSPF的配置... 7
4.虚链路和GRE隧道... 21
5.OSPF的重分布... 25
6.汇总... 28
7.特殊区域... 32
8.OSPF路由器的类型和LSA.. 35
9.OSPF认证... 38
OSPF的基本概念及特点
链路状态路由协议
在链路状态路由协议中,路由器和路由器之间交换的是链路状态。而距离矢量路由协议中,路由器与路由器之间交换的是路由表。链路状态路由协议能够识别更多的网络信息,所以选出的路由比距离矢量路由协议选出的路由更优。在OSPF中,一共维护着三个数据库:所有的邻居,区域内所有的路由器(链路状态),到达目的地最佳路径。OSPF是通过链路状态表中整个区域的链路状态来计算出路由表的。
OSPF中的三张表
邻居表(adjacency database),拓扑表,路由表。
层次化的机构
OSPF的网络在设计时应该设计为层次性的网络,这是一个强制要求。有两个级别的层次一个为主干区Transit area(backbone or area 0),另一个为非主干区域Regular areas(nonbackbone areas)。可以认为,在区域内部交换的是链路状态,而在区域和区域之间交换的则是路由信息。
OSPF区域的特点:
1. 减小路由表的条目;
2. 本地化拓扑结构,只在本区域传播,将拓扑变化影响减到最小;
3. 详细的LSA的洪泛将终结在区域的边界上;
4. 需要层次化的网络设计;
5. 一般情况下,所有的非主干区域都应该与主干区域相连,非主干区域之间是不会交换信息的;
ABR称为区域边界路由器,作用就是将非主干区域和主干区域连接起来。
链路状态数据结构(邻居表):
1. OSPF通过交换Hello包来发现邻居;
2. 通过检查Hello包中的一些选项或者变量后建立邻居关系的;
3. 在点到点的广域网环境中,邻居之间是全互联的;
4. 在局域网环境中,所有路由器只与DR和BDR形成邻接关系(adjacency),而其他的路由器(DROTHERs)之间则只是two-way的关系;
5. 路由更新和拓扑信息之在邻接关系的路由器之间进行传播;
所有的路由更新,以及链路状态信息都是通过网络中的DR和BDR传输的。也就是说,所有的DROTHER都会与DR还有BDR建立邻接关系(adjacency)。
SPF算法:在每个路由器的链路状态表中都应用Dijkstra’s SPF 算法。
1. 每个路由器上都会有一个链路状态数据库;
2. 每个路由器都会先将自己作为一个根,然后建立起一个SPF树;
3. 最优路径的计算是到达目的地的所有路径开销的总和;
4. 最优路径将被放到路由表中;
LSA的操作:
1. 首先,与自己的链路状态表对比一下,看看是否在其中;
2. 如果没有的话,把它加到自己的链路状态数据库中,同时发出一个确认包;
3. 如果有的话,比较顺序号,如果顺序号相同,则忽略。如果小于自己的,则给源发送一个LSU;
4. 然后洪泛传输自己的LSA给其他路由器;
5. 运行SPF算法,重新计算路由表;
PS:LSA传输的时候,每次只能传输一跳。
router-id的选择
1.手动指定>loop口 最大(不用宣告进路由)> 物理接口最大
Router-id具有非抢占性,在启动ospf进程后开始选择
R1 f0/0------f0/0 R2
启动OSPF进程
此时创建一个回环口loop 0 1.1.1.1
此时的id并没有改变
如果两台直连的路由器,router-id相同则无法建立邻居关系
如果不直连,id相同则无法同步数据库
R1―R2―R3
此时R1和R3router-id同为1.1.1.1
OSPF邻接关系的建立流程
1.Down: 初始化状态.
2.Attempt: 只适于NBMA网络,在NBMA网络中邻居是手动指定的,在该状态下,路由器将使用
HelloInterval取代PollInterval来发 送Hello包.
3.Init: 表明在DeadInterval里收到了Hello包,但是2-Way通信仍然没有建立起来.
4.two-way: 双向会话建立.
5.ExStart: 信息交换初始状态,在这个状态下,本地路由器和邻居将建立Master/Slave关系,并确定DD
Sequence Number,接口等级高的的成为Master。
6.Exchange: 信息交换状态,本地路由器向邻居发送数据库描述包,并且会发送LSR用于请求新的LSA
7.Loading: 信息加载状态,本地路由器向邻居发送LSR用于请求新的LSA
8.Full: 完全邻接状态,这种邻接出现在Router LSA和Network LSA中
Debug
Debug ip ospf packet
Debug ip ospf events
Debug ip ospf adj
Debug ip packe
04:25:18: %LINK-3-UPDOWN: Interface Serial0/0, changed state to up
//打开S0/0接口
04:25:18: OSPF: Interface Serial0/0 going Up
//OSPF进程启动
04:25:18: IP: s=12.1.1.1 (local), d=224.0.0.5 (Serial0/0), len 64, sending broad/multicast
//发送hello包组播 由于debug ip ospf packet 无法捕获到发送的hello包内容,所以这里无显示
04:25:18: OSPF: Build router LSA for area 0, router ID 1.1.1.1, seq 0x8000000F
//构建LAS
04:25:19: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up
R1#
04:25:25: IP: s=12.1.1.2 (Serial0/0), d=224.0.0.5, len 68, rcvd 0
04:25:25: OSPF: rcv. v:2 t:1 l:48 rid:2.2.2.2
aid:0.0.0.0 chk:F694 aut:0 auk: from Serial0/0
04:25:25: OSPF: Rcv hello from 2.2.2.2 area 0 from Serial0/0 12.1.1.2
//在S0/0收到来自12.1.1.2 的hello包,版本:2/类型:hello包/routerID:2.2.2.2/区域号:0/校验:F694/无验证/
04:25:25: OSPF: 2 Way Communication to 2.2.2.2 on Serial0/0, state 2WAY
//进入2way状态
04:25:25: OSPF: Send DBD to 2.2.2.2 on Serial0/0 seq 0x15C2 opt 0x42 flag 0x7 len 32
//通过S0/0发送DBD到2.2.2.2 ,序列号:0x15C2 flag 0x7,这是第一个DBD包,以后还会继续发,我为主
04:25:25: IP: s=12.1.1.1 (local), d=224.0.0.5 (Serial0/0), len 52, sending broad/multicast
04:25:25: OSPF: End of hello processing
04:25:25: IP: s=12.1.1.2 (Serial0/0), d=224.0.0.5, len 52, rcvd 0
04:25:25: OSPF: rcv. v:2 t:2 l:32 rid:2.2.2.2
aid:0.0.0.0 chk:A337 aut:0 auk: from Serial0/0
04:25:25: OSPF: Rcv DBD from 2.2.2.2 on Serial0/0 seq 0xEBF opt 0x42 flag 0x7 len 32 mtu 1500 state EXSTART
//在S0/0上收到到来自2.2.2.2的DBD包 序列号:0xEBF flag 0x7,这是第一个DBD包,以后还会继续发,我为主,并进入准启动状态
04:25:25: OSPF: NBR Negotiation Done. We are the SLAVE
//经过一轮协商,发现我的routerid小于2.2.2.2所我为从
04:25:25: OSPF: Send DBD to 2.2.2.2 on Serial0/0 seq 0xEBF opt 0x42 flag 0x2 len 72
//给2.2.2.2发送一个DBD包确认,告诉他,我为从
04:25:25: IP: s=12.1.1.1 (local), d=224.0.0.5 (Serial0/0), len 92, sending broad/multicast
04:25:25: IP: s=12.1.1.2 (Serial0/0), d=224.0.0.5, len 92, rcvd 0
04:25:25: IP: s=12.1.1.2 (Serial0/0), d=224.0.0.5, len 56, rcvd 0
04:25:25: OSPF: rcv. v:2 t:2 l:72 rid:2.2.2.2
aid:0.0.0.0 chk:2B5E aut:0 auk: from Serial0/0
04:25:25: OSPF: rcv. v:2 t:3 l:36 rid:2.2.2.2
aid:0.0.0.0 chk:F5CF aut:0 auk: from Serial0/0
04:25:25: OSPF: Rcv DBD from 2.2.2.2 on Serial0/0 seq 0xEC0 opt 0x42 flag 0x3 len 72 mtu 1500 state EXCHANGE
04:25:25: OSPF: Send DBD to 2.2.2.2 on Serial0/0 seq 0xEC0 opt 0x42 flag 0x0 len 32
04:25:25: IP: s=12.1.1.1 (local), d=224.0.0.5 (Serial0/0), len 52, sending broad/multicast
04:25:25: IP: s=12.1.1.1 (local), d=224.0.0.5 (Serial0/0), len 56, sending broad/multicast
04:25:25: OSPF: Database request to 2.2.2.2
04:25:25: OSPF: sent LS REQ packet to 12.1.1.2, length 12
//
04:25:25: IP: s=12.1.1.1 (local), d=224.0.0.5 (Serial0/0), len 96, sending broad/multicast
04:25:25: IP: s=12.1.1.2 (Serial0/0), d=224.0.0.5, len 52, rcvd 0
04:25:25: IP: s=12.1.1.2 (Serial0/0), d=224.0.0.5, len 96, rcvd 0
04:25:25: OSPF: rcv. v:2 t:2 l:32 rid:2.2.2.2
aid:0.0.0.0 chk:A33B aut:0 auk: from Serial0/0
04:25:25: OSPF: rcv. v:2 t:4 l:76 rid:2.2.2.2
aid:0.0.0.0 chk:1373 aut:0 auk: from Serial0/0
04:25:25: OSPF: Rcv DBD from 2.2.2.2 on Serial0/0 seq 0xEC1 opt 0x42 flag 0x1 len 32 mtu 1500 state EXCHANGE
//双方交换DBD包,并确认,进入到EXCHANGE状态,向12.1.1.2放松链路状态请求(LS REQ),收到2.2.2.2来的LSU
04:25:25: OSPF: Exchange Done with 2.2.2.2 on Serial0/0
04:25:25: OSPF: Send DBD to 2.2.2.2 on Serial0/0 seq 0xEC1 opt 0x42 flag 0x0 len 32
//回复给2.2.2.2一个DBD包,确认双方数据库是否同步
04:25:25: IP: s=12.1.1.1 (local), d=224.0.0.5 (Serial0/0), len 52, sending broad/multicast
04:25:25: OSPF: Synchronized with 2.2.2.2 on Serial0/0, state FULL
04:25:25: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on Serial0/0 from LOADING to FULL, Loading Done
//进入全邻接状态
04:25:26: OSPF: Build router LSA for area 0, router ID 1.1.1.1, seq 0x80000010
04:25:26: IP: s=12.1.1.1 (local), d=224.0.0.5 (Serial0/0), len 108, sending broad/multicast
04:25:26: IP: s=12.1.1.2 (Serial0/0), d=224.0.0.5, len 108, rcvd 0
04:25:26: OSPF: rcv. v:2 t:4 l:88 rid:2.2.2.2
aid:0.0.0.0 chk:3067 aut:0 auk: from Serial0/0
04:25:28: IP: s=12.1.1.2 (Serial0/0), d=224.0.0.5, len 64, rcvd 0
04:25:28: OSPF: rcv. v:2 t:5 l:44 rid:2.2.2.2
aid:0.0.0.0 chk:1EF9 aut:0 auk: from Serial0/0
04:25:28: IP: s=12.1.1.1 (local), d=224.0.0.5 (Serial0/0), len 64, sending broad/multicast
04:25:28: IP: s=12.1.1.1 (local), d=224.0.0.5 (Serial0/0), len 68, sending broad/multicast
R1#
04:25:30: IP: s=12.1.1.1 (local), d=224.0.0.5 (Serial0/0), len 108, sending broad/multicast
04:25:30: IP: s=12.1.1.2 (Serial0/0), d=224.0.0.5, len 108, rcvd 0
04:25:30: OSPF: rcv. v:2 t:4 l:88 rid:2.2.2.2
aid:0.0.0.0 chk:3063 aut:0 auk: from Serial0/0
R1#
04:25:33: IP: s=12.1.1.2 (Serial0/0), d=224.0.0.5, len 64, rcvd 0
04:25:33: OSPF: rcv. v:2 t:5 l:44 rid:2.2.2.2
aid:0.0.0.0 chk:5C17 aut:0 auk: from Serial0/0
//同步数据库,并发送LSA确认
不同网络类型中OSPF的配置
OSPF的网络类型凌驾于真实网络之上 OSPF定义了3种网络:1.点到点网络
比如T1线路,是连接单独的一对路由器的网络,点到点网络上的有效邻居总是可以形成邻接关系的,在这种网络上,OSPF包的目标地址使用的是224.0.0.5
2.广播型网络
比如以太网,这样的网络上会选举一个DR和BDR,DR/BDR的发送的OSPF包的目标地址为224.0.0.5,运载这些OSPF包的帧的目标MAC地址为0100.5E00.0005;而除了DR/BDR以外的OSPF包的目标地址为224.0.0.6
3.NBMA网络
比如X.25,Frame Relay,和ATM,不具备广播的能力,因此邻居要人工来指定,在这样的网络上要选举DR和BDR,OSPF包采用unicast的方式
在NBMA中OSPF的运行模式有5种: 网络类型 |
邻居自动发现 |
有无DR选举 |
Hello间隔 |
传输方式 |
Non_broadcast |
否 |
有 |
30s |
单播 |
Broadcast |
是 |
有 |
10s |
组播 |
Point-to-Point |
是 |
无 |
10s |
组播 |
Point-to-Multipoint |
是 |
无 |
30s |
组播 |
Point-to-Multipoint(非广播) |
否 |
无 |
30s |
单播 |
1. 广播型网络
DR和BDR的选举
在广播型多路访问链路上,所有在接口下启用了OSPF进程的路由器,在进入Two-Way状态后开始触发选举过程。这个状态下,这台路由器都检查每个邻居路由器发送过来的HELLO数据包的优先级(优先级不参与选举)、DR和BDR字段。如果邻居路由器没有相关DR和BDR字段,那么就等待40S的时间,才开始选举DR/BDR,这也是保证选举的公平性。
DR是一个路由器接口的特征,而不是整个路由器的特征,换句话说,一台路由器可能是其中一个与他相连的广播网络的DR,但可能不是其他与他相连的广播网络的DR
DR&BDR的选取机制其实是先选BDR路由器,再选DR路由器.然而,由于"在路由器和它的邻居路由器之间首先建立双向通信(2-way communication),接着检查每台邻居路由器发送的Holle数据包的优先级,DR和BDR字段.列出所有具有DR和BDR选取资格的路由器列表(也就是说,路由器的优先级要大于0,并且它的邻居状态至少要是2-way的);接着,所有的路由器将宣称自己是DR路由器(Holle数据包的DR字段是它们自身接口的地址);所有路由器也将宣称自己是BDR路由器(Holle数据包的BDR字段是它们自身接口的地址)"和"宣告自己为DR路由器的路由器不能被选取为BDR路由器"这2个条件的存在,导致实际是DR路由器优先于BDR路由器之前选出来的.然后再重复刚才的步骤,选出BDR路由器.之所以用这样的机制,最大的好处就是在第一次选举出DR路由器之后,当BDR路由器出现故障时能够以最快的速度选出新的BDR路由器.而当DR出现故障后,BDR路由器也能够以最快的速度变成DR路由器.加快了网络的收敛,提高了网络的利用率
R1(f0/1)-----(f0/0)R2
当R1 OSPF进程启动后发送hello包 DR和BDR都为空,并且没有邻居
24s之后R2ospf进程启动,开始发生hello包
R1、R2收到对方的hello包后,在邻居表中添加邻居,并携带邻居表向外发送hello包,此时进入toway状态,DR和BDR仍然为空
当R1 等待计时器(40S)走完之后启动选举进程,开始选举DR、BDR,先选举BDR由于R2 router-id比R1高则R2将成为BDR,但是网络中又没有DR,所以R2成为DR,
但此时R2的还处于等待时间中 收到R1的hello包,发现自己就是DR和BDR所以不会将自己作为DR和BDR列出
R1将会继续宣告R2是DR和BDR,并发送DBD但由于R2还不知道DR和BDR,此时R2会一直提示进入2way状态
R2的等待时间结束,此时也宣称自己是BDR和DR路由器,收到R1的hello包,发现自己就是DR,所以将自己设为DR,加上"宣告自己为DR路由器的路由器不能被选取为BDR路由器"所以不参与BDR选举并将R1设为BDR
、
此时DR DBR选举结束并建立起邻接关系
假如,这个网络只有一台路由器(优先级不为0),它会选举DR/BDR吗?
R1#clear ip ospf pro
Reset ALL OSPF processes? [no]: y
00:12:13: OSPF: Flushing External Links
00:12:13: OSPF: Flushing Opaque AS Links
00:12:13: OSPF: Flushing Link states in area 0
00:12:13: OSPF: Interface FastEthernet0/0 going Down
00:12:13: OSPF: 1.1.1.1 address 12.1.1.1 on FastEthernet0/0 is dead, state DOWN
00:12:13: OSPF: Neighbor change Event on interface FastEthernet0/0
00:12:13: OSPF: DR/BDR election on FastEthernet0/0
00:12:13: OSPF: Elect BDR 0.0.0.0
00:12:13: OSPF: Elect DR 0.0.0.0
00:12:13: OSPF: Elect BDR 0.0.0.0
00:12:13: OSPF: Elect DR 0.0.0.0
00:12:13: DR: none BDR: none
00:12:13: OSPF: Flush network LSA immediately
00:12:13: OSPF: Remember old DR 1.1.1.1 (id)
00:12:13: Stop timer for 1.1.1.1 1.1.1.1 1 3
00:12:13: OSPF: Interface FastEthernet0/0 going Up
00:12:14: OSPF: We are not DR to build Net Lsa for interface FastEthernet0/0
00:12:14: Add 1.1.1.1 1.1.1.1 1 to min 23
00:12:14: Delay 600000/623736/833544/833868 translated to 23/9 for 10/27 324 (3)
00:12:14: OSPF: Build router LSA for area 0, router ID 1.1.1.1, seq 0x80000001
00:12:53: OSPF: end of Wait on interface FastEthernet0/0
00:12:53: OSPF: DR/BDR election on FastEthernet0/0
00:12:53: OSPF: Elect BDR 1.1.1.1
00:12:53: OSPF: Elect DR 1.1.1.1
00:12:53: OSPF: Elect BDR 0.0.0.0
00:12:53: OSPF: Elect DR 1.1.1.1
00:12:53: DR: 1.1.1.1 (Id) BDR: none
00:12:54: OSPF: No full nbrs to build Net Lsa for interface FastEthernet0/0
R1#
2. 点到点网络
Hello时间10s 死亡时间40s 等待时间 40s
不会选举DR和BDR
组播更新
3. 帧中继网络
基本配置
在帧中继网络中OSPF的运行模式有5种:Type1----Non_Broadcast
默认配置
发现没有邻居。说明在这种情况下邻居需要手动配置!
发现邻居已经形成并且有DR与BDR的选举!
单波更新
hello时间30s
如果此时在R2上no掉frame-relay map ip 12.1.1.1 201 b
路由表仍然存在
但链路层封装失败
Type2---- Broadcast
首先去掉刚才手动配置的邻居关系:
R1(config)#router ospf 100
R1(config-router)#no neighbor 12.1.1.2
R2(config)#router ospf 100
R2(config-router)#no neighbor 12.1.1.1
将R1和R2接口的网络类型改成broadcast
R1(config-router)#int s0/0
R1(config-if)#ip ospf network broadcast
R2(config-router)#int s0/0
R2(config-if)#ip ospf network broadcast
这说明了在这种网络类型下是不需要手动配置邻居关系的!
有DR与BDR的选举
Hello时间10s
传输方式为组播
Type3---- Point-to-Point
将R1,R1接口的网络类型改成Point-to-Point
R1(config-if)#ip ospf net point-to-point
R1(config-if)#ip ospf net point-to-point
Hello时间10s
这说明了在这种网络类型下是不需要手动配置邻居关系的!
不会选举DR、BDR
组播更新
Type4---- Point-to-Multipoint
将接口改为Point-to-Multipoint
R1(config-if)#ip ospf network point-to-multipoint
R2(config-if)#ip ospf network point-to-multipoint
Hello 时间30s
同样不需要手动指定邻居关系
同样也不会选举DR、BDR
组播更新
Type5---- Point-to-Multipoint(Non_Broadcast)
R1(config-if)#ip ospf network point-to-multipoint non-broadcast
R2(config-if)#ip ospf network point-to-multipoint non-broadcast
这个时候邻居没有被自动发现。我们在R1,R2上手动指定邻居
R2(config-router)#nei 12.1.1.1
R1(config-router)#nei 12.1.1.2
不选举DR BDR
总结
网络类型 |
邻居自动发现 |
有无DR选举 |
Hello间隔 |
传输方式 |
Non_broadcast |
否 |
有 |
30s |
单播 |
Broadcast |
是 |
有 |
10s |
组播 |
Point-to-Point |
是 |
无 |
10s |
组播 |
Point-to-Multipoint |
是 |
无 |
30s |
组播 |
Point-to-Multipoint(非广播) |
否 |
无 |
30s |
单播 |
虚链路和GRE隧道
虚链路
基本配置
虚链路的配置:
虚链路必须配置在ABR上,在这个网络中ABR是R1和R2。
R1(config)#router ospf 100
R1(config-router)#area 1 virtual-link 2.2.2.2
R2(config)#router ospf 100
R2(config-router)#area 1 virtual-link 1.1.1.1
虚链路的Metric等同于所经过的全部链路开销之和,在这个网络中,Metric=1(Loopback)+10+10=21。
OSPF虚链路
是一条逻辑链路,在逻辑上等同于一条物理链路。主要有以下用途:
*通过一个非骨干区域连接一个区域到骨干区域
*通过一个非骨干区域连接一个分开的骨干区域
虚链路的配置必须是在ABR上进行的。并且采用的是不老化路由(DNA)。
GRE隧道
先no掉先前的虚链路
同样,在ABR上配置GRE隧道
并将tunnel发布到区域0
GRE源和目的也可以指向逻辑接口
OSPF的重分布
基本环境
在R2上实施重发布使全网路由同步
OSPF与RIP双向重发布
默认类型为E2
E2和E1的区别在于
E1 要计算外部加内部的METRIC 值,
E2 只计算外部的,不计算内部的,但会记下沿途的METRIC
在做OSPF的双节点重分布时如果使用E2则会导致路由混乱
我们把它修改为1
OSPF与EIGRP的重分布
OSPF/EIGRP重发布
汇总+特殊区域
现在我们来对网络进行汇总,首先是自治系统间汇总
自动生成一条指向null0的汇总路由
自制系统间汇总
特殊区域
STUB完全末节区域
为了减少LSA泛洪量和路由表条目,就创建了末节区域,但要注意的,末梢区域中不允许存在虚拟链路;末梢区域中不允许存在AS边界路由器,末梢区域中的所有路由器都必须属于该末梢区域。对于末梢区域来说,访问AS外部的数据只能根据默认路由来寻址。
对之前的配置进行修改
此时设置stub
NSSA 次末节区域
因此NSSA里可以有ASBR,ASBR将使用type7-LSA来宣告外部路由,但经过ABR,Type7被转换为Type5.7类LSA通过OSPF报头的一个P-bit作Tag,如果NSSA里的ABR收到P位设置为1的NSSA External LSA,它将把LSA类型7转换为LSA类型5.并把它洪泛到其他区域中;
如果收到的是P位设置为0的NSSAExternal LSA,它将不会转换成类型5的LSA,并且这个类型7的LSA里的目标地址也不会被宣告到NSSA的外部NSSA在IOS11.2后支持。
假如有另外一个路由器需要连在R1上,这时只能使用NSSA,因为在NSSA区域允许ASBR出现。我们在R1上添加一条环回口5.5.5.5,将其用RIP宣告出去,并加入OSPF协议中。
此时在R3上做路由重分布
OSPF路由器的类型和LSA
AR:内部路由器,所有接口都处在一个区域的路由器
ABR:连接一个过多个区域的路由器。ABR至少有一个接口是连接骨干区域的
BR:骨干路由器,至少有一个接口是和骨干区域相连接的路由器
ASBR:连接OSPF和外部自制系统的路由器
OSPF LSA的类型
类型代码 |
类型名称 |
描述 |
1 |
路由器LSA |
每台路由器都会产生,在区域内泛洪 |
2 |
网络LSA |
DR产生,在区域内泛洪 |
3 |
网络汇总LSA |
ABR始发,在整个OSPF域中泛洪 |
4 |
ASBR汇总LSA |
ABR始发,在整个OSPF域中泛洪 |
5 |
AS外部LSA |
ASBR始发,在整个OSPF域中泛洪 |
6 |
组成员LSA |
标识OSPF组播中的组成员,不做讨论 |
7 |
NSSA外部LSA |
ASBR始发, |
8 |
外部属性LSA |
没有实现 |
9 |
Opaque LSA(本地链路范围) |
用于MPLS流量工程,不做讨论 |
10 |
Opaque LSA(本地区域范围) |
|
11 |
Opaque LSA(AS范围) |
第一类:路由LSA
路由LSA描述了区域内路由器的链路状态,并且只在路由器所在区域内传播。
第二类:网络LSA
网络LSA描述连接到一个特定非广播多点接入(NBMA)或广播网络的一组路由器。网络LSA的作用是保证对某NBMA或广播网络只产生一个LSA。这是一种内部OSPF汇总。
第三类:ABR汇总LSA
此类LSA由ABR产生,用来描述不同网络区域间的路由器。特别的,此类LSA描述在一个OSPF自治区域内但在一个特定的接受LSA的OSPF区域之外的网络。第3类LSA的泛洪范围是没有找到网络或子网的区域。
第四类:ASBR汇总LSA
在功能上与第三类LSA非常类似,第4类LSA描述自治系统和边界路由器的路由,使得其他的路由器可以找到并到达ASBR。
第五类:自治系统外部LSA
由ASBR产生,描述在AS之外的目的地路由,除了stub区域外,第5类LSA到处泛洪。
第六类:组播LSA
该类LSA,Cisco并不支持,因此不进行讨论。
第七类:NSSA端区LSA
该类LSA由ASBR产生,描述一个非完全端区内的路由。此类LSA能够被ABR汇总并被第5类LSA覆盖,以传送到其他OSPF区域。详细信息可以参考RFC1587。
OSPF各区域中LSA类型
区域类型 |
LSA1 |
LSA2 |
LSA3 |
LSA4 |
LSA5 |
LSA7 |
普通区域 |
★ |
★ |
★ |
★ |
★ |
|
Stub |
★ |
★ |
★ |
|||
Totally Stub |
★ |
★ |
||||
NSSA |
★ |
★ |
★ |
★ |
||
Totally NSSA |
★ |
★ |
★ |
OSPF认证
OSPF的认证有2种类型(确切说是3种),其中type0表示无认证,type1表示明文认证,type2表示MD5认证。明文认证发送密码进行认证,而MD5认证发送的是报文摘要。有关MD5的详细信息,可以参阅RFC1321.
OSPF的认证可以在链路上进行,也可以在整个区域内进行认证。另外虚链路同样也可以进行认证。
端口认证
在R1和R2的串行链路上进行OSPF明文认证:
首先先在R1上做如下配置,看在R1配置完认证,R2还没有配置认证的时候的情况:
R1(config)#int s1/0
R1(config-if)#ip ospf authentication(启用认证)
R1(config-if)#ip ospf authentication-key cisco(配置密码)
debug
*Aug 15 22:51:54.275: OSPF: Rcv pkt from 10.1.1.2, Serial1/0 : Mismatch Authentication type. Input packet specified type 0, we use type 1
这里的type0是指对方没有启用认证,type1是明文认证。
在R2上配置认证
R2(config)#int s1/0
R2(config-if)#ip ospf authentication
R2(config-if)#ip ospf authentication-key cisco
*Aug 15 22:54:55.815: %OSPF-5-ADJCHG: Process 10, Nbr 1.1.1.1 on Serial1/0 from LOADING to FULL, Loading Done
在R2和R3的串行链路上进行MD5认证的
R2(config)#int s1/1
R2(config-if)#ip ospf authentication message-digest(定义认证类型为MD5)
R2(config-if)#ip ospf message-digest-key 1 md5 cisco(定义key和密码)
R3(config)#int s1/0
R3(config-if)#ip ospf authentication message-digest
R3(config-if)#ip ospf message-digest-key 1 md5 cisco
R3(config-if)#
*Aug 15 22:59:44.175: %OSPF-5-ADJCHG: Process 10, Nbr 2.2.2.2 on Serial1/0 from LOADING to FULL, Loading Done
在Area0上进行区域认证
R1(config)#router ospf 100
R1(config-router)#area 0 authentication
DEBUG
*Aug 15 23:09:32.619: %OSPF-5-ADJCHG: Process 10, Nbr 2.2.2.2 on FastEthernet0/0 from FULL to DOWN, Neighbor Down: Dead timer expired
*Aug 15 23:10:32.619: OSPF: Rcv pkt from 21.1.1.2, FastEthernet0/0 : Mismatch Authentication type. Input packet specified type 0, we use type 1
我们注意到我们并没有配置密码。也就是说在不配置密码的情况下,仍需要双方都启用认证才可以保持邻居关系。
在R2上也开启区域认证
R2(config-router)#area 0 authentication
R2(config-router)#
*Aug 15 23:20:43.239: %OSPF-5-ADJCHG: Process 10, Nbr 1.1.1.1 on FastEthernet0/0 from LOADING to FULL, Loading Done
邻居关系也恢复了。
虚链路也可以单独配置认证,同样分为Null,明文认证,MD5认证。配置命令如下:
Null:
R2(config-router)#area 1 virtual-link 3.3.3.3 authentication null
R3(config-router)#area 1 virtual-link 2.2.2.2 authentication null
明文:
R2(config-router)#area 1 virtual-link 3.3.3.3 authentication-key cisco
R3(config-router)#area 1 virtual-link 2.2.2.2 authentication-key cisco
MD5:
R2(config-router)#area 1 virtual-link 3.3.3.3 authentication message-digest
R2(config-router)#area 1 virtual-link 3.3.3.3 message-digest-key 1 md5 cisco
R3(config-router)#area 1 virtual-link 2.2.2.2 authentication message-digest
R3(config-router)#area 1 virtual-link 2.2.2.2 message-digest-key 1 md5 cisco
PS:认证部分参考网友博文