BGP: 边界网关协议
使用范围: BGP范围,在AS之间使用的协议
协议的特点(算法):路径矢量型,没有算法
协议是否传递网络掩码 :传递网络掩码,支持VLSM CIDR
协议消息数据包封装:基于TCP封装,端口号:179
AS: 自治系统 自治系统范围:1-65535 , 公有AS (1-64511) 私有AS(64512-65535)
设计特性:
1、可靠性—大量的路由共享,取消周期更新 TCP 179端口工作
TCP 仅基于单播通信 BGP协议需要单播建立邻居关系(手工指定邻居的ip地址)
BGP可以非直连建邻(peer),BGP承载于IGP之上;
2、可控性 — 建邻、路由宣告、选路控制(干涉选路)–及其容易进行
3、AS-BY-AS 以一个AS为一跳
1.BGP是一种路径矢量型路由协议
2.BGP协议版本,当前版本V4(V4+)V1 V2 V3(有类别) V4(无类别 仅仅支持IPV4单播路由传递) V4+(支持IPV4单播路由、IPV6单播 IPV4 组播 、IPV6组播、VPNV4 、VPNV6 等,除了IPV4单播路由之外的其他的都称为 MP-BGP---多协议BGP; 注意:默认仅仅支持传递IPV4单播路由,传递其他方式路由时需要开启(激活))
3.更新地址:单播更新
4.更新方式:触发更新、增量更新
5.BGP协议中存在大量的属性(是一种基于规则的路由协议)
6.BGP协议支持路由认证
7.支持BGP路由聚合(汇总)
8.BGP是一种非常消耗资源的路由协议(一个路由器只能运行一个BGP进程协议)
一、工作在AS与AS之间的EGP类别协议;
BGP协议为不同AS间共享路由,工作时隔离两个AS的内部网络,形成一个独立的交互空间;且同时可以实施强大的策略来干涉选路;
IGP追求:收敛速度快 选择路径佳(无环) 占用资源少 hop-by-hop
EGP追求:可控性 可靠性 AS-BY-AS
可控性—BGP协议不是路由的产生者,仅为搬运者,且AS间正常应该存在大量的链路来保障稳定性;故BGP协议传递的路由条目很难默认最佳选路;–需要管理员对路由进行大量的策略来干涉选路;
可靠性—BGP协议虽然像距离矢量协议一样仅传递路由条目,但更新量依然很大;
为了避免对设备资源的占用选择了增量更新—仅触发、无周期
故需要保障所有的路由传递到位—可靠 因此BGP协议基于TCP工作
TCP的三次握手条件使得TCP只能基于单播工作,同时BGP需要非直连建邻;
BGP基于IGP之上,先IGP使BGP设备间IP可达,然后BGP才能基于TCP建立非直连邻居关系;
AS-BY-AS—以一个AS为一跳,将一个AS看成一个整体;
二.适合使用BGP的网络环境
1.传输AS
2.多宿主
3.需要对进入和离开的流量进行强大的策略控制时
三.BGP邻居关系
IBGP :内部BGP邻居
EBGP:外部BGP邻居
IBGP邻居的防环机制:IBGP 水平分割机制(IBGP只传一跳规则,通过一个IBGP邻居学习的路由不能传递给其他的IBGP邻居);next-hop、起源者属性、簇ID列表.
EBGP邻居的防环机制:AS-Path AS路径防环,不接收AS-Path中包含自身AS号的路由信息
BGP 邻居状态机制
Idle : 初始化
Connect :连接
Active : 活动
Opensent:发送open报文
Openconfirm :open报文确认
Established :邻居状态
EBGP 外部的BGP邻居关系,两台处于不同AS的BGP路由器间建立的邻居关系
IBGP 内部的BGP邻居关系,两台处于同一个AS内的BGP路由器间的建立的邻居关系
四、BGP的工作过程
管理员定义邻居的ip地址,前提要求对邻居ip可达; — IGP可达
启动BGP协议后,先目标端口为179进行TCP的三次握手来建立TCP的会话;
会话建立后,收发open报文来建立邻居关系,生成邻居表;
邻居关系建立后,邻居间使用update 共享路由条目,在收发了路由信息后,本地生成BGP表;
Bgp表中装载本地发出及接收到的所有路由条目;
之后路由器将BGP表中的最优路径(不一定是最佳选路,仅为BGP参数最佳)加载于路由表中;
收敛完成!仅keeplive周期保活即可;
结构突变:
1、新增网段 – BGP更新源设备将使用update来告知本地所有的邻居
2、断开网段 – BGP更新源设备将使用update来告知本地所有的邻居
3、无法沟通 – 3min hold time到时时断开邻居关系和TCP会话,之后删除从该邻居处学习到的所有信息;
BGP更新源设备并不一定直连断开或新增网段的设备,而是第一台将该路由发布到BGP协议中的路由器;
五.BGP消息数据包
BGP邻居关系建立条件:
1.router-id 必须不同
2.BGP认证一致
3.指定正确的AS号
4.建立TCP三次握手的两端路由可达
1.open :建立BGP邻居关系,只发送一次。
2.keepalive :保活,维持BGP邻居关系。周期性发送周期时间keepalive 时间默认为60s
Hold 时间,保持时间默认为180s
3.update :更新
通告路由:
撤销路由:
4.notification :报告(错误报告)
六.BGP配置
IBGP:直连物理接口建立,非直连接口建立(环回接口)
EBGP:直连物理接口建立,非直连接口建立(环回接口)
启用BGP协议:
手工指定router-id
手工指定邻居:
修改更新源:默认更新源为到达peer的本地出接口地址
修改EBGP之间多跳(EBGP之间数据包TTL默认为1 )
作用:1.关闭EBGP之间直连检测 2.修改EBGP数据包的TTL值
查看BGP 邻居表: