# 中兴专业实习 **Repository Path**: lceda/ZTE-Professional-Internship ## Basic Information - **Project Name**: 中兴专业实习 - **Description**: 本项目为中兴专业实习课程中复杂项目eNSP仿真任务。 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 1 - **Created**: 2024-03-13 - **Last Updated**: 2025-11-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: JSON ## README # 0 项目说明 本项目为中兴专业实习课程中复杂项目eNSP仿真任务。本项目仅供学习交流使用。 - **项目工程路径**:[ZHONGHUAYOUWEI](ZHONGHUAYOUWEI) - 实验示例工程路径:[数通实验环境-带WIFI-EBGP2\OSPF实验环境-lceda-EBGP2\OSPF实验环境-EBGP2](数通实验环境-带WIFI-EBGP2\OSPF实验环境-lceda-EBGP2\OSPF实验环境-EBGP2) - 项目任务要求:[数据项目实习题目5.docx](数据项目实习题目5.docx) ## 0.1 附带文件说明 - [接口IP配置表.csv](接口IP配置表.csv):存储了所有路由器物理端口(GigabitEthernet)和逻辑端口(LoopBack)的IP地址。按项目要求,使用10.0.0.x网段。 - [ALL_DIS_THIS.md](ALL_DIS_THIS.md):存储了所有路由器的所有OSPF/BGP进程中,命令`dis this`返回的进程配置信息。 - [协议preference配置表.csv](协议preference配置表.csv):存储了所有使用到的协议的prefence(优先级)配置。 # 1 复杂项目实习内容 ## 1.1 项目要求(项目五) ### 一、项目背景 XX地市IP网络组网配置与规划,两接入节点R1和R2双上连接入核心节点R3和R4,运行OSPF,R1与R3/R4工作在OSPF进程1中,R2与R3/R4工作在OSPF进程2中(R3和R4需要启用两个OSPF进程),两个进程互相之间路由隔离。 R5和R6在AS200中,与AS 100的R3和R4分别建立EBGP邻居; ![project_background](assets/project_background.png) ### 二、项目需求 1. 规划网络中的链路的IP网段,链路地址段使用10.0.0.0/24的网段,链路地址掩码要求按照最节省IP地址的标准(/30)规划;规划路由器loopback接口地址,掩码为/32; 2. OSPF划分两个进程,进程间互相隔离,路由不通,需要在R3和R4上配置路由重分发,要求只重分发loopback接口的IP地址,互连链路的IP不互相重分发;(route-map) 3. R3和R4需要与R5和R6分别建立EBGP邻居,通告loopback接口的IP; 4. OSPF与BGP之间路由,需要将OSPF的路由重分发进BGP,但是BGP的路由不重分发进OSPF,在R3和R4上配置发布缺省路由,R1和R2利用缺省路由访问R5和R6;(defaul information origin) ### 三、项目规划设计 按照以上需求进行方案设计,完成进行地址规划等,并使用GNS模拟器搭建环境,实现网络互通;完成项目前期及实施过程所有文档,并制作项目演示PPT。 1. 地址规划:链路地址规划,主机和服务器地址规划,完成《地址规划表》; 2. 使用GNS,按照要求和规划配置设备,实现互通,并规划《测试验收表》,验证互通性; ## 1.2 项目前期准备 在收到甲方的项目要求后,我们对项目整体进行了分析和讨论。首先,我们对甲方的项目要求进行了讨论和分析(2.3),明确了项目的总体框架,分析了项目实施所需的具体技术。接下来,我们进行了项目分工(2.4),确定了项目组成员负责的具体工作。 ### 1.2.1 项目要求分析 项目要求的路由网络设计图整体由六台路由器构成,它们被分为AS100和AS200两个自治网络,并将按照要求通过OSPF和BGP协议进行互联。 其中,R1,R2,R3,R4路由器组成了AS100自治系统,在AS100内部,路由之间通过OSPF协议进行通信:R1,R3,R4之间通过OSPF进程1建立连接;R2,R3,R4之间通过OSPF进程2维持互通。通过这样划分两个OSPF进程,R1和R2可以通过彼此的OSPF协议与R3R4互通,而R1和R2之间又可以保持路由隔离。 R5,R6组成了另一个自治网络AS200。根据项目要求,R3和R5、R4和R6之间分别建立EBGP邻居关系,而这意味着R5和R6需要向AS100内部路由器宣告它们的LoopBack接口IP地址,从而使AS100内部路由器能学习到通往R5和R6的路由。 ### 1.2.2 项目分工及个人职责 为了保证项目按计划高效推进,我们的团队在项目初期进行了详细的分工。以下是各成员的职责分配以及我在项目中承担的角色: 1. 主要技术负责人(一位同学,即我):负责执行主要的仿真实验,包括配置OSPF双进程路由、建立EBGP邻居关系、实现BGP与OSPF的双向重分发等关键步骤,以满足项目的技术指标要求。 2. 问题记录负责人(一位同学):负责详细记录实验过程中的问题,并进行深入分析,及时提供解决方案和建设性意见,以便确保项目顺利进行。 3. 项目经理(一位队员):负责整体的项目规划和管理,确保各项工作协调一致,按时完成。 4. 沟通者(一位队员):作为团队与老师之间的桥梁,负责及时沟通技术问题和进度更新,获得必要的指导和支持。 5. 报告编写与答辩PPT制作者(两位同学):负责撰写项目报告和准备答辩用的PPT,确保项目成果的有效传达。 在我的角色中,除了完成上述的仿真实验工作,我还主动承担了增强网络健壮性的任务。通过在ABR(区域边界路由器)之间搭建IBGP邻居关系,我提高了整个网络的可靠性,有效预防了可能出现的网络故障,从而确保甲方能够在实际应用中获得更加稳定和高效的网络性能。 ## 1.3 项目实现步骤 ### 1.3.1 路由器搭建和IP地址规划 按照要求在模拟器中搭建路由器,并根据要求中提到的10.0.0.0/24地址段,配置每个路由器GigabitEthernet物理接口和LoopBack逻辑接口的IP地址(具体见[《接口IP配置表》](接口IP配置表.csv)) 。 ![1](assets/1.png) ### 1.3.2 AS100自治域内OSPF双进程的配置 我们首先进行了AS100内部路由器的OSPF进程配置。 ### 1.3.3 EBGP的配置 在两个自治域的边界上,按照甲方要求,利用物理接口,进行了EBGP邻居关系的配置。 ### 1.3.4 OSPF与BGP双向重分发 配置了OSPF1与BGP双向重分发,OSPF2与BGP双向重分发,实现AR1AR2与AR5AR6的互相访问,基本上完成了甲方要求。 ### 2.3.5 进一步完善路由链路 为了提高网络的健壮性,我们进一步完善了路由链路。在这一步骤,我们主要搭建了两个自治域ABR路由器之间的IBGP邻居关系,以及调整各个路由协议的优先级关系。 ## 1.4 项目实现情况 ### 1.4.1 基本情况 在项目的实施过程中,我们成功地完成了所有项目规划和配置要求,确保了整个网络的稳定性和可靠性。 链路IP网段规划: 针对网络中的链路,我们按照10.0.0.0/24的网段,采用最节省IP地址的标准进行了规划,保证了IP地址的有效利用。 OSPF两个进程配置: 我们成功划分了两个OSPF进程,确保了R1和R2两个节点之间的路由隔离,同时通过路由重分发实现了特定IP的信息传递。 EBGP邻居建立: R3和R4与AS200中的R5和R6成功建立了EBGP邻居,通过通告loopback接口的IP地址,实现了不同自治系统之间的互联互通。 OSPF与BGP路由关联: 我们成功将OSPF的路由信息重分发进BGP,确保了OSPF中的信息能够传递给BGP。同时,通过配置发布缺省路由,实现了R1和R2通过缺省路由访问R5和R6的功能。 ### 1.4.2 项目创新点 ABR路由器loopback接口配置: 我们精心规划了ABR路由器loopback接口地址,给ospf 1、ospf 2、bgp三个进程分别分配了一个LoopBack地址,并在各自进程指定该LoopBack地址作为进程的`router-id`,以便实现ospf 1与ospf 2两个进程之间的路由隔离,同时使得区域边界路由器可以使用各自的回环地址搭建IBGP邻居关系,提升网络的稳定性。 IBGP邻居关系的搭建和优先级调整:我们在两个自治域的ABR路由器之间,使用回环地址搭建了IBGP邻居关系,同时调整了OSPF、O_ASE、EBGP、IBGP的优先级关系,使得AR1AR2到AR5AR6的路由路径最短。 ## 1.5 仿真过程及故障问题分析 见附件1:仿真过程及故障问题分析 # 附件1:仿真过程及故障问题分析 # 0 配置ospf双进程、ebgp、ospf和bgp双向重分发 给所有路由器和端口分配IP地址后,配置题目要求的ospf双进程、ebgp、ospf和bgp双向重分发,如下所示(AR1和AR2略,AR4同AR3,AR6同AR5) 在AR3上配置ospf 1、ospf 2和bgp 100,bgp、ospf双向引入: ``` # bgp 100 peer 10.0.0.26 as-number 200 # ipv4-family unicast undo synchronization import-route ospf 1 import-route ospf 2 peer 10.0.0.26 enable # ``` ``` # ospf 1 router-id 10.0.0.102 import-route bgp area 0.0.0.0 network 10.0.0.0 0.0.0.3 network 10.0.0.102 0.0.0.0 # ``` ``` # ospf 2 router-id 10.0.0.112 import-route bgp area 0.0.0.0 network 10.0.0.8 0.0.0.3 network 10.0.0.112 0.0.0.0 # ``` 在AR5上配置bgp 200: ``` # bgp 200 peer 10.0.0.25 as-number 100 # ipv4-family unicast undo synchronization peer 10.0.0.25 enable # ``` 配置OSPF和EBGP并重分发后,产生了AR1和AR5仍然ping不通的问题。 # 1 问题1:ospf出口结点(AR3)bgpospf双向引入后,AR1和AR5仍然ping不通 ## 1.1 原因分析 #### 1.1.1 AR5路由表上有AR1、AR2、AR3、AR4的LoopBack和端口地址: ``` dis ip rou pro bgp Route Flags: R - relay, D - download to fib Public routing table : BGP Destinations : 10 Routes : 10 BGP routing table status : Destinations : 10 Routes : 10 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.0/30 EBGP 255 0 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.4/30 EBGP 255 2 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.8/30 EBGP 255 0 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.12/30 EBGP 255 2 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.100/32 EBGP 255 1 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.101/32 EBGP 255 1 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.102/32 EBGP 255 0 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.103/32 EBGP 255 2 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.112/32 EBGP 255 0 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.113/32 EBGP 255 2 D 10.0.0.25 GigabitEthernet 0/0/1 BGP routing table status : Destinations : 0 Routes : 0 ``` #### 1.1.2 但AR1上没有AR5的地址: ``` dis ip rou pro ospf Route Flags: R - relay, D - download to fib Public routing table : OSPF Destinations : 2 Routes : 2 OSPF routing table status : Destinations : 2 Routes : 2 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.102/32 OSPF 10 1 D 10.0.0.2 GigabitEthernet 0/0/0 10.0.0.103/32 OSPF 10 1 D 10.0.0.6 GigabitEthernet 0/0/1 OSPF routing table status : Destinations : 0 Routes : 0 ``` #### 1.1.3 故障总结分析 ospf出口结点并不能获取ebgp对面的direct地址,导致ospf这边不知道ebgp那边的LoopBack和端口地址(direct) ## 1.2 解决办法: 在AR5上配置` import-route direct`: ``` # bgp 200 peer 10.0.0.25 as-number 100 # ipv4-family unicast undo synchronization import-route direct peer 10.0.0.25 enable # ``` ## 1.3 结果、新的问题: 现在AR1的路由表上有了AR5的LoopBack地址: ``` dis ip rou pro ospf Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Public routing table : OSPF Destinations : 4 Routes : 4 OSPF routing table status : Destinations : 4 Routes : 4 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.20/30 O_ASE 150 1 D 10.0.0.2 GigabitEthernet 0/0/0 10.0.0.102/32 OSPF 10 1 D 10.0.0.2 GigabitEthernet 0/0/0 10.0.0.103/32 OSPF 10 1 D 10.0.0.6 GigabitEthernet 0/0/1 10.0.0.104/32 O_ASE 150 1 D 10.0.0.2 GigabitEthernet 0/0/0 OSPF routing table status : Destinations : 0 Routes : 0 ``` 因此,现在AR1pingAR5,能ping通。 但是,AR5pingAR1,又ping不通。 # 2 问题2:新的问题:AR1能ping通AR5,但AR5不能ping通AR1 解决了AR1不认识AR5的问题后,又产生了AR5pingAR1不通的新问题。 ## 2.1 试图解决: 在AR3的bgp进程中,也配置`import-route direct`: ``` # bgp 100 peer 10.0.0.26 as-number 200 # ipv4-family unicast undo synchronization import-route direct import-route ospf 1 import-route ospf 2 peer 10.0.0.26 enable # ``` ## 2.2 结果(寄了): AR5pingAR1还是ping不通,路由器重启了也没用。 ## 2.3 抓包分析: ![image-20240311183405944](assets/image-20240311183405944.png) 可以看到,AR5在pingAR1时,用的是AR5的GE端口的ip地址,但是AR1路由表上面没有AR5的GE端口的路由地址。 所以AR1ping的通AR5,是因为AR1路由表里面有AR5的LoopBack地址,AR5也有AR1的GE端口地址; AR5ping不同AR1,是因为AR5有AR1的LoopBack地址,但是AR1没有AR5的GE端口地址。 为了验证这一想法,下面用AR1pingAR5的GE端口地址,现象应该是ping不通,且抓包现象应该是AR1根本发不出ICMP包(因为AR1路由表上面没有AR5的GE端口地址): ``` ping 10.0.0.26 PING 10.0.0.26: 56 data bytes, press CTRL_C to break Request time out Request time out Request time out Request time out Request time out --- 10.0.0.26 ping statistics --- 5 packet(s) transmitted 0 packet(s) received 100.00% packet loss ``` ping不通 ![image-20240311184059128](assets/image-20240311184059128.png) 果然,wireshark上面一个包都没有。因此验证了之前的想法。 ## 2.4 继续分析问题原因 现在分析为什么AR1没有AR5的GE端口地址。 先从AR3的路由表下手,把AR3的路由表全display出来: ``` dis ip rou Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Tables: Public Destinations : 26 Routes : 26 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.0/30 Direct 0 0 D 10.0.0.2 GigabitEthernet 0/0/0 10.0.0.2/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 0/0/0 10.0.0.3/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 0/0/0 10.0.0.4/30 OSPF 10 2 D 10.0.0.1 GigabitEthernet 0/0/0 10.0.0.8/30 Direct 0 0 D 10.0.0.10 GigabitEthernet 0/0/1 10.0.0.10/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 0/0/1 10.0.0.11/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 0/0/1 10.0.0.12/30 OSPF 10 2 D 10.0.0.9 GigabitEthernet 0/0/1 10.0.0.16/30 Direct 0 0 D 10.0.0.17 GigabitEthernet 0/0/2 10.0.0.17/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 0/0/2 10.0.0.19/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 0/0/2 10.0.0.20/30 EBGP 255 0 D 10.0.0.26 GigabitEthernet 4/0/0 10.0.0.24/30 Direct 0 0 D 10.0.0.25 GigabitEthernet 4/0/0 10.0.0.25/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 4/0/0 10.0.0.27/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 4/0/0 10.0.0.100/32 OSPF 10 1 D 10.0.0.1 GigabitEthernet 0/0/0 10.0.0.101/32 OSPF 10 1 D 10.0.0.9 GigabitEthernet 0/0/1 10.0.0.102/32 Direct 0 0 D 127.0.0.1 LoopBack3 10.0.0.103/32 OSPF 10 2 D 10.0.0.1 GigabitEthernet 0/0/0 10.0.0.104/32 EBGP 255 0 D 10.0.0.26 GigabitEthernet 4/0/0 10.0.0.112/32 Direct 0 0 D 127.0.0.1 LoopBack33 10.0.0.113/32 OSPF 10 2 D 10.0.0.9 GigabitEthernet 0/0/1 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0 127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 ``` 可以看到,AR3上有AR5的GE端口地址: ``` 10.0.0.24/30 Direct 0 0 D 10.0.0.25 GigabitEthernet 4/0/0 ``` 但是AR3就是不肯把这条路由分享给AR1,明明他们就在同一个ospf进程、同一个area里面啊 仔细观察,可以看到AR3上面的这条路由,Proto为Direct, 但是我们之前根本没有把`10.0.0.24/30`手动宣告到ospf 1中。这就导致了ospf 1进程并不会共享`10.0.0.24/30`这条路由。 因此现在有两种解决办法: 1. 手动把`10.0.0.24/30`宣告到ospf 1 2. 在ospf 1中`import-route direct`,即把所有Proto为Direct的路由全部引入ospf 1中 显然,方法1会导致ospf 1和ospf 2打架,在ospf 2里面就没法宣告`10.0.0.24/30`(会提示冲突) 因此只能采用方法2: ## 2.5 最终的解决办法:在ospf 1中`import-route direct` ``` [AR3-ospf-1]import-route direct [AR3-ospf-1]dis this [V200R003C00] # ospf 1 router-id 10.0.0.102 import-route direct import-route bgp area 0.0.0.0 network 10.0.0.0 0.0.0.3 network 10.0.0.102 0.0.0.0 # return [AR3-ospf-1] ``` 现在再看看AR1的路由表: ``` dis ip rou pro ospf Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Public routing table : OSPF Destinations : 8 Routes : 8 OSPF routing table status : Destinations : 8 Routes : 8 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.8/30 O_ASE 150 1 D 10.0.0.2 GigabitEthernet 0/0/0 10.0.0.16/30 O_ASE 150 1 D 10.0.0.2 GigabitEthernet 0/0/0 10.0.0.20/30 O_ASE 150 1 D 10.0.0.2 GigabitEthernet 0/0/0 10.0.0.24/30 O_ASE 150 1 D 10.0.0.2 GigabitEthernet 0/0/0 10.0.0.102/32 OSPF 10 1 D 10.0.0.2 GigabitEthernet 0/0/0 10.0.0.103/32 OSPF 10 1 D 10.0.0.6 GigabitEthernet 0/0/1 10.0.0.104/32 O_ASE 150 1 D 10.0.0.2 GigabitEthernet 0/0/0 10.0.0.112/32 O_ASE 150 1 D 10.0.0.2 GigabitEthernet 0/0/0 OSPF routing table status : Destinations : 0 Routes : 0 ``` 果然就有了`10.0.0.24/30`这条路由。 现在再让AR5pingAR1并抓包: ``` ping 10.0.0.100 PING 10.0.0.100: 56 data bytes, press CTRL_C to break Reply from 10.0.0.100: bytes=56 Sequence=1 ttl=254 time=30 ms Reply from 10.0.0.100: bytes=56 Sequence=2 ttl=254 time=30 ms Reply from 10.0.0.100: bytes=56 Sequence=3 ttl=254 time=40 ms Reply from 10.0.0.100: bytes=56 Sequence=4 ttl=254 time=30 ms Reply from 10.0.0.100: bytes=56 Sequence=5 ttl=254 time=20 ms --- 10.0.0.100 ping statistics --- 5 packet(s) transmitted 5 packet(s) received 0.00% packet loss round-trip min/avg/max = 20/30/40 ms ``` ![image-20240311185426091](assets/image-20240311185426091.png) 可以看到,解决了问题。 ### 2.5.1 附:控制变量分析 在AR3的bgp进程中,重新配置undo import-route direct,再让AR5pingAR1,结果如下 ``` ping 10.0.0.100 PING 10.0.0.100: 56 data bytes, press CTRL_C to break Reply from 10.0.0.100: bytes=56 Sequence=1 ttl=254 time=30 ms Reply from 10.0.0.100: bytes=56 Sequence=2 ttl=254 time=40 ms Reply from 10.0.0.100: bytes=56 Sequence=3 ttl=254 time=10 ms Reply from 10.0.0.100: bytes=56 Sequence=4 ttl=254 time=20 ms Reply from 10.0.0.100: bytes=56 Sequence=5 ttl=254 time=40 ms --- 10.0.0.100 ping statistics --- 5 packet(s) transmitted 5 packet(s) received 0.00% packet loss round-trip min/avg/max = 10/28/40 ms ``` 因此,AR3的bgp进程是否引入direct,在本项目中是控制变量。 这是因为,AR3的路由表中,AR1的LoopBack地址,其Proto为OSPF。所以在bgp中引入ospf 1,就已经让AR5知道了AR1的LoopBack地址,无需再在bgp中引入direct。 ### 2.5.2 讨论:该解决办法的利与弊 在AR3的ospf 1中引入direct,是否会打破路由隔离? 实验证明:不会,AR1和AR2之间仍然ping不通,符合甲方的要求。但是这种解决办法会导致AR1能ping通AR3的LoopBack33地址。LoopBack33地址本应只在ospf 2中出现,因此这种方法可能存在一定的弊端。 # 3 搭建完整路由链路 AR4和AR6按照AR3和AR5搭建,网络连接性情况如下(列ping行): | 255-ttl | AR1 | AR2 | AR3 | AR4 | AR5 | AR6 | | ------- | ---- | ---- | ---- | ---- | ---- | ---- | | AR1 | 0 | \ | 0 | 0 | 1 | 1 | | AR2 | \ | 0 | 0 | 0 | 1 | 1 | | AR3 | 0 | 0 | 0 | 1 | 0 | 0 | | AR4 | 0 | 0 | 1 | 0 | 0 | 0 | | AR5 | 1 | 1 | 0 | 0 | 0 | 3 | | AR6 | 1 | 1 | 0 | 0 | 3 | 0 | 可见,完成了甲方的要求。 ## 3.1 进一步优化的可能 上述表格显示,AR3和AR4之间,AR5和AR6之间,还没有搭建直达的路由链路。因此需要进一步优化,以提高网络的鲁棒性。 # 4 进一步完善路由链路(second commit) 为了使得即使在有网线被剪断,或有一个ABR路由器挂掉的情况下,AR1AR2仍能和AR5AR6正常通信,我们需要继续配置AR3和AR4、AR5和AR6之间的路由链路。 在这一部分,由于甲方没有提任何要求,我们可以自由地选择协议。 ## 4.1 搭建IBGP(内部边界网关协议)路由链路 尝试使用ospf 3连接AR3AR4,使用ospf4连接AR5AR6(失败了)。 最终使用**IBGP**协议,配合前面搭建好的**EBGP**,建立了两个自治域边界ABR路由器的路由链路。 ### 4.1.1 用ospf协议建立AR3和AR4之间的路由链路 为了用Loopback环回接口创建IBGP邻居关系,首先需要建立AR3和AR4之间的路由。可以用ospf、eigrp、静态路由等等方式。在这里用ospf 3建立AR3和AR4之间的路由链路。 ``` [AR3-ospf-3]dis this [V200R003C00] # ospf 3 area 0.0.0.0 network 10.0.0.16 0.0.0.3 network 10.0.0.122 0.0.0.0 # return [AR3-ospf-3] ``` ### 4.1.2 用LoopBack环回接口创建IBGP邻居关系 ``` [AR3-bgp]peer 10.0.0.123 as 100 //和10.0.0.123建立邻居,10.0.0.123在AS100 [AR3-bgp]peer 10.0.0.123 connect-interface L 32 //用自己的环回接口32和10.0.0.123建立邻居(这句话必须要有) [AR3-bgp]dis this [V200R003C00] # bgp 100 router-id 10.0.0.122 peer 10.0.0.26 as-number 200 peer 10.0.0.123 as-number 100 peer 10.0.0.123 connect-interface LoopBack32 # ipv4-family unicast undo synchronization import-route direct import-route ospf 1 import-route ospf 2 peer 10.0.0.26 enable peer 10.0.0.123 enable # return [AR3-bgp] Mar 15 2024 10:55:46-08:00 AR3 %%01BGP/3/STATE_CHG_UPDOWN(l)[2]:The status of th e peer 10.0.0.123 changed from OPENCONFIRM to ESTABLISHED. (InstanceName=Public, StateChangeReason=Up) ``` 注意:必须要`peer 10.0.0.123 connect-interface L 32`,否则连不上。 现在再查看bgp连接情况和bgp学习到的路由: ``` dis bgp peer BGP local router ID : 10.0.0.122 Local AS number : 100 Total number of peers : 2 Peers in established state : 2 Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre fRcv 10.0.0.26 4 200 67 433 0 01:02:07 Established 3 10.0.0.123 4 100 537 524 0 00:23:16 Established 15 dis ip rou pro bgp Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Public routing table : BGP Destinations : 2 Routes : 2 BGP routing table status : Destinations : 2 Routes : 2 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.28/30 IBGP 255 0 RD 10.0.0.123 GigabitEthernet 0/0/2 10.0.0.104/32 EBGP 255 0 D 10.0.0.26 GigabitEthernet 4/0/0 BGP routing table status : Destinations : 0 Routes : 0 ``` 可以看到,AR3已经通过IBGP协议学习到了AR4与AR6的`10.0.0.28/30`物理接口地址。 继续检查AR3到AR6的联通情况: ``` dis ip rou 10.0.0.30 Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Table : Public Summary Count : 1 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.28/30 IBGP 255 0 RD 10.0.0.123 GigabitEthernet 0/0/2 dis ip rou 10.0.0.105 Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Table : Public Summary Count : 2 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.105/32 O_ASE 150 1 D 10.0.0.1 GigabitEthernet 0/0/0 O_ASE 150 1 D 10.0.0.9 GigabitEthernet 0/0/1 ``` 发现AR3已经通过IBGP学习到通往AR6物理接口的最短路由(经由AR4),但是AR6的LoopBack接口还没学习到。 继续搭建AR3AR4AR5AR6之间的BGP邻居关系,搭建后的邻居信息如下: ``` dis bgp pee BGP local router ID : 10.0.0.122 Local AS number : 100 Total number of peers : 2 Peers in established state : 2 Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre fRcv 10.0.0.26 4 200 8 19 0 00:00:40 Established 5 10.0.0.123 4 100 16 16 0 00:00:02 Established 15 ``` (AR4AR5AR6的邻居信息同AR3) ### 4.1.3 路由环路的问题 在搭建完AR3AR4AR5AR6的BGPpeer后,遇到了AR1不直接从AR3-AR5到AR5,反而从AR4-AR6绕一圈去AR5的问题。 这种问题可能是O-ASE优先级太大(比EBGP还大)导致的。 O-ASE的优先级是150,因此调整EBGP和IBGP的优先级如下: 参考资料:[配置BGP对等体 - S7700 V200R022C00 配置指南-IP单播路由 - 华为 (huawei.com)](https://support.huawei.com/enterprise/zh/doc/EDOC1100277040/a26b7a29) ``` [AR5-ospf-4]pref 250 [AR5-bgp]pref 100 200 200 ``` (AR3AR4AR6的优先级配置同AR5) 现在,AR1到AR5、AR6的路由就对了: ``` tracert 10.0.0.104 traceroute to 10.0.0.104(10.0.0.104), max hops: 30 ,packet length: 40,press CT RL_C to break 1 10.0.0.2 40 ms 20 ms 10 ms 2 10.0.0.26 40 ms 40 ms 40 ms tracert 10.0.0.105 traceroute to 10.0.0.105(10.0.0.105), max hops: 30 ,packet length: 40,press CT RL_C to break 1 10.0.0.6 40 ms 20 ms 20 ms 2 10.0.0.30 30 ms 30 ms 50 ms ``` 同时,AR3和AR4通过BGP学习到的路由信息,也变为对称的: ``` dis ip rou pro bgp Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Public routing table : BGP Destinations : 4 Routes : 4 BGP routing table status : Destinations : 3 Routes : 3 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.20/30 EBGP 100 0 D 10.0.0.26 GigabitEthernet 4/0/0 10.0.0.104/32 EBGP 100 0 D 10.0.0.26 GigabitEthernet 4/0/0 BGP routing table status : Destinations : 1 Routes : 1 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.28/30 IBGP 200 0 R 10.0.0.123 GigabitEthernet 0/0/1 IBGP 200 0 R 10.0.0.123 GigabitEthernet 0/0/0 10.0.0.105/32 IBGP 200 0 R 10.0.0.30 GigabitEthernet 4/0/0 ``` ``` dis ip rou pro bgp Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Public routing table : BGP Destinations : 4 Routes : 4 BGP routing table status : Destinations : 2 Routes : 2 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.20/30 EBGP 100 0 D 10.0.0.30 GigabitEthernet 4/0/0 10.0.0.105/32 EBGP 100 0 D 10.0.0.30 GigabitEthernet 4/0/0 BGP routing table status : Destinations : 2 Routes : 2 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.24/30 IBGP 200 0 R 10.0.0.122 GigabitEthernet 0/0/1 IBGP 200 0 R 10.0.0.122 GigabitEthernet 0/0/0 10.0.0.104/32 IBGP 200 0 R 10.0.0.26 GigabitEthernet 4/0/0 ``` AR5到AR1的路由也正常: ``` tracert 10.0.0.100 traceroute to 10.0.0.100(10.0.0.100), max hops: 30 ,packet length: 40,press CT RL_C to break 1 10.0.0.25 30 ms 30 ms 30 ms 2 10.0.0.1 < AS=100 > 40 ms 40 ms 10 ms tracert 10.0.0.101 traceroute to 10.0.0.101(10.0.0.101), max hops: 30 ,packet length: 40,press CT RL_C to break 1 10.0.0.25 40 ms 30 ms 20 ms 2 10.0.0.9 < AS=100 > 50 ms 40 ms 50 ms ``` AR5通过BGP学习到的路由(EBGP、IBGP对称): ``` dis ip rou pro bgp Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Public routing table : BGP Destinations : 14 Routes : 14 BGP routing table status : Destinations : 14 Routes : 14 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.0.0/30 EBGP 100 0 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.4/30 IBGP 200 0 RD 10.0.0.29 GigabitEthernet 0/0/0 10.0.0.8/30 EBGP 100 0 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.12/30 IBGP 200 0 RD 10.0.0.29 GigabitEthernet 0/0/0 10.0.0.16/30 EBGP 100 0 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.28/30 IBGP 200 0 RD 10.0.0.105 GigabitEthernet 0/0/0 10.0.0.100/32 EBGP 100 1 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.101/32 EBGP 100 1 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.102/32 EBGP 100 0 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.103/32 IBGP 200 0 RD 10.0.0.29 GigabitEthernet 0/0/0 10.0.0.112/32 EBGP 100 0 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.113/32 IBGP 200 0 RD 10.0.0.29 GigabitEthernet 0/0/0 10.0.0.122/32 EBGP 100 0 D 10.0.0.25 GigabitEthernet 0/0/1 10.0.0.123/32 IBGP 200 0 RD 10.0.0.29 GigabitEthernet 0/0/0 BGP routing table status : Destinations : 0 Routes : 0 ``` 可以看到,ABR路由器之间的IBGP配置对整个网络的影响符合预期。 ### 4.1.4 测试网络连接性 ![ABR](assets/ABR.svg) ping命令测试网络联通性如下: | 255-ttl | AR1 | AR2 | AR3 | AR4 | AR5 | AR6 | | ------- | ---- | ---- | ---- | ---- | ---- | ---- | | AR1 | 0 | \ | 0 | 0 | 1 | 1 | | AR2 | \ | 0 | 0 | 0 | 1 | 1 | | AR3 | 0 | 0 | 0 | 1 | 0 | 0 | | AR4 | 0 | 0 | 1 | 0 | 0 | 0 | | AR5 | 1 | 1 | 0 | 0 | 0 | 0 | | AR6 | 1 | 1 | 0 | 0 | 0 | 0 | (和上一张表不同的是,AR5和AR6之间从3跳变为1跳) ## 4.2 鲁棒性测试 下面进行鲁棒性测试 ### 4.2.1 ABR边界路由器挂机 AR3网线拔了,测试AR1AR2到AR5AR6的网络联通性 ![AR3](assets/AR3.png) AR1到AR5、AR6: ``` tracert 10.0.0.104 traceroute to 10.0.0.104(10.0.0.104), max hops: 30 ,packet length: 40,press CT RL_C to break 1 10.0.0.6 30 ms 20 ms 20 ms 2 10.0.0.30 20 ms 20 ms 30 ms 3 10.0.0.21 30 ms 30 ms 30 ms tracert 10.0.0.105 traceroute to 10.0.0.105(10.0.0.105), max hops: 30 ,packet length: 40,press CT RL_C to break 1 10.0.0.6 10 ms 10 ms 10 ms 2 10.0.0.30 20 ms 20 ms 20 ms ``` AR5到AR1、AR2: ``` tracert 10.0.0.100 traceroute to 10.0.0.100(10.0.0.100), max hops: 30 ,packet length: 40,press CT RL_C to break 1 10.0.0.22 20 ms 20 ms 20 ms 2 10.0.0.29 30 ms 30 ms 30 ms 3 10.0.0.5 < AS=100 > 40 ms 40 ms 40 ms tracert 10.0.0.101 traceroute to 10.0.0.101(10.0.0.101), max hops: 30 ,packet length: 40,press CT RL_C to break 1 10.0.0.22 20 ms 20 ms 20 ms 2 10.0.0.29 20 ms 20 ms 30 ms 3 10.0.0.13 < AS=100 > 30 ms 30 ms 30 ms ``` 可以看到,网络能正常运行。进一步优化后,网络的鲁棒性得到改善。 # 5 相关资料 [BGP与IGP交互 - S7700 V200R022C00 配置指南-IP单播路由 - 华为 (huawei.com)](https://support.huawei.com/enterprise/zh/doc/EDOC1100277040/c48c1b18)