1.OSPF基础配置命令
1.1(系统视图)创建并运行OSPF进程
[Huawei] ospf [ process-id | router-id router-id ]
porcess-id用于标识OSPF进程,默认进程号为1。OSPF支持多进程,在同一台设备上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立。
router-id用于手工指定设备的ID号。如果没有通过命令指定ID号,系统会从当前接口的IP地址中自动选取一个作为设备的ID号。
1.2(OSPF视图)创建并进入OSPF区域
[Huawei-ospf-1] area area-id
area命令用来创建OSPF区域,并进入OSPF区域视图。
area-id可以是十进制整数或点分十进制格式。
采取整数形式时,取值范围是0~4294967295。
1.3(OSPF区域视图)指定运行OSPF的接口
[Huawei-ospf-1-area-0.0.0.0] network network-address wildcard-mask
network命令用来指定运行OSPF协议的接口和接口所属的区域。
network-address为接口所在的网段地址。
wildcard-mask为IP地址的反码,相当于将IP地址的掩码反转(0变1,1变0),例如0.0.0.255表示掩码长度24 bit。
1.4(接口视图)配置OSPF接口开销
[Huawei-GigabitEthernet0/0/0] ospf cost cost
ospf cost命令用来配置接口上运行OSPF协议所需的开销。缺省情况下,OSPF会根据该接口的带宽自动计算其开销值cost取值范围是1~65535。
1.5(OSPF视图)设置OSPF带宽参考值
[Huawei-ospf-1] bandwidth-reference value
bandwidth-reference命令用来设置通过公式计算接口开销所依据的带宽参考值。value取值范围是1~2147483648,单位是Mbit/s,缺省值是100Mbit/s。
1.6(接口视图)设置接口在选举DR时的优先级
[Huawei-GigabitEthernet0/0/0] ospf dr-priority priority
ospf dr-priority命令用来设置接口在选举DR时的优先级。
priority值越大,优先级越高,取值范围是0~255。
2.OSPF配置案例一
2.1案例描述:
有三台路由器R1、R2和R3,其中R1和R3分别连接网络1.1.1.1/32和3.3.3.3/32(LoopBack0模拟),现需要使用OSPF实现这两个网络的互通。
OSPF参数规划:OSPF进程号为1。R1、R2和R3的Router ID分别为1.1.1.1、2.2.2.2和3.3.3.3。
具体拓扑如下:
配置过程分为三个步骤:配置设备接口、配置OSPF和验证结果。
2.2根据规划配置R1、R2和R3接口IP地址。
2.2.1配置R1的接口
sys
undo info-center enable
sysname R1
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
quit
interface GigabitEthernet0/0/0
ip address 10.1.12.1 255.255.255.252
quit
2.2.2配置R2的接口
sys
undo info-center enable
sysname R2
interface GigabitEthernet0/0/0
ip address 10.1.12.2 255.255.255.255
quit
interface GigabitEthernet0/0/1
ip address 10.1.23.1 255.255.255.252
quit
2.2.3配置R3的接口
sys
undo info-center enable
sysname R3
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
quit
interface GigabitEthernet0/0/0
ip address 10.1.23.2 255.255.255.252
quit
2.3配置OSPF
配置步骤:
创建并运行OSPF进程;
创建并进入OSPF区域;
指定运行OSPF的接口。
2.3.1配置R1 OSPF协议
ospf 1 router-id 1.1.1.1
area 0
network 1.1.1.1 0.0.0.0
network 10.1.12.0 0.0.0.3 #注意反掩码
quit
quit
2.3.2配置R2 OSPF协议
OSPF多区域的配置请注意在指定区域下通知相应的网段。
ospf 1 router-id 2.2.2.2
area 0
network 10.1.12.0 0.0.0.3
area 1
network 10.1.23.0 0.0.0.3
quit
quit
2.3.3配置R3 OSPF协议
ospf 1 router-id 3.3.3.3
area 1
network 3.3.3.3 0.0.0.0
network 10.1.23.0 0.0.0.3
quit
quit
2.4结果验证
2.4.1在路由器R2上查看OSPF邻居表:
display ospf peer brief
2.4.2在路由器R1上查看路由表,并执行从源1.1.1.1 ping 3.3.3.3。
display ip routing-table
<R1>ping -a 1.1.1.1 3.3.3.3
3.OSPF配置案例二
单区域OSPF配置
3.1需求:配置单区域OSPF确保全网互通;针对R1-R2之间的链路,确保R1选举为DR;假设R1-R2之间带宽较低,确保1.1互访2.2的数据优先经R3转发。
OSPF参数规划:OSPF进程号为1。R1、R2和R3的Router ID分别为1.1.1.1、2.2.2.2和3.3.3.3。
具体拓扑如下:
3.2根据规划配置R1、R2和R3接口IP地址。
3.2.1配置R1的接口
sys
un in en
sysn R1
int loop 0
ip add 1.1.1.1 32
int e0/0/0
ip add 12.1.1.1 30
int e0/0/1
ip add 13.1.1.1 30
quit
3.2.2配置R2的接口
sys
un in en
sysn R2
int loop 0
ip add 2.2.2.2 32
int e0/0/0
ip add 12.1.1.2 30
int e0/0/1
ip add 23.1.1.1 30
quit
3.2.3配置R3的接口
sys
un in en
sysn R3
int loop 0
ip add 3.3.3.3 32
int e0/0/0
ip add 13.1.1.2 30
int e0/0/1
ip add 23.1.1.2 30
quit
3.3配置OSPF
对网络通告做精确的配置
3.3.1配置R1 OSPF协议
ospf 1 router-id 1.1.1.1
area 0
network 1.1.1.1 0.0.0.0
network 12.1.1.1 0.0.0.0
network 13.1.1.1 0.0.0.0
quit
quit
3.3.2配置R2 OSPF协议
ospf 1 router-id 2.2.2.2
area 0
network 2.2.2.2 0.0.0.0
network 12.1.1.2 0.0.0.0
network 23.1.1.1 0.0.0.0
quit
quit
3.3.3配置R3 OSPF协议
ospf 1 router-id 3.3.3.3
area 0
network 3.3.3.3 0.0.0.0
network 13.1.1.2 0.0.0.0
network 23.1.1.2 0.0.0.0
quit
quit
3.4配置R1接口优先级
因为R1的OSPF先配置,所以现在的R1是DR,当R1重启,那么就不一定是R1了。
查看OSPF邻居,可以看出R1为DR,而R2是BDR。
display ospf peer
当我们把R1和R2 重启,那么根据DR和BDR的选举规则,R2的router-id大,因此R2作为DR,R1作为BDR。
想要R1、R2之间选举R1作为DR,那么需要修改R1的DR优先级,优先级值越小越优。在R1的e0/0/0接口下配置,接着再把R1接口关闭重启,等待选举完成,通过查看邻居命令即可看到R1成功选举为DR。
int e0/0/0
ospf dr-priority 5
shutdown
undo shutdown
quit
display ospf peer
3.5修改OSPF Cost实现选路
通过在R1上查看路由表可看到,R1访问R2其下一跳是走12.1.1.2的,而不是经过R3。
要实现经过R3,需要把R1去往R2的开销修改大一点;去往R2的开销值配置是在R1的e0/0/0接口下配置:
int e0/0/0
ospf cost 3
配置完成,查看路由表可以看到去往2.2的下一条走13.1.1.2了,这只是去包的路由,还需要配置R2访问R1的开销修改,不然的话R2达到R1的回包路由下一跳是12.1.1.1。
在R2上查看路由表:
在R2的e0/0/0接口修改OSPF开销值:
int e0/0/0
ospf cost 3
配置完之后,R2发送回复报文就经过R3到达R1了。
3.6结果验证
3.6.1在路由器R1上查看OSPF邻居表
display ospf peer brief
3.6.2执行从源1.1.1.1 ping 2.2.2.2 & 3.3.3.3
3.7思考:
3.7.1将R2 OSPF进程号改为2是否影响ospf邻居建立?
即使把进程号1改为进程号2,进程号只是在本地(路由器本身)有效,不影响ospf邻居建立。因为OSPF支持多进程,在同一台设备上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立。
可以实际操作看看,我们把ospf 1删除掉,重新配置ospf 2,配置完成在通过查看ospf邻居摘要信息,可以看到与邻居的状态是Full。
[R2]undo ospf 1
Warning: The OSPF process will be deleted. Continue? [Y/N]:y
[R2]ospf 2
[R2-ospf-2]area 0
[R2-ospf-2-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[R2-ospf-2-area-0.0.0.0]network 12.1.1.2 0.0.0.0
[R2-ospf-2-area-0.0.0.0]network 23.1.1.1 0.0.0.0
[R2-ospf-2-area-0.0.0.0]quit
[R2-ospf-2]quit
[R2]display ospf peer brief
3.7.2不修改OSPF Cost和参考带宽的前提下如何实现选路控制?(提示:可以增加静态路由)
首先删除掉R1和R2的e0/0/0接口下的ospf cost:
R1:
int e0/0/0
undo ospf cost
R2:
int e0/0/0
undo ospf cost
接着通过配置静态路由,调整静态路由的优先级比ospf的小,优先级值越小越优,假设静态路由的优先级配置为8,我们要记住既要配置去的静态路由,也要记得配置回来的路由,不要配置漏了。
(1)在R1上配置一条静态路由去往R2的,下一跳为13.1.1.2,优先级为8:
ip route-static 2.2.2.2 32 13.1.1.2 preference 8
(2)在R3上配置一条静态路由去往R2的,下一跳为23.1.1.1,优先级为8:
ip route-static 2.2.2.2 32 23.1.1.1 preference 8
(3)上述两步配置完,在R1上查看路由表,可以看到1.1到2.2已经变更路由方向,而不是直接下一跳为12.1.1.2。
(4)但是2.2去往1.1的路由下一跳还是12.1.1.1,因此我们下一步要配置回包路由
(5)在R2上配置一条静态路由去往R1的,下一跳为23.1.1.2,优先级为8:
ip route-static 1.1.1.1 32 23.1.1.2 preference 8
(6)在R3上配置一条静态路由去往R1的,下一跳为13.1.1.1,优先级为8:
ip route-static 1.1.1.1 32 13.1.1.1 preference 8
(7)配置完第(5)和第(6)的操作之后,在R2上查看路由表,可以看到2.2到1.1已经变更路由方向,而不是直接下一跳为12.1.1.1。
3.7.3一台路由器不同的接口是否可以担任不同的角色?
例如:R1 e0/0/0 DR,R1 e0/0/1 BDR。
可以的。只要在同一个广播域中都会去选举DR和BDR的,比如R1-R2之间,R1-R3之间和R2-R3之间都是要去选举DR和BDR的。
在R1查看邻居信息可以看到R1的e0/0/0接口是作为R1与R2之间的DR;
在R3上查看邻居信息可以看到R1的e0/0/1接口是作为R1与R3之间的BDR。
4.OSPF配置案例三
多区域OSPF配置
4.1需求:配置多区域OSPF确保全网互通
具体拓扑如下:
4.2配置接口的IP地址
4.2.1配置R1的接口
sys
un in en
sysn R1
int loop 0
ip add 1.1.1.1 32
int e0/0/0
ip add 12.1.1.1 30
quit
4.2.2配置R2的接口
sys
un in en
sysn R2
int loop 0
ip add 2.2.2.2 32
int e0/0/0
ip add 12.1.1.2 30
int e0/0/1
ip add 23.1.1.1 30
quit
4.2.3配置R3的接口
sys
un in en
sysn R3
int loop 0
ip add 3.3.3.3 32
int e0/0/0
ip add 23.1.1.2 30
int e0/0/1
ip add 34.1.1.1 30
quit
4.2.4配置R4的接口
sys
un in en
sysn R4
int loop 0
ip add 4.4.4.4 32
int e0/0/0
ip add 34.1.1.2 30
int e0/0/1
ip add 45.1.1.1 30
quit
4.2.5配置R5的接口
sys
un in en
sysn R5
int loop 0
ip add 5.5.5.5 32
int e0/0/0
ip add 45.1.1.2 30
quit
4.3配置OSPF
4.3.1配置R1 OSPF协议
ospf 1 router-id 1.1.1.1
area 0.0.0.1
network 1.1.1.1 0.0.0.0
network 12.1.1.1 0.0.0.0
quit
quit
4.3.2配置R2 OSPF协议
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 23.1.1.1 0.0.0.0
area 0.0.0.1
network 12.1.1.2 0.0.0.0
quit
quit
4.3.3配置R3 OSPF协议
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 23.1.1.2 0.0.0.0
network 34.1.1.1 0.0.0.0
quit
quit
4.3.4配置R4 OSPF协议
ospf 1 router-id 4.4.4.4
area 0.0.0.0
network 4.4.4.4 0.0.0.0
network 34.1.1.2 0.0.0.0
area 0.0.0.2
network 45.1.1.1 0.0.0.0
quit
quit
4.3.5配置R5 OSPF协议
ospf 1 router-id 5.5.5.5
area 0.0.0.2
network 5.5.5.5 0.0.0.0
network 45.1.1.2 0.0.0.0
quit
quit
4.3.6查看路由表,并执行从源1.1.1.1 ping 5.5.5.5看是否实现全网互通
display ip routing-table
ping -a 1.1.1.1 5.5.5.5
4.3.7查看R2的LSDB
dis ospf lsdb
4.4思考:
4.4.1 R1和R5 LSDB是否相同?
不相同,因为R1和R5处于不同的区域中,所以R1和R5的LSDB是不同的。
R1的LSDB:
dis ospf lsdb
R5的LSDB:
dis ospf lsdb
4.4.2 R2和R4在Area 0 中的LSA是否相同
因为R2和R4都在区域0中,那么其在区域0的LSA是相同的。
R2:
dis ospf lsdb
R4:
dis ospf lsdb
4.4.3 R1路由表中去往5.5.5.5/32的cost是多少?
R1路由表中去往5.5.5.5/32的cost是4。
可以在R1上查看路由表到达5.5.5.5/32的开销值。
查看当前接口的开销:环回接口的开销值默认是0