BGP: 边界网关协议
使用范围: BGP范围,在AS之间使用的协议
协议的特点(算法):路径矢量型,没有算法
协议是否传递网络掩码 :传递网络掩码,支持VLSM CIDR
协议消息数据包封装:基于TCP封装,端口号:179
AS: 自治系统 自治系统范围:1-65535 , 公有AS (1-64511) 私有
AS(64512-65535)
一.BGP协议特点
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协议支持路由认证
BGP
2019年11月29日 星期五
下午 1:33
分区 HCIP 的第 59 页
6.BGP协议支持路由认证
7.支持BGP路由聚合(汇总)
8.BGP是一种非常消耗资源的路由协议
二.适合使用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 :邻居状态
五.BGP消息数据包
Open keepalive updata notification
分区 HCIP 的第 60 页
1.open :建立BGP邻居关系,只发送一次。
BGP邻居关系建立条件:
1.router-id 必须不同
2.BGP认证一致
3.指定正确的AS号
4.建立TCP三次握手的两端路由可达
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值
1.路由不优问题;
原因:1.下一跳不可达 2.IBGP同步
下一跳属性规则:
1.network 引入 默认next-hop 属性为0.0.0.0
2.IBGP或者EBGP邻居学习到的路由,下一跳默认为对方的更新源地址(即建立TCP三次握手的对方IP地址)
3.IBGP学习路由传递给EBGP邻居时,下一跳为EBGP邻居建立的更新源地址(EBGP邻居路由传递给EBGP邻居时也一样)
4.EBGP学习路由传递给IBGP邻居时,下一跳不发生改变
BGP增强
2019年12月1日 星期日
下午 1:39
分区 HCIP 的第 63 页
4.EBGP学习路由传递给IBGP邻居时,下一跳不发生改变
特点:在思科中, 若IBGP和EBGP邻居都使用MA网络进行连接,同时EBGP邻居使用MA物理接口建立邻居,此时将IBGP邻居路
由传递给EBGP邻居时,下一跳属性为到达IBGP邻居的MA物理接口地址
针对传递EBGP路由给IBGP时,下一跳不发生改变,会导致IBGP邻居学习路由由于下一跳不可达导致路由不优,所以在IBGP邻
居之间修改next-hop属性为自身:
数据层面的路由黑洞:
1.在边界设备上将BGP重发布引入IGP协议(仅仅引入EBGP邻居学习并加表的路由)
2.在AS内建立全互联的IBGP邻居关系
3.减少IBGP邻居关系的数量,打破IBGP水平分割
a.路由反射器
b.EBGP 联邦
4.MPLS
对等体组 peer group : 将多个peer 划入一个group中,针对group实施BGP邻居关系建立的配置
优点:1.减少BGP配置 2.将多个peer划入一个group仅仅针对一个group一次性消耗CPU 内存等资源,所有可以解决资
路由反射器:
反射规则: 非非不传(非客户端收到的路由不能传递给其他的非客户端)
在路由反射器中,由于破坏了IBGP水平分割机制,可能导致路由环路,所以引入了起源者属性和簇ID属性进行防环
设置路由反射器: 设置对等体组中用户为路由反射器的客户端,同时宣告自身为路由反射器的服务器端。
路由导入和导出:
路由导入: 1.network 自身通告(可以通告所有路由表的路由条目)
2.import 重发布引入
1.network 引入next-hop属性永远为0.0.0.0 ,将原本IGP中的metric值以MED属性的方式引入
注意: 在思科中,若引入的路由是存在下一跳地址的(IGP或下一跳做法的静态),则引入的路由下一跳属
性为原始路由的下一跳地址目的是为了IBGP协议防环,BGP不接收下一跳为自己的BGP路由;在华为中,
network引入的路由下一跳属性为0.0.0.0 ,失去了下一跳防环机制,可能会导致临时的路由环路。
2.默认import引入属性与network通告属性相同(区别: 起源码属性为?)
3.BGP协议默认关闭自动汇总,若开启自动,仅仅针对重发布进入的路由生效,将引入的明细路由进行抑
制,进行自动汇总(汇总成主类),同时MED属性丢失
开启或关闭自动汇总:
路由的导出: import
华为中,BGP协议import进入IGP协议时,默认只能将EBGP邻居学习并加表的路由导出进入IGP协议;可以通
过参数 permit-ibgp ,将IBGP邻居学习路由以及自身network通告引入的路由 也引入进IGP协议.
增加BGP协议的安全性:
1.BGP路由认证:BGP的路由认证信息存在于TCP数据结构中,密码信息使用MD5 方式
2.限制BGP邻居的TTL值
启用BGP协议路由认证
启用BGP TTL限制
BGP邻居关系重置
1.重启BGP邻居
2.开启BGP路由刷新能力(默认该属性已开启)
重置BGP邻居(断开三次握手,重新建立)
BGP 路由惩罚
特点:
1.被惩罚的路由不能参与选路,不能加入本地的IP路由表,不能传递
2.路由惩罚仅仅针对EBGP邻居学习的路由,并且针对的是某一个邻居传递的路由
并非路由条目本身
惩罚值:路由条目每翻滚一次,惩罚值增加1000,路由属性每翻滚一次惩罚值增
加500, 1000 500 是硬件编码的,不能修改
惩罚门限:超过了惩罚门限开启进行路由惩罚,默认值为2000
重用门限:当惩罚值低于该值,重新使用该路由信息,默认为750
半衰期:默认为15分钟
思科:设置了一个最大的惩罚时间默认为 60分钟
注意: 在思科中,最大惩罚值是计算出来的,所以值修改路由惩罚参数时,需要
提前运算,保证最大惩罚值一定是大于惩罚门限的
华为:最大惩罚值 ,默认为16000
BGP选路:
选路条件: BGP路由必须有效,无环的,不能被惩罚 。
当到达同一目的地存在多条路由时,BGP依次对比下列属性来选择路由:
优选协议首选值(PrefVal)最高的路由。
协议首选值(PrefVal)是华为设备的特有属性,该属性仅在本地有效。
1.
2. 优选本地优先级(Local_Pref)最高的路由。
依次优选手动聚合路由、自动聚合路由、network命令引入的路由、importroute命令引入的路由、从对等体学习的路由。(next-hop为 0.0.0.0 最优先)
3.
4. 优选AS路径(AS_Path)最短的路由。
5. 依次优选Origin类型为IGP、EGP、Incomplete的路由。
6. 对于来自同一AS的路由,优选MED值最低的路由。
依次优选EBGP路由、IBGP路由(联邦EBGP、联邦IBGP)、LocalCross路由、RemoteCross路由。
PE上某个VPN实例的VPNv4路由的ERT匹配其他VPN实例的IRT后复制到该VPN实例,
称为LocalCross;从远端PE学习到的VPNv4路由的ERT匹配某个VPN实例的IRT后复
制到该VPN实例,称为RemoteCross。
7.
8. 优选最近的下一跳(下一跳地址在本地路由表中的metric值)
9. 可以执行负载均衡
最小的router-id (若存在起源者属性比较第11条 router-id时使用起源者属性进行
比较 )
10.
11. 优选 Cluster_List 最短的路由
12. 最小的peer IP地址
Preference value : 优先级值 华为私有 (cisco 中使用weight 权重值)
作用: 选路
数值范围: 0-65535 , 越大越优,默认值为0
仅仅在本设备上生效,不能传递