BGP

通常企业连接上网的情况分两种,一种是单向的,使用私有地址,然后通过NAT转化出去,所以这种网络一般使用的是ADSL;

第二种就是使用公网的IP地址,比如说提供付费的服务,此时公网是如何学习到我的路由的----BGP

企业和ISP的连接情况
1 企业仅仅通过一条链路连接到一家ISP---单宿主---此时没有必要学习到公网路由 只需要配置默认路由指向该ISP
2 企业通过两条链路(可能是同一个设备也可能是不同设备)连接到同一家ISP的一台设备----双宿主
3 企业通过多台设备连接到多家ISP---多宿主-----那么此时企业是如何访问ISP呢?------此时企业可能是配置默认路由(可能存在路径次优)也可能和ISP之间运行协议 从而学习到部份或者完整路由
4 双多宿主

BGP协议介绍----BGP深得道家精髓 清净无为 路由学习是IGP完成的 然后将之通告进BGP
BGP的发展----是一个EGP协议(外部网关协议) 是运行在AS之间的协议AS:自治系统 工作在同一个管理区域下的一组网络设备
EGP的发展经历 EGP-BGPV1--BGPV2-BGPV3-有类协议---BGPV4-无类协议
BGP又分为EBGP(外部的BGP 运行在AS之间的)和IBGP(内部BGP 运行在AS内部的) IBGP和EBGP很多机制是不一样的
AS号范围 1-65535 其中从64512-65525是私有的

BGP的特性 邻居建立过程 状态机
BGP是单播建立邻居
router bgp 1
neighbor 12.12.12.2 remote-as 2
命令解释
neighbor 12.12.12.2是用来向对方发送单播报文
remote-as 2--用来识别是EBGP还是IBGP邻居(AS号是否和自己一样)
BGP是触发的 增量的更新---
通过keepalive来维持邻居关系 默认是60S和180S

BGP是运行在TCP的179端口上的一个应用层协议(保证了可靠性 此外还借用了TCP的窗口机制)

BGP有丰富的属性 以用来选路(ISP可以通过各种各样的属性方便控制用户流量的选路)
--BGP的邻居建立过程--

首先进入idle状态,与对端进行TCP连接,检测网络的可达性,连接成功进入connect状态

进入connect状态以后,发送open-sent报文,匹配AS号router-id等信息,协商成功后,发送回open-confirm报文

建立成功

BGP协议:是一个路径矢量协议 这个路径指的是AS路径 BGP在发送路由更新时 会携带AS-PATH信息 BGP还是一个per-hop 的协议 hop-by-hop---在里面的hop指的是AS
AS-PATH的产生机制:从EBGP邻居学习到路由时 会将邻居的AS号添加进AS-PATH EBGP通过个AS-PATH来避免环路
而IBGP是通过规定来避免:从一个IBGP邻居学习到的BGP前缀 不可以再传给其它IBGP邻居

各种可靠机制:

环路避免机制---EBGP通过AS-PATH来避免 IBGP通过规定(从一个IBGP邻居学习到的 不可以再传给其它IBGP邻居)

路由可靠机制---TCP搞定了
选路机制----通过丰富的属性来选路
收敛机制----收敛慢 通过keepalive来收敛(慢 180S)
安全机制----只有MD5认证 neighbor 12.12.12.2 password cisco
普适性----设备想BGP协议 需要性能比较强(BGP协议比较消耗资源)

原文地址:https://www.cnblogs.com/chenrjfight/p/10470503.html