案例2――关于如何防止绕行建立ebgp邻居
更新时间:2023-12-04 18:14:01 阅读量: 教育文库 文档下载
- 关亡真实案例推荐度:
- 相关推荐
关于如何防止绕行建立ebgp邻居
一、 概述................................................................................................................................... 1
(一)通常ebgp邻居建立的方式 ........................................................................................ 1 (二)ebgp-multihop为2时出现的ebgp邻居绕行问题 .................................................. 2 二、 如何避免绕行建立ebgp邻居的解决方案分析 ............................................................ 6
(一)ttl-security方案 ........................................................................................................... 6 (二)浮动静态路由方案 ....................................................................................................... 8
一、 概述
(一)通常ebgp邻居建立的方式
通常ebgp邻居建立的方式有两种,一种通过直连接口建立邻居,另一种是通过loopback接口建立邻居。
在eBGP的默认配置中由于协议报文的TTL值为1,路由器在向外转发报文时会将TTL减1,因此默认情况下必须使用互联接口来建立ebgp邻居。但在实际应用中,考虑到物理互联接口的不稳定性和不便于流量均衡,通常不使用物理接口来建立ebgp邻居。
实际应用中多采用的方式是通过loopback接口来建立ebgp邻居,该方式有如下优点:
1. 稳定性高,因为loopback接口是一个逻辑虚拟接口,因此不受物理层状态的影响,对bgp这样一个着重于稳定性的路由协议是很有好处的。
2. 有利于做流量的负载均衡。通过loopback地址建立ebgp邻居关系,当两台ebgp路由器间有多条链路互联的时候,流量可以通过互联链路IGP路由迭代,实现负载均衡。避免了bgp路由调整的复杂
工作。
3. 在多链路互联的ebgp peer环境中,使用loopback接口建邻居,可以大大减少BGP通告的报文,减少CPU利用率
通过loopback接口建立ebgp邻居的配置,需要配置ebgp-multihop参数为2,即设置TTL值为2。参考配置如下。
router bgp 100
no synchronization
bgp log-neighbor-changes
neighbor 2.2.2.2 remote-as 200 neighbor 2.2.2.2 ebgp-multihop 2
neighbor 2.2.2.2 update-source Loopback0
(二)ebgp-multihop为2时出现的ebgp邻居绕行问题 然而ebgp-multihop的应用会在一些特殊的情况下存在问题。参考下图所示拓扑:
loopback0R2loopback0R3AS100AS100R1loopback0
这是一个典型的城域网CR和骨干网路由器的ebgp连接拓扑示例。R1与R2、R3分别建立通过loopback接口建立ebgp邻居,ebgp-multihop设为2.
当R1到R2的链路中断时,R1仍可以通过R3学到R2 loopback0
的ebgp路由,同样R2也可以通过R3学习到R1的loopback0的ebgp路由,也就是说R1的loopback0和R2的loopback0之间仍是路由可达的。
同时,由于设置的ebgp-multihop为2,当从R1发出的BGP报文经路径R1-R3-R2到达R2时,R2接受到的报文TTL值减为1,R2仍视该BGP报文是有效报文,因此R1与R2之间的ebgp邻居关系仍是可以建立的。
具体验证如下: R1配置:
interface Loopback0
ip address 1.1.1.1 255.255.255.255 !
interface FastEthernet0/0 description to R2-f0/0
ip address 10.1.1.2 255.255.255.252 shutdown duplex auto speed auto !
interface FastEthernet1/0 description to R3-f0/0
ip address 172.16.1.1 255.255.255.252 duplex auto speed auto ! !
router bgp 100
no synchronization
bgp log-neighbor-changes
network 1.1.1.1 mask 255.255.255.255 neighbor 2.2.2.2 remote-as 200 neighbor 2.2.2.2 ebgp-multihop 2
neighbor 2.2.2.2 update-source Loopback0 neighbor 3.3.3.3 remote-as 200 neighbor 3.3.3.3 ebgp-multihop 2
neighbor 3.3.3.3 update-source Loopback0 no auto-summary !
ip route 2.2.2.2 255.255.255.255 10.1.1.1 ip route 3.3.3.3 255.255.255.255 172.16.1.2 !
R2配置:
interface Loopback0
ip address 2.2.2.2 255.255.255.255 !
interface FastEthernet0/0 description to R1-f0/0
ip address 10.1.1.1 255.255.255.252 shutdown duplex auto speed auto !
interface FastEthernet1/0 description to R3-f1/0
ip address 192.168.1.1 255.255.255.252 duplex auto speed auto !
router ospf 100
log-adjacency-changes
network 2.2.2.2 0.0.0.0 area 0 network 192.168.1.0 0.0.0.3 area 0 ! router bgp 200
no synchronization
bgp log-neighbor-changes
network 2.2.2.2 mask 255.255.255.255 neighbor 1.1.1.1 remote-as 100 neighbor 1.1.1.1 ebgp-multihop 2
neighbor 1.1.1.1 update-source Loopback0 neighbor 3.3.3.3 remote-as 200
neighbor 3.3.3.3 update-source Loopback0 neighbor 3.3.3.3 next-hop-self no auto-summary !
ip route 1.1.1.1 255.255.255.255 10.1.1.2
!
R3配置:
interface Loopback0
ip address 3.3.3.3 255.255.255.255 !
interface FastEthernet0/0 description to R1-f1/0
ip address 172.16.1.2 255.255.255.252 duplex auto speed auto !
interface FastEthernet1/0 description to R2-f1/0
ip address 192.168.1.2 255.255.255.252 duplex auto speed auto !
router ospf 100
log-adjacency-changes
network 3.3.3.3 0.0.0.0 area 0 network 192.168.1.0 0.0.0.3 area 0 !
router bgp 200
no synchronization
bgp log-neighbor-changes
network 3.3.3.3 mask 255.255.255.255 neighbor 1.1.1.1 remote-as 100 neighbor 1.1.1.1 ebgp-multihop 2
neighbor 1.1.1.1 update-source Loopback0 neighbor 2.2.2.2 remote-as 200
neighbor 2.2.2.2 update-source Loopback0 neighbor 2.2.2.2 next-hop-self no auto-summary !
ip route 1.1.1.1 255.255.255.255 172.16.1.1
当R1与R2连接的链路中断时,R1可以通过R3学习到R2 loopback接口的BGP路由,查看路由表如下:
R1# sh ip route 2.2.2.2
Routing entry for 2.2.2.2/32
Known via \
Tag 200, type external
Last update from 3.3.3.3 00:52:30 ago Routing Descriptor Blocks:
* 3.3.3.3, from 3.3.3.3, 00:52:30 ago
Route metric is 0, traffic share count is 1 AS Hops 1 Route tag 200
在R2上也可以看到同样结果:
R2#sh ip route 1.1.1.1
Routing entry for 1.1.1.1/32
Known via \ Tag 100, type internal
Last update from 3.3.3.3 00:00:03 ago Routing Descriptor Blocks:
* 3.3.3.3, from 3.3.3.3, 00:00:03 ago
Route metric is 0, traffic share count is 1 AS Hops 1 Route tag 100
R1、R2的loopback接口可以互相ping通,结果是导致R1、R2的ebgp邻居关系仍然是可以建立的:
R1#sh ip bgp summary
BGP router identifier 1.1.1.1, local AS number 100 ……
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 2.2.2.2 4 200 94 92 7 0 0 00:55:42 2 3.3.3.3 4 200 78 79 7 0 0 01:13:35 2
这样的结果显然不是我们期望看到的。R1、R2通过ebgp路由建立ebgp邻居,可能造成的后果是路由环路、bgp 邻居状态的不稳定、消耗系统资源等。这是一种不稳定的、容易造成混乱的状态,因此需要尽量避免这种状态的出现。
二、 如何避免绕行建立ebgp邻居的解决方案分析 (一)ttl-security方案
对于以上问题,有文档建议可以采取eBGP的GSTM机制(该机制原本是用于防止用户伪造BGP peer 对bgp路由器发动攻击的,具体机制暂不详述 ),即使用ttl-security hop来替代ebgp-multihop。
该命令格式为neighbor 2.2.2.2 ttl-security hops N ,此时bgp进程发出报文的TTL值为255,期待从邻居接收到的TTL值大于或等于255-N,从而限制ebgp邻居建立的跳数半径。
文档建议对loopback建立ebgp邻居的2台直连路由器(例如上例中的R1-R2)使用如下配置来限制ebgp的跳数范围:
neighbor 2.2.2.2 ttl-security hops 1
但如果只有这条命令ttl-security hops设置为1时,R1-R2的loopback接口 ebgp邻居却建立不起来。此时需要配置:
neighbor 2.2.2.2 disable-connected-check
忽略掉直连链路跳数检查,这样就可以在路由器直连的情况下,设置TTL=1,来限制BGP报文跨越多跳转发。达到限制绕行建立ebgp邻居的目的。但该方式不是所有厂家设备都支持,目前来说通用性有待考证。
注:经测试,事实上采用
neighbor 2.2.2.2 update-source Loopback0 neighbor 2.2.2.2 ebgp-multihop 1 neighbor 2.2.2.2 disable-connected-check
两者配合使用也可以达到防止绕行建立ebgp邻居的目的,但ebgp-multihop无法防止伪造bgp peer攻击。
(二)浮动静态路由方案
除了以上思科的ttl-security的方案,我们还可以采取其他非TTL方式的思路来避免路由器通过迂回的路由建立ebgp 邻居的问题。
loopback0R2loopback0R3AS100ebgp peerdownAS100R1loopback0
还是用前面的案例进行说明,实际上我们的需求是当R1-R2的链路down时,R1至R2通过loopback接口建立的ebgp邻居也down掉。 因此,只要能使链路中断情况下,R1 、R2间loopback接口的路由不可达,就可以达到ebgp邻居建立不起来目的。
我们可以在R1、R2上对对方的loopback地址各配置一条优先级介于普通静态路由和ebgp路由之间的指向NULL0的静态路由。
以R1为例(R2类似):
ip route 2.2.2.2 255.255.255.255 10.1.1.1 // 正常情况到R2 loopback的路由,优先级为1 ip route 2.2.2.2 255.255.255.255 null 0 15 // 路由优先级为15的浮动路由
当R1-R2链路中断时,R1通过ebgp从R3学到R2 loopback的路由,但ebgp路由优先级为20(思科路由器),小于静态浮动路由的优先级15。因此,指向NULL0的静态浮动路由被选择进入路由表。
从R1到R2 loopback接口ip 2.2.2.2的报文匹配该NULL 0路由后被丢弃, R1、R2之间loopback ip不能互通,最终实现了R1-R2之间不再通过R3绕行建立ebgp邻居的目标。
通过浮动静态路由指向NULL0的方式避免ebgp邻居绕行,具有通用性较强,易于实施的优点。有利于提高城域网路由的稳定性。
正在阅读:
2016年初三数学一模24题汇总03-16
选择经销商:合适的就是最好的03-24
法院院长写判决书的示范意义10-21
14—15学年上期期中考试模拟试题答案09-29
羽毛球教学大纲专研心得05-19
三级网络技术笔试考点总结:第八章07-21
新较南地铁站监测方案01-26
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 绕行
- 邻居
- 防止
- 案例
- 建立
- 如何
- 关于
- ebgp
- 牛津小学英语六年级期末复习首字母填空阅读
- 安徽历年军转考试真题2007-2015
- 关于市监局三级安全生产标准化验收检查中存在问题的整改报告
- 旧城片区方案优化整合山区县城重点地段城市设计
- 课程设计小组总结
- 11.公司创新创业平台管理办法
- 关于建立乡镇总工会工作方案
- 洪塘镇关于重点人员稳控的措施以及劝返进京赴省人员的预案
- 必背!管理学名词篇
- 古诗三首教学设计
- 苏教版五年级暑假生活语文部分作业
- 给水泵的大修方法
- 2016-2017学年高中数学必修一(北师大版)6 指数函数、幂函数、对数函数增长的比较 作业Word版含答案
- (全国特种作业人员)教案 - 图文
- 学习积极分子申请书3篇
- 苏教版小学六年级数学上册教案:用替换的策略解决问题
- 16秋北理工《面向对象程序设计》在线作业
- 青海省2017年施工员考试岗位:特殊季节工程考试试题
- 开干洗店利润高与哪些因素有关? - 图文
- 立足实际 坚持创新1