这是实验的拓扑图,本次实验是在华为的ensp环境中进行。R1、R2和R3同在area 0区域,R2和R4在area 1区域,R3和R5在area 2区域。每个Router都创建一个环回接口。
给每个Router更改名字并配置接口IP地址:
R1:
sys
sysname R1
int loop 0
ip add 1.1.1.1 24
int g0/0/1
ip add 192.168.12.1 24
int g0/0/2
ip add 192.168.13.1 24
quit
R2:
sys
sysname R2
int loop 0
ip add 2.2.2.2 24
int g0/0/0
ip add 192.168.12.2 24
int s0/0/2
ip add 192.168.23.2 24
int e0/0/1
ip add 192.168.24.2 24
quit
R3:
sys
sysname R3
int loop 0
ip add 3.3.3.3 24
int g0/0/0
ip add 192.168.13.3 24
int s0/0/2
ip add 192.168.23.3 24
int e0/0/1
ip add 192.168.35.3 24
quit
R4:
sys
sysname R4
int loop 0
ip add 4.4.4.4 24
int e0/0/1
ip add 192.168.24.4 24
quit
R5:
sys
sysname R5
int loop 0
ip add 5.5.5.5 24
int e0/0/1
ip add 192.168.35.5 24
quit
配置完成后可以使用命令“display router id”来查看全局router id。
可以发现Router id为环回接口IP地址。
接口配置顺序会影响 router-id的选举,如果先配置物理接口,再配置环回口,显示的就是物理接口。第一次配置的接口,就会触发 router-id的选举。
每台Router配置OSPF:
R1:
ospf router-id 1.1.1.1
area 0
network 192.168.12.1 0.0.0.0
network 192.168.13.1 0.0.0.0
network 1.1.1.1 0.0.0.0
R2:
ospf router-id 2.2.2.2
area 0
network 2.2.2.2 0.0.0.0
network 192.168.12.2 0.0.0.0
network 192.168.23.2 0.0.0.0
area 1
network 192.168.24.2 0.0.0.0
R3:
ospf router-id 3.3.3.3
area 0
network 3.3.3.3 0.0.0.0
network 192.168.13.3 0.0.0.0
network 192.168.23.3 0.0.0.0
area 2
network 192.168.35.3 0.0.0.0
R4:
ospf router-id 4.4.4.4
area 1
network 4.4.4.4 0.0.0.0
network 192.168.24.4 0.0.0.0
R5:
ospf router-id 5.5.5.5
area 2
network 5.5.5.5 0.0.0.0
network 192.168.35.5 0.0.0.0
配置完成后,查看OSPF 接口是否正确
可以看到R1为R2 R3的DR,按照DR的选举规则,应为Router id大的成为DR,R1为BDR。如果选举的不是这样,是因为配置的先后顺序问题,正常都是先配置 R1,再配置 R2 R3, 3 台路由清一下OSPF 进程即可 。先从R3先清理,不然很有可能R1继续当选DR
进程重置之后可以看到R1成为BDR。
修改R1 的g0/0/1接口的DR优先级为 2,让R1 成为R2的DR。
R1:
int g0/0/1
ospf dr-priority 2
修改完之后,同样需要重启ospf进程才能生效。R1 R2都重启OSPF进程。
重启完成后,发现R1重新成为R2的DR。
DR/BDR 在广播网络中选举,如果改成网络类型为点到多点,则不会选举。
更改R1 g0/0/1接口网络类型。
R1:
int g0/0/1
ospf network-type p2mp
把接口网络类型还原为广播类型
R1:
int g0/0/1
ospf network-type broad
OSPF被动接口:
OSPF 被动接口也称抑制接口,成为被动接口后,将不会接收和发送 OSPF 报文。如果要使OSPF 路由信息不被某一网络中的路由器获得,且使本地路由器不接收网络中其它路由器发布的路由更新信息,即已运行在 OSPF 协议进程中的接口不与本链路上其余路由器建立邻居关系时,可通过配置被动接口来禁止此接口接收和发送OSPF 报文。
路由器运行了 OSPF 协议的接口都会发hello包尝试认识新邻居,如果下面挂的pc就没有必要接受hello包了,silent-interface 以后该接口就不会发送hello包,可以减轻链路负担。
具体不再演示,只需要记住下面命令就好
Router:
ospf
silent-interface 接口名字
然后对接口抓包,发现该接口不再发送hello报文。 并且该接口下的邻居将不再建立邻居关系。
OSPF 的认证:
OSPF 支持报文验证功能,只有通过验证的报文才能接收,否则将不能正常建立邻居关系。
OSPF协议支持两种认证方式--区域认证和链路认证。
使用区域认证时,一个区域中所有的路由器在该区域下的认证模式和口令必须一致,OSPF 链路认证相比区域认证更加灵活,可专门针对某个邻居设置单独的认证模式和密码。如果同时配置了接口认证和区域认证时,优先使用接口认证建立 OSPF 邻居。
每种认证方式又分简单验证模式、MD5 验证模式和 key chain 验证模式。
简单验证模式在数据传递过程中,认证密钥和密钥ID 都是明文传输,很容易被截获。MD5 验证模式下的密钥是经过MD5 加密传输,相比简单验证模式更为安全。 key chain 验证模式可以同时配置多个密钥,不同密钥可单独设置生效周期等。
两边都要做,只做一边,邻居是建立不了的。
R2:
ospf
area 1
authentication-mode simple plain huawei
R4:
ospf
area 1
authentication-mode simple plain huawei
区域使用的配置为 simple 简单验证模式,密码为 huawei,配置 plain 参数。
plain 在查看配置时,以明文方式显示密码
cipher 在查看配置时,以密文方式显示密码
authentication-mode simple huawei 明文 密文不指定时,默认为密文显示密码。
配置 R1 R2 的链路认证,MD5 验证模式,验证字标识符为1,密码为 huawei
R1:
int g0/0/1
ospf authentication-mode md5 1 huawei
R2:
int g0/0/0
ospf authentication-mode md5 1 huawei
配置 R1 R3 的 key chain 认证 , 在链路上调用。
R1:
keychain key mode periodic daily //keychain名为key,模式为定期每天
key-id 1 //keyid为 1
algorithm md5 //算法为md5
key-string huawei //密码为huawei
send-time daily 08:00 to 18:00 //发送时间为每天早上八点到晚上六点
receive-time daily 08:00 to 18:00 //接收时间为每天早上八点到晚上六点
int g0/0/2
ospf authentication-mode keychain key
R3:
keychain key mode periodic daily
key-id 1
algorithm md5
key-string huawei
send-time daily 08:00 to 18:00
receive-time daily 08:00 to 18:00
int g0/0/0
ospf authentication-mode keychain key