HCIP重修总笔记(中)

news2024/9/29 23:26:46

第八节 BGP基础

一、BGP产生背景

        BGPBorder Gateway Protocol,边界网关协议)是一种用于自治系统间的动态路出协议,是一种外部网关协议。

        自治系统AS:一组同一个管理机构进行管理,对外呈现统一选路策略的路由器的集合。

        自治系统编号:
                2字节AS编号:取值范围0-65535,其中0和65535保留

                                        公有AS:1-64511

                                        私有AS:64512-65535

                4字节AS编号:2的32次方的编号数量

二、路由协议的分类

                IGP:RIP(100)、OSPF(150)、IS-IS(15)

                EGP:BGP---(255)(优先级)

三、BGP协议特性

1、BGP 只负责把路由从一个AS传到另一个AS;从其他AS传递过来的路由在本AS内部的扩散依靠IGP:

2、BGP是路径矢量协议,一跳是一个自治系统;

        当一条路由传入某个AS,该路由的下一跳会变为上个AS的出接口的IP地址;当一条路由在某个AS内部的路由器之间传递时,下一跳不变。

3、AS防环机制:路径矢量路由协议,从设计上避免了环路的发生(AS PATH防环机制)

        当一条路由每从一个AS传出,会把该AS的编号按照从右至左的顺序依次记录在AS_PATH属性中;

        一个路由器从其他AS收到一条路由通告,会检查本路由器的AS标号是否出现在该路由条目的AS PATH属性中,如果出现了则该条目不学习;

4、BGP基于TCP协议传输,端口号179:必须手动配置邻居

5、BGP第一次发送完整的路由表,后续只发送增量更新;

6、BGP有多种属性可以控制路由选择。(难点)
7、支持CIDR和路由聚合;
8、路由过滤和路由策略

四、BGP基本术语

1、

        BGP Speaker:运行BGP协议的路由器称为BGP发言者

        BGP Peer:相互之间存在TCP连接、相互交换路由信息的BGP发言者之间互称为BGP对等体

2、BGP对等体:BGP邻居可以直连,也可以非直连

(1)EBGP对等体:跨AS之间的邻居,一般情况下EBGP对等体是物理上直连的。

BGP发言者从EBGP对等体获得的路由会向它所有BGP对等体通告(包括EBGP和IBGP)

(2)IBGP对等体:同一个AS内部的邻居

(3)BGP邻居非直连的情况

思考:哪些路由器需要跑BGP?(R2\R3\R5\R6)

思考:(R2\R3\R5\R6)邻居关系怎么建立?

思考:R3-R4之间,R6-R7之间,路由怎么传?

五、BGP规划问题

(规划不当容易产生路由黑洞)

路由迭代

R2:peer 5.5.5.5 next-hop-local

R5:peer2.2.2.2 next-hop-local

目标IP:6.6.6.6/32 源IP:1.1.1.1/32+数据

路由黑洞产生原因:由于IBGP邻居之间没有运行BGP协议的路由器,无法获得BGP的路由;从而导致的数据包进入路由器被丢弃。

路由黑洞解决方法:

(1)BGP引入IGP

(2)在黑洞路由器上配置目的网段的静态路由

(3)IBGP全连接   -----IBGP防环机制:IBGP水平分割:从IBGP邻居学习到的路由不会传递给其他IBGP邻居

为啥有这种防环机制,看下图

IBGP全连接(full-fresh)

注:要是邻居太多,手工配置邻居,会导致工作量比较大

(4)BGP路由反射器(无视IBGP的防环机制,可以减少邻居关系的数量)

以R2作为反射器:

(5)BGP联盟(完美的避开了IBGP全连接的坑------IBGP水平分割限制)

六、BGP环路问题(水平分割)

1、EBGP水平分割(AS_PATH)

        通过AS_PATH属性防环,在学习到的路由中,若有本地AS号,则拒绝学习,防止环路

2、IBGP水平分割

        当路由器从一个IBGP对等体学习到某条BGP路由时,它将不能再把这条路由通告给任何IBGP对等体。

        造成问题:一些路由器无法学到去往其他AS的路由

        解决方法:路由反射器和联盟

七、BGP消息种类

(1)BGP头部信息:

  1. 标记(Marker):该字段被保留下来用于解决协议兼容性问题,没有其他含义
  2. 长度(length):指示BGP报文的长度(字节数)
  3. 类型(Type):该字段指示了BGP报文的类型,就是前面提到的BGP5种数据包类

(2)数据包种类

  1. open:用于建立BGP对等体之间的连接关系,正常收发一次即可;携带route-id;

        Hold time:保持时间,该字段表示路由器在收到Keepalive消息或者Update消息之前等待的最长时间,默认180s,如果邻居双方的保持时间不一致,将以较短的时间作为双方可接收的保持时间。

        可选参数长度:指示了BGP报文中可选参数的长度

        可选参数:Open包中包含多个可选参数,主要用于宣告及协商BGP对等体的某些能力特征。

  1. Keepalive:周期性的向BGP对等体发出Keepalive(周期保活)消息,用于保持连接的有效性,在默认情况下每60秒发送一条Keepalive消息,或者以已协商一致的保持时间的1/3为周期发送Keepalive消息。默认60s,超时180s。

  1. Update:携带的是路由更新(删减、增加)信息
  2. notfication:当BGP检测到错误状态时,就向对等体发出notfication消息,之后BGP连接会立即被关闭(邻居关系结束了)
  3. router-refresh:用于在改变路由策略后,要求对等体重新发送指定地址族的完整路由表信息;只有支持路由刷新能力的路由器才会响应router-refresh报文。

地址族:典例:BGP版本不同,进入的地址族不同

BGP-----普通BGP,跑IPV4

BGP4+----适用于跑IPV6

MP-BGP---用于MPLS VPN的一个扩展版的BGP

组播版本的BGP

注:不管啥版本,都在同一个BGP进程中做配置,只是建立的邻居关系的方式不同而已。     

八、BGGP状态机

        BGP(边界网关协议)是互联网中的核心路由协议,它用来在不同的自治系统(AS)之间交换路由信息。BGP 的状态机是其操作的关键部分,用于管理 BGP 会话的状态以及协议的不同阶段。BGP 的状态机包括以下几个主要状态:

1. Idle(空闲):
        在这个状态下,BGP 实例不与任何邻居建立连接。如果需要建立连接,BGP 实例会转到 `Connect` 状态。(空闲状态,停留30秒,初始化开始准备TCP连接并监视远程对等体,启动BGP时,同时建立邻居关系,此状态持续30秒)

2. Connect(连接):
        在 `Connect` 状态,BGP 实例等待与对等体建立 TCP 连接。如果连接成功,BGP 实例会进入 `Active` 状态。如果连接超时或失败,BGP 实例会返回到 `Idle` 状态。(TCP连接中状态,本端为TCP被动连接方,若连接建立失败则进入Active状态,反复尝试连接;)

3. Active(激活)(活跃状态):
          在 `Active` 状态,BGP 实例尝试重新建立与对等体的 TCP 连接。如果成功,BGP 实例会转到 `OpenSent` 状态;如果失败,BGP 实例会回到 `Idle` 状态。(活跃状态,本端为TCP主动连接方,TCP连接没建立成功,反复尝试连接;)

4. OpenSent(开放发送)(开始发送状态):
         在 `OpenSent` 状态,BGP 实例已发送 OPEN 消息并等待对等体的 OPEN 消息。如果收到有效的 OPEN 消息,BGP 实例会转到 `OpenConfirm` 状态;如果 OPEN 消息无效或超时,BGP 实例会返回到 `Idle` 状态。(开始发送状态,成功建立TCP连接,发出open报文,open报文中携带参数协商对等体的建立,正在等待接受对方open报文;)

5. OpenConfirm(开放确认)(开始确认状态):
          在 `OpenConfirm` 状态,BGP 实例已经接收到对等体的 OPEN 消息,并发送了 KEEPALIVE 消息。如果在规定时间内收到对等体的 KEEPALIVE 消息,BGP 实例会进入 `Established` 状态;如果没有收到 KEEPALIVE 消息,BGP 实例会返回到 `Idle` 状态。(开始确认状态,收到open报文,发出Keepalive报文,等待第一个)

6. Established(建立)(已连接状态):
         在 `Established` 状态,BGP 实例已经成功建立了会话,并且可以开始交换路由信息。在这个状态下,BGP 实例交换 UPDATE、KEEPALIVE 和 NOTIFICATION 消息。如果会话中出现问题,BGP 实例可能会回到 `Idle` 状态,重新开始会话建立过程。(已连接状态,收到Keepalive报文,最终成功建立邻居;)

        这些状态和状态转换确保了 BGP 会话的建立、维护和恢复,使得路由信息在自治系统之间能够稳定地传递。        

九、BGP邻居建立条件

IBGP:对方接口要有IP地址,

                TCP可达(需要具有到达对方IP地址的路由),

                建议使用环回口地址来指定IBGP邻居

                更新源地址必须和指定的邻居地址一致

                需要修改更新源为环回

            [R1-bgp]peer 2.2.2.2 connect-interface LoopBack 0

            IBGP邻居关系不需要直连;

建议:使用环回接口地址来指定IBGP邻居;

EBGP:对方接口要有IP地址,TCP可达,且需要直连;

             可通过修改EBGP最大跳数来使EBGP非直连;

             更新源地址必须和指定的邻居地址一致;

建议:使用直连接口地址(物理地址)来指定EBGP邻居;

注意: 默认IBGP邻居间数据包的TTL值为255,EBGP邻居间TTL为1;故一旦使用环回建立ebgp邻居关系,必须修改TTL值,否则无法建立TCP三次连接

                [r4-bgp]peer  5.5.5.5 ebgp-max-hop 2    //修改TTL值(最大跳数值)

没修改跳数前:

修改跳数后:

十、BGP基本配置

1、启动BGP并创建BGP连接

        [huawei]bgp 'as-number'     启动BGP

        [huawei-bgp]router-id 'router-id'   配置router-id;(可选配置)

        [huawei-bgp]peer 'ip-address' as-number 'as-unmber'  指定BGP对等体及AS号;

        [huawei-bgp] address-family ipv4  unicast   创建BGP地址族,并进入相应地址族视图。----华三

        [huawei-bgp-ipv4] peer ip-address enable   使能本地路由器与指定对等体交换路由信息的能力

2、优化BGP连接:

        [huawei-bgp]peer 'ip-address' connect-interface ‘interface’    指定建立TCP连接使用的源接口;

        [huawei-bgp]peer 'ip-address ebgp-max-hop 'hop-count'       指定EBGP对等体最大跳数;默认跳数是1,配置允许同非直接相连网络上的邻居建立EBGP连接

3、配置BGP生成路由

将本地路由发布到BGP路由表中:

      [Router-bgp] network ip-address [ mask | mask-length ] [route-policy route-policy-name ]

引入其它路由协议的路由:

        [Router-bgp] import-route protocol [ { process-id | all-processes } [ allow-direct | med med-value | route-policy route-policy-name ]  ]

4、查看命令:

        [router]display bgp peer

        [router]display bgp routing-table

*-- 代表可用,可用路由会参与路由信息的优选

>--  代表优选

十一、BGP基础实验

实验结果查看博客“BGP基础实验”

第九节  BGP选路及属性

一、BGP路由选路原则(13条)

1、首先丢弃下一跳(NEXT HOP)不可达的路由,

2、优选Preferred-value值最大的路由;默认为0;
        Preferred-value:定义:首选项
        属性值:默认为0,取值范围是 0~65535,取值越大,优先级越高
        注意:H3C和华为的私有属性
3、优选本地优先级(LOCAL PREF)最高的路由;
4、依次选择network命令生成的路由、import-route命令引入的路由、聚合路由;

5、优选AS路径(AS_PATH)最短的路由;
6、依次选择ORIGIN属性为IGP、EGP、Incomplete的路由;
7、优选MED值最低的路由;
8、依次选择从EBGP、联盟EBGP、联盟IBGP、IBGP学来的路由;
9、优选下一跳度量值的路由,
        度量值:一般指通过IGP协议到达下一跳地址的度量值
10、优选CLUSTER LIST长度最短的路由;
11、优选ORIGINATOR_ID最小的路由;
12、优选RouterID最小的路由器发布的路由。
13、优选IP地址最小的对等体发布的路由

二、BGP负载分担时的选路

1、背景:BGP协议本身一定能选出唯- 一条到达目的网段的最优路由,通过手动配置路由策略可以允许BGP实现负载分担的功能.
2、BGP的负载分担与IGP的负载分担有所不同:
        IGP是通过协议白身定义的路由算法,对到达同一目的地址的不同路由,将度量值(metric)相等的路由进行负载分担

        BGP本身并没有路由计算的算法,但BGP有丰富的选路规则,可以在对路由进行一定的选择后,有条件地进行负载分担

三、BGP路由的发布策略

        只将最优路由发布给对等体。如果配置了active-route-advertise命令,则BGP发布IP路由表中的最优路由;否则,发布BGP路由表中的最优路由;

举例:
一个路由既通过BGP学到10.1.1.0/24:   
10.1.1.0/24 1.1.1.1优        BGP路由表优先
10.1.1.0/24 2.2.2.2

又通过OSPF也学到了10.1.1.0/24:

10.1.1.0/24 3.3.3.3        IP路由表优先

最终在我的IP路由表中,应选择哪一条?

比较优先级:OSPF 优先级:10和150 ,BGP优先级255。在整个IP路由表中,选择通过OSPF学到的路由

                BGP学到的网段路由优先级为255

                OSPF学到的网段路由优先级为150

                因此学到的为OSPF发布的

        

        只把自己使用的路由发布给对等体(自己选的最优路由);
        从EBGP获得的路由会向它所有BGP对等体发布;
        从IBGP获得的路由不向它的IBGP对等体发布:;(IBGP水平分割)
        从IBGP获得的路由发布给它的EBGP对等体;
        BGP连接一旦建立,BGP发言者将把满足上述条件的所有BGP路由发布给新对等体,之后,BGP发言者只在路由变化时,向对等体发布更新的路由。

四、BGP属性

        (属性越多,控制BGP路由选路的方法越多)…--实验演示

        属性:描述一个对象的特征的一些信息

1、公认属性:所有路由器都必须识别的属性

    公认必遵属性:BGP发布的路由必须携带,所有路由器必须识别的属性;AS_path、next-hop、origin
(1)AS_path
        定义:AS路径属性,记录路由传递过程中经过的AS编号

        作用:AS防环;
                路由优选:AS path短  (AS编号的数量)的优先;

注:AS_path属性增加AS编号是在路由从一个AS传出的时候;增加AS_path长度来控制选路时,建议增加真实经过的AS编号,防止AS防环机制导致路由无法学习;

实验演示:bgp选路属性(AS_path

(1)R1到达192.168.1.0的路径:R1-R3-R4

做法1:在R2上修改路由的AS_path(在R2到R1的出方向修改)

  1. 配置ACL,抓取192.168.1.0网段的路由

      acl  2000

      rule 5 permit source 192.168.1.0 0.0.0.255

  1. 配置路由策略,修改AS_path,增长其路径

      route-policy 1.0 permit node 10

      if-match  acl 2000

      apply as-path 300 400 additive

  1. 保持良好习惯,放空节点,允许其他网段通过

      route-policy 1.0 permit node 20

  1. 在出方向应用路由策略

       peer 100.1.1.1 route-policy 1.0 export

测试:修改AS_path成功

做法2:在R1上修改路由的AS_path(在R2到R1的进方向修改)

  1. 配置ACL,抓取192.168.1.0网段的路由

        [R1]acl 2000

        [R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255

  1. 配置路由策略,修改AS_path,增长其路径

       [R1]route-policy 1.0 permit node 10

       [R1-route-policy]if-match acl 2000

       [R1-route-policy]apply as-path 500 600 additive

  1. 保持良好习惯,放空节点,允许其他网段通过

       [R1]route-policy 1.0 permit node 20

  1. 在进方向应用路由策略

       peer 100.1.1.2 route-policy 1.0 import

        additive:在原来的AS编号基础上,加入新增加的AS编号

        overwrite:覆盖原来的AS编号

        思考:假设一条路由的AS_path=(1,2,3),另外一条路由AS_path=(10000,20000),请问谁的路由更优?

        答案:不管AS编号多大多小,AS_PATH编号数量少的路径,永远优先。

(2)next-hop:下一跳

注意:如果一个路由器同时拥有EBGP和IBGP邻居:
        1)路由发布给EBGP邻居,下一跳变更为指定的EBGP邻居地址

        2)路由发布给IBGP邻居,下一跳不变,仍然保持为指定的上个AS的EBGP邻居地址;

        3)对IBGP邻居发布的路由通告命令更改下一跳为本机。

(3)origin:路由来源属性(描述一条BGP路由的来源)

属性值:

        1)IGP:来源于network宣告,聚合的路由,显示为1;

        2)EGP:来源于引入的EGP协议路由,显示为e(一般见不到了)

        3)incomplete :未完成,来源于引入IGP协议或静态路由,显示为?

        4)优选顺序:IGP>EGP>incomplete

在R1增加一个环回口:192.168.2.1,宣告进BGP,查看R4路由表,发现去往192.168.1.0网段的下一跳是R2。

现在我们可以通过更改OGN属性,让去往192.168.2.0网段的下一跳是R3。

方法1:在R4对42上改入方向

  1. 抓取流量

      [R4]acl 2000

      [R4-acl-basic-2000]rule permit source 192.168.2.0 0.0.0.255

  1. 配置路由策略,修改origin 为incomplete

      [R4]route-policy 2.0 permit node 10

      [R4-route-policy]if-match acl 2000

      [R4-route-policy]apply origin incomplete

  1. 保持良好习惯,放空节点,允许其他网段通过

      [R4]route-policy 2.0 permit node 20

  1. 在进方向应用路由策略

      [R4-bgp]peer 2.2.2.2 route-policy 2.0 import

测试:查看R4路由表,发现去往192.168.1.0网段的下一跳已经是R3

公认可选:所有路由都识别,但不是必须携带的属性;local-perference、Atomic-aggregate

(1)local-perference:

        定义:本地优先级,同一个AS内也可以看到这个属性值,表明了BGP路由器的优先级

        注意:默认值100,值大的优先;

在R4上通过更改local-perference,让R4重新选择走R2的2.2.2.2

方法2:把到3.3.3.3的路由local-perference值改小于100

在R3上配:在R3的出方向或者R4的入方向都可以

出方向:

  1. 抓取流量

      [R3]acl 2000

      [R3-acl-basic-2000]rule permit source 192.168.2.0 0.0.0.255

  1. 配置路由策略,修改local-perference为80

      [R3]route-policy lp permit node 10

      [R3-route-policy]if-match acl 2000

      [R3-route-policy]apply local-preference 80

  1. 保持良好习惯,放空节点,允许其他网段通过

      [R3]route-policy lp permit node 20

  1. 在出方向应用路由策略

     [R3-bgp-af-ipv4]peer 4.4.4.4 route-policy lp export

测试:查看R4路由表,发现去往192.168.2.0网段的下一跳已经是R2

(2)Atomic-aggregate:自动聚合

注:BGP可以自动聚合,也可以手动聚合

2、可选属性

1)可选传递属性

定义:路由器可以不识别该属性,但是会继续向下传递该属性

属性:aggregator:手动聚合

           community:团体属性

(2)可选非传递属性

定义:路由器可以不识别该属性,但是也不会继续向下传递该属性

属性:

  1. clustor_list:集群列表
  2. originator_id:起源ID
  3. MED:多出口鉴别器:当一个AS有多个入口点时,用于判断流量进入AS时的最优路径。

         属性值:network的路由,默认值为0;

                引入的路由,默认值为原IGP协议的cost;

                值小的优先;

实验演示:

​​​​​​​

演示1:在R4上通过路由策略对2.0网段路由改MED值,这样R4能将192.168.2.0的MED传给R5。

  1. 抓取流量

      [R4]acl 2000

      [R4-acl-basic-2000]rule permit source 192.168.2.0 0.0.0.255

  1. 配置路由策略,修改MED为133

      [R4]route-policy med permit node 10

      [R4-route-policy]if-match acl 2000

      [R4-route-policy]apply cost 133

  1. 保持良好习惯,放空节点,允许其他网段通过

      [R4]route-policy med permit node 20

  1. 在出方向应用路由策略

      [R4]bgp 200

      [R4-bgp-af-ipv4]peer 100.5.5.5 route-policy med export

测试:查看R5路由表,发现R4能将192.168.2.0的MED传给R5

3、preferred-value

        Preferred-value值最大的路由;默认为0;

        Preferred-value:定义:首选项。

        属性值:默认为0,取值范围是 0~65535,取值越大,优先级越高。

注意:H3C和华为的私有属性,

通过修改preferred-value,使R1去往192.168.1.0/24走R2

在R1的进方向,对R2修改

        [R1]acl 2000

        [R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255

        [R1]route-policy pv permit node 10

        [R1-route-policy]if-match acl 2000

        [R1-route-policy]apply preferred-value 30

        [R1]route-policy pv permit node 20

        [R1]bgp 100

        [R1-bgp]peer 100.1.1.2 route-policy pv import

五、属性控制的选择建议

1.如果希望影响下游所有路由器的路由选择,建议使用AS-PATH

2.如果只希望影响本AS内部的路由器选择,建议使用Local-preference

3.如果希望只影响下游某一个AS的路由器选择,建议使用MED

4.如果希望只影响某一台路由器的路由选择,建议使用preferred-value

六、属性控制方法

路由策略

七、BGP路由控制实验

第十节 BGP对等体组等 

        BGP对等体组、聚合、路由反射器、联盟、团体属性

一、大规模BGP网络所遇到的问题

        BGP 对等体众多,配置繁琐,维护管理难度大

        BGP 路由表庞大,对设备性能提出挑战

        IBGP 全连接,应用和管理 BGP难度增加,邻居数量过多

        路由变化频繁,导致路由更新频繁

二、解决大规模BGP网络所遇到的问题

1、BGP 对等体众多

        对等体组(Peer Group)

        BGP 团体(Community)
2、BGP 路由表庞大
        BGP 路由聚合
3、IBGP 全连接(邻居数量太多)

        BGP路由反射(Route Reflection)
        BGP联盟(Confederation)
4、路由变化频繁
        BGP 路由衰减(Route Dampening)

三、对等体组

        定义:BGP 对等体组(Peer Group)是一些具有某些相同属性的对等体的集合。通过对等体组可以简化配置

        特点:根据对等体所在的AS,对等体组可分为IBGP对等体组和EBGP对等体组。

建邻要求:

        EBGP :R1-R2

        IBGP:R2 分别于 R3/R4/R5

注意:配置EBGP对等体组--------一般不常用,因为只有同一个AS中的EBGP邻居才能加入一个对等体组,如果EBGP邻居分布在多个AS,则需要给每个AS的EBGP邻居,配置一个对等体组。比较麻烦

配置IBGP对等体组

        [R2-bgp]group in internal

        [R2-bgp]peer 3.3.3.3 group in

        [R2-bgp]peer 4.4.4.4 group in

        [R2-bgp]peer 5.5.5.5 group in

        [R2-bgp]peer in connect-interface l0

        [R2-bgp]peer in next-hop-local

        [R3-bgp]peer 2.2.2.2 as 200

        [R3-bgp]peer 2.2.2.2 connect-interface l0

R4和R5上做和R3相同的配置

配置EBGP对等体组

四、BGP路由聚合

作用:减小路由表规模

1、自动聚合:

        只能对引入的iGP 的路由进行聚合,

        只能将明细路由汇总到主类,这会造成路由黑洞,

        华为设备默认关闭自动聚合功能;

        只能在始发路由器上进行配置;

[r1-bgp]summary automatic 开启自动聚合

自动聚合后,会出现状态码Ssuppressed,代表被抑制的路由信息将不会再加表和传递了

实验演示1:只针对重发布的路由条目生效,不对自身宣告的路由生效

R3上加几个环回口172.16.0.1 24和172.16.1.1 24,并做BGP宣告

[R3-bgp]summary automatic  开启自动聚合

实验演示2:引入直连

[R3-bgp]import-route direct

[R3-bgp]summary automatic

2、手工聚合:

        可实现精确汇总:[R1-bgp]aggregate 172.16.0.0 16

        可以在任何路由器上对 BGP 路由进行聚合;

        出现问题:明细路由依然被通告,有形成环路的隐患

解决方法:[R1-bgp]aggregate 172.16.0.0 16 detail-suppressed  //抑制明细路由

        此命令不通过明细路由;

实验演示1:

        [R3-bgp]network 172.16.1.1 24

        [R3-bgp]network 172.16.0.1 24

        [R3-bgp]aggregate 172.16.0.0 23

测试:查看路由表,聚合成功,但明细路由也存在,并没有达到缩小路由表规模的情况

抑制明细路由。达到了缩小路由表的规模

常见汇总命令:

[R1-bgp]aggregate 172.16.0.0 16 detail-suppressed as-set  汇总的路由可继承明细路由的路径属性,其中AS_PATH属性最关键。

[R1-bgp]aggregate 172.16.0.0 16 suppress-policy 路由策略名字通告汇总路由,并有选择性的抑制明细路由

五、路由反射器

1、定义:

        BGP反射器能把从IBGP邻居学习的路由反射给其他IBGP邻居

2、作用:

        用于替代IBGP全连接,减少IBGP邻居数量;解决BGP路由黑洞问题;

3、角色:

RR(router  reflect):路由反射器

        反射器角色:

        client:RR 客户机

        非客户机

注:将一台BGP路由器指定为RR的同时,还需要指定其Client。至于Client本身,无需做任何配置,它并不知晓网络中存在RR

4、反射规则

        从非反射客户端接受的路由,仅反射给客户端;

        从客户端接受到的路由,反射给所有客户端和非客户端,路由始发者除外;

        从EBGP接收的路由,反射给所有的客户端和非客户端;

注:一个反射群里的所有反射客户端只需与反射器建立IBGP邻居关系

5、反射集群:

                        由反射器和客户端组成的网络范围;

                        如果存在多个反射器,配置相同的cluster_id

思考:当RR故障后,会发生啥?怎么解决?

思考:RR之间需要建立邻居关系?------当然需要

6、路由反射存在问题:

                                使得IBGP水平分割原则失效,会导致环路的产生

7、解决方法:

通过两个路径属性来避免环路

        (1cluster_list(集群列表):

        类似 AS PATH,每个 RR 都有一个 clusterid,默认为路由器的routerid,可手工修改;

        同一个 AS 内的 clusterid 必须相同,才能有防环作里。

        路由传递过程中,把经过的反射器的clusterid依次记录在 glustsrlisk中;

        clustsrlisk用于反射器防环,当反射器收到 BGP 路由时,如果本机的 clustsrid出现在clusterlist中,则丢弃该路由;

        Cluster-list用于路由优选,短的优先

特殊情况:不受Cluster-list防环机制的约束,依然形成环路

        (2originator_ID:起源ID

        由路由反射器反射一条路由时产生,会在反射出去的路由中增加 griginator.w,它就是此路由始发者的 router-id;

        即使这条反射路由经过多个 RR,当 BGP路由器收到一条携带 Qrgioatgr!Q~属性的IBGP 路由,并且 &rginatgr!p,属性值与自身的 Router ID 相同,则它会忽略关于该条路由的更新。

        originator_ID用于路由优选,短的优先

8、总结BGP的防环机制

(1)AS_PATH:解决AS之间的环路问题

(2)IBGP的水平分割:解决一个AS内部IBGP邻居之间环路问题

(3)路由反射器:当一个反射群中存在多个反射器时,通过Cluster-list防环,

(4)originator_ID在多个反射群之间,通过originator_ID防环

9、注意事项

反射路由无法使用策略去更改路由属性

        [R2]acl 2000

        [R2-acl-basic-2000]rule permit source 172.16.0.0 0.0.1.255

        [R2]route-policy aa permit node 10

        [R2-route-policy]if-match acl 2000

        [R2-route-policy]apply local-preference 90

        [R2]route-policy aa permit node 20

        [R2]bgp 200

        [R2-bgp]peer 5.5.5.5 route-policy aa export

10、实验配置

[R2-bgp]peer 3.3.3.3 reflect-client      //在反射器上配置其反射客户机

[R2-bgp]reflector cluster-id 2.2.2.2    //配置反射器的集群id

11、实验作业

BGP路由反射器实验

第十一节 VLAN技术

一、VLAN技术产生背景

路由器具有隔离广播域的功能,而交换机没有,为了解决广播域的问题,引入VLAN,通过逻辑上的划分,减小广播域范围

二、VLAN作用及特点

VLAN作用:将规模较大的广播域在逻辑上划分成若干个不同的、规模小的广播域

VLAN特点:同一VLAN内的主机可以通信,不同VLAN内的主机不能通过 二层交换机通信,只能借助三层设备通信

三、VLAN实现过程

(1)同一交换机VLAN内的通信

工作过程:

  1. pc发送数据帧进入交换机,会被打上VLAN tag;VLAN tag中的VLAN id就是收到数据帧的接口的所属VLAN;一旦数据帧被打上VLAN tag,就变成了802.1Q格式的帧;
  2. 交换机检查数据帧的目的MAC地址,进行判断;

      若目的Mac地址对应的接口允许tag中的VLAN id通过,则数据帧可以转发;否则,丢弃该帧

  1. 数据帧从接口发往pc前,会剥离VLAN tag,使之还原为标准的以太网帧格式

(2)跨交换机的同一vlan的通信

工作过程:

  1. 数据帧从主机出来后会进入到交换机,交换机收到后会给此数据帧打上一个vlan tag(tag中的vlan ID就是交换机收到数据帧接口的vlan ID),此时数据帧变成了一个802.1q格式的帧。
  2. 在发送端802.1Q格式的数据帧离开交换机时,检查该接口的vlan允许列表,若允许,则带标签发送,反之则丢弃。
  3. 接收端的交换机收到后,交换机检查目标MAC地址的主机接口所属的vlan ID,如果此vlan ID与802.1q帧格式中的vlan ID一致,则转发该数据帧,否则丢弃。

注意:数据从交换机发往主机前,需要剥离掉vlan TAG,使之还原为原始的以太网数据帧。

四、VLAN划分方式

   五种方式:

(1)基于接口划分:

VLAN的范围:0-4095,其中0和4095为系统保留,1-4094用户可用

PVID:缺省VLAN,默认VLAN 1

优点:划分方式简单,容易实现

缺点:主机移动,需要重新配置VLAN

(2)基于IP地址划分:

建立IP地址与VLANID的映射关系

优点:易于主机移动

(3)基于MAC地址划分:

建立MAC地址与VLANID的映射关系

缺点:配置易出错,主机不易移动

(4)基于协议划分:

建立协议簇类型和VLAN id的映射关系

(5)基于策略的划分:

多种方式的组合,需要管理员预先设置策略

注意:VLAN划分方式排序优先级:MAC>IP>协议>端口

五、交换机接口类型

1、access:

(1)定义:一般连接PC、服务器等终端设备,一个接口只能加入一个VLAN。
(2)特点:
        接收帧:
                收到untagged(不带标签)的数据帧,打上该接口PVID的标签,并接收;

                收到tagged(带标签)数据帧,与该接口PVID比较,相同则接受,不同则丢弃;
        发送帧:
                剥离标签发送

2.trunk :

(1)定义:一般用于交换机间互连、路由器、防火墙等设备的子接口;
可以允许多个VLAN的数据帧通过;

(2)特点:
        接收帧:

                untagged数据帧,打上该接口的PVID的标签,同时看下该接口的PVID和802.1Q2格式帧中的VLAN TAG是否在接口允许列表中,如果在就并接收,否则丢弃

                tagged数据帧,查看VID是否在该接口允许列表中,如果在则接收,反之则丢弃:
        发送帧:

                VID在允许列表中,且VID与PVID一致,则剥离标签发送;
                VID在允许列表中,但VID与PVID不一致,则直接带标签发送:

               不在允许列表中,则直接丢弃;

[SW1-GigabitEthernet0/0/1]port trunk pvid vlan 10        修改TRUNK接囗PVID

[SW1-GigabitEthernet0/0/1]undo port trunk allow-pass vlan 1

3、hybird:

(1)定义:

        既可连接pc或者路由器,能来连接交换机,可以允许多个VLAN的数据通过;

        可以手动配置hybrid端口发出的数据帧,哪个VLAN保留标签,哪个VLAN撕掉标签;

        hybrid收到未打tag的帧,会重新打上缺省VLAN的tag;

(2)特点:

        接收帧:
                untagged数据帧,打上PVID的标签,并接收;
                tagged数据帧,查看VID是否在允许列表中,如果在则接收,反之则丢弃,
        发送帧:
                Tag中的VLANID与pvid一致,则剥离tag并发送;Tag中的VLANID与pvid不一致:
                Tag中的VLAN ID出现在tagged表中,则保留tag发送;Tag中的VLANID出现在untagged表中,则剥离tag发送,反之,丢弃;:

(3)hybird应用(每个PC都能和服务器通信,但PC之间不互通)

[SW2-GigabitEthernet0/0/2]port hybrid untagged vlan 10 100   配置untag的vlan列表

六、VLAN间通信

VLAN间通信背景

        同一VLAN内通信,可以通过二层交换机实现
        VLAN间的通信,只能依靠三层设备(路由器、三层交换机)

(1)使用路由器物理接口

        特点:在路由器上配接口IP,作为主机网关。但这需要路由器与每个VLAN建立一条物理连接,路由器接口很少,浪费路由器接口。

(2)使用路由器子接口(单臂路由)

        特点:一旦出故障,网络就瘫痪了。

配置命令

[r1]int g0/0/0.1         创建子接口

[r1-GigabitEthernet0/0/0.1]dot1g termination vid 2         封装802.1q格式

[r1-GigabitEthernet0/0/0.1]arp broadcast enable         开启arp广播播

(3)使用三层交换机的VLANIF接口

VLANIF转发流程(1)

        目标MAC:MAC2:源MAC:MAC1+vlan 10+ 目标IP:192.168.20.2 源IP:192.168.10.2/24+传输层+应用层+数据

        目标MAC:MAC3:源MAC:MAC2+vlan 20 +目标IP:192.168.20.2 源IP:192.168.10.2/24+传输层+应用层+数据

交换模块:

路由模块:

[sw1]int vlanif 2   进入VLAN 2的VLANif接口

[sw1-Vlanif2]ip add 192.168.1.254 24

七、二层接口与三层接口对比

1、二层接口不能配置IP,三层可以配置IP

2、二层接口只有转发功能,三层接口有转发和路由的功能

3、二层接口不能隔离广播域,但三层接口可以

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1980201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅谈基础的图算法——强联通分量算法(c++)

文章目录 强联通分量SCC概念例子有向图的DFS树代码例题讲解[POI2008] BLO-Blockade题面翻译题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 思路AC代码 【模板】割点(割顶)题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示…

数据结构实验报告-顺序表

桂 林 理 工 大 学 实 验 报 告 一、实验名称 实验1 顺序表 二、实验内容: 1.将书中介绍的顺序表的基本算法(如初始化、求长度、插人、删除、输出等)汇总在一起,用一个完整的程序实现顺序表的基本运算,并且编写顺序表的判空、判满等基…

最常见的AI大模型总结

前言:大模型可以根据其主要的应领域和功能,可以分类为“文生文”(Text-to-Text)、“文生图”(Text-to-Image)和“文生视频”(Text-to-Video),都是基于自然语言处理&#…

JVM从入门到放弃

前言:关于JVM,其实有很多大厂开发了不同版本的JVM,比较知名的有:Sun HotSpot VM、BEA JRockit VM、IBM J9 VM、 Azul VM、 Apache Harmony、 Google Dalvik VM、 Microsoft JVM等等。现在使用的比较多的JDK8版本就是Sun HotSpot V…

「C++系列」指针

文章目录 一、指针的定义二、指针的基本概念1. 基本概念2. 案例代码示例 1:基本指针使用示例 2:指针与数组 3. 注意事项 三、指针的用途1. 指针的用途2. 案例代码案例1. 动态内存分配案例2. 函数参数(通过指针修改值)案例3. 数组和…

poky yocto(04):编译在vmware上运行的镜像

编译镜像 bitbake build-appliance-image 得到文件:build-appliance-image-qemux86-64.wic.vmdk 问题的关键来了,如何启动这个东西呢?由名字可知,这是一个vmware的硬盘文件,需要创建一个新的虚拟机加载它。 创建虚拟…

黑神话悟空游戏电脑配置要求 黑神话悟空Steam销量全球两连冠 黑神话悟空苹果笔记本电脑能玩吗 黑神话悟空是什么类型的游戏

相信不少游戏爱好者,近期被《黑神话:悟空》这款游戏刷屏了,备受期待的国产单机大作《黑神话:悟空》将于8月20日全球同步上线,登陆 PC (Steam / Epic / WeGame) 和 PS5 平台。凭借空前的关注度,该游戏有望成为国产游戏行…

sql注入漏洞复现

and 11 正常 and 12 报错 从这就已经说明是sql数字型注入了 上sqlmap验证一下 存在布尔盲注,时间盲注...... 我是在漏洞盒子上提交的,能不能通过看运气吧 下面这个漏洞已经是很久之前的了,现在已经是修复了,当时还是太年轻了...…

文献阅读:扩散波模型的物理信息神经网络

目录 摘要 Abstract 扩散波模型的物理信息神经网络 文献摘要 讨论|结论 理论知识 扩散波动方程(曼宁方程) 梯度停止(Stop-gradient)技术 时分PINN(TPINN) 新结构(fPINN) 实验设置 稳定流问题 等速和扩散问题 非线性速…

基于STM32的简易音频播放系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码音频播放代码应用场景 简易音频播放语音提示系统常见问题及解决方案 常见问题解决方案结论 1. 引言 音频播放系统在日常生活中有着广泛的应用,从简单的语音提示到复杂…

基于Transformer的语音识别与音频分类

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…

如果我的发明有修改,需要如何处理?

如果我的发明有修改,需要如何处理?

近期关于云服务器window server 2012屏蔽游戏加速器/IP加速器模拟IP连接限制策略

winr 打开运行 输入 gpedit.msc 找到本地组策略编辑器的对应设置 设置启用即可。

【redis 第七篇章】动态字符串

一、概述 string 类型底层实现的简单动态字符串 sds,是可以修改的字符串。它采用预分配冗余空间的方式来减少内存的频繁分配。 二、SDS动态字符串 动态字符串 是以 \0 为分隔符。最大容量 是 redis 主动分配的一块内存空间,实际存储内容 是具体的存的数…

BACnet 调试工具 工程师必备

文章目录 BACnet 调试工具 工程师必备主要功能软件截图 BACnet 调试工具 工程师必备 官网地址 BACnet(Building Automation and Control Networks)是由美国采暖、制冷与空调工程师学会(American Society of Heating, Refrigerating and Air…

【网络层】IP报文解析和网段划分

文章目录 网络层的作用IP协议协议报头格式网段划分DHCPCIDR划分方案 IP地址的数量限制私有IP地址和公网IP地址LAN和WAN 路由 网络层的作用 前面学习了应用层和传输层,应用层的作用是为用户和应用程序提供网络服务,传输层的作用是提供端口到端口的通信服…

Android 10.0 系统默认蓝牙打开状态栏显示蓝牙图标功能实现

1.前言 在10.0的系统rom定制化开发过程中,在默认系统中,打开蓝牙开关的时候不会状态栏不会显示蓝牙图标,而只有 蓝牙连接成功后会显示蓝牙图标,客户开发需要要求在蓝牙打开的时候在状态栏就显示蓝牙图标,接下来分析下 相关的状态栏图标显示流程,然后实现相关功能 2.系统…

模块的介绍

一、模块的基本介绍 1、模块是什么? 1)模块是一个py文件,后缀名.py 2)模块可以定义函数、类和变量,模块里也可能包含可执行的代码 2、模块的作用有哪些? 1)当函数、类、变量很多时&#xf…

java基础--字符串用法

一、前言(在java中字符串的重要性) 在 Java 编程中,字符串(String)的重要性不言而喻,它几乎贯穿于所有的应用程序和系统中。以下是 Java 中字符串重要性的几个方面: 1. 数据表示和处理 文本数…

使用PXE和kickstart完成自动化批量主机的安装

本实验采用的版本为rhel7.9 kickstart: 首先写一个kickstart脚本 安装脚本工具 配置自动化脚本 下载http服务用来共享脚本 yum install httpd -y systemctl enable httpd --now 实验的过程中把防火墙和selinux都关闭 配置自动化脚本 创建一个软链接使得用户访…