目录
一、BGP的概述以及优点
1.BGP概述:
2.BGP的优点
二、使用BGP的三大理由
三、BGP邻居概述
四、BGP配置命令
五、BGP邻居建立条件
六、使用回环口建立邻居
七、BGP报文和状态
1.BGP报文类型:
2.BGP状态机
八、BGP路由宣告
1.BGP数据库:
2.BGP路由宣告规则:缺省情况下,BGP不发布任何本地路由
3.BGP路由宣告方法:本地宣告和引入宣告
九、BGP下一跳
十、BGP防环机制和聚合
1.BGP防环机制
2.BGP路由聚合
十一、BGP路由属性
bgp路由属性:
各个路由属性概述:
Prefval:优选值,越大越优点
Origin:起源,BGP路由的生成方式
AS_path:AS路径,BGP路由在传输的路径中所经历的AS列表
Next_hop:下一跳=更新源
Local-preference:本地优先级
MED:Multi-Exit-DISC:相当于IGP的度量值
BGP选路原则:BGP不像IGP,本身并没有路由算法,而是结合丰富的路由属性进行选路
十二、BGP路由控制与过滤
BGP可以结合几乎所有的策略工具,并利用BGP路径属性,来影响BGP的选路
BGP路由过滤
十三、BGP团体属性(Community)
公认团体属性:
私有团体属性:自定义规则应用方法,格式:AS(2B):Number(2B)
BGP复位操作:高危操作!!
负载均衡:maximum load-balancing 2 #配置最多2个负载均衡
边界网关协议(Border Gateway Protocol,BGP)是一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议。由于不同的管理机构分别控制着他们各自的路由选择域,因此,路由选择域经常被称为自治系统AS(Autonomous System)。现在的Internet是一个由多个自治系统相互连接构成的大网络,BGP作为事实上的Internet外部路由协议标准,被广泛应用于ISP(Internet Service Provider)之间。
早期发布的三个版本分别是BGP-1、BGP-2和BGP-3,主要用于交换AS之间的可达路由信息,构建AS域间的传播路径,防止路由环路的产生,并在AS级别应用一些路由策略。当前使用的版本是BGP-4。
①更新可靠:BGP在TCP(端口179)上运行
②仅增量式,触发式更新
③定期提供存活(keepalive)消息以验证TCP连接性
④丰富的度量标准
⑤专门为大型互联网而设计
1.大量路由需要承载,IGP只能容纳千条,而BGP可以容纳上万条
2.支撑MPLS/VPN的应用,传递客户VPN路由
3.策略能力强,可以很好的实现路由决策与数据控制
BGP邻居类型:EBGP(外部BGP邻居,不同AS号)、IBGP(内部BGP邻居,相同AS号)
1.BGP Speakers:运行BGP的路由器
2.BGP Peers=BGP Neighbors=BGP对等体
3.邻居关系建立在TCP连接基础上,因此邻居不一定需要直连,可以通过IGP或静态路由来提供
4.邻居必须手动指定,而非自动建立
5.一台BGP路由器只能运行在一个AS内
bgp 123 #声明所在AS号(创建进程)
router-id 1.1.1.1 #配置RID,必须唯一
peer 12.0.0.2 as-number 123 #配置邻居IP地址和所在AS号(如果是EBGP,则是对方AS号)
display bgp peer #显示BGP邻居状态
1.邻居地址可达
2.自身配置中的邻居所在AS号=邻居配置中声明所在AS号
3.数据包源IP=对方配置的邻居IP(这个源IP也叫更新源,也将作为路由的下一跳IP)
为了增强稳定性,通常建议使用回环口建立邻居,但是在建立邻居的时候会遇到两个问题:
1.更新源:建立邻居和邻居所学习到的路由的下一跳
2.多跳:EBGP邻居建立默认需要直连,因为TTL为1,如果非直连,必须修改TTL值
peer 2.2.2.2 connect-interface lo1 #配置更新源(数据包源IP)
peer 2.2.2.2 ebgp-max-hop 2 #配置TTL=2,默认=1(在AS之间加上这条命令,两边都要配置)
peer 2.2.2.2 password cipher 123 #配置身份验证,MD5形式,在两边都要配
所有报文都是单播!!
L2 Header | IP Header | TCP Header | BGP Packets | FCS |
Open包:类似HELLO包,建立邻居关系
Keepalive包:类似HELLO包,维护邻居关系
Update包:路由更新,包含属性
Notfication包:当检测到错误,发送后关闭BGP连接
Route-Refresh包:当路由策略发生变化时,触发请求邻居重新通告路由
Idle:初始,路由器查找路由表,是否有到达邻居的路由
Connect:发起TCP连接,等待TCP连接完成
Active:TCP连接失败,继续尝试TCP连接
Open Sent:TCP连接成功,已发送Open包
Open Confirm:已收到对方正确的Open包,如果没有收到,会进入Active状态
Established:邻居建立完成,开始传递路由
BGP活跃(Active)状态验证:路由器已经发送了一个Open包,正在等待响应
状态可能会在活跃与空闲之间不断循环。
由于以下原因,邻居可能不知道如何返回到该路由器
1.不存在指向BGP“打开”数据包源IP地址的路由
2.邻居与错误的地址建立对等体关系
3.不存在与该路由器的邻居声明
4.AS号配置错误
类型 | 备注 |
邻居表 | BGP邻居名单 |
BGP路由表 | 列出从邻居那里获取到的所有路由及属性 |
IP路由表 | 列出最佳路由 |
Adj-RIB-IN | 邻居宣告给本地的未处理的路由信息数据库 |
Adj-RIB-OUT | 本地宣告给指定邻居的路由信息库 |