BGP

BGP:边界网关协议
协议应用范围:BGP , AS之间使用协议
协议更新中是否携带网络掩码:携带网络掩码(CIDR与VLSM都支持)
协议算法:无算法,一种规则,路径矢量型,简单理解:传输的路径怎么走,跨越不同AS
凡是数学算法肯定是有一个上限值的,当路由条目很多的话,算法不支持
协议封装:基于TCP封装 ,端口号 179
也正是因为BGP是基于TCP封装,所以报文没有ACK报文,同样的BGP是不需要周期更新的(路由条目过多),
一、BGP 特点:

  1. BGP 版本 V1 V2(EGP) V3 V4 (BGP) V4±–MP-BGP(支持多种协议)
    BGP V4只是支持IPV4协议,所以引出V4+,默认功能是关闭的,需要命令激活。
  2. BGP一般被用于大型网络 —是一种路径矢量型路由协议
  3. BGP更新方式:触发更新
  4. BGP更新地址:单播更新 原因与TCP有关,建立三次握手机制是单播
  5. BGP存在大量的属性,基于策略(属性)选路
  6. BGP使用open报文建立邻居,使用keepalive 报文维持邻居关系
  7. keepalive 周期间隔60s hold 时间为180s
  8. BGP支持路由认证
  9. BGP支持路由聚合(汇总),支持VLSM CIDR
  10. BGP非常消耗路由器资源(一个路由器只能运行1个BGP进程)
    二、BGP适合网络
    1 .多宿主 到达外网有多条AS路径
    2 .传输AS中 单宿主,比如电信进来多个用户,为其转发各自的需求
    3 .对进行进入、离开的流量进行强大的路由策略时
    三、BGP AS号 、邻居关系
    AS号 :1-65535 ,公有AS—1-64511,私有AS—64512-65535
    IBGP:内部BGP邻居关系,同一个AS之内建立BGP邻居
    EBGP:外部BGP邻居关系,在不同AS之间建立BGP邻居
    IBGP邻居学习到路由的AD: 200
    EBGP邻居学习到路由的AD:20
    至于原因也很好理解,我BGP本身就是为了不同AS之间传递路由,内部我根本就不想让运行BGP,传递路由完全可以依靠IGP协议,每一个都会比200小。
    Local BGP 路由:本地BGP路由值 200 (与重发布有关)
    四、BGP的防环机制
    IBGP:IBGP水平分割,起源者属性,cluster ID 簇ID ,通过一个IBGP 邻居学习的路由不能传递给其他的IBGP邻居(IBGP只传一跳原则)
    BGP可以跨越直连建立邻居,IGP为什么不行?这是因为IGP协议是使用组播更新,也叫本地链路组播地址,只能在局域网之间传递,所以IGP协议一般都是直连建立邻居,当然RIP可以关闭直连检测,但是路由只能传一跳。
    而BGP建立邻居是基于TCP三次握手的,只要找到源和目标在哪就行。
    IBGP的防环也叫IBGP的水平分割,但是这样做可能会导致数据层面的路由黑洞,这里后面会解决。

EBGP:AS-Path 防环,当一条路由传递出某个AS时,在AS-Path属性中增加自身所属AS号,所有路由器默认不接收AS-Path包含自身AS 号的路由信息

五、BGP消息数据包
在这里插入图片描述
Open:用于BGP邻居关系建立,仅仅发送一次
在这里插入图片描述
Keepalive :用于BGP邻居关系的维持,默认60s发送一次
在这里插入图片描述
Update :路由更新,用于通告路由;用于撤销路由
在这里插入图片描述

撤销路由withdrawn
在这里插入图片描述
路由通告,使用TCP 中的ACK进行确认
Notification :报告(错误报告),用于通告BGP错误
故意指定错误AS
在这里插入图片描述
六、BGP邻居关系建立
Down :关闭BGP状态 (比如出现错误报告时就会down)
idle :开始建立TCP连接状态(查看自己是否有到达对方的路由表项)
Connect (active):TCP会话建立完成 (主动发起会话的就是active,被动响应的就是connect)
Opensent (openconfirm):发送open (一般由先主动发起握手的发送open报文,进入opensent,收到open报文,进入openconfirm,也会恢复open报文,对方从opensent到openconfirm)
Established:BGP邻居建立(发送keepalive进入,其实在第二个open报文中就携带了keepalive报文)
在BGP邻居建立过程中,仅仅发送open报文
七、BGP部署
IBGP内部使用IGP协议
IBGP建立邻居

  1. 直连建立邻居
    在这里插入图片描述
    指定router-id的作用是为了标识唯一性,作用是为了非直连建立邻居,找到对方的位置在哪。Remote-as是对方的BGP进程号
  2. 非直连建立邻居(先保证三次握手,也就是非直连之间可以拼通)
    在这里插入图片描述
    接着查看邻居关系
    在这里插入图片描述
    为什么会处于active状态呢?
    这个和三次握手没有什么关系,很正常,出现这个的问题是因为不管是R3访问R4还是R4访问R3,源地址都为递归到出接口地址上,也就是34.1.1.1和34.1.1.2,这样发送open报文,R4收到后,发现地址不是3.3.3.3就不会接收。
    修改为应该发的地址即可:
    在这里插入图片描述
    改一边即可,当然两边都改也可以。

IBGP邻居表查看
在这里插入图片描述
简单介绍BGP邻居表
对方建立邻居的地址,对端AS 内部链路(internal link)
版本号V4(其实是V4+),对方router-id
BGP建立状态 时间
最后一次读写时间,hold时间,keepalive时间
Neighbor 特性
在这里插入图片描述
路由刷新(比如IGP之间改变后会经常down掉邻居关系,重新建立邻居,而BGP支持路由刷新,支持不断开TCP连接直接发送信息)
支持新的AS的标识
IPV4家地址标识符(默认是IPV4的,可以修改)
在这里插入图片描述
消息队列深度
进向深度
出向深度
BGP最小的通告间隔是5秒,上面显示0秒。什么意思?就是比如针对某一个不断变化属性的路由,就有最小通告间隔。其实会对这些路由进行惩罚。
在EBGP中,最小通告时间是30秒
在这里插入图片描述
这个说明R2是向R3发起TCP三次握手

简单查看
在这里插入图片描述
后面出现数字就是收到多少条路由,如果为字母就是BGP邻居的几个状态信息,默认established不会显示。

EBGP之间建立
1.采用直连建立邻居
在这里插入图片描述
在这里插入图片描述
2.非直连之间建立邻居
先保证非直连之间可以通信(这里不能写缺省,是建立不了的)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
会发现这个依旧不能建立邻居,这个又是为啥?
EBGP之间非直连建立邻居,默认TTL值为1,换句话说就是检测是否直连,不是就不能建立。IBGP的TTL值为255.
解决办法
关闭直连检测:
在这里插入图片描述

一般情况下我们不支持这样做,因为运营商之间建立邻居中间有多少路由器我们不知道,这样的话TTL值还是为1,一样会建立不起来,当然我们把这条命令删除了,邻居关系也不会down,因为在建立过程中只发送一个OPEN报文,需要clear以下
在这里插入图片描述
在这里插入图片描述
这条命令只要后面的数字不为1,默认就是关闭直连检测,并且修改TTL值
在这里插入图片描述
八、路由通告

在这里插入图片描述
路由表版本号为2,因为触发更新了,本地router-id是2.2.2.2
状态码:* 有效 >最优路由 s 该路由被抑制(不会传递) d 惩罚路由 h 惩罚前的警告
i通过IBGP学到 r 加表失败 S 陈旧性的
起源码:i通过BGP引入到的(不管是IBGP 还是EBGP) e 通过EGP学习的
?重发布进入
Metric不是metric,是MED,多出口鉴别属性
只有最佳最优的才会加表
在这里插入图片描述
R3不加表是因为下一跳不可达
需要在R2上敲一条命令,意思是R2传递给R3的路由将下一跳变为自己
在这里插入图片描述
但是R4上是依旧学不到的,这是因为IBGP的水平分割。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值