区别 | IGP | BGP |
---|---|---|
使用范围 | AS内使用 | AS间使用 |
收敛速度 | 迅速,只在邻居间工作 | |
功能 | 发现和计算路由 | 控制路由的传播和选中最佳路由 |
适用网络 | 中小心企业网 | 大型,超大型运营网络 |
其他 | 路由选择实施复杂 | 支持CIDR 只发送更新路由,减少带宽,适用于在互联网上传播大量路由信息 解决环路问题 下一跳地址可以是非直连路由器的接口IP |
无需用到BGP场景
需要用到BGP场景:跨运营商传递路由,且需要路由协议进行自动选路
邻居关系:eBGP和iBGP邻居关系
eBGP:不同AS之间的BGP,可防止AS间产生环路。
iBGP:AS内的BGP,为了防止AS内产生环路,在AS内需要保持全连接的iBGP邻居
邻居建立的属性
BGP状态:
状态 | 描述 | 接收事件 | 动作 | 备注 |
---|---|---|---|---|
idle | 空闲状态 | start | start事件之后 1.对资源初始化 2.重置连接计时器 3.发起TCP连接请求 4.开始侦听远端对等体发起连接的端口,并转至connect状态 | start状态由操作者配置/重启BGP过程 |
connect | 启动连接重传定时器,等待TCP完成连接 | 1.如果TCP连接成功,BGP向对等体发送Open报文,并转至OpenSent状态 2.如果连接失败 转至Active状态 3.如果连接重传定时器超时,继续尝试进行TCP连接 4.其他事件,退回Idle状态 | ||
Acitve | 1.试图建立TCP连接 | 1.如果连接成功,发送Open报文,并转至OpenSent状态 2.如果连接失败,停留在Active状态 3.连接重传定时器超时,转至Connect状态 4.其他事件,退回Idle | ||
OpenSent | 1.等待对等体的Open报文 2.对收到Open报文中的AS号,版本号,认证码进行检查 | 1.如果收到报文正确,发送Keepalive报文,并重置Keepalive定时器,转至OpenConfirm状态 2.如果收到报文有误,发送Notification状态,并转至Idle状态 | ||
OpenConfirm | 等待Keepalive报文或Notification报文 | 1.收到Keepalive报文,转至Established状态 2.收到Notification报文,Idle状态 | ||
Established | 与对等体交换Update,Keepalive,Route-refresh报文和Notification报文 | 1.收到正确的Update或Keepalive报文,保持BGP连接 2.错误的Update或Keepalive报文,发送Notification报文并转至Idle状态 3.Route-refresh报文不会改变BGP状态 4.Notification报文,转至Idle状态 5.TCP拆除通知,BGP断开连接,转至Idle状态 |
BGP邻居无法建立的原因(未处于Established状态)
BGP对等体之间交互原则
属性分类
属性
属性 | 描述 | 类型 | 备注 |
---|---|---|---|
origin | 表示BGP路由起源 | 1.IGP:从内部网关协议学习到的 2.EGP:通过EGP学习到的 3.incomplete:未知源,一般通过import引入路由表中 | 1.聚合路由可以是IGP,也可以是incomplete,这依赖于聚合路由的成员路由的origin属性。若有些成员路由是IGP,有些成员路由是incomplete,则生成的聚合路由是incomplete 2.优先顺序 IGP>EGP>incomplete |
AS_PATH | 记录路由沿途经过的AS |
BGP路由信息库:存放用于决策的BGP路由
决策过程
选路规则
负载分担
BGP负载分担
下一跳路由负载分担
当BGP依赖下一跳转发数据,且下一跳是负载分担的,则也能算得上是BGP负载分担
路由聚合:手动聚合和自动聚合