网络技术(十六)BGP进阶篇

目录

 

一、基础知识1.1.BGP路径

1.2路径属性分类

1.3路径属性分类

1.4属性详细信息

    1.4.1Preferred-Value

1.4.2.Local_Preference

1.4.3 Local_Preference注意事项

1.4.4.AS_Path

1.4.5 Origin

1.4.6 MED

1.4.7 关于MED的一些注意事项

1.4.8 MED的默认操作

1.4.9Next_Hop

1.4.10 Next_Hop的缺省操作

1.5 BGP路由优选规则概览

1.6命令配置:

1.7.关于路由策略的配置

二、实验

2.1拓扑图

2.2思路

2.3.命令配置

2.4.抓包验证

2.4.1ospf的hello报文

2.4.2BGP的keepalive报文和TCP回应的ACK确认报文

2.4.3BGPkeepalive报文

2.4.4TCP报文


一、基础知识
1.1.BGP路径

  • 属性详解

       为什么要选择路径:根据不同的需要应用在不同的网络当中 

  •  BGP常用路径属性

         Preferred-value,Local_Preference,AS_Path,Origin,MED,Next-Hop,Community,Atomic_Aggregate及aggregator。

  • ·BGP路径属性

         当一条BGP路由被BGP路由器更新给其对等体时,这条BGP路由会携带多个路径属性值一并传递给对等体。BGP的这些路径属性,将影响BGP的路由优选。它们的存在使得BGP的路由策略能力异常强大。

1.2路径属性分类

  • ·公认属性
  • ·公认必遵属性
  • ·公认自由决定属性
  • ·可选属性
  • ·可选传递的
  • ·可选非传递的

1.3路径属性分类

公认属性 公认必遵    所有的BGP实现必须都能识别,且在Update报文中必须携带。

Origin

AS_Path

Next-Hop

  • 当bgp路由器使用update通告路由更新时必须携带的路径属性。
  • 通过network方式引入bgp的路由,Ogn会显示i(在任意路由器上操作import-route direct,观察其他路由器的bgp路由表,Ogn会显示?

公认自决    所有的BGP实现都必须都能识别,但不压迫求必须包含在Update报文中。

Local_Preference

Atomic_Aggregate

  • 当bgp路由器使用update通告路由更新时不要求必须携带的路径属性.
  • preferred_value:华为私有属性,可理解为权重,0-65535,值越大优先级越高,并且只在本地有效,不传递给对等体,默认为0
  • local_preference本地优先级:只能在IBGP对等体之间传递,通告给EBGP时不携带,值越大越优,取值范围0-232,默认为100
可选属性 可选传递    设备可以不支持该属性,但即使不支持,也应当接收包含该属性的路由并传递给其他对等体。

Community

Aggregator

  • 如果bgp路由器不识别该属性,接受该属性,并且向其他对等体通告时必须携带
可选非传递    设备可以不支持该属性,不是别的BGP进程忽略包含这个属性的路由更新,并且不传递给其他BGP对等体。

MED

Originator_ID

Cluster_list

*pre_value

  • 如果bgp路由器不识别该属性,忽略该更新也不向其他对等体通告。
  • MED用于向外部对等体指出进入本AS的首选路径,即当进入本AS的入口有多个时,AS可以使用MED动态地影响其他AS选择进入的路径

1.4属性详细信息

    1.4.1Preferred-Value

  •         取值范围:0-65535 该值越大,则路由越优先。
  •         Preferred-Value只能在路由器本地配置,而且只影响本设备的路由优选。该属性不会传播给任何BGP对等体。
  •         路由器本地始发的BGP路由默认的Preferred-Value为0,从其他BGP对等体学习到的路由默认Preferred-Value也为0。

1.4.2.Local_Preference

  •         也即本地优先级属性,是公认自决属性,用于告诉AS中的路由器,哪条路径是离开AS的首选路径。
  •  Local_Preference属性值越大则BGP路由越优。缺省的Local_Preference值为100.
  •  该属性只能被传递给IBGP对等体,而不能传递给EBGP对等体。

1.4.3 Local_Preference注意事项

  •         Local_Preference属性只能在IBGP对等体间传递(除非做了策略否则Local_Preference值在IBGPA对等体传递过程中不会丢失),而不能在EBGP对等体间传递,如果在EBGP 对等体间收到的路由的路径属性中携带了Local_Preference,则会触发Notifacation报文,造成会话中断;
  •         但是可以在AS边界路由器上使用Import方向的策略来修改Local_Preference属性值。也就是在收到路由之后,在本地为路由赋予Local_Preference。
  •        使用bgp default local-preference命令修改缺省Local_Preference值,该值缺省为100.
  •        路由器在向其EBGP对等体发送路由更新时,不能携带Local_Preference属性,但在对方接收路由之后,会在本地为这条路由赋一个缺省Local_Preference值(100),然后再将路由传递给自己的IBGP对等体。
  •       本地使用network命令引入及重发布引入的路由,Local_Preference为缺省值100,并能在AS内向其他IBGP对等体传递,传递过程中除非受路由策略影响,否则Local_Preference不变。

1.4.4.AS_Path

  •      该属性为公认必遵属性,是前往目标网络的路由经过的AS号列表;
  •      作用:确认路由在EBGP对等体之间传递无环;另外也作为路由优选的衡量标准之一;
  •      路由在被通告给EBGP对等体时,路由器会在该路由的AS_Path中追加上本地的AS号;路由被通告给IBGP对等体时,AS_path不会发生改变。
  •      AS_Path重要作用之一便是影响BGP路由的优选 。
  •      AS_Path的四种类型

            (1)AS_SET: 一个去往特定目的地所经路经上的无序AS号列表

            (2)AS_SEQENCE:一个无序的AS号列表

            (3)AS_CONFED_SEQENCE:一个去往特定目的地所经路径上的有序AS号列表。

            (4)AS_CONFED_SET:一个去往特定目的地所经路径上的无序AS号列表。

AS_CONFED_SEQENCE和AS_CONFED_SET 的AS号属于本地联邦中AS。

1.4.5 Origin

  •     该属性为公认必遵属性,它标识了BGP路由的起源。如下表所示,根据路由被引入BGP的方式不同,存在三种类型的Origin。
  •      当去往同一个目的地存在多条不同Origin属性的路由时,在其他条件都相同的情况下,BGP将按如Origin的下顺序优选路由:IGP>EGP>Incomplete
名称标记描述
igpi通过IGP的network的路由。
egpE如果BGP路由是由EGP这种早期的协议重发
Incomplete通过import命令,从其他协议引入BGP的路由

 

1.4.6 MED

  •      MED是可选非传递属性,是一种度量值,用于向外部对等体指出进入本AS的首选路径,即当进入本AS的入口有多个时,AS可以使用MED动态的影响其他AS选择进入的路径。
  •      MED属性值越小则BGP路由越优。
  •      MED主要用于在AS之间影响BGP的选路。MED被传递给EBGP对等体后,对等体在其AS内传递路由时,携带该MED值,但将路由传递给其EBGP对等体时,缺省不会携带MED属性。

1.4.7 关于MED的一些注意事项

  •       缺省情况下,路由器只比较来自同一相邻AS的BGP路由的MED值,也就是说如果去往同一个目的地的两条路由来自不同的相邻AS,则不进行MED值的比较。
  •       一台BGP路由器将路由通告给EBGP对等体时,是否携带MED属性,需要根据以下条件进行判断(不对EBGP对等体使用策略的情况下):
  •       如果该BGP路由是本地始发(本地通过network或import-route命令引入)的,则缺省携带MED属性发送给EBGP对等体。
  •       如果该BGP路由是从其他BGP对等体学习过来的,那么将该路由通告给EBGP对等体时不携带MED。
  •       在IBGP对等体之间传递路由时,MED值会被保留并传递,除非部署了策略,否则MED值在传递过程中不发生改变也不会丢失。
  •      compare-different-as-med 此命令为EBGP之间传递MED时,导致两个路由不进行对比,需要执行。

1.4.8 MED的默认操作

  •      如果路由器通过IGP学习到一条路由,并通过network或import-route的方式将路由引入BGP,产生的BGP路由的MED值继承路由在IGP中的metric。
  •      如果路由器将本地直连/静态路由通过network或import-route的方式引入BGP,那么这条BGP路由的MED为0,因为直连/静态路由cost为0。
  •      如果路由器通过BGP学习到其他对等体传递过来的一条路由,那么将路由更新给自己的EBGP对等体时,默认是不携带MED的。这就是所谓的:“MED不会跨AS传递”。例如在上图中,R2将携带MED属性的BGP路由传递给R3,则R3将该路由传递给R4时,不会携带MED。
  •      可以使用default med命令修改缺省的MED值,default med命令只对本设备上用import-route命令引入的路由和BGP的聚合路由生效。

 

1.4.9Next_Hop

  •     该属性是一个公认必遵属性,用于指定到达目标网络的下一跳地址。
  •     当路由器学习到BGP路由后,需对BGP路由的Next_Hop属性值进行检查,该属性值(IP地址)必须在本地路由可达,如果不可达,则这条BGP路由不可用。
  •     在EBGP及IBGP对等体的场景中,Next_Hop的缺省操作是存在差异的。

1.4.10 Next_Hop的缺省操作

  •    路由器将BGP路由通告给自己的EBGP对等体,将该路由的Next_Hop设置为自己的更新源IP地址。

1.5 BGP路由优选规则概览


 

  • 注:BGP的路由优选规则,从1到12开始匹配。

 

1.6命令配置:

 

  •  preferred_value配置:

命令执行位置在选择路径的源路由器上配置
bgp 300

peer 6.6.6.6 preferred-value 2000

 

  • local_preference配置

命令执行位置在选择路径的源路由器上配置

ip ip-prefix 1 permit 1.1.1.1 32

route-policy huawei permit node 10

if-match ip-prefix 1

apply local-preference 200

bgp 300

peer 7.7.7.7 route-policy huawei export

或者直接

default local-preference 3000

 

  • AS_path配置

命令执行位置在选择路径的目标路由器上配置
bestroute as-path-ignore:选路由时不比较as_path值

route-policy huawei permit node 10

 if-match acl 2000

 apply as-path 200 additive

#

route-policy huawei permit node 1000

peer 5.5.5.5 route-policy huawei import

  • MED配置:

命令执行位置在选择路径的始发路由器上(EGP)配置

route-policy huawei permit node 10

Info: New Sequence of this List.

apply cost 100

peer 45.0.0.1 route-policy huawei export

 

  • 路由策略Route-policy配置

          Route-policy是一个非常重要的基础性策略工具。你可以把它想象成一个拥有多个节点(node)的列表(这些node按编号大小进行排序)。在每个节点中,可以定义条件语句及执行语句,这就有点像程序设计里的if-then语句

           注意:默认情况下,所有未匹配的路由将被拒绝通过route-policy。如果Route-Policy中定义了一个以上的节点,则各节点中至少应该有一个节点的匹配模式是permit

 

1.7.关于路由策略的配置

        创建acl 2000
        route-policy RP permit node 10    //格式:route-policy name { permit | deny } node node
        if-match acl 2000   //if-match 子句用来定义一些匹配条件。 Route-Policy 的每一个节点可以含有多个 if-match 子句,也可以不含 if-match 子句。如果某个 permit 节点没有配置任何 if-match 子句,则该节点匹配所有的路由

        apply     //apply 子句用来指定动作。路由通过 Route-Policy 过滤时,系统按照 apply 子句指定的动作对路由信息的一些属性进行设置。 Route-Policy 的每一个节点可以含有多个 apply 子句,也可以不含 apply 子句。如果只需要过滤路由,不需要设置路由的属性,则不使用 apply 子句

        匹配规则:路由匹配 Route-Policy 时遵循以下两个规则: 1 ) 顺序匹配:在匹配过程中,系统按节点号从小到大的顺序依次检查各个表项,因此在指定节点号时,要注意符合期望的匹配顺序。 2 ) 唯一匹配: Route-Policy 各节点号之间是“或”的关系,只要通过一个节点的匹配,就认为通过该过滤器,不再进行其它节点的匹配

        匹配模式:节点的匹配模式有两种: permit 和 deny 。 1 ) permit 指定节点的匹配模式为允许。当路由项通过该节点的过滤后,将执行该节点的 apply 子句,不进入下一个节点;如果路由项没有通过该节点过滤,将进入下一个节点继续匹配。 2 ) deny 指定节点的匹配模式为拒绝。这时 apply 子句不会被执行。当路由项满足该节点的所有 if-match 子句时,将被拒绝通过该节点,不进入下一个节点;如果路由项不满足该节点的 if-match 子句,将进入下一个节点继续匹配

二、实验

2.1拓扑图

2.2思路

   (1)先配置IP地址、配置loopback。

 (2)配置R2 、R3、R5的ospf ,域为area 0 的骨干区域。

 (3)设置R2、 R3、R5的IBGP的对等体。注(相互成为对等体)

 (4)设置R4 和R5 的对等体关系(EBGP),同时R4的loopback 使用network注入到bgp中。

  (5)设置R1和R2 的对等体关系(EBGP),同时R1的loopback 使用network注入到bgp中。

  (6)分别在R5 和R2 上注入OSPF1 ,同时在R5的bgp中设置R3和R2的下一跳为R5本机,在R2的Bgp中设置R3和R5的下一跳为R2本机。

  (7)测试互通性。

2.3.命令配置

R1:

R2:

R3:

R5:

R4:

2.4.抓包验证

2.4.1ospf的hello报文

2.4.2BGP的keepalive报文和TCP回应的ACK确认报文

2.4.3BGPkeepalive报文

2.4.4TCP报文

两个报文可以看出,通过keepalive进行保活,当对等体接收到报文后,通过TCP协议发送ACK报文进行确认。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值