BGP初解笔记

BGP(公网用得多):

一、名词:

1、BGP speaker:启用了BGP进程的路由器

2、BGP对等体:双方建立BGP邻居关系的设备:

a.IBGP对等体,AS号一致,为IBGP对等体,有水平分割,从一个接口接到的路由信息,不会发给其它接口的IBGP邻居。

b.EBGP对等体,不同的As号之间,为EBGP,没有水平分割,接到的路由信息,会广播发给其它所有的对等体。(EBGP防环原则:AS-PATH,发现存于本地一致的AS号,则不接收该更新,称为EBGP水平分割)

3 、路由黑洞

到了别人以为你能达到,但丢过来,发现自己没有路由,于是丢包到黑洞中

解决方式:

  1. MPLS:LDP,标签,POP弹出、压入...
  2. 路由反射器RR
  3. BGP联盟(少用)
  4. 全互联(少用)

4 、Why BGP

a.负载分担,如果是IGP的OSPF的话,就走单一路径

b.能够承载大批量的路由信息,以万起步,能够支撑大规模网络;提供了丰富的路由策略,能够灵活进行路由选择;能够支撑MPLS VPN的应用(公网运营商最常用的技术),传递客户VPN路由(内网vpn常用IPsec、gre over ipsec等);BGP提供了路由聚合和路由衰减功能防止网络路由振荡,提高网络稳定性。

5 、BGP 的13 条选路原则:

BGP 的5 种报文:

  1. Open用于建立BGP对等体之间的连接关系;
  2. Keepalive 1、Open报文的回应包2、周期性地向BGP对等体发出keepalive信息,用于保持连接的有效性;
  3. Update携带路由更新(删、增)信息;
  4. Notification当BGP检测到错误状态时,向对等体发出Notification消息,之后BGP连接会立即关闭;
  5. Route-refresh要求对等体重新发送指定地址族的路由信息;

状态:

IdelàconnectàActiveàOpenSentàOpenconfirmàEstablishedàIdel

属性分类:

a.公认必遵:Origin、AS-Path、Next-Hop

b.公认可选:Local-Pref、Atomic-Aggregate

c.可选传递:Community、Aggregator

d.可选非传递:MED、Cluster-List、Originator-ID

*Origin定义路由来源,相同情况下,BGP会比较Origin属性来确定到达相同目的地的最佳路由:IGP>EGP>Incomplete

13 种选路原则:

  1. 优选Preferred-value值最大的路由;
  2. 优选本地优先级(Local-Pref)最高的路由;
  3. 依次选择Network命令生成的路由、Import-route命令引入的路由、聚合路由
  4. 优先AS-Path最短的路由
  5. 优选Origin属性为IGP、EGP、IBGP的路由;
  6. 优先MED值最低的路由;
  7. 优先选择从EBGP、联盟BGP、联盟IBGP、IBGP学到的路由;
  8. 优选下一跳度量值最低的路由;
  9. 优先Cluster-List长度最短的路由;
  10. 优选Originator-ID最小的路由;
  11. 优先Router-ID最小的路由器发布的路由;
  12. 优选地址最小的对等体发布的路由;
相关推荐
70asunflower2 分钟前
[特殊字符] Flameshot 完全指南:Ubuntu 下的终极截图工具
linux·运维·ubuntu
千航@abc4 分钟前
Win10/Win11 DCOM服务器进程启动器 CPU 占用过高解决方法
运维·安全·病毒·window10·window11·dcom进程·系统进程资源占用高
hwj运维之路11 分钟前
Docker面试题汇总系列
运维·docker·云原生·容器
蜡笔小炘12 分钟前
LVS -- 部署NAT模式集群案例
linux·运维·服务器·lvs
我怎么又饿了呀13 分钟前
CentOs 10 虚拟机安装【解决方法】VMware无法打开内核设备,未能启动虚拟机
linux·运维·centos
冰冰的coco18 分钟前
如何设置需要sudo的命令开机自启动
linux·运维·服务器
辞旧 lekkk20 分钟前
【Linux】Linux进程控制(三)自主实现简易shell命令行解释器
linux·运维·服务器·学习·萌新
HIT_Weston31 分钟前
119、【Ubuntu】【Hugo】首页板块配置:Template Lookup Order
linux·运维·ubuntu
wangt595235 分钟前
Ubuntu22.04.5的网络配置在重启后被重置的问题
linux·运维·服务器
不被定义的程序猿36 分钟前
如何使用docker搭建一个 aarch-linux-gun-gcc的交叉编译环境
linux·运维·服务器