前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考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. HbaseWAL

    1.WAL意为 Write Ahead Log ,类似MySQL中的binlog,用来做灾难恢复之用,HLog记录数据的所有变更,一旦数据修改,就可以从Log中进行恢复. Hbase采用类LSM的架构 ...

  2. div 居中显示

    <html lang="en"> <head> <meta charset="UTF-8"> <title>di ...

  3. 快速入门PaddleOCR,并试用其开发一个搜题小工具

    介绍 PaddleOCR 是一个基于百度飞桨的OCR工具库,包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别.竖排文本识别.长文本识别.同时支持多种文本检测.文本识别的训练算法. ...

  4. WEB漏洞——SQL

    由于我的博客是学到渗透的时候才做的,没有关于WEB漏洞的笔记,现在发现WEB层面的漏洞有些不太熟悉了,边写一下笔记边复习一下,就从sql注入开始吧 话不多说先上大佬写的表[ctfhub]SQL注入 - ...

  5. Hamcrest 断言框架

    Hamcrest是一个为了测试为目的,能组合成灵活表达式的匹配器类库.用于编断言的框架,使用这个框架编写断言,提高可读性及开发测试的效率,提供了大量"匹配器"方法,每个匹配器用于执 ...

  6. MapReduce 示例:减少 Hadoop MapReduce 中的侧连接

    摘要:在排序和reducer 阶段,reduce 侧连接过程会产生巨大的网络I/O 流量,在这个阶段,相同键的值被聚集在一起. 本文分享自华为云社区<MapReduce 示例:减少 Hadoop ...

  7. 洛谷P1160——队列安排(双向链表)

    题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1-N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人: 2.2-N号同学依次入列,编号为i的同学入列方式为:老师 ...

  8. AtCoder Regular Contest 069 D - Menagerie 枚举起点 模拟递推

    arc069.contest.atcoder.jp/tasks/arc069_b 题意:一堆不明身份的动物排成一圈,身份可能是羊或狼,羊一定说实话,狼一定说假话.大家各自报自己的两边是同类还是不同类, ...

  9. 【简单数据结构】链表--洛谷P1160

    题目描述 一个学校里老师要将班上NN个同学排成一列,同学被编号为1\sim N1∼N,他采取如下的方法: 先将11号同学安排进队列,这时队列中只有他一个人: 2-N2−N号同学依次入列,编号为i的同学 ...

  10. 数学相关函数在PHP中的应用简介

    对于数学计算来说,最常见的其实还是我们使用各种操作符的操作,比如说 +加.-减 之类的.当然,PHP 中也为我们提供了一些可以方便地进行其他数学运算的操作函数.这些函数都属于 Math 扩展.这个扩展 ...