ospf宣告网段_某大型通信技术公司ospf面试题分析

75829bb0838b8277f13b2547287e9177.png

面试问题背景

本面试题来自国内最大通信技术公司之一,央企,有很多金融网项目。

了解行业的同学,一定知道是哪个企业。

上面试问题(取自百哥收集整理的面试总结大全,关注百哥CSDN或知乎,不定期分享名企面经)

c5b67971ff242c31b9e54b9b6255b49a.png

5af0f54f7d29592ae2acb0e8116e6a5f.png

问题分析

很显然,按面试总结里的答案,并不是面试官想要的,也并不能解决数据分流与互备的需求。

那么,怎样才能实现呢,一起来分析。

OSPF选举路由优劣的方式,是看cost值,先看下普通的单进程ospf,通过修改cost值是否能实现分流

56382f7f1542d46a049abc669b6b8f6f.png

这里所有接口带宽相同,默认cost相同,所以会形成等价路由,也就是说业务流量上行的时候,两条路都会走。

需求是业务走左边,办公走右边,我们尝试修改接口cost,发现不行,因为这样做的结果是

所有数据都走左边,或者所有数据都走右边,并不能实现不同数据左右分离。

所以,实现分流,必须使用双进程ospf,这样来

e638350757a91fa4466c4b196d68c37c.png

如图,启用两个OSPF进程,进程号分别是OSPF 100 和 OSPF 1

两个OSPF进程,LSDB和路由计算是完全独立的,相当于两个不同的路由协议,相当于OSPF和RIP

那么两个进程互相学习对方的路由,就要用路由重发布了(也叫路由重分布、路由引入)

这时,对R4来讲,访问业务服务器和办公服务器的路由,是由两台ASBR,也就是R2和R3,以重发布的方式,通过5类lsa发过来的

这时,R2和R3在做重发布时,给100网段、200网段分别指定不同的cost值。

R2发的100段(业务服务器),cost值小

R3发的100段(业务服务器),cost值大

这样R4就认为,从R2去访问业务服务器更合理,实现业务数据从左边走。

同样的

R2发的200段(办公服务器),cost值大

R3发的200段(办公服务器),cost值小

这样R4就认为,从R3访问办公服务器更合理,实现办公数据从右边走

需求实现

下面来实现一下。

1、ip规划与配置

这里的ip规划是这样的,使用路由器编号进行网段规划,比较直观。

R1和R2互联地址,使用10.10.12.0/24,其中R1是10.10.12.1,R2是10.10.12.2

R1和R3互联地址,使用10.10.13.0/24,其中R1是10.10.13.1,R3是10.10.13.3

R2和R4互联地址,使用10.10.24.0/24,其中R2是10.10.24.2,R4是10.10.24.4

R3和R4互联地址,使用10.10.34.0/24,其中R3是10.10.34.3,R4是10.10.34.4

在R4上使用loopback接口模拟业务、办公数据的终端地址

在R1上使用loopback接口模拟业务、办公数据的服务器地址

地址配置过程略(看这篇文章的同学,ip地址当然会配置,如果不会配置,可以参考公众号“跟百哥学网络”前面几篇)

2、OSPF宣告

R1

这里所有接口都宣告到OSPF 100

R1(config)#router ospf 100
R1(config-router)#network 0.0.0.0 0.0.0.0 a 0

R2

R2是ASBR,上面的接口在OSPF 100,下面的接口在OSPF 1

R2(config)#router ospf 100
R2(config-router)#network 10.10.12.0 0.0.0.255 a 0
R2(config)#router ospf 1
R2(config-router)#network 10.10.24.0 0.0.0.255 a 0

R3

和R2相同

R3(config)#router ospf 100
R3(config-router)#network 10.10.13.0 0.0.0.255 a 0

R3(config-router)#router ospf 1
R3(config-router)#network 10.10.34.0 0.0.0.255 a 0

R4

所有接口都在OSPF 1

R4(config)#router ospf 1
R4(config-router)#network 0.0.0.0 0.0.0.0 a 0

宣告完成后,查看一下每台路由器的邻居是否都正常建立

7e81ba4fd481e2296b7806526130e8fa.png

92141c3cc4a37d48e66839fbc5287d6a.png

576b15cf07c694b386214f16b7d3ed15.png

4f45497106e2623baf2f67f8724fa7da.png

每个路由器,都有两个邻居

3、路由重发布(也叫路由重分布、路由引入)

在R4上查看路由表,发现并没有100段和200段,也就是业务和办公的服务器网段,因为这是不同OSPF进程的

d07ab20e544345c4f1b44711664ada79.png

现在,在R2和R3上,通过重发布的方式,让R4学习到去往100段和200段的路由

R2(config)#router ospf 1
R2(config-router)#redistribute ospf 100 subnets


R3(config)#router ospf 1
R3(config-router)#redistribute ospf 100 subnets

再来查看路由表

44736c798b5b2407e8fc6b4e3c5b971f.png

这时R4已经学习到了100段和200段的路由,但是还是没有满足需求

没分流啊,没实现访问100走左边访问200走右边啊,现在是两条随机走啊,这可不行,上路由策略

4、路由策略

使用route-map,给100段和200段分别指定不同的cost值,然后做重发布时,调用这个route-map

第1步,使用acl来定义路由条目,直接用拼音来命名吧。

ip access-list standard bangongfuwuqi
permit 192.168.200.0 0.0.0.255
ip access-list standard bangongzhongduan
permit 192.168.2.0 0.0.0.255
ip access-list standard yewufuwuqi
permit 192.168.100.0 0.0.0.255
ip access-list standard yewuzhongduan
permit 192.168.1.0 0.0.0.255

第2步,使用route-map,来给各个路由条目指定cost值

先在R2上做,业务服务器的cost设置小一点,办公服务器的设置大一点

route-map 100to1 permit 10
match ip address yewufuwuqi
set metric 100
route-map 100to1 permit 20
match ip address bangongfuwuqi
set metric 200

含义是,建立一个名字叫100to1的route-map,这个route-map里有两条规则,规则编号分别是10和20

编号10的规则,给业务服务器的网段,设置度量值为100

编号20的规则,给办公服务器的网段,设置度量值为200

没错,这里是用acl来识别网段的

在R3上也建立一下route-map,但是度量值和R2相反

route-map 100to1 permit 10
match ip address yewufuwuqi
set metric 200
route-map 100to1 permit 20
match ip address bangongfuwuqi
set metric 100

最后,重发布的时候,调用这个route-map,就可以按照他指定的度量值,进行重发布了

R2(config)#router ospf 1
R2(config-router)#redistribute ospf 100 subnets route-map 100to1

R3(config)#router ospf 1
R3(config-router)#redistribute ospf 100 subnets route-map 100to1

回到R4上看结果,是否满足分流

4d33bf908b62cf2372a2cb1afd1a7da0.png

可以看出,已经实现了访问100走左边,访问200走右边

至此,分流的关键技术原理和实现,我们已经完成,但是仍要注意,数据要原路去原路回,这也是面试官又把图反过来问了一遍的原因

现在到R1上看回包的路由

32a4ede72b524f4656233ad034ca6485.png

发现根本没有ospf的路由,这是因为只做了从进程100到进程1的重发布,现在还需要反着来一遍,就是进程1重发布到进程100

R2的配置

R2(config)#route-map 1to100 permit 10
R2(config-route-map)# match ip address yewuzhongduan
R2(config-route-map)# set metric 100
R2(config-route-map)#route-map 1to100 permit 20
R2(config-route-map)# match ip address bangongzhongduan
R2(config-route-map)# set metric 200
R2(config-route-map)#router ospf 100
R2(config-router)#redistribute ospf 1 subnets route-map 1to100

R3的配置

R3(config)#route-map 1to100 permit 10
R3(config-route-map)# match ip address yewuzhongduan
R3(config-route-map)# set metric 200
R3(config-route-map)#route-map 1to100 permit 20
R3(config-route-map)# match ip address bangongzhongduan
R3(config-route-map)# set metric 100
R3(config-route-map)#router ospf 100
R3(config-router)#redistribute ospf 1 subnets route-map 1to100

再来R1看路由

cb13f60834008745d3c4a03c740277c2.png

已经正常学习到分流的路由 ,然后使用ping和tracert测试一下连通性

业务终端 ping 业务服务器

R4#ping 192.168.100.1 source 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.100.1, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/18/36 ms

办公终端ping办公服务器

R4#ping 192.168.200.1 source 192.168.2.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.200.1, timeout is 2 seconds:
Packet sent with a source address of 192.168.2.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/26/36 ms

再来跟踪一下路由

R4#traceroute 192.168.100.1 source 192.168.1.1
1 10.10.24.2
2 10.10.12.1
R4#traceroute 192.168.200.1 source 192.168.2.1
1 10.10.34.3
2 10.10.13.1

R1#traceroute 192.168.1.1 source 192.168.100.1
1 10.10.12.2
2 10.10.24.4


R1#traceroute 192.168.2.1 source 192.168.200.1
1 10.10.13.3
2 10.10.34.4

5、路由过滤

现在已经实现了数据分流,且来回路径一致,测试一下故障切换

fc73c8a29c42d18fdff74d94da1664c0.png

把这个接口shutdown,模拟线路故障,然后测试连通性与路由跟踪

先看连通性,没有问题

R4#ping 192.168.100.1 source 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.100.1, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/21/28 ms


R4#ping 192.168.200.1 source 192.168.2.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.200.1, timeout is 2 seconds:
Packet sent with a source address of 192.168.2.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/27/36 ms

再看路径,会发现都切换到了右边

R4#traceroute 192.168.100.1 source 192.168.1.1
1 10.10.24.2
2 10.10.12.1
R4#traceroute 192.168.200.1 source 192.168.2.1
1 10.10.24.2
2 10.10.12.1

目前为止一切正常,现在把线路恢复,看路由是否能还原

发现即使线路又恢复了,但是路由还是没有切换,是因为ospf双进程的“先入为主”机制

先入为主就是,ospf从两个进程,学习到了同一条路由,那么将采用先来的。

我们到R2上查看路由表

d0cd3649b07f57d472b8205f94c190cd.png

在R2上,线路恢复后,1.1和2.1的路由,应该是O才对,这里为什么是O E2呢,O E2是外部路由,也就是重发布的啊

原因就是,之前因为线路故障,邻居失效,删除了进程1里的1.1和2.1的路由

但是1.1和2.1又从进程100里学习到了,没错,就是重发布来的

然后线路又恢复了,虽说又从进程1里学习到了1.1和2.1的路由,但是进程100已经先入为主了

所以导致线路恢复但是进程1的路由没恢复,最后出现路由切不回来的问题。

来看一下两个进程的的lsdb

这是进程100的lsdb,发现这里有1.1和2.1

R2#sh ip ospf 100 database | begin Type-5
Type-5 AS External Link States

Link ID ADV Router Age Seq# Checksum Tag
192.168.1.1 10.10.34.3 1252 0x80000001 0x0084C2 0
192.168.2.1 10.10.34.3 1252 0x80000001 0x008D1D 0

这是进程1的lsdb,这里也有1.1和2.1

R2# sh ip ospf 1 database router | include 192.168.1.1
(Link ID) Network/subnet number: 192.168.1.1
R2# sh ip ospf 1 database router | include 192.168.2.1
Link State ID: 192.168.2.1
Advertising Router: 192.168.2.1
(Link ID) Network/subnet number: 192.168.2.1

因为先入为主,最终采用的是进程100里的,这是次优路由

我们要把他过滤掉,不让他从进程100里学习进程1的路由

做法

先做个acl

R2(config)#ip access-list standard deny1
R2(config-std-nacl)#deny 192.168.1.0 0.0.0.255
R2(config-std-nacl)#deny 192.168.2.0 0.0.0.255
R2(config-std-nacl)#permit any

然后把acl,调用在ospf 100的路由过滤策略中

R2(config)#router ospf 100
R2(config-router)#distribute-list deny1 in

再查看路由表,发现进程100的这个路由被过滤掉了,不会写入路由表

进程1的路由出来了

5d3cf301e55d6a37b04d8b0fc18d0358.png

然后所有的路由都正常了

平常,业务和办公实现分流,各走各的专用线路,来回路径一直

当线路故障,可以自动切换到备选线路

当线路恢复,路由也可以自动恢复到主路由,不会再受到ospf多进程先入为主的影响。

获取更多学习资料,欢迎加入技术讨论群:662736393

如有问题,可私信或联系QQ:167748928

如果你看到了这里,百哥想请你帮个小忙:

1.关注百哥,这是一个会陪你至少10年的技术号,定期分享ICT技术。

2.帮我点赞,收藏,分享三连,方便你最快找到百哥,也让更多的人真正爱上ICT技术,学好ICT技术

80be91faae6e4198fd1d018dcf52c89c.png
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值