BGP第二日

上图为今日所用拓扑 ,其中R1和R4,R3和R5为EBGP邻居,R1和R3为IBGP邻居,AS200区域做OSPF动态路由

一.BGP建立邻居的六种状态

1.idle          

空闲状态:建立邻居最初的状态

2.Connect      

 连接状态:在这个状态下会尝试建立TCP连接

3.Active 

  活跃状态:TCP建立连接失败会进入这个状态,一直失败则一直在这个状态,若建立成功则由Active->OpenSent状态

4.OpenSent

Open报文发送状态:在TCP建立连接成功后会进入这个状态,这个状态下双方会发送Open报文以尝试建立邻居关系

5.OpenConfirm 

 Open报文确认状态:收到对方的Open报文后就进入这个状态了,这个状态下会向对方发送KeepAlive保活报文以维持邻居关系

6.Established 

 建立状态:收到对方的KeepAlive保活报文后进入的状态,在这个状态下邻居关系达到完满

二.流量黑洞

出现原因:

当路由下一跳地址非直连的网段ip地址就有可能出现流量黑洞,其原因是路由表是按照目的地址寻址的,当路由下一跳非直连网段ip时,下一跳所在路由器不一定有目的ip的路由条目,这时就会将路由数据传到Null口,形成流量黑洞。

在IBGP中,若两台建立IBGP路由器之间有没有配置IBGP的路由设备时,就会出现流量黑洞问题,虽然两台IBGP路由器学习了对方所搬运的路由,但是由于中间路由器没有所搬运路由的路由信息,所以外部AS设备无法相互连接。

解决方案:

1.配置静态路由:

在中间路由器R2中配置两条静态路由:

[R2]ip route-s 10.10.4.4 32 192.168.12.1
[R2]ip route-s 10.10.5.5 32 192.168.23.3

有了这两条静态路由,中间设备就有了目的IP地址为外部AS区域的路由信息,就可以继续路由转发了。这种方法看似完美,实际工作中外部AS区域路由何其之多,BGP搬运多少条路由中间设备均要配置多少条静态路由,何其繁琐,实不可取。

2.在ospf中引入外部BGP路由:

[R1]ospf 1
[R1-ospf-1]import-route bgp
[R3]ospf 1
[R3-ospf-1]import-route bgp

这样ASBR就会生成五类LSA通告全区域外部AS某一IP的路由信息了,这样做也是看似合理,因为BGP搬运的路由条数庞大,OSPF所引入BGP路由条数也很庞大,会产生大量的五类LSA,对ASBR设备压力非常大,虽然可以用第五类路由聚合技术缓解压力,但治标不治本,且BGP所引出的问题最终还是想在BGP中解决。(将五层问题转换成三层问题这种解决方法会伤了五层高傲的心的)

3.IGBP全互联

既然问题是由两台IBGP路由器之间有非IBGP路由器导致的,那我们直接让非IBGP路由器成为IBGP路由器不就成了?

[R1]bgp 200
[R1-bgp]peer 192.168.12.2 as 200
[R1-bgp]peer 192.168.12.2 next-hop-local    #这个要看BGP通告原则第三条
[R2]bgp 200
[R2-bgp]peer 192.168.12.1 as 200
[R2-bgp]peer 192.168.23.3 as 200
[R3]bgp 200
[R3-bgp]peer 192.168.23.2 as 200
[R3-bgp]peer 192.168.23.2 next-hop-local 

这样R2就有从IBGP邻居那边学来的外部AS区域路由了,看似又是很完美但是图示仅仅一台中间设备就要建立3次IBGP邻居,若总共有N台路由器则要建立N*(N-1)/2次IBGP邻居了,工程量不可谓不大,因此,也不可取。

先卖个关子,先不“引玉”,讲讲别的先。

 

 三.BGP通告原则

1.BGP路由器会将自己状态码为“*>”的路由给状态为“Established”的邻居

2.从EBGP那边搬运的路由会传递给所有邻居

3.从IBGP那边搬运的路由不会传递给别的IBGP邻居

由于第三条规则,引出了下面我们要讲的内容。

四.IBGP水平分割    ps:也叫内内不相传

出现原因:

在同一个AS中,若有三台及以上的IBGP邻居存在,则有可能产生路由环路(互相来回传递从EBGP邻居那边搬运来的路由),为了防止这种现象的出现,出现了IBGP水平分割的规则

打开一扇门,就关闭一扇窗

IBGP水平分割解决了IBGP路由环路问题,可却导致AS内部BGP无法传递

解决方案:

1)IBGP全互联       

2)Route Reflector   路由反射器

3)BGP联盟    (已基本淘汰)

4)OSPF 引入BGP

5)静态路由

五.路由反射器

1.Role:

1)RR  :Router Reflector

2)Client

3)Non-Client

2.路由反射器反射规则

1)从Non-Client设备上搬运的路由,会传递给EBGP邻居,会反射给Client设备,但是不会反射给其它Non-Client设备        (非非不反射规则)

2)从Client设备上搬运的路由,会传递给EBGP邻居,会反射给Non-Client设备和Client设备

3)从EBGP邻居设备上搬运的路由,会反射给Client设备、Non-Client设备

3.隐患

路由反射器突破了IBGP的水平分割,但也面临着路由环路的风险

4.解决方案:

在BGP报文内加入两个字段:

Origin-id:始发id,集群内部Client与RR间防环

Cluster_id:簇列表,集群间防环

相关推荐

  1. RuoYi模块功能分析:第二

    2024-07-11 10:10:04       42 阅读
  2. <span style='color:red;'>BGP</span>综合

    BGP综合

    2024-07-11 10:10:04      41 阅读
  3. <span style='color:red;'>BGP</span>实验

    BGP实验

    2024-07-11 10:10:04      45 阅读
  4. <span style='color:red;'>BGP</span>协议

    BGP协议

    2024-07-11 10:10:04      25 阅读
  5. 八、<span style='color:red;'>BGP</span>

    八、BGP

    2024-07-11 10:10:04      20 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 10:10:04       53 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 10:10:04       56 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 10:10:04       46 阅读
  4. Python语言-面向对象

    2024-07-11 10:10:04       57 阅读

热门阅读

  1. 0124__Linux和Unix的Access.conf安全配置

    2024-07-11 10:10:04       18 阅读
  2. Android11 应用启动流程

    2024-07-11 10:10:04       23 阅读
  3. CentOS-6的iso下载地址镜像yum源

    2024-07-11 10:10:04       20 阅读
  4. 什么是CLR

    2024-07-11 10:10:04       17 阅读
  5. 获取线程id

    2024-07-11 10:10:04       17 阅读
  6. 小抄 20240709

    2024-07-11 10:10:04       16 阅读
  7. 24/07/10数据结构(5.1213)链表OJ

    2024-07-11 10:10:04       20 阅读
  8. VUE学习列表

    2024-07-11 10:10:04       22 阅读
  9. 手动安装Ruby 1.9.3并升级RubyGems

    2024-07-11 10:10:04       24 阅读
  10. uniapp APP端解决video seek跳转时间不准确的问题

    2024-07-11 10:10:04       18 阅读