OSPF协议
OSPF路由协议
- OSPF路由协议是用于网际协议(IP)网络的链路状态路由协议。协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。适用于IPv4的OSPFv2协议定义于RFC 2328,RFC 5340定义了适用于IPv6的OSPFv3。
- 开放式最短路径优先(Open Shortest Path First,OSPF)是广泛使用的一种动态路由协议,它属于链路状态路由协议,具有路由变化收敛速度快、无路由环路、支持变长子网掩码(VLSM)和汇总、层次区域划分等优点。在网络中使用OSPF协议后,大部分路由将由OSPF协议自行计算和生成,无须网络管理员人工配置,当网络拓扑发生变化时,协议可以自动计算、更正路由,极大地方便了网络管理。但如果使用时不结合具体网络应用环境,不做好细致的规划,OSPF协议的使用效果会大打折扣,甚至引发故障。
- OSPF协议是一种链路状态协议。每个路由器负责发现、维护与邻居的关系,并将已知的邻居列表和链路费用LSU(Link State Update)报文描述,通过可靠的泛洪与自治系统AS(Autonomous System)内的其他路由器周期性交互,学习到整个自治系统的网络拓扑结构;并通过自治系统边界的路由器注入其他AS的路由信息,从而得到整个Internet的路由信息。每隔一个特定时间或当链路状态发生变化时,重新生成LSA,路由器通过泛洪机制将新LSA通告出去,以便实现路由的实时更新。
OSPF单区域
实验拓扑
- 掌握单区域OSPF的配置方法
- 掌握OSPF的区域认证的配置方法
- 理解OSPF的反掩码的意义
配置路由器的IP地址
配置R1 R2 R3
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]ip address 10.0.123.1 24
[R1]interface LoopBack 0
[R1-LoopBack0]ip address 10.0.1.1 24
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ip address 10.0.123.2 24
[R2]interface LoopBack 0
[R2-LoopBack0]ip address 10.0.2.2 24
[R3]interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0]ip address 10.0.123.3 24
[R3]interface LoopBack 0
[R3-LoopBack0]ip address 10.0.3.3 24
配置OSPF
配置R1 R2 R3路由器的OSPF单区域配置
启动进程时使用router—id参数指定路由器Router—ID
[R1]ospf 1 router-id 10.0.1.1 "开启进程 指定Router-ID为10.0.1.1"
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 10.0.123.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 10.0.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]authentication-mode simple plain huawei "密码认证"
[R2]ospf 1 router-id 10.0.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.0.123.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 10.0.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]authentication-mode simple plain huawei
[R3]ospf 1 router-id 10.0.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 10.0.123.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 10.0.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]authentication-mode simple plain huawei
OSPF多区域
实验拓扑
- 掌握OSPF配置指定Router ID的方法
- 掌握多区域OSPF的配置方法
- 掌握OSPF区域之间路由汇总的配置方法
- 掌握OSPF参考带宽的配置方法
- 掌握OSPF引入外部路由的配置方法
基础配置与IP编址
给所有路由器配置IP地址和掩码。配置时注意所有的Loopback接口配置掩 码均为24位,模拟成一个单独的网段。
<R1>system-view
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]ip address 10.0.124.1 24
[R1-GigabitEthernet0/0/0]quit
[R1]interface LoopBack 0
[R1-LoopBack0]ip address 10.0.1.1 24
[R1-LoopBack0]quit
[R1]interface LoopBack 1
[R1-LoopBack1]ip address 10.2.0.1 24
[R1-LoopBack1]quit
[R1]interface LoopBack 2
[R1-LoopBack2]ip address 10.2.1.1 24
[R1-LoopBack2]quit
<R2>system-view
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ip address 10.0.124.2 24
[R2-GigabitEthernet0/0/0]quit
[R2]interface Serial 2/0/0
[R2-Serial2/0/0]ip address 10.0.23.2 24
[R2-Serial2/0/0]quit
[R2]interface LoopBack 0
[R2-LoopBack0]ip address 10.0.2.2 24
[R2-LoopBack0]quit
<R3>system-view
[R3]interface Serial 2/0/0
[R3-Serial2/0/0]ip address 10.0.23.3 24
[R3-Serial2/0/0]quit
[R3]interface Serial 2/0/1
[R3-Serial2/0/1]ip address 10.0.35.3 24
[R3-Serial2/0/1]quit
[R3]interface LoopBack 0
[R3-LoopBack0]ip address 10.0.3.3 24
<R4>system-view
[R4]interface GigabitEthernet 0/0/0
[R4-GigabitEthernet0/0/0]ip address 10.0.124.4 24
[R4-GigabitEthernet0/0/0]quit
[R4]interface LoopBack 0
[R4-LoopBack0]ip address 10.0.4.4 24
[R4-LoopBack0]quit
<R5>system-view
[R5]interface Serial 2/0/0
[R5-Serial2/0/0]ip address 10.0.35.5 24
[R5-Serial2/0/0]quit
[R5]interface LoopBack 0
[R5-LoopBack0]ip address 10.0.5.5 24
[R5-LoopBack0]quit
[R5]interface LoopBack 1
[R5-LoopBack1]ip address 10.1.0.1 24
[R5-LoopBack1]quit
[R5]interface LoopBack 2
[R5-LoopBack2]ip address 10.1.1.1 24
[R5-LoopBack2]quit
配置完成后,测试直连链路的连通性。
[R2]ping -c 1 10.0.124.1
PING 10.0.124.1: 56 data bytes, press CTRL_C to break
Reply from 10.0.124.1: bytes=56 Sequence=1 ttl=255 time=50 ms
--- 10.0.124.1 ping statistics ---
1 packet(s) transmitted
1 packet(s) received
0.00% packet loss
round-trip min/avg/max = 50/50/50 ms
[R2]ping -c 1 10.0.124.4
PING 10.0.124.4: 56 data bytes, press CTRL_C to break
Reply from 10.0.124.4: bytes=56 Sequence=1 ttl=255 time=20 ms
--- 10.0.124.4 ping statistics ---
1 packet(s) transmitted
1 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/20/20 ms
配置多区域OSPF
为保证OSPF的Router ID稳定,我们通常手工指定路由器的Router ID。有2 种方法可以手工指定一台路由器运行OSPF的Router ID,第一种方式是在系统 视图下使用router id的命令。
[R1]router id 10.0.1.1
第二种方式是在启动OSPF进程时加上参数router-id。
[R1]ospf 1 router-id 10.0.1.1
在R1上配置Loopback 0接口及GigabitEthernet 0/0/0属于区域2。这里我 们将所有OSPF区域的Loopback接口,修改其OSPF网络类型为Broadcast类型, 以便于OSPF发布Loopback口的真实掩码信息
[R1]ospf 1 router-id 10.0.1.1
[R1-ospf-1]area 2
[R1-ospf-1-area-0.0.0.2]network 10.0.124.1 0.0.0.0
[R1-ospf-1-area-0.0.0.2]network 10.0.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.2]quit
[R1-ospf-1]quit
[R1]interface LoopBack 0
[R1-LoopBack0]ospf network-type broadcast
[R1-LoopBack0]quit
"在R2上配置Loopback 0和Serial 2/0/0接口属于区域0,GigabitEthernet0/0/0属于区域2。"
[R2]ospf 1 router-id 10.0.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.0.23.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 10.0.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]quit
[R2-ospf-1]area 2
[R2-ospf-1-area-0.0.0.2]network 10.0.124.2 0.0.0.0
[R2-ospf-1-area-0.0.0.2]quit
[R2-ospf-1]quit
[R2]interface LoopBack 0
[R2-LoopBack0]ospf network-type broadcast
[R2-LoopBack0]quit
"在R3上配置Loopback 0和Serial 2/0/0接口属于区域0,Serial 3/0/0属于 区域1。 "
[R3]ospf 1 router-id 10.0.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 10.0.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 10.0.23.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]quit
[R3-ospf-1]area 1
[R3-ospf-1-area-0.0.0.1]network 10.0.35.3 0.0.0.0
[R3-ospf-1-area-0.0.0.1]quit
[R3-ospf-1]quit
[R3]interface LoopBack 0
[R3-LoopBack0]ospf network-type broadcast
[R3-LoopBack0]quit
"在R4上配置Loopback 0及GigabitEthernet 0/0/0属于区域2。 "
[R4]ospf 1 router-id 10.0.4.4
[R4-ospf-1]area 2
[R4-ospf-1-area-0.0.0.2]network 10.0.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.2]network 10.0.124.4 0.0.0.0
[R4-ospf-1-area-0.0.0.2]quit
[R4-ospf-1]quit
[R4]interface LoopBack 0
[R4-LoopBack0]ospf network-type broadcast
[R4-LoopBack0]quit
"在R5上配置所有的Loopback接口及Serial 1/0/0属于区域1。 "
[R5]ospf 1 router-id 10.0.5.5
[R5-ospf-1]area 1
[R5-ospf-1-area-0.0.0.1]network 10.0.5.5 0.0.0.0
[R5-ospf-1-area-0.0.0.1]network 10.1.0.1 0.0.0.0
[R5-ospf-1-area-0.0.0.1]network 10.1.1.1 0.0.0.0
[R5-ospf-1-area-0.0.0.1]network 10.0.35.5 0.0.0.0
[R5-ospf-1-area-0.0.0.1]quit
[R5-ospf-1]quit
[R5]interface LoopBack 0
[R5-LoopBack0]ospf network-type broadcast
[R5-LoopBack0]quit
[R5]interface LoopBack 1
[R5-LoopBack1]ospf network-type broadcast
[R5-LoopBack1]quit
[R5]interface LoopBack 2
[R5-LoopBack2]ospf network-type broadcast
[R5-LoopBack2]quit
配置完成后,在R1上查看路由表。
[R1]display ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 22 Routes : 22
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 50 11 D 10.0.124.4 GigabitEthernet
0/0/0
10.0.1.0/24 Direct 0 0 D 10.0.1.1 LoopBack0
10.0.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0
10.0.1.255/32 Direct 0 0 D 127.0.0.1 LoopBack0
10.0.2.0/24 OSPF 20 10 D 10.0.124.2 GigabitEthernet
0/0/0
10.0.3.0/24 OSPF 20 4892 D 10.0.124.2 GigabitEthernet
0/0/0
10.0.4.0/24 OSPF 20 10 D 10.0.124.4 GigabitEthernet
0/0/0
10.0.5.0/24 OSPF 20 9774 D 10.0.124.2 GigabitEthernet
0/0/0
10.0.23.0/24 OSPF 20 4892 D 10.0.124.2 GigabitEthernet
0/0/0
10.0.35.0/24 OSPF 20 9774 D 10.0.124.2 GigabitEthernet
0/0/0
10.0.124.0/24 Direct 0 0 D 10.0.124.1 GigabitEthernet
0/0/0
10.0.124.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/0
10.0.124.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet
0/0/0
10.1.0.0/24 OSPF 20 9774 D 10.0.124.2 GigabitEthernet
0/0/0
10.1.1.0/24 OSPF 20 9774 D 10.0.124.2 GigabitEthernet
0/0/0
10.2.0.0/24 Direct 0 0 D 10.2.0.1 LoopBack1
10.2.0.1/32 Direct 0 0 D 127.0.0.1 LoopBack1
10.2.0.255/32 Direct 0 0 D 127.0.0.1 LoopBack1
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
该路由器上已拥有全网所有的路由条目。 在R1上测试到其他路由器Loopback接口的连通性。
[R1]ping -c 1 10.0.2.2
PING 10.0.2.2: 56 data bytes, press CTRL_C to break
Reply from 10.0.2.2: bytes=56 Sequence=1 ttl=255 time=30 ms
--- 10.0.2.2 ping statistics ---
1 packet(s) transmitted
1 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/30/30 ms
[R1]ping -c 1 10.0.5.5
PING 10.0.5.5: 56 data bytes, press CTRL_C to break
Reply from 10.0.5.5: bytes=56 Sequence=1 ttl=253 time=50 ms
--- 10.0.5.5 ping statistics ---
1 packet(s) transmitted
1 packet(s) received
0.00% packet loss
round-trip min/avg/max = 50/50/50 ms
[R1]ping -c 1 10.0.4.4
PING 10.0.4.4: 56 data bytes, press CTRL_C to break
Reply from 10.0.4.4: bytes=56 Sequence=1 ttl=255 time=30 ms
--- 10.0.4.4 ping statistics ---
1 packet(s) transmitted
1 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/30/30 ms
配置OSPF区域之间的路由汇总
首先查看R2和R3的OSPF路由表。
[R2]display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 9 Routes : 9
OSPF routing table status : <Active>
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 11 D 10.0.124.4 GigabitEthernet
0/0/0
10.0.1.0/24 O_ASE 150 1 D 10.0.124.1 GigabitEthernet
0/0/0
10.0.3.0/24 OSPF 10 4882 D 10.0.23.3 Serial2/0/0
10.0.4.0/24 OSPF 10 10 D 10.0.124.4 GigabitEthernet
0/0/0
10.0.5.0/24 OSPF 10 9764 D 10.0.23.3 Serial2/0/0
10.0.35.0/24 OSPF 10 9764 D 10.0.23.3 Serial2/0/0
"10.1.0.0/24 OSPF 10 9764 D 10.0.23.3 Serial2/0/0"
"10.1.1.0/24 OSPF 10 9764 D 10.0.23.3 Serial2/0/0"
10.2.0.0/23 O_ASE 150 2 D 10.0.124.1 GigabitEthernet
0/0/0
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
[R3]display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 9 Routes : 9
OSPF routing table status : <Active>
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 4893 D 10.0.23.2 Serial2/0/0
10.0.1.0/24 O_ASE 150 1 D 10.0.23.2 Serial2/0/0
10.0.2.0/24 OSPF 10 4882 D 10.0.23.2 Serial2/0/0
10.0.4.0/24 OSPF 10 4892 D 10.0.23.2 Serial2/0/0
10.0.5.0/24 OSPF 10 4882 D 10.0.35.5 Serial2/0/1
10.0.124.0/24 OSPF 10 4892 D 10.0.23.2 Serial2/0/0
"10.1.0.0/24 OSPF 10 4882 D 10.0.35.5 Serial2/0/1"
"10.1.1.0/24 OSPF 10 4882 D 10.0.35.5 Serial2/0/1"
10.2.0.0/23 O_ASE 150 2 D 10.0.23.2 Serial2/0/0
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
对于这样的路由信息,可以进行汇总,再向其他区域发送。一方面减少其他 区域的路由表条目,另外一方面还可以减少路由振荡情况的发生。我们可在R3 上使用abr-summary的命令将R5的Loopback1和Loopback2接口的网段进行 汇总发送。
[R3]ospf 1
[R3-ospf-1]area 1
[R3-ospf-1-area-0.0.0.1]abr-summary 10.1.0.0 255.255.254.0
[R3-ospf-1-area-0.0.0.1]quit
[R3-ospf-1]quit
修改OSPF的参考带宽值
在实际网络我们可能使用了千兆甚至万兆以太网。但是由于OSPF的默认参 考带宽值为100Mbps,并且接口代价值仅为整数,所以OSPF无法在带宽上区分 百兆以太网和千兆以太网。
在R2上修改OSPF的参考带宽值为10Gbps。这里,使用命令 bandwidth-reference进行修改,相应带宽参数值的单位为Mbps。
[R2-ospf-1]bandwidth-reference 100000
在R2上查看OSPF邻居关系,以及路由信息学习情况,我们可以看到,在路 由表中,Cost值已经发生了变化。
[R2]display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
Destinations : 8 Routes : 8
OSPF routing table status : <Active>
Destinations : 8 Routes : 8
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 O_ASE 150 101 D 10.0.124.4 GigabitEthernet
0/0/0
10.0.1.0/24 O_ASE 150 1 D 10.0.124.1 GigabitEthernet
0/0/0
10.0.3.0/24 OSPF 10 48828 D 10.0.23.3 Serial2/0/0
10.0.4.0/24 OSPF 10 100 D 10.0.124.4 GigabitEthernet
0/0/0
10.0.5.0/24 OSPF 10 53710 D 10.0.23.3 Serial2/0/0
10.0.35.0/24 OSPF 10 53710 D 10.0.23.3 Serial2/0/0
10.1.0.0/23 OSPF 10 53710 D 10.0.23.3 Serial2/0/0
10.2.0.0/23 O_ASE 150 2 D 10.0.124.1 GigabitEthernet
0/0/0
OSPF routing table status : <Inactive>
Destinations : 0 Routes : 0
在运行OSPF的多个区域内,OSPF的参考带宽值必须一致,否则OSPF无法 正常工作。修改所有路由器的OSPF参考带宽值为10Gbps。
[R1]ospf 1
[R1-ospf-1]bandwidth-reference 10000
[R1-ospf-1]quit
[R2]ospf 1
[R2-ospf-1]bandwidth-reference 10000
[R2-ospf-1]quit
[R3]ospf 1
[R3-ospf-1]bandwidth-reference 10000
[R3-ospf-1]quit
[R4]ospf 1
[R4-ospf-1]bandwidth-reference 10000
[R4-ospf-1]quit
[R5]ospf 1
[R5-ospf-1]bandwidth-reference 10000
[R5-ospf-1]quit
配置将直连路由汇总并引入到OSPF区域
"R1的Loopback1和Loopback2接口不属于OSPF区域。将这两条直连路由引 入到OSPF区域,并在R1上执行路由汇总。 "
[R1]ospf 1
[R1-ospf-1]import-route direct
[R1-ospf-1]asbr-summary 10.2.0.0 255.255.254.0
[R1-ospf-1]quit
OSPF引入缺省路由
R4的Loopback0接口连接到Internet。在R4上配置缺省路由,下一跳指向 Loopback0。
[R4]ip route-static 0.0.0.0 0.0.0.0 LoopBack 0
"将这条缺省路由引入到OSPF区域,定义类型为1,Cost值为10,并且定义 为永久引入。 "
[R4]ospf 1
[R4-ospf-1]default-route-advertise always type 1
[R4-ospf-1]quit
修改OSPF中两类路由的优先级
默认情况下,OSPF区域内和区域之间的路由,优先级为10。OSPF外部路由, 优先级为150。 修改R1和R4路由器上的OSPF区域内和区域之间的路由优先级为20,修改 OSPF外部路由的优先级为50。
[R1]ospf 1
[R1-ospf-1]preference 20
[R1-ospf-1]preference ase 50
[R1-ospf-1]quit
[R4]ospf 1
[R4-ospf-1]preference 20
[R4-ospf-1]preference ase 50
[R4-ospf-1]quit