一、BPG的定义
不同区域(路由域)需求EGP,但是EGP设计太简单最终被EGP取代;
边界网关协议(Border Gateway Protocol,用于自治系统之间传递路由
BGP的特性
BGP是自治系统外部路由协议,用来AS之间传递信息
路径矢量协议,从设计上避免了环路的发生
由TCP承载,端口号是179
支持CIDR和路由聚合
路由附带丰富的属性
只发送增量路由更新
路由过滤和路由策略
自治系统
**定义**:一组被统一管理,运行同一IGP协议的路由器组成的网络范围
自治系统编号
自治系统编号:公有AS 1-64511
私有AS 65512-65525互联网不认,已被扩展
转发原理
BGP只负责把路由从一个AS传递到另一个AS;从其他AS传递过来的路由在本AS 内部的扩散依靠IGP
BGP是路径矢量协议,一跳是一个自治系统;当一条路由传入某个AS,该路由的下一跳会变为上个AS的出接口地址;
当一条路由在某个AS内部路由器之间传递时,下一跳地址不变
防环机制–水平分割
当一条路由每从一个AS传出,会把该AS的编号按照从右往左的顺序依次记录在AS_PATH中;一个路由器从其
他AS收到一条路由通告,会检查本路由器的AS编号是否出现在该路由器条目的AS_PATH属性中,如果出现了则学
习该路由
BGP基于TCP的179号端口
BGP协议基于TCP协议传输,必须手动配置邻接关系;目的端口179
BGP一次发送完整路由表,后续发送增量更新
BGP有多种属性可以控制路由选择
路由过滤和路由策略
BGP术语
发送BGP的路由器成为BGP的发言者BGP Speaker
相互交换消息的BGP发言者之间称为BGP的对等体(BGP Peer)
EBGP对等体
处于不同AS之间的BGP对等体,EBGP对等体是物理连接的,
BGP发言者从EBGP对等体获得的路由会向它所有的BGP对等体通告(包括EBGP和IBGP)
IBGP对等体
处于同一个AS的BGP对端体是IBGP对等体
从IBGP获得的路由不向它的IBGP对等体发布
从IBGP获得的路由是否发布给它的EBGP对等体与BGP是否同步有关
IBGP邻接条件
1.TCP可达,也就是能ping通,环回口邻接
2.指定的邻居的地址必须和该邻居发给本路由器的报文的源地址一致,peer 1.1.1.1 connect-interface loopback0
EBGP邻居条件
1.TCP可达,要求直连,特殊可以修改为非直连
2.建议使用直连接口的IP来建立EBGP邻居
3.指定的邻居的地址必须和该邻居发给本路由器的报文的源地址一致
EBG一般使用直连接口建立邻居,默认TTL值是1,如果要指定R-id来建立邻居,则
bgp 100
peer 1.1.1.1 connect-interface loopback0 指定rid来建立邻居关系
peer 1.1.1.1 ebgp-max-hop 5 指定ebgp的TTL值为5
BGP路由黑洞
由于一个AS内部边界路由器中间的路由器没有运行BGP而造成的数据丢失,
解决办法
1、把BGP引入IGP
2、建立IBGP全连接(IBGP防环机制:从一个IBGP学到的路由不会传递给其它IBGP路由
3、路由反射器:选举一台路由成为反射器,只有反射器才能把IBGP学习到的路由发送给其它IBGP邻居
4、BGP联盟:在一个自然AS内部建立多个子AS,把部分IBGP邻居转换成伪EBGP邻居
5、BGP MPLS VPN
BGP同步
实验心得:
1.as划分不清楚,在设置路由器as时需要严格按照as编号来搞,区域内的as编号一致,区域外的as不一样
2.邻居关系建立,as边界路由建立两个邻居,一个ibgp一个ebgp,ibgp用环回口建立,ebgp用出接口建立,边界bgp路由器建立ebgp邻居下一跳指向对端地址(即100.1.1.1),建立ibgp邻居下一跳指向同as区域内的Rid(即4.4.4.4),以R2喂参考
3.进入ipv4属性设置属性address-family ipv4
4.对每一个IBGP邻居都要peer 邻居 next-hop-local来指定下一跳为自己
常用命令
bgp 100
peer rid/邻居ip as 100编号
peer 邻居ip as 200编号
address-family ipv4
peer rid邻居 enable
peer rid next-hop-local(因为BGP的一跳是一个AS,所以需要ibgp邻居指定的下一跳为自己,让ibgp对等体能进行正常路由寻址)