R1、R2、R3之间通过交换机S1相连,其接口、IP地址如图所示。R1、R2、R3上均创建Loopback0,IP地址为x.x.x.x/24,其中x为设备编号。
R1、R2、R3所有接口都属于区域0,在互联接口、Loopback0接口上激活OSPF。
参考链接:http://e.huawei.com
实验任务:
①设备IP地址配置。
②在R1、R2、R3上配置OSPF,手动指定Router ID,并在互联接口、Loopback0接口上激活OSPF。
③配置完成后,在R1、R2、R3上检查OSPF 邻居关系状态、OSPF 路由表,并检查R1、R2、R3环回口之间的连通性。
④手动关闭R1、R2、R3的互联接口,开启debug以观察OSPF邻居关系的建立过程,再同时开启互联接口,观察设备的debug输出。
⑤手动修改R2 Loopback0接口的网络类型,观察OSPF路由的掩码长度变化。
⑥手动修改OSPF 接口的Cost值。
⑦分别将互联接口、Loopback0接口配置为OSPF Silent-Interface,观察现象的区别。
任务步骤:
①互联接口、环回口IP地址配置
# 设备命名
AR1:
<Huawei>system-view
[Huawei]sysname AR1
R2、R3相同操作,不再重复。
# 配置R1 GE4/0/0接口、环回口IP地址
[AR1]interface GigabitEthernet 4/0/0
[AR1-GigabitEthernet4/0/0]ip address 10.0.123.1 24
[AR1-GigabitEthernet4/0/0]quit
[AR1]interface LoopBack 0
[AR1-LoopBack0]ip address 1.1.1.1 24
[AR1-LoopBack0]quit
# 配置R2 GE4/0/0接口、环回口IP地址
[AR2]interface GigabitEthernet 4/0/0
[AR2-GigabitEthernet4/0/0]ip address 10.0.123.2 24
[AR2-GigabitEthernet4/0/0]quit
[AR2]interface LoopBack 0
[AR2-LoopBack0]ip address 2.2.2.2 24
[AR2-LoopBack0]quit
# 配置R3 GE4/0/0接口、环回口IP地址
[AR3]interface GigabitEthernet 4/0/0
[AR3-GigabitEthernet4/0/0]ip address 10.0.123.3 24
[AR3-GigabitEthernet4/0/0]quit
[AR3]interface LoopBack 0
[AR3-LoopBack0]ip address 3.3.3.3 24
[AR3-LoopBack0]quit
# 在AR1上验证连通性
②配置单区域OSPF
# 配置R1、R2、R3的OSPF Router ID为Loopback0接口地址,OSPF进程号为1
[AR1]ospf 1 router-id 1.1.1.1
[AR2]ospf 1 router-id 2.2.2.2
[AR3]ospf 1 router-id 3.3.3.3
# 在R1、R2、R3的互联接口、Loopback0接口激活OSPF
[AR1-ospf-1]area 0
[AR1-ospf-1-area-0.0.0.0]network 10.0.123.1 0.0.0.0
[AR1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[AR2-ospf-1]area 0
[AR2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[AR2-ospf-1-area-0.0.0.0]net 10.0.123.2 0.0.0.0
[AR3-ospf-1]area 0
[AR3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[AR3-ospf-1-area-0.0.0.0]network 10.0.123.3 0.0.0.0
OSPF的七种邻居状态机
# 为保证安全性,可配置OSPF的区域认证,使用明文方式,密码配置为"huawei"
[AR1-ospf-1-area-0.0.0.0]authentication-mode simple plain huawei
[AR2-ospf-1-area-0.0.0.0]authentication-mode simple plain huawei
[AR3-ospf-1-area-0.0.0.0]authentication-mode simple plain huawei
③检查OSPF配置结果
# 检查R1、R2、R3上的OSPF邻居信息
从输出结果可知R1和R2、R3之间已经成功建立OSPF 邻居关系。
从输出结果可知R2和R1、R3之间已经成功建立OSPF 邻居关系。
从输出结果可知R3和R1、R2之间已经成功建立OSPF 邻居关系。
# 检查R1、R2、R3的OSPF路由表
从输出结果可知R1已经成功学习到R2、R3的Loopback0接口路由。
从输出结果可知R2已经成功学习到R1、R3的Loopback0接口路由。
从输出结果可知R3已经成功学习到R1、R2的Loopback0接口路由。
# 检查环回口之间的连通性
R1上以Loopback0接口地址为源,测试与R2、R3的 Loopback0接口之间的连通性。
# 在R1上查看OSPF LSDB
在这里一共可以看到4条LSA,前3条为Type-1 LSA,分别由R1、R2和R3产生,可以通过AdvRouter判断该LSA是由哪台路由器生成的。第四条为Type-2 LSA,是由一个网段的DR产生的。在这里,R1是10.0.123.0/24这个网段的DR,所以该Type-2 LSA的AdvRouter为1.1.1.1。
# 查看R1产生的Type-1 LSA
从输出中可以看到这条LSA一共描述了2个Link,第一个Link描述了Loopback接口所在网段,Link Type为StubNet,Link ID和Data分别是该Stub网段的IP地址和掩码。第二个Link描述了三台路由器的互联网段,Link Type为TransNet,可以看到Link ID为DR的接口地址:10.0.123.1,Data为该网段上本地接口的IP地址:10.0.123.1。
# 查看R1产生的Type-2 LSA
从输出信息可以看到Type-2 LSA中的Attached Router描述了DR所在网段的邻居信息。
④观察OSPF邻居关系的建立过程
之前查看OSPF邻居信息时可以看到DR为10.0.123.1,这与根据DR选举原则进行预测的结果并不一致。在OSPF中,DR的选举为非抢占,即网络中存在DR或BDR的,新进入网络的路由器不能抢占DR或BDR的角色。当在配置OSPF时对设备的配置顺序存在前后差距,就可能导致选举出的DR为先启动的设备。
为此可以关闭R1、R2、R3的互联接口,并使用debugging ospf 1 event观察OSPF邻居关系建立的具体过程,之后尽量同时重新打开R1、R2、R3的接口,通过debug输出信息查看DR、BDR的选举过程。
# 关闭R1、R2、R3的互联接口
[AR1-GigabitEthernet4/0/0]shutdown
[AR2-GigabitEthernet4/0/0]shutdown
[AR3-GigabitEthernet4/0/0]shutdown
# 打开R1、R2、R3的debug功能以及开启debug ospf event
<AR1>terminal debugging
Info: Current terminal debugging is on.
<AR1>terminal monitor
Info: Current terminal monitor is on.
<AR1>debugging ospf 1 event
terminal debugging
terminal monitor
debugging ospf 1 event
R2、R3相同操作,不再重复。
# 重新打开R1、R2、R3的互联接口
[AR1-GigabitEthernet4/0/0]undo shutdown
[AR2-GigabitEthernet4/0/0]undo shutdown
[AR3-GigabitEthernet4/0/0]undo shutdown
在几乎同时启动OSPF时,从输出信息中可以看到R3成为DR。
# 查看R2的debug输出信息
从输出信息中可以看到R2成为了BDR
⑤配置OSPF Loopback接口的网络类型
# 在R1上查看OSPF路由表中的R2、R3的Loopback0接口路由
可以看到Loopback0接口路由的掩码为32位,而不是实际的24位。
# 以R2为例查看OSPF的Type-1 LSA
可以看到R2上关于Loopback0接口的LSA里已经将掩码设为32位,OSPF将Loopback接口视为一个末梢网络,且该网络中只连接着一个节点,因此无论该接口实际配置的网络掩码是多少位,OSPF在Type-1 LSA中描述这个接口时,都以主机(32位网络掩码)的形式进行通告。
关于OSPF中Loopback接口详细解释可以查阅RFC 2328 Section 9.1。
# 修改R2 Loopback0接口的网络类型
[AR2-LoopBack0]ospf network-type broadcast
将Loopback接口的网络类型修改为Broadcast,OSPF在发布这个接口的网络信息时,会使用接口真实掩码进行发布。
# 在R1上再次查看OSPF路由表中R2的Loopback0接口路由
从输出信息中可以看到路由的掩码已经变为24位。
⑥修改OSPF接口的Cost值
# 在R1上查看OSPF路由表中的R3 Loopback0接口路由
从输出信息可以看到其Cost值为1。
# 修改R1的GE4/0/0接口OSPF Cost值为20,修改R3的GE4/0/0接口OSPF Cost值为10
[AR1]int g 4/0/0
[AR1-GigabitEthernet4/0/0]ospf cost 20
[AR3]int g 4/0/0
[AR3-GigabitEthernet4/0/0]ospf cost 10
# 在R1上重新查看OSPF路由表中的R2 Loopback0接口路由
从输出信息可以看到其Cost值为20。
# 在R3上查看OSPF路由表中的R1 Loopback0接口路由
从输出信息可以看到其Cost值为10。
⑦配置OSPF的Silent-Interface
# 将R1的GE4/0/0接口配置为Silent-linterface
[AR1]ospf 1
[AR1-ospf-1]silent-interface GigabitEthernet 4/0/0
# 查看R1的OSPF邻居表
配置互联接口为Silent-Interface之后,不再从该接口发送、接收hello报文,已经建立关系的邻居消失。
# 查看R1的OSPF接口GE4/0/0的信息
从输出信息可以看到该接口被设置为Silent-Interface,不再存在hello报文。
# 删除R1上Silent-Interface配置
[AR1-ospf-1]undo silent-interface GigabitEthernet4/0/0
#将R2、R3的Loopback0配置为Silent-lnterface
[AR2-ospf-1]silent-interface LoopBack 0
[AR3-ospf-1]silent-interface LoopBack 0
# 在R1上查看OSPF路由表
可以看到R2、R3 Loopback0接口路由依旧存在。
思考:
在实际的网络中,哪些接口可以配置为Silent-Interface?
无需建立OSPF邻居关系的接口可以配置为Silent-interface接口,减少接口开销,同时无需对外发送OSPF报文。
配置参考:
AR1:
#
sysname AR1
#
interface GigabitEthernet4/0/0
ip address 10.0.123.1 255.255.255.0
ospf cost 20
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.0
#
ospf 1 router-id 1.1.1.1
area 0.0.0.0
authentication-mode simple plain huawei
network 1.1.1.1 0.0.0.0
network 10.0.123.1 0.0.0.0
#
AR2:
#
sysname AR2
#
interface GigabitEthernet4/0/0
ip address 10.0.123.2 255.255.255.0
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.0
ospf network-type broadcast
#
ospf 1 router-id 2.2.2.2
silent-interface LoopBack0
area 0.0.0.0
authentication-mode simple plain huawei
network 2.2.2.2 0.0.0.0
network 10.0.123.2 0.0.0.0
#
AR3:
#
sysname AR3
#
interface GigabitEthernet4/0/0
ip address 10.0.123.3 255.255.255.0
ospf cost 10
#
interface LoopBack0
ip address 3.3.3.3 255.255.255.0
#
ospf 1 router-id 3.3.3.3
silent-interface LoopBack0
area 0.0.0.0
authentication-mode simple plain huawei
network 3.3.3.3 0.0.0.0
network 10.0.123.3 0.0.0.0
#