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    #IBGP邻居间传路由时不会修改下一跳

[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:簇列表,集群间防环

相关推荐
白帽黑客沐瑶2 天前
【网络安全就业】信息安全专业的就业前景(非常详细)零基础入门到精通,收藏这篇就够了
网络·安全·web安全·计算机·程序员·编程·网络安全就业
树码小子2 天前
Java网络编程:(socket API编程:TCP协议的 socket API -- 回显程序的服务器端程序的编写)
java·网络·tcp/ip
绿箭柠檬茶2 天前
Ubuntu 服务器配置转发网络访问
服务器·网络·ubuntu
real 12 天前
传输层协议UDP
网络·网络协议·udp
路由侠内网穿透2 天前
本地部署 GPS 跟踪系统 Traccar 并实现外部访问
运维·服务器·网络·windows·tcp/ip
喵手2 天前
玩转Java网络编程:基于Socket的服务器和客户端开发!
java·服务器·网络
徐子元竟然被占了!!2 天前
实验-基本ACL
网络
ftpeak2 天前
从零开始使用 axum-server 构建 HTTP/HTTPS 服务
网络·http·https·rust·web·web app
LabVIEW开发3 天前
LabVIEW气体污染无线监测
网络·labview·labview知识·labview功能·labview程序
error:(3 天前
【从零到公网】本地电脑部署服务并实现公网访问(IPv4/IPv6/DDNS 全攻略)
网络·智能路由器