前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15362604.html;今天我们来学习下新的路由协议BGP;

  BGP简介

  BGP的前身EGP设计非常简单,只能在AS之间简单的传递路由信息,不会对路由进行任何优选,也没有考虑如何在AS之间避免路由环路等问题,因而EGP最终被BGP取代;相比于EGP,BGP更具有路由协议的特征,比如邻居的发现和邻居关系的建立;路由的获取,优选和通告;提供路由环路避免机制,并能够高效传递路由,维护大量的路由信息;在不完全信任的AS之间提供丰富的路由控制能力;

  AS简介

  在EGP(exterior gateway protocol,外部网关协议)协议中,引入了AS(autonomous system,自治系统)的概念;所谓AS就是指有同一个技术管理机构管理,使用统一选路策略的一些路由器的集合;ASN(as number,AS编号),主要用来区分不同AS,除了能标识不同自治系统外,它在BGP中还有关键性作用,比如最佳路由的选举、环路避免、路由过滤;;AS的内部使用IGP(interior gateway protocol,内部网关协议)来计算和发现路由,比如ospf,RIP,IS-IS等;同一个AS内部的路由器之间是相互信任的,因此IGP的路由计算和信息泛洪完全处于开放状态,人工干预很少;即IGP建立邻居,发送hello包,计算路由,发现路由都是自动的,只要配置好对应的动态路由协议以后,建立邻居,发送hello包,计算路由等一系列操作都是自动的;对于不同AS之间的连接需求推动了外部网关协议的发展,BGP作为一种外部网关协议,用于在AS之间进行路由控制和优选;使用BGP作为传递路由的协议,则用户的路由域被作为一个整体和其他路由与进行路由交换,这个路由域就是AS;AS的概念是若干台路由器以及这些路由器组成的网络集合,这些路由器均属于同一管理机构,并执行统一的路由策略;运行BGP协议需要一个统一的自治系统号来标识路由域,即AS编号;每个自治系统都有一个唯一的编号,这个编号由IANA(The Internet Assigned Numbers Authority,互联网数字分配机构)分配;2009年1月之前,只能使用最多2字节长度的AS编号,即AS编号范围为0-65535,0和65535是保留;其中1-64511为公有AS,64512-65534为私有AS;在2009年1月以后,IANA决定使用4直接长度AS,范围是65536-4294967295;

  常见AS号及查询网站

  中国电信163(4134)、中国电信CN2(4809)、中国网通(9929);AS信息查询网站:https://whois.cnnic.cn/WhoisServlethttps://ip.sb/iana-asn/;查看自己属于哪个AS:https://ip.sb/

  BGP的基础作用

  提示:如上图所示,BGP主要用于多个AS之间传递和控制路由信息;AS内部使用IGP来计算和发现路由,如ospf,IS-IS,RIP等;

  BGP协议特点

  提示:如上图所示,BGP可以可以跨越多跳路由器建立邻居关系;因为BGP是在AS之间传递路由,为保证数据的可靠性,BGP使用TCP作为其承载协议建立连接(主要是TCP可靠),因此与IGP逐跳路由器建立邻居不同,BGP可以跨越多跳路由器建立邻居关系;AS之间的路由器是不完全相互信任的,为实现路由按需求进行控制和优选,BGP设计了诸多属性;BGP是路径矢量协议,工作在TCP的179端口;仅支持增量式、触发式更新,它没有周期更新,提供定期存活消息验证TCP连接,即心跳包(keepalived)来检测邻居的存活,默认心跳包是每60秒发送一次,如果在3个周期都没有收到对方的心跳,此时对应BGP路由器就会认为对方挂了,即邻居断开;丰富的度量标准,即路径矢量或属性;专为大型互联网而设计,优于距离矢量协议;

  为什么要使用BGP呢?

  1、大量路由需要承载,IGP只能容纳千跳,而BGP可以容纳上万条路由;

  2、支撑MPLS/VPN的应用,传递客户VPN路由;

  3、策略能力强,可以很好的实现路由决策与数据控制;

  BGP邻居概述

  BGP Speakers:指运行BGP协议的路由器;

  BGP Peers:指BGP邻居或者BGP对等体;

  邻居关系建立在TCP连接的基础上,因此邻居不一定需要直连,可以通过IGP或静态路由来提供TCP连接的可达性;BGP建立邻居和IGP不同,IGP需要邻居直连(P2P除外,它可以不直连,但一般不推荐),使用组播,单播建立邻居,而BGP只能单播建立邻居;邻居必须手动指定,而非自动建立;建立邻居和IGP也不同,IGP协议只要配置好,对应邻居会自动发现,自动建立,而BGP必须手动指定,怎么建立邻居,和谁建立邻居;一台BGP路由器只能运行在一个AS内;这个AS我们可以类比ospf里的区域,对于BGP路由器来说,它只能属于一个AS,不像ospf一台路由器可以同时属于多个区域;

  BGP邻居类型

  提示:如上图所示,运行在相同AS内的BGP路由器建立的邻居关系为IBGP(Internal BGP)邻居;运行在不同AS之间的BGP路由器建立的邻居关系为EBGP(External BGP)邻居;

  BGP基础配置

  实验:如下拓扑,配置BGP邻居

  分析:R1和R2在同一个AS内部,所以R1和R2他们建立IBGP邻居,而R2和R3他们处于不同AS,所以R2和R3只能建立EBGP邻居;

  配置好各路由器的接口ip地址

  R1的配置

  R2的配置

  R3的配置

  在R1上配置BGP,指定R2为R1的邻居

  提示:bgp 12后面的数字是指对应bgp所在as的编号,这个和IGP里面配置不同,IGP后面的数字是指对应进程号;其次手动指定邻居需要指定对应邻居的ip地址,以及邻居所属as编号;这样配置以后,R1就会向R2的12.0.0.2的179端口发起TCP三次握手,握手成功以后,开始建立邻居;

  在R1上抓包

  提示:可以看到R1向R2的179端口发送请求连接,但对方一直不搭理R1,所以导致R1的请求连接包一直被重置;其原因是R2上没有运行bgp,当然179端口也没有处于监听,所以R1一直不能建立连接;

  在R2上配置BGP,并指定邻居为R1

  查看R1上的抓包

  提示:可以看到当R2配置好bgp,并指定邻居以后,对应R1TCP三次握手就成功了,对应成功以后,R1向R2发送open包,R2回复R1确认包;对应R2也会向R1发送tcp三次握手,握手成功以后,R2向R1发送open包,R1向R2发送open包,然后R1向R2发送心跳包,R2向R1发送心跳包,R1回复R2确认包;通过上述抓包过程可以看到,双方都需要建立TCP三次握手,并且建立成功以后,对应发送open包和心跳包;对应邻居建立成功;

  验证:在R1查看bgp邻居

  提示:可以看到在R1上能够查看到和R2建立起邻居关系,对应状态为established;这个状态就表示连接准备就绪,建立起TCP连接;

  验证:在R2上查看bgp邻居

  配置router id

  提示:router id和ospf里的router id一样,用于标识bgp路由器;在配置过程中,如果我们没有配置,它也会自动选举,选举规则同ospf一样;这里还需要注意一点,bgp里更改router id会导致邻居宕掉,所以建议在规划好网络前配置好router id ;

  配置R2和R3建立邻居

  配置R3的邻居为R2

  提示:上述命令表示指定邻居为23.0.0.3,对应邻居所在as编号为3;

  在R3上配置邻居为R2

  验证:R2和R3的邻居

  提示:可以看到R2和R3也正常建立好邻居;后续我们就可以在对应bgp路由器里宣告网络;

HCNP Routing&Switching之BGP基础的更多相关文章

  1. HCNP Routing&Switching之BGP邻居建立条件、优化和认证

    前文我们了解了BGP相关概念.AS相关概念以及BGP邻居类型.基础配置等,相关回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15370838.html:今天我们 ...

  2. HCNP Routing&Switching之BGP报文结构、类型和状态

    前文我们了解了BGP的邻居建立条件.优化以及BGP认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15395723.html:今天我们来聊一聊BGP ...

  3. HCNP Routing&Switching之BGP路由宣告

    前文我们了解了BGP报文结构.类型以及邻居状态相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15422924.html:今天我们来聊一聊BGP路由宣告 ...

  4. HCNP Routing&Switching之BGP防环机制和路由聚合

    前文我们了解了BGP路由宣告相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15440860.html:今天我们来聊一聊BGP防环机制和路由聚合相关话题 ...

  5. HCNP Routing&Switching之BGP路由属性和优选规则

    前文我们了解了BGP防环机制和路由聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15458110.html:今天我们来聊一聊BGP路由属性和选路规 ...

  6. HCNP Routing&Switching之BGP路由控制

    前文我们了解了BGP的路由属性和优选规则相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15489497.html:今天我们来聊一聊BGP路由控制相关话 ...

  7. HCNP Routing&Switching之BGP路由过滤和AS-Path-Filter

    前文我们聊了下通过修改BGP路由属性来影响路由,从而达到控制BGP路由的目的:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15495585.html:今天我们 ...

  8. HCNP Routing&Switching之BGP团体属性和团体属性过滤器

    前文我们了解了BGP的路由过滤已经as-path过滤器的使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15542559.html:今天我们来聊一聊 ...

  9. HCNP Routing&Switching之VRRP基础

    前文我们了解了链路高可用技术链路聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16279078.html:今天我们来聊一聊另一种高可用技术,网关高 ...

随机推荐

  1. Linux中的静态库与动态库

    什么是库文件? 库文件是事先编译好的方法的合集.比如:我们提前写好一些数据公式的实现,将其打包成库文件,以后使用只需要库文件就可以,不需要重新编写. Linux系统中: 1.静态库的扩展名为.a:2. ...

  2. new[]/delete[]与new/delete区别

    new[]/delete[]与new/delete完全不同-动态对象数组创建通过new[] 完成-动态对象数组的销毁通过delete[]完成-new[]/delete[]能够被重载,进而改变内存管理方 ...

  3. 【硬核摄影2.0】用线性CCD器件制作扫描相机

    本文参考资料:[1] (Strongly Recommend!) Fundamentals and Experiments of Line Scan Camera: http://www.elm-ch ...

  4. 浅谈C#更改令牌ChangeToken

    前言 在上篇文章浅谈C#取消令牌CancellationTokenSource一文中我们讲解了CancellationTokenSource,它的主要功能就是分发一个令牌,当我取消令牌我可以进行一些回 ...

  5. 洛谷P2115 Sabotage G 题解

    题目 [USACO14MAR]Sabotage G 题解 本蒟蒻又来了,这道题可以用二分答案来解决.我们可以设答案最小平均产奶量为 \(x \ (x \in[1,10000])\) .然后二分搜索 \ ...

  6. SDOI2021集训 R1 半夜 题解

    先贴两个博客:ajthreac yspm,建议结合起来看 \(O(n^3)\):对 \(XX\) 每个长度为 \(n\) 的字串与 \(Y\) 跑 LCS.设 \(f[i,j,k]\) 表示 \(X[ ...

  7. Ordering the Soldiers 题解

    CodeChef:ORDERS 简化题意: \(n\) 个人排队,给定每个人需要向左移动几个,求最终排列. 即还原逆序对. 错误想法 既然知道每个人向左移动 \(a_i\) 个,那就相当于让他的排名 ...

  8. 基于ECDHE的TLS握手流程

    <!doctype html>3.3 基于ECDHE的TLS握手流程 html { overflow-x: initial !important } :root { --bg-color: ...

  9. Intel® QAT加速卡之Ring & Ring Bank

    1. QAT的应用模式 Intel 通讯系列芯片对于每种受支持的加速服务(加密,数据压缩),都支持以下应用模式: 内核模式,其中应用程序和加速服务都在内核中运行空间. 用户空间直接访问在用户空间中运行 ...

  10. 云真机兼容性自动化工具测试解决方案_www.alltesting.cn

    问题和背景 不同类型的品牌和硬件环境.不同版本的android操作系统.IO操作系统,以及不同的分辨率,造成相同的APP在不同的设备可能存在缺陷. 兼容性测试,就是让APP.小程序.H5程序,在所有的 ...