OSPF 协议配置
OSPF 基础概念
OSPF 开放最短路径优先协议,是一种内部网关协议,OSPF 通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树。OSPF一般在自治系统内部进行使用,OSPF的链路状态:所谓链路状态就是指路由器接口状态,包括数据传输的带宽,传输速率等等,常用的最短路径算法:SPF、DJ;每一台路由器都有一个ID号默认情况下使用环回口,如果没有环回口那就使用物理地址下接口最高的IP地址作为路由器的标识;邻居与邻接关系:OSPF在相邻路由器之间建立邻接关系,有邻接关系的路由器共享路由信息,邻居指的是共享同一网络的路由器,如果没有建立邻接关系,那么邻居路由器不共享路由关系;区域:OSPF协议使用自治系统分段 0 号区域作为主干区域,其他所有区域要求与 0 号区域连接在一起。
OSPF的相关命令
命令 | 功能 |
---|---|
ospf 进程号 | 启动OSPF进程,进入OSPF视图 |
area 区域号 | 创建并进入 OSPF 区域视图 |
network ip address| wildcard mask | 配置区域所含网段 |
display ospf peer | 查看OSPF邻居信息 |
display ospf routing | 查看 OSPF 路由信息 |
network公布网段的时候,第一个参数是网段,第二个参数是反码(四个255 - 子网掩码)
配置步骤:
# 在每一台路由器中,先设置路由器id
router id + (四位id代码)
# 进入 ospf 进程
ospf 1
# 配置区域
area 区域代号
# 开放对应的网关
network 网关号 子网反码(255.255.255.255 - 子网掩码)对应位置相减
# 这里开放的是网关(C类网络前三组)(注意:每个端口对应的网关都需要开放,看对应网关的端口所处的区域)
配置OSPF实例
如图:已知六个路由器处在三个不同的区域中(路由器 R1 R2 都有都那口处在两个区域中--考试的时候要看对应端口所处的区域)现在需要配置这六台路由器相互通信
# 路由器 R1
[R1]router id 1.1.1.1 # 第一步是配置路由器的id (思科设备先进ospf协议再配置id不要搞错了)
[R1]ospf 1 # 进入 ospf 协议视图
[R1-ospf-1]area 0 # 选择区域
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 # 配置区域的端口网关和子网反码
[R1-ospf-1-area-0.0.0.0]quit
[R1-ospf-1]area 1 # 在不同的区域配置不同的端口网关(根据网关所在的区域进行配置)
[R1-ospf-1-area-0.0.0.1]network 192.168.2.0 0.0.0.255
[R1-ospf-1-area-0.0.0.1]quit
# 路由器 R2
[R2]router id 2.2.2.2
[R2]ospf 1
[R2-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]quit
[R2-ospf-1]area 2 # 路由器 R2 也有不同的端口处在不同的区域内(根据网关所在的区域进行配置)
[R2-ospf-1-area-0.0.0.2]network 192.168.4.0 0.0.0.255
[R2-ospf-1-area-0.0.0.2]quit
# 路由器 R3
[R3]router id 3.3.3.3
[R3]ospf 1
[R3-ospf-1]area 1
[R3-ospf-1-area-0.0.0.1]network 192.168.2.0 0.0.0.255
[R3-ospf-1-area-0.0.0.1]network 192.168.3.0 0.0.0.255 # 所有端口的网关都要配置
[R3-ospf-1-area-0.0.0.1]quit
# 路由器 R4
[R4]router id 4.4.4.4
[R4]ospf 1
[R4-ospf-1]area 2
[R4-ospf-1-area-0.0.0.2]network 192.168.4.0 0.0.0.255
[R4-ospf-1-area-0.0.0.2]network 192.168.5.0 0.0.0.255
[R4-ospf-1-area-0.0.0.2]quit
# 路由器 R5
[R5]router id 5.5.5.5
[R5]ospf 1
[R5-ospf-1]area 2
[R5-ospf-1-area-0.0.0.2]network 192.168.3.0 0.0.0.255
[R5-ospf-1-area-0.0.0.2]quit
# 路由器 R6
[R6]router id 6.6.6.6
[R6]ospf 1
[R6-ospf-1]area 2
[R6-ospf-1-area-0.0.0.2]network 192.168.5.0 0.0.0.255
[R6-ospf-1-area-0.0.0.2]quit
# 至此所有的路由器配置完毕
检查措施:可以查看当前状态的路由表,可以查看ospf协议下的路由信息,也可以通过ping实验查看对应端口是否通信
[R1]display ospf routing
# 查看 ospf 路由信息
OSPF Process 1 with Router ID 1.1.1.1
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
192.168.1.0/24 1 Transit 192.168.1.1 1.1.1.1 0.0.0.0
192.168.2.0/24 1 Transit 192.168.2.1 1.1.1.1 0.0.0.1
192.168.3.0/24 2 Transit 192.168.2.2 3.3.3.3 0.0.0.1
192.168.4.0/24 2 Inter-area 192.168.1.2 2.2.2.2 0.0.0.0
192.168.5.0/24 3 Inter-area 192.168.1.2 2.2.2.2 0.0.0.0
Total Nets: 5
Intra Area: 3 Inter Area: 2 ASE: 0 NSSA: 0
[R1]display ip routing-table
# 查看当前路由表可以看到ospf协议的关键信息
0/2
192.168.3.0/24 OSPF 10 2 D 192.168.2.2 GigabitEthernet
0/0/2
192.168.4.0/24 OSPF 10 2 D 192.168.1.2 GigabitEthernet
0/0/1
192.168.5.0/24 OSPF 10 3 D 192.168.1.2 GigabitEthernet
0/0/1
# 也可以通过ping 实验来确认对应端口是否通信
[R1]ping 192.168.5.2
PING 192.168.5.2: 56 data bytes, press CTRL_C to break
Reply from 192.168.5.2: bytes=56 Sequence=1 ttl=253 time=40 ms
Reply from 192.168.5.2: bytes=56 Sequence=2 ttl=253 time=40 ms
Reply from 192.168.5.2: bytes=56 Sequence=3 ttl=253 time=40 ms
Reply from 192.168.5.2: bytes=56 Sequence=4 ttl=253 time=40 ms
Reply from 192.168.5.2: bytes=56 Sequence=5 ttl=253 time=30 ms
BGP 协议配置
BGP协议基础概念
BGP(边界网关协议)是一种外部网关协议;是一种自治系统(AS)之间的路由可达,并选择最佳路由的距离矢量协议;特点:1、实现不同的自治系统之间的通信网络信息可达,BGP允许一个AS向其他AS通告其内部网络的可达性信息;2、如果一个AS系统中有多个路由器使用BGP协议,则可以通过过协调这些路由器的路由信息来保持路由信息的一致性(使用的路由策略),3、BGP只需要在启动的时候交换一次完整的路由信息,后续的更新都是路由信息的变化信息(与RIP协议不同 RIP协议是每30秒更新一次路由信息)
BGP 支持基于策略的路径选择,可以为域内和域间的网络可达性配置不同的策略; BGP在通告路由信息时除了通告下一跳信息以外还会通告路由向量,即该去往的网络所经过的AS列表使得接收者能够清楚的了解路由信息
配置 BGP 协议的相关命令
命令 | 功能 |
---|---|
bgp 所属区域编号 | 启动bgp,指定本地自治系统(AS)编号并进入bgp视图 |
router-id 路由器id | 配置当前路由器的 id |
peer ip as-number AS所属区域号 | 建立邻接关系,创建BGP对等体,方便之后交换路由信息 |
ipv4 family {unicast|multiunicast} | 进入ipv4地址族视图,发布对应的网段 |
import-route direct | 引入 IP 所在网段的RIP路由表 |
路由器配置步骤
# 进入 BGP 协议视图,指定该区域的区域号
bgp AS(自治系统区域号)
# 配置路由器 id
router-id 四位有效id号
# 配置邻接路由器信息
peer 邻接端口ip地址 as-number 邻接路由器所在的区域号
# 可以通过如下命令检查是否配置成功
display bgp peer
# 当显示状态为 Established 的时候,说明建立成功
# 邻接关系建立成功后并不能直接让自治系统之间的每台路由器进行通信,需要公布骨干区域网关,并让连接路由器导入该网关之后才可以生成完整的bgp路由表
# 进入骨干区域路由器
ipv4-family unicast # 进入网络广播视图
network 当前网关ip 子网掩码(可以是255也可以是位数)
# 进入连接两个自治区域的路由器
ipv4-family unicast
import-route direct # 导入对应的网关配置
检查当前bgp路由表的命令是:
display bgp routing-table
配置BGP协议实例
如图:计算机终端和多个路由器处在两个自治系统中,其中AS65008 包括一台计算机和一台路由器 AS65009 包括三台路由器,属于 AS65009 的路由器 R2 是连通两个不同自治系统的路由器,现在配置两个不同自治系统内的路由器进行互相通信
# 路由器 R1
[R1]bgp 65008 # 进入 bgp 协议视图并配置自治系统编号
[R1-bgp]router-id 1.1.1.1 # 配置路由器id
[R1-bgp]peer 59.74.112.1 as-number 65009 # 配置路由器 R1 的邻接路由器信息(R2与R1连接的端口)并指明邻接路由器所在的自治系统号
[R1-bgp]quit # 路由器 R1 配置完成
# 路由器 R2
[R2]bgp 65009
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 59.74.112.2 as-number 65008
[R2-bgp]peer 172.16.30.2 as-number 65009
[R2-bgp]peer 172.16.10.2 as-number 65009 # 要考虑不同的邻接路由器处在不同的自治系统中
[R2-bgp]quit # 路由器 R2 配置完成
# 路由器 R3
[R3]bgp 65009
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 172.16.30.1 as-number 65009
[R3-bgp]peer 172.16.20.2 as-number 65009
[R3-bgp]quit
# 路由器 R4
[R4]bgp 65009
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 172.16.10.1 as-number 65009
[R4-bgp]peer 172.16.20.1 as-number 65009
[R4-bgp]quit
# 到目前为止,所有路由器的邻接路由器信息都已经配置完毕,但是这些路由器之间还不能进行通信;需要公布骨干区域的和导入骨干区域的网关才行
# 路由器 R1
[R1-bgp]ipv4-family unicast # 进入网关配置视图
[R1-bgp-af-ipv4]network 172.16.60.0 255.255.255.0 # 公布网关和子网掩码(这个网关是不与AS65009其他路由器连接端口的网关)
[R1-bgp-af-ipv4]quit
# 路由器 R2
[R2-bgp]ipv4-family unicast
[R2-bgp-af-ipv4]import-route direct # 导入网关配置
[R2-bgp-af-ipv4]quit # 配置成功
检测方法:可以通过显示 bgp 路由表的方法检验当前路由器的可通信地址、也可以直接使用 ping 实验检查数据包的接收情况
[R2]display bgp routing-table
BGP Local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 9
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 59.74.112.0/24 0.0.0.0 0 0 ?
*> 59.74.112.1/32 0.0.0.0 0 0 ?
*> 127.0.0.0 0.0.0.0 0 0 ?
*> 127.0.0.1/32 0.0.0.0 0 0 ?
*> 172.16.10.0/24 0.0.0.0 0 0 ?
*> 172.16.10.1/32 0.0.0.0 0 0 ?
*> 172.16.30.0/24 0.0.0.0 0 0 ?
*> 172.16.30.1/32 0.0.0.0 0 0 ?
*> 172.16.60.0/24 59.74.112.2 0 0 65008i
# 可以看到对应路由的可通信端口和相关信息
<R4>ping 172.16.60.1
PING 172.16.60.1: 56 data bytes, press CTRL_C to break
Reply from 172.16.60.1: bytes=56 Sequence=1 ttl=254 time=20 ms
Reply from 172.16.60.1: bytes=56 Sequence=2 ttl=254 time=20 ms
Reply from 172.16.60.1: bytes=56 Sequence=3 ttl=254 time=20 ms
Reply from 172.16.60.1: bytes=56 Sequence=4 ttl=254 time=10 ms
Reply from 172.16.60.1: bytes=56 Sequence=5 ttl=254 time=30 ms
--- 172.16.60.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 10/20/30 ms