姓名
|
xiaoyu888
|
OSPF
基本概念单与区域配置
|
完成日期
|
08.2.21
|
|||||||||||||||||||||||||||||||||||||||||||
O
S
P
F
的基本概念
|
1
:
OSPF
(
Open Shortest Path First
)开放式最短路优先协议,是基于开放标准的链路状态路由选择协议.具有更适用于规模较大的网络环境.
2
:内部网关路由协议(
IGP
),用于在单一自治系统(
Autonomous
System-AS
)内决 策路由[自治系统<
AS
>――执行统一路由策略的一组网络设备组合(运行相同路由协议的路由器相连组成的区域)];外部网关路由协议(
EGP
),用于多个自治系统之间的执行路由.
3
:
OSPF
的区域:本区域只维护本区域的完整链路状态协议,划区域的目的是:优化网络环境.在一个自治系统的区
ID
绝对不一样
.
4
:
OSPFOSPF
是链路状态路由协议,链路状态路由协议中的路由器明白
OSPF
网络内的链路状态信息
OSPF
是链路状态路由协议,链路状态路由协议中的路由器了解
OSPF
网络内的链路状态信息。
5
:链路状态路由协议中,直连的路由器之间建立邻接关系,互相“交流”链路信息,来“画”出完整的网络结构
6
:
Router IDRouter ID
:是在
OSPF
区域内唯一标识一台路由器的
IP
地址
Router ID
选取规则:
a
:首先,路由器选取它所有
loopback
接口上数值最高的
IP
地址
b
:如果没有
loopback
接口,就在所有物理端口中选取一个数值最高的
IP
地址
7
:链路状态路由协议中的数据库类型
邻居列表
列出每台路由器全部已经建立邻接关系的邻居路由器
链路状态数据库(
LSDB
)
列出网络中其他路由器的信息,由此显示了全网的网络拓扑
路由表
列出通过
SPF
算法计算出的到达每个相连网络的最佳路径
8
:
OSPF
邻接关系的建立;邻居的三要素(
a
、
c
、
d
;
b
为可选的一条):
a
:
Area-id
:两个路由器必须在共同的网段上,它们的端口必须属于该网段上的同一个区域,且属于同一个子网
b
:验证(
Authentication OSPF
):同一区域路由器必须交换相同的验证密码,才能成为邻居
(可选的部分
)
c
:
Hello Interval
和
Dead Interval
:
OSPF
协议需要两个邻居路由器的这些时间间隔相同,否则就不能成为邻居路由器。
d
:
stub
区域标记:两个路由器可以在
Hello
报文中通过协商
Stub
区域的标记来成为邻居。
9
:
OSPF
的网络类型:
|
||||||||||||||||||||||||||||||||||||||||||||||
|
邻接关系的建立过程:
(
1
):
RA
发送一Hello
报文,在开始,RA
没有任何邻居,所以这个报文的邻居字段是空的。
(
2
):
RB
接受到RA的HELLO
报文,RB会为A
创建一个邻居数据结构,并将A
的状态设为init
状态(初始状态)。
(
3
):
同理,RB
也会进行同样的运动,发送HELLO
报文,neighbor
字段也是空的,A
接受到这个HELLo
报文,会进行同样的处理。
(
4
):
这时,路由器会对对方的HELLO
报文做出HELLO
报文的响应,在这个报文的其中,会在邻居的字段中这置对方的路由器ID
(我们以B
给A
的响应为例)就会设置有A
的路由器ID
。进入2-way
状态。在这时和会根据RouterID
选举DR
或BDR
。
(
5
):
当路由器A
接收到含有自己的路由器ID
的HELLO
报文,A
就会将为B创建一个邻居数据库,并把B的状态设置为Exstart
状态,路由器A
会一个空的数据库描述报文(没有包含LSA的的摘要),在这个报文中,会将数据库描述报文的序列号设置为x
,同时设置初始位用于标示这个报文是路由器A
进行本次Exchange
的最初的DBD
报文。
(
6
):
路由器B
收到A
的DBD
报文,就会将A
的状态转换位Exstart
,同时RB
响应RA
,并设置这个DBD
的序列号位y
。
(
7
):
RA
收到
RB
的
DBD
报文,就会将
RB
的状态转换为
Exchange
,路由器
A
产生一个
DBD
报文,使用
RB
的序列号
y
,同时该报文将会传送
RA
的
LSA
头部。
(
8
):
路由器B
收到A
的报文DBD
,将A
的状态转换为Exchange
,它也会DBD
报文(包含RB
自己的LSA
头部),并却使序列号变为y+1.
(
9
):
RA
收到RB
的报文后,RA
会发送一个相同序列号的确认报文。延续该过程,RB
发送以一个单一的DBD报文,等待RA
的确认(序列号相同)。然后RB再发送一个DBD
报文,直到RB
发出包含最后一个LSA摘要的DBD报文。
(
10
):
RA
收到上述报文后,并确认是最后的LSA,就会认为ExChange
已经完成,RA
的链路状态请求列表中还存在LSA条目,因此它会装换为loading
状态。
(
11
):
路由器RB
收到最后以个DBD
时,B
把A
的状态转为FULL
状态,因为它没有LSA条目了
(
12
)
:
RA
发送链路状态请求报文,RB
通过链路状态更新报文发送RA
的LSA的通告,延续该过程,直到RA的请求列表为空,达到FULL
状态,整个过程结束!
10
:指定路由器(
DR
):
一个网段上的其他路由器都和指定路由器(
DR
)构成邻接关系
,而不是它们互相之间构成邻接关系
备份指定路由器(
Backup Designated Router
;
BDR
)
通过
Hello
报文选择
DR
和
BDR
来代表
OSPF
网段
其他的路由器
(DRothers)
只和
DR
及
BDR
路由器之间形成邻接关系
DR
和
BDR
的选择
:通过组播发送
Hello
报文(
DRothers
地址是
224.0.0.5
,
DR
和
BDR
的组播地址是
224.0.0.6
)
具有最高
OSPF
优先级的路由器会被选为
DR
如果
OSPF
优先级相同,则具有最高
Router ID
的路由器会被选为
DR
只有接口类型为广播接口和
NBMA
口类型
会
选择
DR
和
BDR
OSPF
的Hello协议:
当路由器上启动OSPF进程时,每台路由器都会间隔一定的时间发送Hello包
Hello
包通过组播地址224.0.0.5发送
OSPF
路由器使用Hello包发起建立邻接关系并监视这种关系的存在和消失
它用来在一个广播网络或非广播多址的网络上选取指定路由器和备份指定路由器
|
||||||||||||||||||||||||||||||||||||||||||||||
OSPF
的实验
|
|||||||||||||||||||||||||||||||||||||||||||||||
实验拓扑图
|
|
||||||||||||||||||||||||||||||||||||||||||||||
实验原理
|
首选路由器会保存
3
张表:邻居列表、
LSDB
(链路状态数据库)、路由表。在开始,要建立邻接关系(过程如上面的蓝色字体),建立邻接关系后,就会学习链路状态信息,建立链路状态数据库,在这时还没有完,会通过
Djkstra
算法(最短路径算法
SPF
算法)算出最短路径树,这时根据最短路径树得出路由表。这时就根据路由表来转发信息。
|
||||||||||||||||||||||||||||||||||||||||||||||
实验步骤
|
|||||||||||||||||||||||||||||||||||||||||||||||
路由器
A
的配置
:
RouterA
>enable
进入特权模式
RouterA#interface loopback 0
进入还回口
RouterA(config-if)#ip address 1.1.1 .1 255.255.255.0
设置
IP
地址
RouterA(config-if)#no shutdown
开启
RouterA(config-if)#exit
退出
RouterA(config)#interface serial 1/0
进入串口
1/0
RouterA(config-if)#ip address 192.168.10.1 255.255.255.0
设置
IP
地址
RouterA(config-if)#no shutdown
开启
RouterA(config-if)#exit
退出
RouterA(config)#router ospf 1
启动
OSPF
路由进程
RouterA(config-router)#network 192.168.10.0 0.0.0 .255 area 1
指定
OSPF
协议运行的接口所在区域
RouterA(config-router)#exit
退出
RouterA(config)#^Z Ctrl+Z
退出
RouterA#ping 192.168.20.2
检测网络连通性
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 200/250/360 ms
RouterA#show ip protocols
查看路由器运行的协议
Routing Protocol is "ospf 1"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Router ID 1.1.1 .1
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Maximum path: 4
Routing for Networks:
192.168.10.0 0.0.0 .255 area 1
192.168.20.0 0.0.0 .255 area 1
Routing Information Sources:
Gateway Distance Last Update
2.2.2 .2 110 00:00:17
Distance: (default is 110)
RouterB
(config)#interface loopback 0
进入还回口
RouterB(config-if)#ip address 2.2.2 .2 255.255.255.0
配置
IP
RouterB(config-if)#no shutdown
开启
RouterB(config-if)#exit
退出
RouterB(config)#interface serial 1/1
进入
S1/1
接口
RouterB(config-if)#ip address 192.168.10.2 255.255.255.0
配置
IP
RouterB(config-if)#no shutdown
开启
RouterB(config-if)#exit
退出
RouterB(config)#interface serial 1/0
进入S
1/0
接口
RouterB(config-if)#ip address 192.168.20.1 255.255.255.0
配置
IP
RouterB(config-if)#no shutdown
开启
RouterB(config-if)#exit
退出
RouterB(config)#router ospf 1
启用
OSPF
进程
RouterB(config-router)#network 192.168.10.0 0.0.0 .255 area 1
指定
OSPF
协议运行的接口所在区域
RouterB(config-router)#network 192.168.20.0 0.0.0 .255 area 1
指定
OSPF
协议运行的接口所在区域
RouterB(config-router)#exit
退出
RouterB(config)#exit
退出
RouterB#show ip ospf neighbor
查看邻居列表
Neighbor ID Pri State Dead Time Address Interface
3.3.3
.3 0 FULL/ - 00:00:29 192.168.20.2 Serial1/0
1.1.1
.1 0 FULL/ - 00:00:38 192.168.10.1 Serial1/1
RouterB#show ip ospf interface serial 1/1
查看运行
OSPF
的状态
Serial1/1 is up, line protocol is up
Internet Address 192.168.10.2/24, Area 1
Process ID 1, Router ID 2.2.2 .2, Network Type POINT_TO_POINT, Cost: 64
Transmit Delay is 1 sec, State POINT_TO_POINT,
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
oob-resync timeout 40
Hello due in 00:00:00
Index 1/1, flood queue length 0
Next 0x0(0)/0x0(0)
Last flood scan length is 1, maximum is 1
Last flood scan time is 0 msec, maximum is 0 msec
Neighbor Count is 1, Adjacent neighbor count is 1
Adjacent with neighbor 1.1.1 .1
Suppress hello for 0 neighbor(s)
RouterC
(config)#interface loopback 0
进入还回口
RouterC(config-if)#ip address 3.3.3 .3 255.255.255.0
配置
IP
RouterC(config-if)#no shutdown
开启
RouterC(config)#interface serial 1/1
进入
S1/1
接口
RouterC(config-if)#ip address 192.168.20.2 255.255.255.0
配置
IP
RouterC(config-if)#no shutdown
开启
RouterC(config-if)#exit
退出
RouterC(config)#router ospf 1
启用
OSPF
进程
RouterC(config-router)#network 192.168.20.0 0.0.0 .255 area 1
指定
OSPF
协议运行的接口所在区域
RouterC(config-router)#end
退出
RouterC#ping 192.168.10.1
检测网络的连通几性
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 140/241/416 ms
|
|||||||||||||||||||||||||||||||||||||||||||||||
实验注意
|
1
:启用
OSPF
时需在配置进程号,标示运行的进程。进程号的范围是
1
~
65535
之间。
2
:指定
OSPF
协议运行的接口所在区域时要使用网络号,反向掩码,区域号。(使用
正向掩码也可以)。
3
:骨干网络的区域
ID
是
0
|
||||||||||||||||||||||||||||||||||||||||||||||
特殊的命令
|
1
:
show ip protocols
查看运行
OSPF
的路由协议
2
:
ospf auto-cost reference-bandwidth X
更改路由器接口的参考带宽
3
:
ip ospf cost Y
修改路由器接口的成本
4
:
ip ospf priority Z
修改多点访问的接口优先级
5
:
debug ip ospf adj
查看
LSA
泛洪过程
6
:
show ip ospf database
查看链路状态数据库
7
:
show ip route
查看路由表
8
:
show ip ospf
查看
OSPF
的配置
9
:
show ip ospf interface
接口
查看
OSPF
接口数据结构
10
:
network 0.0.0 .0 255.255.255.255 area 1
通告所有接口
11
:
shwo ip ospf process-id
显示指定进程的信息
|
||||||||||||||||||||||||||||||||||||||||||||||
实验结论
|
在
RouterC
上
ping 192.168.10.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 140/241/416 ms
实验完成
|
||||||||||||||||||||||||||||||||||||||||||||||