割接哪有零失误的?记一次不完美的割接项目

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

晚上好,我的网工朋友。

今天说一次实战记录,一次不完美的割接项目。为啥说它不完美?看到最后你就知道了。

bd02140df74bc3841f7fd5d4d3d01f4e.jpeg

A、B两个业务相近的单位进行合并。

由于合并前两个单位均会需要位于北京总部和广东分部的各项服务,为减少重复投资,提高投入产出比,上级决定将两个单位的网络进行合并。

本次割接工作主要是把B的系统业务和网络线路全部迁移至A单位,B单位仅保留设备。

经调研,A、B单位均采用2层网络架构,接入层之负责工作站接入,核心层负责VLAN之间路由和交换路由信息等。

A单位核心层设备是2台H3C IRF堆叠,B单位核心是2台华为S7706 CSS堆叠。

当前过渡期,两套核心之间租赁两条独立的链路进行互联。

一条为3层链路,用于转发两个站点下级节点的流量;另一条2层链路,承载所有vlan,特意为本次割接租用。

两个单位北向连接共有2条链路。其中一条部署在华为上,连接北京主机房;另一条部署在H3C上,连接广东分站机房,再到北京主机房。

我方辖区内有两部分网络,一部分网络ip地址以10.6开头,北向以北京主机房的链路为出口g0/0/1;另一部分ip地址以10.40开头,北向以广东分站机房为出口g0/0/2。

两部分网络需要互通,但各自独占北向出口。

接下来就是准备工作和操作了,来和我一起复盘吧。

今日文章阅读福利:《 运营商网络切割的整体实施方案 》

私信发送暗号“网络切割”,即可获得这份运营商切割的整体实施方案(高清pdf版)。

01 准备工作

01 需求分析

A、B两个单位进行合并。合并后A、B均需要访问位于北京的总部和广东分部的服务器。合并后A、B之间需要互访。
本次割接的目标,是把东塔核心华为的业务整体迁移到西塔H3C中,即VLAN30、VLAN40等下级站点和G0/0/1的三层业务均进行迁移。
根据甲方要求,第一步先完成业务割接,等业务稳定后再完成线路割接。


02 通信量分析
把10.6.*.*的网段称为网段A,10.40.*.*的网段称为网段B。A网段核心为西塔H3C,B网段核心为东塔华为。
A、B的通信量分别是:
· 相互访问,流量少于10%。
· 访问北京总部,流量大于80%,A通过H3C北向接口,经广东分部的网络访问;B通过华为北向接口直接访问。
· 访问广东分部,流量少于10%,A通过H3C北向接口访问;B通过华为的北向接口,经北京总部的网络访问。


03 路由设计
合并前,H3C上部署有静态路由和默认路由,其中静态路由是指向A网段南向下属各非直连VLAN的,默认路由指向北向广东分部。
华为部署有OSPF,作为内部路由器与北京总部的ABR交换区域内LSA。ABR生成一条10.0.0.0/7的SUM ROUTE到华为核心。
甲方在合并过渡期做了以下操作:
H3C增加了OSPF和PBR,其中OSPF与华为毗邻,目的是通告重分发直连路由和静态路由到华为,使得B区域能访问A区域(注意这个设计是错误的,后面解释);PBR部署在所有SVI上,匹配所有源地址为10.6.*.*的网段,下一跳为H3C与华为的三层链路。
这是为了使割接时先割接到H3C的VLAN能继续正常访问外网。华为在OSPF中增加了H3C的邻居配置,目的是接收H3C的直连和静态配置。
· A网络VLAN访问A网络其它VLAN:直连路由+静态路由;

· A网络VLAN访问B网络VLAN:OSPF TYPE 1 、2;

· A网络VLAN访问外部网络:默认路由;

· 华为B网络VLAN访问A网络VLAN:OSPF TYPE 5;

· 华为B网络VLAN访问B网络其它VLAN:直连路由+OSPF TYPE 1、2;

· 华为B网络VLAN访问外部网络:OSPF TYPE 3;

· H3C B网络访问其它网络:PBR;
从业务的出方向考虑。A的所有外联业务均通过H3C北向接口,B所有外联业务均通过华为北向接口。这是典型的源地址路由需求,在当前架构中也部署了策略路由。因此割接后依然需要通过策略进行路由。
从流量的入方向考虑,本地没有路由发布到广东分布,因此广东分部应该使用非动态路由的方式把路由指向A网络,并汇聚到其汇总路由中向外发布,因此也不考虑A网络的路由发布;B网络和北京总部、广东分部存在互访要求,因此需要通过OSPF向外发布路由。
由于启用了OSPF就可以接收其它区域的路由信息,对于B网络而言,一般路由即可满足要求。因此决定在H3C中最终的路由设计为:
· A网络VLAN访问A网络其它VLAN:直连路由+静态路由;

· A网络VLAN访问B网络VLAN:直连路由+OSPF TYPE 1、2;

· A网络VLAN访问外部网络:PBR;

· B网络VLAN访问B网络其它VLAN:直连路由+OSPF TYPE 1、2;

· B网络VLAN访问A网络VLAN:直连路由+OSPF TYPE 1、2;

· B网络VLAN访问外部网络:OSPF TYPE 3。

02 工程操作

★ 割接步骤为:
1、迁移其中一条华为上联北京总部的3层链路到H3C,在H3C上启用OSPF,与北京总部和华为交换路由信息。这时H3C拥有了B网络北向所需的OSPF TYPE 3路由。
2、在H3C中添加B网络内的所有VLAN,并删除掉华为B网络中的所有VLAN SVI,然后在H3C中添加这些VLAN SVI。这时所有B网络的VLAN,将通过两组核心之间的2层链路到达H3C。
B网络访问外网从PBR改为通过OSPF type 3 路由转发到目的地。同时,AB之间互访从ospf type 1,2路由改为直连路由+ospf type 1,2路由
3、在所有A网络的VLAN SVI上部署PBR,使得控制A网络通过广东分部访问外网从静态路由改为PBR。至此H3C将成为单位的唯一核心,而华为仅仅作为二层桥接B网络的设备。
4、把第二条华为北向3层链路以及B网络连接华为的链路迁移到H3C。整个迁移工作完成

03 遇到问题

由于本次迁移的前期准备工作不足,没有进行业务分类,没有进行割接前测试,没有准备回退时间和条件,基础资料只有未整理的配置文件和简单的割接空窗期,并且准备的时间不足,导致后来的割接需要等业务短暂空窗时才能进行。割接过程中的很多问题都是因为上述准备不够仔细造成的。


一、最开始希望割接项目尽可能维持原来的路由逻辑,即访问外网的路由控制上, A网络继续通过静态路由+默认路由,B网络继续通过PBR。当VLAN SVI迁移到H3C后,发现A网络和B网络均无法访问外网。后来经过分析新网络架构,决定改为A网络通过PBR,B网络通过OSPF动态路由访问外网的路由设计方案后,测试得以通过。
实际上这个改动在本次割接项目不是必须的,但如果在需求分析阶段对整个网络架构进行重构优化,确实有实施的必要。因为A网络的路由需求是简单的源地址路由,而B网络的路由需求是动态交互的路由信息,因此应该在把该操作作为割接业务需求来进行。


二、在H3C的A网络VLAN SVI配置PBR后,没有过滤A网络访问本地的流量,导致所有内网互访流量转发至北向广东分部出口。开始以为H3C的PBR调用方式不对,原来是基于control-plane的qos方式调用。
acl advanced 3000 rule 5 deny ip destination 10.40.0.0 0.0.255.255 rule 10 deny ip destination 10.6.0.0 0.0.255.255 rule 15 permit ip source 10.40.0.0 0.0.255.255 traffic classifier tc1 operator and if-match acl 3000 traffic behavior tb1 apply next-hop 10.40.254.2 qos policy q1 classifier tc1 behavior tb1 control-plane qos apply policy q1 inbound
后来改为基于接口的policy-based-route调用,在PBR的分类时,我先把目的地址为内网的流量deny掉,然后permit了10.40开头的源地址流量。然后只用一条police-base-route的node,match上述acl的ip包,下一跳设置为g0/0/2。
acl advanced 3000 rule 5 deny ip destination 10.40.0.0 0.0.255.255 rule 10 deny ip destination 10.6.0.0 0.0.255.255 rule 15 permit ip source 10.40.0.0 0.0.255.255 policy-based-route test permit node 5 if-match acl 3000 apply next-hop 10.40.254.2 interface vlan 10 ip policy-based-route test
调整后没有作用,最后经过与原厂工程师交流,原因是ACL的问题。在policy-based-route的每一个node内,所有acl出现的条件,无论acl本身动作是deny还是permit,都以满足node来处理。因此后来以以下方式处理:
acl advanced 3000 rule 5 permit ip destination 10.40.0.0 0.0.255.255 rule 10 permit ip destination 10.6.0.0 0.0.255.255 acl advanced 3001 rule 5 permit ip source 10.40.0.0 0.0.255.255 policy-based-route test deny node 5 if-match acl 3000 policy-based-route test permit node 10 if-match acl 3001 apply next-hop 10.40.254.2 interface vlan 10 ip policy-based-route test
过滤得以实现。这个问题本可通过割接前虚拟机测试发现,但由于没有进行测试,因此只有在实际生产环境中配置后才发现并解决。


三、割接完成后,我方技术人员检查业务服务器,使用ping均显示连通,使用tracert命令逐跳经过广东分部再到达北京总部,以为大功告成就离开了。但不久后执勤人员报A网络无法访问北京业务服务器网页。
考虑两个可能性:一是H3C所经过的路径和华为经过的路径,MTU不一样导致;二是A网络通过广东分部访问北京总部业务服务器,但北京总部通过OSPF访问A网络,来回路径不一致导致安全设备无法识别。
一开始要求执勤人员使用ICMP大包不分割的选项测试路径MTU,发现A网络和B网络访问北京总部服务器的路径MTU是一样的,排除MTU的可能。一开始检查H3C配置OSPF的network命令,没有发现A网络的发布信息,后来检查OSPF LSDB,发现A网络的信息居然存在AS LSA中,route-id就是H3C。
问题原因明白了,北京总部原来是通过广东分部获取到10.40.0.0的汇总路由信息,并通过广东分部统一访问10.40.0.0的网段。H3C通过OSPF发布了A网络的明细路由给北京总部,因此北京总部访问A网络必将通过明细路由,为非汇总路由进行访问,导致防火墙的连接状态缺失,阻止了TCP应用的访问;而ICMP不属于状态连接,防火墙一般不做限制,因此ping、tracert测试可以通过。
立即检查配置OSPF的import-route命令,发现居然把所有的直连路由、静态路由都重分发到OSPF里了。经询问,这是为了在割接过渡期中给华为通过,使得B网络可以访问A网络而设置的。
立即把重分发的命令全部删除,检查OSPF LSDB,待type 5的LSA消失后,在A网络中访问北京业务服务器,恢复了正常。这个故障起因是由于没有明确的测试用例,导致我方以为使用ping、tracert命令测试过了就认为整个割接测试通过。

04 工作总结

1、该割接项目前期情况我没有参与也不了解,但没有事先准备好需求分析和通信量分析,导致没有办法形成文档操作。这是本次割接最需要检讨的事情。
2、对于OSPF的排障,怀疑出方向流量故障应该检查路由表,怀疑入方向流量故障应该检查lsdb。
3、ping通,tracert正确,不代表业务能通,因为会有不对称路由的存在,导致TCP面向连接的数据包无法单侧通过安全检查设备。尤其是项目里部署了PBR和静态路由。而tracert的路径只代表出方向路径正确,不代表入方向路径正确。
4、配置设计应该和业务需求相匹配,像本项目在设计时就应该考虑路由策略是否与实际业务需求匹配,A网络的PBR和B网络的动态路由更能满足业务需求,所以应该纳入割接项目中。
5、尽可能避免本地引入外部路由,可以使用network的尽量使用network,一方面OSPF对外部路由不进行生成树计算,另一方面在其他维护人员检查时会造成一定的不便。
6、在有条件的情况下尽可能在还原生产环境的测试环境中进行测试,本项目中PBR的ACL问题,其实是可以在测试环境中产生并改正的,但由于没有进行测试,导致在造成业务影响的情况下进行更正,应该算一种失误。

整理:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值