BGP是什么

BGP是一种动态路由协议,路由又分为直连、静态路由和动态路由。

BGP特点及工作原理

BGP工作在OSI模型的第七层
BGP的特点
1.稳定——使用TCP连接端口为179
2.能够传输大量的路由器
3.可以实现路由的灵活控制(后面会讲到BGP选路)
BGP的工作过程:建立邻居表,同步数据库,计算路由表。

BGP的基本概念

BGP和OSPF一样有区域的概念,BGP使用的是AS号(autonomous system ),自治系统,这里的一个AS就代表了一个公司/企业/机构,
世界上AS一共有65536(0-65535)和ipv4一样AS不够用了,所以推行了类似ipv4的解决方案,AS号分为公有和私有。
私有的AS只能在公司的内部使用,无法传递到公网上,范围是64512-65535
公有的AS需要花钱购买,可以传递至公网上。

BGP报文类型与邻居

BGP的报文有:
open,用于邻居的建立
update,更新报文,用于传递BGP的路由条目
keep-alive,存活消息,用于维持BGP邻居关系
notification,通知,用于传递报错信息
BGP的邻居建立时用单播的方式建立的
BGP的邻居分为内部邻居(IBGP):运行在同一个AS的两台或多台路由器建立邻居,外部邻居(EBGP):运行了不同AS号的多台路由器建立邻居。

IBGP存在的问题

IBGP中为了防止网络链路成环,有一个防环机制,在IBGP中路由只会传递两次,也就是说IBGP中如果存在第三个邻居,那种这个邻居不会拿到路由,那么这么让第三的路由器也拿到路由,这里有三个解决方法
BGP全互联:缺点,全网需要建立非常多的 TCP 连接,维护难度大。
BGP联盟和BGP反射镜(RR)。
这三种方式都可以传递路由后又发现问题,先来了解下BGP传递路由是分好坏的,坏的路由是无法传递给邻居的,类如:第一个路由器收到了一个路由,发现到吓一跳在自己的端口上,它会认为是好的路由并且不做任何改动,就传给了邻居,邻居收到后发现吓一跳是不可达的,那么它认为是坏的路由就不会传递这个路由给邻居,解决方法:在路由传递时将传递的路由条目中的下一跳改成自己,那么邻居收到后发现可以到达就会认为时好的路由。
BGP在收到路由后会检查报文的源ip必须与自己本地设备的 peer 命令后面的IP地址相同,这个就是更新检测源机制。

BGP联盟、BGP反射镜和IBGP破除更新源机制

BGP联盟:是用多个私有的AS绑定公有的AS号在IBGP创造出EBGP那么就不会不传递路由了,缺点:每个私有AS号中只能由两个路由器。
BGP反射镜:会定义两种设备角色反射器和反射器客户端,发射器的规则为除了非客户端与非客户端不能传递路由,其他设备之间都可以传递路由。
IBGP破除更新源机制,基于对方设备的 peer 命令后面的IP地址,来修改自己发送 BGP 报文的源IP地址。

EBGP存在的问题及解决方法

在搭建BGP时为了稳定不会使用端口上的ip都会建立个回环地址来建立邻居,那么这时候问题来了,BGP在建立邻居是会检测是否为直连,直连可以建立邻居非直连无法建立,这就是直连检测机制,解决方法,BGP在发送open报文是该报文中TTL为1,这时候会检测是否为直连,当TTL大于1是就不会检测,所以只要更改TTL就可以解决该问题。

注意:在BGP当数据经过一个AS号在离开是就会打上该AS,当该数据在次进入该区域中是,BGP会检测数据中的AS号如果有自己的AS就会丢弃该数据

BGP选路规则

在华为中BGP的选路规则有11条,每个厂商规则数量都不一样,但在11条中后面几条也用不到,这里就做个了解。
1.preferred value(华为的私有属性),和思科中weight(权重)是一样的,数值越大越好,默认为0,仅在本地有效。
2.local preference,本地优先级,数值越大越好,默认100,在IBGP有效,可以在出入口做
3.判断路由是否由自己产生
自己产生>从邻居学过来的
自己产生的方式:汇集(手动>自动)-aggregate 、network、import-route
4.as-path长度,越短越好,作用:防止EBGP邻居间的环路,含义,里面包含了BGP路由在传递过程中,前后依次经历过的所有AS号。
5.比较起源属性(origin code:i>e>?):表示了该BGP路由曾经是以什么样的方式进入BGP的,方式有:network,对应的起源属性为igp,imports-route,对应的起源属性为incomplete。
6.比较MED属性,越小越号(相当与路由条目的cost)

## 注意:如果两个路由来自于同一个 AS ,才会进行MED的比较。
7…EBGP 路由,优先于 IBGP 路由 。
到这已经可以选路完成了,下面的只了解下
8…比较去往BGP路由的下一跳的IP地址的距离的远近(igp cost) ,越小越好。
9.比较 cluster-list 长度,越小越好。
10…比较 router-id ,越小越好。
11.比较 peer 后面的 IP 地址,越小越好。