BGP详解

BGP:

BGP是建立在TCP之上的  端口号为179

AS:(两者是区分开来的)特指被相关机构管理  运行相同路由协议的一组路由器(中国人只能和中国人说,外国人和外国人说)

BGP是运用在AS之间的

BGP的前身是EGP,EGP只能在AS之间简单的传递路由信息,不会对路由进行任何优选,也没有考虑如何在AS之间避免路由环路等问题,BGP一般运营在运营商的核心网

BGP的邻居发现:

先启动BGP的一端先发起TCP连接,如图所示,RTB先启动BGP协议,RTB使用随机端口号向RTA的179端口发起TCP连接。

路由器是通过物理口去建立邻居的;Loopback也能建立,前提是必须要有路由,需要建立一个动态路由或者静态路由。

源是12.1.1.1 目的2.2.2.2

源是2.2.2.2 目的 10.1.1.1

没有匹配,即三次握手没有成功

AS号的分类:

1-64511 由IANA统一分配

64512-65535 私有企业或者自行分配

特点:BGP可以跨越多跳路由器建立邻居关系,非常吊

邻居关系:

EBGP(外部网关边界协议):运行在不同AS之间的BGP路由器建立的邻居关系,默认的优先级是225,默认的TTL是1

IBGP(内部BGP协议):运行在相同AS之间BGP路由器建立的邻居关系,默认的优先级是225,默认的TTL是255

[R1]router id 1.1.1.1   (标识路由器)

[R1]bgp 100 (配置邻居关系)

[R1-bgp]peer 2.2.2.2 as-number 100 (peer后面是对端邻居的接口地址,as-number后面是邻居路由器所在的AS号,AS号相同,就是IBGP邻居关系,AS号不同,就是EBGP邻居关系)

PS:建立IBGP邻居关系是时,一般使用loopback接口的IP地址,因为loopback接口开启后一直处于UP状态,只要保证路由可达,邻居关系就会处于稳定状态。而建立EBGP邻居关系时,一般使用直接接口的IP地址,因为EBGP是跨AS建立邻居关系,邻居关系建立之前非直连接口之间的路由不可达

BGP邻居关系配置的优化

在路由器上敲

[R1]router id 1.1.1.1   (标识路由器)

[R1]bgp 100 (配置邻居关系)

[R1-bgp]peer 2.2.2.2 as-number 100

[R1-bgp]peer 2.2.2.2 connect-interface LoopBack 0 (修改更新源,路由器默认是物理口建立可连接)

报文:

Open keeplive update route-refresh notification

open:邻居建立发送的第一个报文 协商参数

keeplive:周期性发送,去看链路是否正常

update:去更新路由信息

①更新路由属性相同的多个路由条目

②更新路由不可达的路由条目(删除)

route-refresh:当路由策略改变的时候会发送该报文去请求新的路由条目

notification:当邻居失效就会发送这个报文

一:Idle:BGP的初始状态,不会去接受任何邻居发来的任何请求

二:connect:如果成功了就进入OPEN SENT状态,如果失败了会根据重传计时器重新发起链接,同时切换到Active状态。也就是说,只要在Connect状态,就证明BGP正在试图建立连接,而不是等候。

①连接成功

②连接不成功

③请求超时

三:active:请求连接,向邻居去请求连接的,在OPENSENT的时候,如果BGP链接忽然丢失,也会进入这个状态。

第一种 请求成功 connect

第二种  请求不成功

第三种  请求超时

四:opensent

对收来的open报文进行检查,如果有错误,系统就会发送一条出错通知消息并退回到Idle状态,如果没有错误,BGP就开始发送Keepalive 报文,并复位Keepalive 计时器,开始计时。协商成功  进入下一个状态

五:opencomfirm:如果收到了一个Keepalive 报文,就转入Established 阶段,BGP邻居关系就建立起来了。如果TCP连接中断,就退回到Idle 状态。

六:establish:BGP 邻居关系已经建立,这时,BGP将和它的邻居们交换Update 报文

TTL:经过一台路由器,并且经过解封装和重新封装以后的源地址和目标地址不变,这时候,TTL减1

BGP通告原则之一:仅将自己最优的路由发给邻居

将10.1.1.0/24这个路由发布给邻居

下一跳自我:

看上图可知,10.1.1.0/24的下一跳是1.1.1.1,他就会把1.1.1.1发送给邻居,其他路由器也就接受到了这个1.1.1.1,但是,这些路由器并不能直接通信,因为下一跳是直接到达1.1.1.1了,所以,不是最优的路由,没有到达直连的那个路由器,所以,需要修改下一跳,把下一跳设置为从传到他的那个路由

如上图所示,它的下一跳就改变了,他就能把这个最优路由发布给其他的邻居,其他的路由器通过这个直连的下一跳,也就能通信了。

配置命令:[R2-bgp]peer 4.4.4.4 next-hop-local

BGP通告原则之二:通过EBGP获得的最优路由发布给所有BGP邻居

BGP通告原则之三:从IBGP学到的最优路由不会发给其他的IBGP邻居、(也是IBGP的水平分割)

R3从R1通过EBGP学来的10.1.1.0/24的路由发送给R2,但是R2不会通过IBGP把10.1.1.0/24学来的路由发送给R4,所以,R4是不会接收到10.1.1.0/24这条路由的

BGP通告原则之四:BGP与IGP的同步

也就是把BGP的路由表和IGP的路由表同步

华为默认关闭

IBGP水平分割:从IBGP学到的最优路由不会发给其他的IBGP邻居、

路由黑洞

解决:

1.全互联(TCP会话过多,资源占用就大了)

2.路由的引入,把BGP的路由引入到IGP中

前两个不是太靠谱,因为BGP有上万个路由条目,IGP只有几千个

3.MPLS

BGP路由信息处理

当从BGP邻居接收到Update报文时,路由器将会执行路径选择算法,来为每一条前缀确定最佳路径

得出的最佳路径被存储到本地BGP路由表(local_RIB)中,然后被提交给本地IP路由表

BGP的属性

公认:在Update报文当中,可以支持和识别的属性

①公认必遵:在Update报文当中,必须携带的属性

②公认任意:可以不携带在update报文当中

可选:在update报文当中,可以不识别的属性

可选过渡:本BGP路由器不识别的属性,但是可以把该属性传递给邻居

可选非过渡:本BGP路由器忽略的属性,并且不传递给邻居

BGP属性-Origin

Origin属性定义路径信息的来源,标记一条路由是怎么成为BGP路由的

orgin的三种属性:

i表明BGP路由通过network命令注入

e表明BGP路由是从EGP学来的(现在EGP不用了,但是可以通过路由的策略修改为e)

?即incomplete(路由引入)表明BGP路由通过其他方式学来的路由信息

三种Origin属性的优先级为:i>e>Incomplete(?)

通过EGP学习来的   E

incomplete(路由引入)

AS-PATH:记录了路由经过的所有AS的编号

规定AS_PATH越短(记录的AS编号越少),路径越优

BGP属性-Next_hop

1.EBGP邻居之间采用直连接口建立邻居关系,EBGP邻居在相互通告路由时会修改Next-hop为自己的出接口IP;

2.IBGP邻居通常采用Loopback接口建立邻居,当路由时本路由器起源的,在发送给邻居之后Next-hop该为自己的更新源地址,这样即使网络中出现链路故障,只要Next-hop可达,同样可以访问目的网段,提高网络稳定性

MED(以小为优)

仅在相邻的两个AS之间传递,收到此属性的AS不会再通告给任何第三方AS,用于判断流量进入AS时的最佳路由 和Local_Preference一样,也是设置怎么走

Local_Preference(以大为优)

Local_Preference属性仅在IBGP邻居之间有效,不通告给其他的AS。它表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由 设置怎么走,往哪里走,控制往哪里走,默认是100

BGP路由优选原则

BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由选择,路由选择有三种情况

1.该路由到达目的地唯一的路由,直接优选

2,对到达同一目的地的路由多条路由,优选优先级最高的

3.对到达同一目的地具有相同优先级的多条路由,必须用更细的原则去选择一条最优的

一般来说,BGP计算路由优先级的规则如下

1.丢弃下一跳不可达的路由

2.优选Preference_Value值最高的路由(私有属性,进本地有效)

3.优选本地优先级最高的路由

4.优选手动聚合>自动聚合>network>import>从对等体学到的

5.优选AS_Path最短的路由

6.起源类型IGP>EGP>Incomplete

7.对于来自同一AS的路由,优选MED值最小

8.优选从EBGP学来的路由(EBGP>IBGP)

9.优选AS内部IGP的Metric最小的路由

如果前九条都是一样的话,就会出现负载分担

但是,BGP不会让他出现负载分担的

10.优选Cluster_List最短的路由

11.优选Orginator_ID最小的路由

12.优选Router_ID最小的路由器发布的路由

13.优选具有较小的IP地址的邻居学来的路由

Preference_Value是BGP的私有属性(华为的私有属性),Preference_Value相当于BGP选路规则的Weight值,仅在本地路由器生效,Preference_Value值越大,越优先

引入一个默认路由

第一种方式

[R1]bgp 100

[R1-bgp]peer 2.2.2.2 default-route-advertise

第二种方式

[R1]ip route-static 0.0.0.0 0.0.0.0 NULL 0(目的是让默认路由出现在igp路由表里)

[R1-bgp]network 0.0.0.0 0

手工汇总:

第一种:

[R1]ip route-static 123.0.0.0 8 NULL 0

[R1-bgp]network 123.0.0.0 8

第二种:

aggregate 123.0.0.0 8

收到的是明细路由和汇总路由

路由反射器(RR)

1.客户机

2.服务器

3.非客户机

相当于一面镜子,通过这面镜子进行反射

[R2-bgp]peer 3.3.3.3 reflect-client

怎么改最优

①从EBGP学来的路由会发给所有的客户机和非客户机

②从非客户机学来的路由会发给所有的客户机

③从客户机学来的路由会发给除了该客户机以外的所有客户机和非客

时间: 2024-10-16 06:13:05

BGP详解的相关文章

BGP路由协议详解(完整篇)

原文链接:http://xuanbo.blog.51cto.com/499334/465596/ 2010-12-27 12:02:45 上个月我写一篇关于BGP协议的博文,曾许诺过要完善这个文档,但因最近的工作和授课很忙,所以没有时间进行完善.为了实现这个承诺,我在去外地出差期间对BGP协议详解博文进行一些修改,其中内容包括了一些实验,以及一些内容的补充和深入阐述,更宜于网友们学习BGP路由协议.因为这个文档出来的很晚,也希望网友们见谅! 此BGP协议的内容也不算太难,一些关于BGP的高级应用

linux查看端口及端口详解

今天现场查看了TCP端口的占用情况,如下图 红色部分是IP,现场那边问我是不是我的程序占用了tcp的链接,,我远程登陆现场查看了一下,这种类型的tcp链接占用了400多个,,后边查了一下资料,说ESTABLISHED状态 ESTABLISHED的意思是建立连接.表示两台机器正在通信.      之后查找  ncube-lm  发现ncube-lm是一个端口,是nCube License Manager (即ncube管理的一个许可证明),意思是被允许,被认证开放的意思,,, 之后查看端口号 是1

网络互联参考模型(详解)

转自:真实的归宿  分类: 网络知识(7)  socket网络编程(7)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 网络互联参考模型 1. 什么是协议 为了使数据可以在网络上从源传递到目的地,网络上所有设备需要"讲"相同的"语言" 描述网络通信中"语言"规范的一组规则就是协议 例如:两个人交谈,必须使用相同的语言,如果你说汉语,他说阿拉伯语-- 数据通信协议的定义 决定数据的格式和传输的一组规则或者一组惯例 2.

OSPF详解之三:OSPF LSA详解

OSPF LSA详解 OSPF V2版本中常用的主要有6类LSA,分别是Router-LSA.Network-LSA.Network-summary-LSA.ASBR-summary-LSA.AS-External-LSA.NSSA-LSA,接下来我将一步一步为大家解析. Type 1:Router-LSA 每个设备都会产生,描述了设备的链路状态和开销,在所属的区域内传播. 谈到1类LSA,大家必然会想到它的链路类型,链路类型分为4类:P2P.Stub.Transit.Vritual link.

多自制系统之间MPLS VPN 实施详解

实验拓扑入上如图所示: 基础配置说明: 所有设备都配置lo 0 地址,地址为设备序列号如R1(1.1.1.1/32); 设备互联地址使用10.1.R1R2.R1,如R1和R2互联地址就为10.1.12.1; AS100 配置ospf进程100,AS200配置OSPF进程200,lo 0接口通告进OSPF进程; 基本配置: 在AS100和AS200中配置OSPF进程100和200 在AS100和AS200中配置mpls PE-CE路由器之间配置OSPF,并在PE路由器上相互重分发 配置思路: PE

App域名劫持之DNS高可用 - 开源版HttpDNS方案详解(转)

http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=209805123&idx=1&sn=ced8d67c3e2cc3ca38ef722949fa21f8&3rd=MzA3MDU4NTYzMw==&scene=6#rd 主题 开源 本文根据冯磊和赵星宇在“高可用架构”微信群所做的HttpDNS智能缓存库原理整理而成,转发请注明来自微信公众号ArchNotes. 冯磊,目前主要从事手机应用平台的构建,任职新浪网技术

详解路由策略和策略路由

在网络设备维护上,现在很多维护的资料上都讲到“路由策略”与“策略路由”这两个名词,但是有很多搞维护的技术人员对这两个名词理解的还不是很透彻,无法 准确把握这两者之间的联系与区别.本文简单分析一下这两者之间的概念,并介绍一些事例,希望大家能从事例中得到更深的理解. 一.路由策略 路由策略,是路由发布和接收的策略.其实,选择路由协议本身也是一种路由策略,因为相同的网络结构,不同的路由协议因为实现的机制不同.开销计算规则 不同.优先级定义不同等可能会产生不同的路由表,这些是最基本的.通常我们所说的路由

tco/iP协议族——IP工作原理及实例详解(下)

 IP协议详解 上一篇文章文章主要介绍了IP服务的特点,IPv4头部结构IP分片,并用tcpdump抓取数据包,来观察IP数据报传送过程中IP的格式,以及分片的过程.本文主要介绍IP路由,IP转发,重定向和IPv6头部结构. IP路由 IP协议的一个核心任务是数据报的路由,即决定发送数据报到目标机器的路径.为了理解IP路由过程,我们先简要分析IP模块的基本流程. IP模块工作流程 从右往左分析上图,它首先对该数据报的头部做CRC校验,确认无误之后就分析其头部的具体信息. 如果该IP数据报的头

TCP-IP协议、状态详解

今天对TCP-IP协议做一个简单总结.以便日后自己查看. 本文通过两个图来梳理TCP-IP协议相关知识.TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道. 如图1所示,给出了TCP通信过程的示意图. 图1主要包括三部分:建立连接.传输数据.断开连接 一.概述: 1)建立TCP连接很简单,通过三次握手便可建立连接. 2)建立好连接后,开始传输数据.TCP数据传输牵涉到的概念很多:超时重传.快速重传.流量控制.拥塞控制等等. 3)断开连接的过程也很简单,通过四次握手完成断