挑战20W年薪协议---BGP协议(BGP通告原则)

BGP通告原则之一

仅将自己最优可达的路由发布给邻居

什么才是最优BGP路由

<R2>display bgp routing-table 

 BGP Local router ID is 2.2.2.2
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 6
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  10.10.10.10/32     1.1.1.1         0          100        0      ?
 *>   22.22.22.22/32     0.0.0.0         0                     0      i
 *>   44.44.44.44/32     24.1.1.4        0                     0      200i
 * i                     3.3.3.3         0          100        0      200i
 *>i  100.100.100.100/32 1.1.1.1         0          100        0      i
 *>i  101.101.101.101/32 1.1.1.1         0          100        0      ?

? 注意点:
? *号 表示valid(有效)
? >号 表示best(最优)
? 思考一下:为什么RTD到达100网段得下一跳为10.1.12.1?
BGP在整个AS内 不会改变下一跳 但是BGP在AS和AS之间的时候 下一跳会发生改变
修改方法如下:

peer 4.4.4.4 next-hop-local 

告诉4.4.4.4你想要到达某一个路由的时候 你把下一跳指向我自己的OK了
BGP路由信息处理
? 当从BGP邻居接收到Update报文时,路由器将会执行路径选择算法,来为每一条前缀确定最佳路径;
? 得出的最佳路径被存储到本地BGP路由表(Local_RIB)中,然后被提交给本地IP路由表(IP_RIB),以用作安装考虑;
? 被选出的有效的最佳路径路由将会被封装在Update报文中,发送给对端的BGP邻居。

BGP通告原则之二

通过EBGP获得的最优可达路由发布给所有BGP邻居(其中包括IBGP和EBGP)

BGP通告原则之三

通过IBGP获得的最优可达路由不会发布给其他的IBGP邻居(IBGP的水平分割
)目的是防止环路

BGP通告原则之四

BGP与IGP同步(华为默认关闭,开启不了)

undo synchronization

一条从IBGP邻居学来的路由在发布给一个BGP邻居之前,通过IGP必须知道该路由,即BGP与IGP同步

华为路由器上,默认是将BGP与IGP的同步检查关闭的,原因是为了实现IBGP路由的正常通告。会出现路由黑洞的问题

什么是路由黑洞?


描述如下:
? R2 R3 R4属于AS 200的设备 并且各自的loopback接口都发布到OSPF里面 R2的2.2.2.2可以访问4.4.4.4
? R1和R2之间是EBGP关系 用的是物理接口建立
? R4和R5之间是EBGP关系 用的是物理接口建立
? R2和R4之间是IBGP关系 用的是loopback接口建立
? R3设备没有和任何设备建立BGP关系
基础配置检查如下
在R3上面查看OSPF邻居状态是否OK

<R3>display ospf peer brief 

         OSPF Process 1 with Router ID 3.3.3.3
                  Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State
 0.0.0.0          GigabitEthernet0/0/0             4.4.4.4          Full
 0.0.0.0          GigabitEthernet0/0/1             2.2.2.2          Full
 ----------------------------------------------------------------------------
<R3>

在R2 R3 R4上查看路由表

<R2>display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
         Destinations : 3        Routes : 3        

OSPF routing table status : <Active>
         Destinations : 3        Routes : 3

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        3.3.3.3/32  OSPF    10   1           D   192.168.23.3    GigabitEthernet0/0/1
        4.4.4.4/32  OSPF    10   2           D   192.168.23.3    GigabitEthernet0/0/1
   192.168.34.0/24  OSPF    10   2           D   192.168.23.3    GigabitEthernet0/0/1

OSPF routing table status : <Inactive>
         Destinations : 0        Routes : 0

<R2>
<R3>display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
         Destinations : 2        Routes : 2        

OSPF routing table status : <Active>
         Destinations : 2        Routes : 2

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        2.2.2.2/32  OSPF    10   1           D   192.168.23.2    GigabitEthernet0/0/1
        4.4.4.4/32  OSPF    10   1           D   192.168.34.4    GigabitEthernet0/0/0

OSPF routing table status : <Inactive>
         Destinations : 0        Routes : 0
<R4>display ip routing-table protocol ospf
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
         Destinations : 3        Routes : 3        

OSPF routing table status : <Active>
         Destinations : 3        Routes : 3

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        2.2.2.2/32  OSPF    10   2           D   192.168.34.3    GigabitEthernet0/0/0
        3.3.3.3/32  OSPF    10   1           D   192.168.34.3    GigabitEthernet0/0/0
   192.168.23.0/24  OSPF    10   2           D   192.168.34.3    GigabitEthernet0/0/0

OSPF routing table status : <Inactive>
         Destinations : 0        Routes : 0

检查BGP的邻居关系
R1和R2之间的EBGP关系

<R1>display bgp peer 

 BGP local router ID : 1.1.1.1
 Local AS number : 100
 Total number of peers : 1                Peers in established state : 1

  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv

  192.168.12.2    4         200       17       18     0 00:14:39 Established       1
<R1>

R2的R1的EBGP关系 R2和R4跨邻居的IBGP关系

<R2>display bgp peer 

 BGP local router ID : 2.2.2.2
 Local AS number : 200
 Total number of peers : 2                Peers in established state : 2

  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv

  4.4.4.4         4         200       17       18     0 00:14:22 Established       1
  192.168.12.1    4         100       18       18     0 00:15:02 Established       1

R4和R2的IBGP关系 R4和R5的EBGP关系

<R4>display bgp peer 

 BGP local router ID : 4.4.4.4
 Local AS number : 200
 Total number of peers : 2                Peers in established state : 2

  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv

  2.2.2.2         4         200       17       17     0 00:14:49 Established       1
  192.168.45.5    4         300       18       18     0 00:15:21 Established       1

R5和R4的EBGP关系

<R5>display bgp peer 

 BGP local router ID : 5.5.5.5
 Local AS number : 300
 Total number of peers : 1                Peers in established state : 1

  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv

  192.168.45.4    4         200       18       19     0 00:15:34 Established       1
<R5>

路由黑洞实验现象
在R1的BGP里面宣告1.1.1.1
在R5的BGP里面宣告5.5.5.5

#
bgp 100
  network 1.1.1.1 255.255.255.255
#
#
bgp 300
  network 5.5.5.5 255.255.255.255
#

在R2上面查看是否学习到关于1.1.1.1和5.5.5.5的BGP路由

<R2>display bgp routing-table 

 BGP Local router ID is 2.2.2.2
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.1/32         192.168.12.1    0                     0      100i
 *>i  5.5.5.5/32         4.4.4.4         0          100        0      300i
<R2>

在R4上面查看是否学习到关于1.1.1.1和5.5.5.5的BGP路由

<R4>display bgp routing-table 

 BGP Local router ID is 4.4.4.4
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  1.1.1.1/32         2.2.2.2         0          100        0      100i
 *>   5.5.5.5/32         192.168.45.5    0                     0      300i
<R4>

R4到达1.1.1.1的下一跳是2.2.2.2 因为在R2这边敲了如下命令

#
bgp 200
  peer 4.4.4.4 next-hop-local
#

在R5上面查看是否学习到关于1.1.1.1的BGP路由

[R5]display bgp routing-table  

 BGP Local router ID is 5.5.5.5
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.1/32         192.168.45.4                          0      200 100i
 *>   5.5.5.5/32         0.0.0.0         0                     0      i
[R5]

在R5设备上去访问1.1.1.1

[R5]ping -a 5.5.5.5 1.1.1.1
PING 1.1.1.1: 56  data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out

--- 1.1.1.1 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss

在R5设备上去访问tracert 1.1.1.1

<R5>tracert -a 5.5.5.5 1.1.1.1
 traceroute to  1.1.1.1(1.1.1.1), max hops: 30 ,packet length: 40,press CTRL_C to break
 1 192.168.45.4 50 ms  40 ms  20 ms         //发现到R4就停止了
 2  *  *  *
 3  *  *
<R5>

发现数据包交给R4后 R4后面就不通了 我们看下R4到达1.1.1.1的路由表

<R4>display ip routing-table 1.1.1.1
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        1.1.1.1/32  IBGP    255  0          RD   2.2.2.2         GigabitEthernet0/0/0

<R4>

发现R4到达1.1.1.1的下一跳是2.2.2.2 R4上面到达2.2.2.2也是非直连网段 R4会递归查询到达2.2.2.2 发现到达2.2.2.2下一跳是R3 因为R4到达1.1.1.1的时候 数据包经过递归后 下一跳是R3

<R4>display ip routing-table 2.2.2.2
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        2.2.2.2/32  OSPF    10   2           D   192.168.34.3    GigabitEthernet0/0/0

<R4>

R4会把数据包交给R3 R3收到后 到达1.1.1.1该如何走呢?

<R3>display ip routing-table 1.1.1.1

发现R3路由表里面根本就没有到达1.1.1.1的路由条目 所以R5访问1.1.1.1就会丢包 R3就像一个吃人的老虎机一样 只要是R5想要访问到R1这边 都会被R3的路由黑洞给吃掉 这个就是路由黑洞
分析原因
原因1:因为R3上没有运行BGP协议
原因2:BGP可以跨邻居建立

原文地址:https://blog.51cto.com/13817711/2463402

时间: 2024-08-27 13:36:35

挑战20W年薪协议---BGP协议(BGP通告原则)的相关文章

带你挑战年薪20W的广域网协议---BGP协议

BGP原理的概述 BGP协议是一种距离矢量(Distance vector)的路由协议,但是比起RIP等典型的距离矢量协议,又有很多增强的性能.BGP使用TCP作为传输协议,使用端口号179.在通信时,要先建立TCP会话,这样数据传输的可靠性就由TCP协议来保证,而在BGP的协议中就不用再使用差错控制和重传的机制,从而简化了复杂的程度.另外,BGP使用增量的.触发性的路由更新,而不是一般的距离矢量协议的整个路由表的.周期性的更新,这样节省了更新所占用的带宽.BGP还使用"保留"信号(K

BGP协议学习笔记

BGP(Border Gateway Protocol)边界网关协议,是一种外部路由协议,边界指的是自治系统的边界,用于在自治系统间传播路由信息BGP通过在路由信息中增加AS路径和其他等附带属性信息来构造自治系统的拓扑图从而消除路由环路实施用户配置的策略. 其着眼点是选择最好的路由并控制路由的传播,而不在于发现和计算路由. BGP协议使用面向链接的TCP作为其传输层协议,提高了协议的可靠性,端口号是179. BGP是一种路径矢量路由协议,用于传输自治系统间的路由信息,BGP在启动的时候传播整张路

BGP协议的学习及一些特性

写一点最近开始接触的BGP一点知识(部分截取自网络)RFC4271 定义一个路由器只属于一个as,as取值范围1-65535   64521-65535是私有as号BGP协议是提供一种区域间的路由选择协议,自助系统能够无环的交换路由选择信息,BGP路由交换有去往目标网络的路径信息.BGP在选路的时候考虑的不是速度,而是让AS能够根据多种BGP属性来控制数据流的传输. 1,BGP 靠TCP进行连接,所以要保证三层ip的可达性:端口号TCP179(目标端口)2,BGP以到单播的形式建邻居,所以通告之

HCNP学习笔记之BGP协议原理及配置2-BGP工作原理

1 基于TCP连接的邻居关系 BGP邻居关系建立在TCP连接的基础之上 可以通过IGP或静态路由来提供TCP连接的IP可达性 同OSPF.ISIS一样,在BGP中,路由学习的依然要首先建立邻居关系. 所不同的是: OSPF.ISIS的邻居关系是自动建立的,而BGP邻居的建立必须手动完成,从邻居的建立开始就体现出了BGP是基于策略进行路由的(物理上直接相连未必是邻居,反过来物理上没有直接相连可以建立邻居关系). BGP邻居关系是建立在TCP会话的基础之上的,而两个运行BGP的路由器要建立TCP的会

BGP协议(一)

BGP协议概述BGP协议是用于自治系统AS之间的动态路由协议.BGP特性:是一种外部网关协议,与OSPF.RIP等内部网关协议不同,其着眼点不在于发现和计算路由,而是着眼于在AS之间控制路由的转播和选择最佳路由.BGP使用TCP作为传输层协议(端口号179),提高了协议的可靠性. BGP 进行域间路由选择,因此对协议的稳定性要求很高,故可用TCP协议的高可靠性来保证协议的稳定性. 在BGP的对等体之间必须逻辑上连通,并且进行TCP连接:目的端口号为179,本地端口号任意. BGP支持无类别域间路

IP,ARP,RIP和BGP协议

IP,ARP,RIP和BGP协议 前言 今天还是接着学习计算机网络方面的内容,争取在开学之前先把计算机网络的内容过一遍,JAVA学过一点,但是不精通,能看懂一些简单的代码,仅此而已,大三就只有三门课,数据库,网络,JAVA,好好学,别放弃,最近腰疼的厉害,可能是那天找女朋友的原因,爬山去了,累了个半死,回来就腰疼了.唉,身体跟不上了,身体是革命的本钱,保护好自己的身体,说不定将来买苹果的时候用到了呢... 网络层是实现互联网的最重要的一层.正是网络层面上,各个局域网根据IP协议相互连接,最终构成

协议学习之 vamei博客系列 03 IP接力赛 (IP, ARP, RIP和BGP协议)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 网络层(network layer)是实现互联网的最重要的一层.正是在网络层面上,各个局域网根据IP协议相互连接,最终构成覆盖全球的Internet.更高层的协议,无论是TCP还是UDP,必须通过网络层的IP数据包(datagram)来传递信息.操作系统也会提供该层的socket,从而允许用户直接操作IP包. IP数据包是符合IP协议的信息(也就是0/1序列),我们后面简称IP数

HCNP学习笔记之BGP协议原理及配置3-路由聚合

BGP协议可以使用命令,将具体路由聚合成一条聚合路由. 路由聚合原则采用最长相同掩码匹配的方法. 路由聚合可以减小路由表的大小 没有路由明细可以减少路由翻动,不会因为单条路由变化引起路由翻动 1 自动聚合(现网中不用,可控性差,只能聚合成主类网络) 配置自动聚合后,生成聚合后的自然网段路由,而原引入的子网路由被抑制,不会被优选和发布给BGP邻居. summary automatic  //用来使能对引入的路由进行自动聚合 undo summary automatic    //命令用来取消对引入

BGP协议的知识点总结

1.BGP协议分为iBGP和eBGP. 2.构建BGP的邻居关系: 1)BGP邻居状态:空闲->连接->激活->打开发送->打开确认->建立 2)BGP默认端口: TCP179 3)BGP消息类型:open->keepalive->update->notification 3.构建BGP表: 1)将路由注入BGP表:通过network命令:通过redistribute命令: 2)auto-summary对network命令和redistribute命令的影响