OSPF引入直连路由时巧借静态黑洞路由做汇总
 

一、实验背景:
这两天,隔壁专业同事跟我讨论一个实际生产环境中OSPF引入直连路由后,需做路由汇总的问题。我配合实现后抽象梳理分享一下。实际环境会更复杂一些,我做了脱敏抽象简化,拓扑如下图。

拓扑概述如下:

1、SW1和SW2均为三层交换机,它们之间起OSPF协议,互联接口宣告在 area 0 中。
2、SW2作为接入设备,以直连路由形式,收敛不同的业务,并把这些直连路由引入OSPF中,与大网互通。

问题点:

1、业务中,各直连路由小网段纷纷以直连路由方式引入OSFP,造成SW2路由条目过多的情况。
2、蓝框中,各小路由网段可梳理汇总;紫框中,大小路由网段暂无法梳理汇总。
(注:ENSP中OSPF域设备使用了S5700模拟;客户侧用PC模拟。实际环境可能是友商设备,客户侧可能是防火墙设备等。这些均非本文讨论内容,我做了简化处理。)

(图片可放大查看)

二、实验目的:

(1)对于蓝色框中的业务直连路由进行汇总,SW2只学习到汇总路由。

(2)对于紫色框中的业务直连路由保持原样,SW2仍学习到明细路由。

三、实验过程:

第 1 步,搭建实验拓扑

SW1主要配置:
# 拉通OSPF部分
interface Vlanif1
 ip address 12.1.1.1 255.255.255.0
ospf 1
 area 0.0.0.0
  network 12.1.1.1 0.0.0.0

# 业务直连部分(以1段为例,其它类推)
interface Vlanif11
 ip address 10.0.0.1 255.255.255.248
interface GigabitEthernet0/0/11
 port link-type access
 port default vlan 11
# ……

SW2主要配置:

interface Vlanif1
 ip address 12.1.1.2 255.255.255.0
ospf 1
 area 0.0.0.0
  network 12.1.1.2 0.0.0.0

实现效果是每台PC都能ping通自己网关,不能ping通SW2的接口地址12.1.1.2。

第 2 步,SW1中OSPF引入直连路由

来,我们在OSPF进程中,直接引入直连路由。
SW1
ospf 1
import-route direct 
如果都执行正确的话,此时我们到SW2上就可以看到业务直连路由以OSPF外部路由的形式加入到路由表中了,此后彼此互通。
此时我们看到,业务直连路由是什么,引入后就是什么。实际环境中有可能几百上千条这种小段路由,这种情况除增加SW2路由表压力外,业务末端随时上下线都会造成路由频繁抖动等不良影响。

第 3 步,使用asbr-summary汇总

SW1是OSPF域中的一台ASBR,那为了解决上一步的问题,我们可以在OSPF进程下做手工路由汇总。我们假设10.0.0.0/24是已规划的,不与其它地方冲突的地址空间。
SW1
ospf 1
 asbr-summary 10.0.0.0 255.255.255.0

此后我们跑去SW2看路由表,就会看到10.0.0.0/24段的已完成汇总,不涉及到的业务直连网段依然是以明细的形存在于路由表中。

此后依然测试全网网络可达,似乎我们的目标完成了,我可以“交差”了。

第 4 步,使用静态路由引入做汇总

燃鹅,同事又提了新的问题。他参考了其它地方的同类配置,人家是用静态路由引入的形式进行了路由汇总,想跟着保持统一。
于是,我删掉了asbr-summary这条配置,SW2很自然的重新学到所有明细路由。
SW1
ospf 1
 undo asbr-summary 10.0.0.0 255.255.255.0

我再把10.0.0.0/24网段的静态路由整理下,实际变成一条黑洞路由,指令如下。


SW1
ip route-static 10.0.0.0 255.255.255.0 NULL0
那么接下来需要去掉引入直连,而改成引入静态。
SW1
ospf 1
undo import-route direct
import-route static
此时,到SW2上看,10.0.0.0/24的小段路由依然正常。燃鹅,紫色框中两条没做汇总需求的业务直连路由在SW2的路由表中消失了。因为SW1已取消了直连路由引入,所以SW2的路由表中自然不会有。
我跟同事说那这样需要把172和192开头的这两段也一并写静态。同事说nonono,这部分还有很多其它段(拓扑中……部分),另外也时不时变,最好还是能直连引入。
那我又说,那做回前面的asbr-summary汇总如何,同事说还是不行,因为之后还想按标准整改好,都变成静态,如果用asbr-summary汇总后面恐怕不好推动。
他提出,能否“已整理的部分”用静态引入做汇总,“未整理的部分”还是保持直连引入明细?
啊!这明显是“过渡态”的需求,好吧,我再想想……(其实这是个“割接态”、“过渡态”如何做平滑过渡的问题。)

第 5 步,同时引入直连和静态

依然在SW1上,我们把直连路由引入给补上去。
SW1
# 这条静态上一步已经有了
ip route-static 10.0.0.0 255.255.255.0 NULL0

ospf 1
 import-route direct
 import-route static
我们到SW2看路由表。

此时,10段的那4条我们要汇总的明细路由,因为OSPF引入直连路由的原因,又一次出现在SW2的路由表上。情况好像又回到了原点。
要怎么办?思考了下。

第 6 步,带策略的静态路由引入

如果有静态路由汇总网段的话,我们就不对它做OSPF直连引入,如果没有,则继续对它做直连引入。
那此时,我想我们可以在引入直连路由的时候,调用路由策略,过滤掉已经写静态黑洞做路由汇总网段。
IP前缀列表是抓取路由的一个利器,我们先写一个ip前缀列表,来抓取路由。
ip ip-prefix STATICED index 10 permit 10.0.0.0 24 greater-equal 24 less-equal 32

名为STATICED的ip前缀列表,索引10有一项,它允许路由的前24位严格匹配10.0.0,而路由掩码可以在32位到24位之间。我命名它为STATICED是表达已经写过静态汇总路由了。

# 路由策略节点10,拒绝掉那些已写静态黑洞路由做汇总的直连网段。
route-policy STATICED deny node 10
 if-match ip-prefix STATICED
# 路由策略节点20,放通节点10没匹配中的其它直连网段。
route-policy STATICED permit node 20

# 注1:节点20在华为设备,默认动作是放行,友商设备则不一定。
# 注2:关于这种策略要在哪里拒绝,哪里放行,实施方式并不统一,可尝试不通写法。

好了,最后就是在OSPF引入直连路由的时候,调用这个STATICED路由策略。


ospf 1
 import-route direct route-policy STATICED
 import-route static

再次梳理下,我们这么一番操作的用意是,在OSPF引入直连路由时,如果已经写了静态黑洞路由的,则按静态路由引入,已达到路由汇总目的;如果没写,则仅需按直连路由引入,仍是明细路由。

好了!算是把这需求给满足了。此后,直连路由引入可逐步继续梳理变成静态路由汇总引入。稳步推进!

实验总结:

路由协议之间相互引入、汇总、过滤对网工来说,算是基本技能吧。我隔壁专业的同事一直给我感觉与数通无关,没想随着网络的不断发展与演进,数通知识越来越渗透到其它领域了。最近我看了点点SRv6,嗯,这不就是IPv4中的松散源路由概念吗?哈,这让我想到一直听说网工是“夕阳行业”,这些知识马上淘汰了,这是真的吗?还是行业鄙视链还是贩卖焦虑呢?我不得而知。网络的不断演进与发展,像某些框架看似版本狂魔,凶猛迭代一年可以发布n个版本,但实际很多东西基础的来来回回还是那些。好吧,如果有兴趣,不紧急的时候坚持回归基础,夯实基础,守正创新。
好吧!整体做张图总结下这个实验哈。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇