原理概述
OSPF支持报文验证功能,只有通过验证的报文才能接收,否则将不能正常建立邻居关系。
OSPF协议支持两种认证方式:区域认证和链路认证。
- OSPF区域认证:一个区域中所有的路由器在该区域下的认证模式和口令必须一致;
- OSPF链路认证:可专门针对某个邻居设置单独的认证模式和密码,相比于区域认证更加灵活。
如果同时配置了接口认证和区域认证时,优先使用接口认证建立OSPF邻居。
每种认证方式又分为简单验证模式、MD5验证模式和Key chain验证模式。
- 简单验证模式在数据传递过程中,认证密钥和密钥ID都是明文传输,很容易被截获;
- MD5验证模式下的密钥是经过MD5 加密传输,相比于简单验证模式更为安全;
- Key chain 验证模式可以同时配置多个密钥,不同密钥可单独设置生效周期等。
实验内容
本实验模拟企业网络环境。R2、R5、R6属于公司总部骨干区域路由器,R1为ABR。公司分部路由器R3和R4都属于区域1,但分属不同部门,R3作为市场部门网关,R4作为财务部门网关。网络管理员在区域0和区域1上配置OSPF区域认证,其中区域0开启密文认证,区域1开启明文认证。为进一步提高该OSPF网络安全性,R1和R4上单独设置密钥,配置OSPF链路认证。
配置思路
- 在每台路由器上使能OSPF进程;
- 根据区域的划分情况,指定各路由器接口的所属区域;
- 配置OSPF区域明文认证;
- 配置OSPF区域密文认证;
- 配置OSPF链路认证。
配置步骤
- 进入系统视图,然后执行ospf[process-id | router-id router-id]命令以使能OSPF进程,并进入OSPF视图。
- 进入OSPF视图之后,我们需要根据网络规划来指定运行OSPF协议的接口以及这些接口所在的区域。
(1)我们需要在 OSPF 视图下执行命令 area area-id,该命令用来创建区域,并进入到区域视图。
(2)在区域视图下执行 network address wildcard-mask命令,该命令用来指定运行OSPF协议的接口,其中wildcard-mask被称为通配符掩码。
- OSPF区域明文认证:在 OSPF的区域视图下使用 authentication-mode 命令指定该区域使用认证模式为 simple,即简单验证模式,配置口令为 huawei,并配置 plain参数。
配置 plain参数后,可以使得在查看配置文件时,口令均以明文方式显示。如果不设置该参数的话,在查看配置文件时,默认会以密文方式显示口令,即无法查看到所配置的口令原文,这可以使非管理员用户在登录设备后无法查看到口令原文,从而提高安全性。
配置 plain参数后,口令huawei以明文方式显示。
未配置 plain参数,口令huawei默认以密文方式显示。
- OSPF区域密文认证:在 OSPF的区域视图下使用 authentication-mode 命令指定该区域使用认证模式为 MD5,即MD5验证模式,验证字标识符为1,配置口令为 huawei0,密文认证必须保证验证字标识符和口令完全一致认证才能通过。
- OSPF链路认证:在 接口视图下使用 ospf authentication-mode 命令指定该链路使用认证模式为 MD5,即MD5验证模式,验证字标识符为1,配置口令为 huawei1,链路认证必须保证在同一OSPF链路接口下验证字标识符和口令完全一致认证才能通过。
配置命令
命令功能
ospf authentication-mode 命令用来设置相邻设备之间的验证模式及验证字。
ospf authentication-mode null 命令用来在接口上配置null验证模式。
undo ospf authentication-mode 命令用来删除接口下已设置的验证模式。
缺省情况下,接口不对OSPF报文进行验证。
命令格式
ospf authentication-mode { simple [ plain plain-text | [ cipher ] cipher-text ] | null }
ospf authentication-mode { md5 | hmac-md5 | hmac-sha256 } [ key-id { plain plain-text | [ cipher ] cipher-text } ]
ospf authentication-mode keychain keychain-name
undo ospf authentication-mode
网络拓扑图
代码段
sys
sysname R1
int gi 0/0/0
ip add 10.0.12.1 24
int gi 0/0/1
ip add 10.0.13.1 24
int gi 0/0/2
ip add 10.0.14.1 24
q
ospf 1 rout 1.1.1.1
area 0
net 10.0.12.0 0.0.0.255
authentication-mode md5 1 huawei0
area 1
net 10.0.13.0 0.0.0.255
net 10.0.14.0 0.0.0.255
authentication-mode simple plain huawei
sys
sysname R2
int gi 0/0/0
ip add 10.0.12.2 24
int gi 0/0/1
ip add 10.0.25.1 24
int gi 0/0/2
ip add 10.0.26.1 24
ospf authentication-mode md5 1 huawei1
q
ospf 1 rout 1.1.1.2
area 0
net 10.0.12.0 0.0.0.255
net 10.0.25.0 0.0.0.255
net 10.0.26.0 0.0.0.255
authentication-mode md5 1 huawei0
sys
sysname R3
int gi 0/0/0
ip add 10.0.13.2 24
int gi 0/0/1
ip add 192.168.1.254 24
q
ospf 1 rout 1.1.1.3
area 1
net 10.0.13.0 0.0.0.255
net 192.168.1.0 0.0.0.255
authentication-mode simple plain huawei
sys
sysname R4
int gi 0/0/0
ip add 10.0.14.2 24
ospf authentication-mode md5 1 huawei1
int gi 0/0/1
ip add 192.168.2.254 24
q
ospf 1 rout 1.1.1.4
area 1
net 10.0.14.0 0.0.0.255
net 192.168.2.0 0.0.0.255
authentication-mode simple plain huawei
sys
sysname R5
int gi 0/0/0
ip add 10.0.25.2 24
int gi 0/0/1
ip add 192.168.3.254 24
q
ospf 1 rout 1.1.1.5
area 0
net 10.0.25.0 0.0.0.255
net 192.168.3.0 0.0.0.255
authentication-mode md5 1 huawei0
sys
sysname R6
int gi 0/0/0
ip add 10.0.26.2 24
int gi 0/0/1
ip add 192.168.4.254 24
q
ospf 1 rout 1.1.1.6
area 0
net 10.0.26.0 0.0.0.255
net 192.168.4.0 0.0.0.255
authentication-mode md5 1 huawei0
代码解析
<Huawei>sys
[Huawei]sysname R1
[R1]int gi 0/0/0
[R1-GigabitEthernet0/0/0]ip add 10.0.12.1 24
[R1-GigabitEthernet0/0/0]int gi 0/0/1
[R1-GigabitEthernet0/0/1]ip add 10.0.13.1 24
[R1-GigabitEthernet0/0/1]int gi 0/0/2
[R1-GigabitEthernet0/0/2]ip add 10.0.14.1 24
[R1-GigabitEthernet0/0/2]ospf authentication-mode md5 1 huawei1 //链路认证
[R1-GigabitEthernet0/0/2]q
[R1]ospf 1 rout 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]net 10.0.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]authentication-mode md5 1 huawei0 //区域密文认证
[R1-ospf-1-area-0.0.0.0]area 1
[R1-ospf-1-area-0.0.0.1]net 10.0.13.0 0.0.0.255
[R1-ospf-1-area-0.0.0.1]net 10.0.14.0 0.0.0.255
[R1-ospf-1-area-0.0.0.1]authentication-mode simple plain huawei //区域明文认证
注:R1路由器和其他路由器配置相似,不再赘述。
测试验证
上图说明网络通信正常
注:在链路认证中,OSPF链路只有其中1个接口配置了链路认证,在同一OSPF链路的路由器是无法建立邻居的。如本示例中,只给R1路由器接GigabitEthernet0/0/2口配置了链路认证,R1与R4间就没了OSPF邻居关系。虽然之前已经配置好区域认证,但是如果同时配置了接口认证和区域认证时,会优先使用接口验证建立OSPF邻居。所以R4在没有配置链路认证之前,R1与R4的邻居关系会因认证不匹配而无法建立。
R4的Router ID 为1.1.1.4,上图R1的邻居中没有R4。
给R4有配了置链路认证之后,如下图所示, R1与R4间就建立了OSPF邻居关系。
ospf authentication-mode null 命令用来在接口上配置null验证模式。
undo ospf authentication-mode 命令用来删除接口下已设置的验证模式。
上述两个命令测试验证
R1的 GigabitEthernet0/0/1接口和R3的 GigabitEthernet0/0/0接口上配置了MD5验证的情况下测试ospf authentication-mode null 命令:
1.在R1的 GigabitEthernet0/0/1接口上配置 ospf authentication-mode null后;
2.在R3的 GigabitEthernet0/0/0接口上配置 ospf authentication-mode null后。
在R1的 GigabitEthernet0/0/1接口和R3的 GigabitEthernet0/0/0接口上都配置 ospf authentication-mode null后,R1和R3建立邻居。
R1的 GigabitEthernet0/0/1接口和R3的 GigabitEthernet0/0/0接口上配置了null验证的情况下测试undo ospf authentication-mode:
1.在R3的 GigabitEthernet0/0/0接口上配置undo ospf authentication-mode后;
2.在R1的 GigabitEthernet0/0/1接口上配置undo ospf authentication-mode 后;
在R1的 GigabitEthernet0/0/1接口和R3的 GigabitEthernet0/0/0接口上都配置undo ospf authentication-mode 后,R1和R3建立邻居。