华为NP课程笔记7-BGP1
一、BGP简介
1、自治系统(Atuonomous System):由同一个技术管理机构管理、使用同一选路策略的一些路由器的集合。自治系统内部的路由协议--IGP。自治系统之间的路由协议--EGP。AS号是2字节(4字节)。两字节范围取值1-65535,其中1-64511为公有,64512-65535为私有。
2、IGP主要有RIP、OSPF、ISIS,着重于发现和计算路由,EGP主要有BGP,着重于控制路由的传播和选择最优的路由。
3、BGP属于边界网关路由协议,是一种增强的距离矢量路由协议
AS内部使用IGP来计算和发现路由,如OSPF,ISIS,RIP等。
AS之间使用BGP来传递和控制路由。
(1)可靠的路由更新机制;
丰富的Metric度量方法;
从设计上避免了环路的发生;
BGP为路由附带属性信息,支持 CIDR,支持丰富的路由过滤和路由策略。
(2)BGP可靠的路由更新:
传输协议:TCP,端口号179(目的端口号 ),无需周期性更新
路由更新:只发送增量路由
周期性发送keepalive报文检测 TCP的连通性
4、BGP报文种类
BGP通过报文的交互完成邻居建立、路由更新等操作,共有Open、Update、Notification、Keepalive和Route-refresh等5种报文类型。
(1)Open:负责和对等体建立邻居关系
(2)KeepAlive:该消息在对等体之间周期性地发送,用以维护连接
(3)update:该消息被用来在BGP对等体之间传递路由信息
(4)Notification:当BGP Speaker检测到错误的时候,就发送该消息给对等体
(5)Route-refresh:用来通知对等体自己支持路由刷新能力
Open报文:是TCP连接建立后发送的第一个报文,用于建立BGP邻居之间的连接关系。BGP邻居在接收到Open报文并协商成功后,将发送Keepalive报文确认并保持连接的有效性。确认后,BGP邻居间可以进行Update、Notification、Keepalive和Route-refresh报文的交换。
Update报文:用于在BGP邻居之间交换路由信息。Update报文可以发布多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。
一条Update报文可以发布多条具有相同路由属性的可达路由,这些路由可共享一组路由属性。所有包含在一个给定的Update报文里的路由属性适用于该Update报文中的NLRI(Network Layer Reachability Information)字段里的所有目的地(用IP前缀表示)。
一条Update报文可以撤销多条不可达路由。每一个路由通过目的地(用IP前缀表示),清楚地定义了BGP路由器之间先前通告过的路由。
一条Update报文可以只用于撤销路由,这样就不需要包括路径属性或者NLRI。相反,也可以只用于通告可达路由,就不需要携带撤销路由信息了。
Notification报文:当BGP路由器检测到错误状态时,就向邻居发出Notification报文,之后BGP连接会立即中断。
Keepalive报文:BGP路由器会周期性的向邻居发出Keepalive报文,用来保持连接的有效性。
Route-refresh报文:Route-refresh用于在改变路由策略后请求对等体重新发送路由信息。
BGP对等体交互过程
BGP路由器报文交互过程:Idle状态是BGP初始状态。在Idle状态下,BGP路由器拒绝邻居发送的连接请求。只有在收到本设备的Start事件后,BGP路由器才开始尝试与其邻居进行TCP连接,并转至Connect状态。
在Connect状态下,BGP路由器启动连接重传定时器(Connect Retry),等待TCP完成连接。
如果TCP连接成功,那么BGP路由器向邻居发送Open报文,并转至OpenSent状态。
如果TCP连接失败,那么BGP路由器转至Active状态。
如果连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器继续尝试与其邻居进行TCP连接,停留在Connect状态。
在Active状态下,BGP路由器总是在试图建立TCP连接。
如果TCP连接成功,那么BGP路由器向邻居发送Open报文,关闭连接重传定时器,并转至OpenSent状态。
如果TCP连接失败,那么BGP路由器停留在Active状态。
如果连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器转至Connect状态。
在OpenSent状态下,BGP路由器等待邻居的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。
如果收到的Open报文正确,那么BGP路由器发送Keepalive报文,并转至OpenConfirm状态。
如果发现收到的Open报文有错误,那么BGP路由器发送Notification报文给邻居,并转至Idle状态。
在OpenConfirm状态下,BGP路由器等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。
在Established状态下,BGP路由器可以和邻居交换Update、Keepalive、Route-refresh报文和Notification报文。
idle状态下每32秒进行TCP连接,进入connect状态,没有TCP连接进入Active状态,连接建立成功进入OpenSent状态,互相收发open报文,进入OpenConfirm状态,互相收发Keepalive报文,进入最后的Established状态。
5、BGP数据库
(1)IP路由表(IP-RIB):全局路由信息库,包括所有IP路由信息(dis ip routing-table)
(2)BGP路由表(Loc-RIB):BGP路由信息库,包括本地BGP Speaker选择的路由信息(dis bgp routing-table)
(3)邻居表:对等体邻居清单列表
(4)Adj-RIB-In:对等体宣告给本地Speaker的未处理的路由信息库
(5)Adj-RIB-Out:本地Speaker宣告给指定对等体的路由信息库
6、基于TCP连接的BGP邻居关系
(1)BGP邻居分为IBGP(自治系统内邻居)和EBGP(自治系统外邻居)。
(2)在建立邻居过程中,使用回环地址需要配置更新源为回环口,否则会导致邻居建立失败。命令如下:
bgp 100
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface loopback 0
对于EBGP,一般使用环回口来建立邻居,环回口使用静态路由来打通。除了需要配置更新源外,还需要配置跳数,因为对于EBGP来说,TTL数值默认为1,当经过一跳后,TTL减为0,所以需要手动配置跳数来避免TTL减到0。(IBGP的TTL数值为255)
bgp 100
peer 3.3.3.3 as-number 200
peer 3.3.3.3 connect-interface loopback 0
peer 3.3.3.3 ebgp-max-hop //配置EBGP多跳,默认为255,后面可以跟数字指定跳数
基本配置:
首先配置AR1-AR5的端口地址和AS 200内的OSPF:
AR1:int lo0ip address 1.1.1.1 32int lo1ip address 11.1.1.1 24int g0/0/0ip address 10.1.12.1 24AR2:int lo0ip address 2.2.2.2 32int g0/0/0ip address 10.1.12.2 24int g0/0/1ip address 10.1.23.2 24ospf 100 router-id 2.2.2.2area 0network 2.2.2.2 0.0.0.0network 10.1.23.2 0.0.0.0AR3:int lo0ip address 3.3.3.3 32int g0/0/0ip address 10.1.34.3 24int g0/0/1ip address 10.1.23.3 24ospf 100 router-id 3.3.3.3area 0network 3.3.3.3 0.0.0.0network 10.1.23.3 0.0.0.0network 10.1.34.3 0.0.0.0AR4:int lo0ip address 4.4.4.4 32int g0/0/0ip address 10.1.34.4 24int g0/0/1ip address 10.1.45.4 24ospf 100 router-id 4.4.4.4area 0network 4.4.4.4 0.0.0.0network 10.1.34.4 0.0.0.0AR5:int lo0ip address 5.5.5.5 32int g0/0/1ip address 10.1.45.5 24
然后,配置AR1、AR2、AR4、AR5的BGP
AR1:bgp 100 //AS号router-id 1.1.1.1 //router-idpeer 10.1.12.2 as-number 200 //使用端口地址建立邻居关系network 1.1.1.1 32 //宣告网络network 10.1.12.0 255.255.255.0network 11.1.1.0 24AR2:bgp 200router-id 2.2.2.2peer 10.1.12.1 as-number 100 dis bgp peer //查看bgp邻居情况peer 4.4.4.4 as-number 200 //使用AR4的lo0地址建立邻居关系peer 4.4.4.4 connect-interface lo 0 //手动设置更新源为回环口network 2.2.2.2 32network 10.1.12.0 24network 10.1.23.0 24 AR4:bgp 200router-id 4.4.4.4peer 2.2.2.2 as-number 200peer 2.2.2.2 connect-interface lo 0peer 5.5.5.5 as-number 300peer 5.5.5.5 connect-interface lo 0peer 5.5.5.5 ebgp-max-hop 2 //手动配置EBGP最大跳数network 4.4.4.4 32network 10.1.34.0 24network 10.1.45.0 24 quitip route-static 5.5.5.5 32 10.1.45.5AR5:bgp 300router-id 5.5.5.5peer 4.4.4.4 as-number 200 peer 4.4.4.4 connect-interface lo 0peer 4.4.4.4 ebgp-max-hop 2network 5.5.5.5 32network 10.1.45.0 24quitip route-static 4.4.4.4 32 10.1.45.4dis bgp routing-table //查看BGP路由
此时各个邻居正常建立,但路由是不通的,AR5无法PING通AR1:
7、BGP路由通告原则
(1)连接一建立,BGP Speaker将把自己所有BGP路由通告给新对等体;多条路径时,BGP Speaker只选最优的给自己使用;BGP Speaker只把自己使用的最优路由通告给对等体。
(2)BGP Speaker从EBGP获得的路由会向它所有BGP对等体通告(包括EBGP和IBGP)
从EBGP获得的路由,下一跳地址是AS外的地址,其他路由器是没有该条路由的,这样当BGP Speaker将EBGP发给IBGP时,收到的路由会因为下一跳将不可达;为保证IBGP下一跳可达,手动设置改下一跳为本地,也就是传递路由时,将NextHop地址变更为自己建立邻居使用的地址,从而保证其他路由器收到后,该路由NextHop地址一定可达。
保证nexthop一定可达,这条路由就被标记为最优路由,就可以继续通告给其他对等体,非最优路由是不会被通告给其他对等体的。
bgp 100
peer 1.1.1.1 as-number 100
peer 1.1.1.1 next-hop-local
以第6条案例为例,更改前的bgp routint-table
进行如下配置后,NextHop地址变更为2.2.2.2(也就是AR2和AR4建立邻居关系使用的回环口地址)
AR2:
bgp 200
peer 4.4.4.4 next-hop-local
(3)BGP Speaker从IBGP获得的路由不会通告给它的IBGP邻居,从而防止环路,这也叫IBGP的水平分割。
还是以第6条为例,AR5去往AR1的数据包,到达AR3时,因为AR3没有去AR1的路由,就会把数据包丢掉,因此AR5、AR1无法互通。
解决方案:IBGP全互联
IBGP逻辑全互联,会导致AS内部的路由器需要维护更多的IBGP会话,可以使用路由反射器和联盟这两个工具来简化
(4)BGP Speaker从IBGP获得的路由是否通告给 它的EBGP对等体要依靠IGP和BGP同步的情况来决定。华为设备里,默认关闭这个功能,且无法打开。
8、BGP路由的宣告途径
(1)network 命令,使用的正掩码。BGP中network的是路由信息,而不是OSPF中的接口信息。路由表中的路由都可以在BGP中精确的宣告,网络位和掩码要严格匹配,不要求接口下必须有这个地址。
(2)import-route命令,类似于OSPF
bgp 200
import-route ospf
import-route direct
华为NP课程笔记7-BGP1相关推荐
- 斯坦福大学李飞飞团队图像分类课程笔记
斯坦福大学李飞飞团队图像分类课程笔记 Stanford image classification course notes 这是斯坦福CS231n课程图像分类基础知识. 目标:这一节先介绍图像分类基本 ...
- Udacity机器人软件工程师课程笔记(五)-样本搜索和找回-基于漫游者号模拟器-自主驾驶
9.自主驾驶 在接下来的环节中,我们要实现漫游者号的自动驾驶功能. 完成这个功能我们需要四个程序,第一个为感知程序,其对摄像头输入的图片进行变换处理和坐标变换使用.第二个程序为决策程序,功能是帮助漫游 ...
- CS231n课程笔记翻译:图像分类笔记(下)
译者注:本文翻译自斯坦福CS231n课程笔记image classification notes,课程教师Andrej Karpathy授权翻译.本篇教程由杜客进行翻译,ShiqingFan和巩子嘉进 ...
- CS231n课程笔记翻译:图像分类笔记(上)
译者注:本文翻译自斯坦福CS231n课程笔记image classification notes,由课程教师Andrej Karpathy授权进行翻译.本篇教程由杜客翻译完成.ShiqingFan对译 ...
- Coursera吴恩达《优化深度神经网络》课程笔记(1)-- 深度学习的实用层面
红色石头的个人网站:redstonewill.com Andrew Ng的深度学习专项课程的第一门课<Neural Networks and Deep Learning>的5份笔记我已经整 ...
- Coursera吴恩达《神经网络与深度学习》课程笔记(3)-- 神经网络基础之Python与向量化
红色石头的个人网站:redstonewill.com 上节课我们主要介绍了逻辑回归,以输出概率的形式来处理二分类问题.我们介绍了逻辑回归的Cost function表达式,并使用梯度下降算法来计算最小 ...
- 数据挖掘课程笔记6 : Numpy、Pandas和Matplotlib包基础知识
#2018-03-22 10:23:16 March Thursday the 12 week, the 081 day SZ SSMR http://blog.csdn.net/eastmount/ ...
- 西湖大学张岳老师NLP课程笔记1 Introduction
西湖大学张岳老师NLP课程笔记1 Introduction 参考资料 B站链接 课程主页 <Natural Language Processing: A Machine Learning Per ...
- 【CS231n】斯坦福大学李飞飞视觉识别课程笔记(四):图像分类笔记(上)
[CS231n]斯坦福大学李飞飞视觉识别课程笔记 由官方授权的CS231n课程笔记翻译知乎专栏--智能单元,比较详细地翻译了课程笔记,我这里就是参考和总结. [CS231n]斯坦福大学李飞飞视觉识别课 ...
- CS231n课程笔记翻译3:线性分类笔记
译者注 :本文 智能单元 首发,译自斯坦福CS231n课程笔记 Linear Classification Note ,课程教师 Andrej Karpathy 授权翻译.本篇教程由 杜客 翻译完成, ...
最新文章
- 关于卡券系统设计--待续
- 点击一百万次(详解)——bugku
- 强化学习(十七) 基于模型的强化学习与Dyna算法框架
- C算法编程题(一)扑克牌发牌
- Windows——系统盘隐藏分区功能
- 怎么在数据库服务器解压文件,数据库服务器9怎么解压
- oracle报错00838,oracle11g的内存分配不当,导致的错误ORA-01034,ORA-00838,ORA-27101
- Android UI之困 横跨四个屏幕的战争
- java中父类与子类, 不同的两个类中的因为构造函数由于递归调用导致栈溢出问题...
- 【翻译】Prometheus 2.4.0 新特性
- 小白python教学视频教程_小白零基础入门Python开发全套完整版
- powerbuilder只能支持cp850字符集吗_杜比全景声是什么?哪些电视支持杜比全景声...
- nginx普通配置/负载均衡配置/ssl/https配置
- [机器学习]-[数据预处理]-中心化 缩放 KNN(二)
- essential c++源码_Goldenmask - 一键化保护你的 Python 源码
- mysql如何输出一句话_MySQL/ACCESS导出一句话拿WebShell后门命令
- 两年半php,两年半,我收获了什么?
- AdminLTE登录页设置背景图片
- android webview加载H5链接时 没有加载权限弹框的问题
- Java实现短信验证
热门文章
- 空间相关性分析:空间权重矩阵
- 安卓编程用什么软件_手机上能安装PLC编程软件吗?为什么?
- c语言贪吃蛇 纯c,纯C语言贪吃蛇游戏
- 排名前5位的免费Java电子书
- java私塾 shiro_第二章:Shiro入门——深入浅出学Shiro细粒度权限开发框架——私塾在线原创...
- 思科模拟器之工大瑞普版(u7)下载地址
- 电子技术专业基础与实务(中级)考试经验
- HTML代码页面无法跳转为什么,html跳转新页面代码_html页面跳转代码
- Flowable官方指定中国社区成立了
- 一年中所有节日的排列顺序_中国传统节日有哪些 按顺序排列全部