zoukankan      html  css  js  c++  java
  • 1.7-BGP②

    BGP的更新源(BGP Neighbor Update Source Address):
    原则1:
    在默认情况下,
    BGP路由器以自己路由表中,到达对方BGP邻居的地址的那条路由所指示的出接口(物理接口)的地址,作为自己的BGP更新源(源地址)
    原则2:
    BGP路由器,收到邻居发来的BGP信息时,会检查其源地址,
    然后和自己宣告的Neighbor的目标地址进行比较,
    如果一致,这个BGP Session才可建立起来.
    BGP路由黑洞的解决方案:
        1:选择性重分布(Redistribute Selected BGP Route into IGP);
        2:冗余的IBGPFull-mesh IBGP);
        3:路由反射器(Part-mesh IBGP+Refilector);
        4:联邦(Confederation);
        5:(MPLS)。
    LAB2:验证通过物理接口,构建IBGP邻居的不稳定性:
    Step1:确认L1/L2通达
    Step2:确认L3IGP通达(RIP),AS123R1/2/3
    Step3:通过物理接口,R2/R3之间构建IBGP邻居
    show run | begin router bgp
    R2#neighbor 23.0.0.3 remote-as 123
    R3#neighbor 23.0.0.2 remote-as 123
    结论:
    IBGP,如果使用物理接口构建邻居,是很不稳定的.
    很可能因为某条物理链路的抖动,导致IBGP邻居的Flapping/抖动:
    建议:
    使用环回口/Loopback接口,构建IBGP邻居.
    LAB3:Loopback接口作为BGP更新源,构建稳定的IBGP Session
    Step1:为每个IBGP路由器,构建一个环回口:
    Step2:把此Loopback接口,宣告到IGP(RIP).
    R2/R3#
    router rip
    network 2.0.0.0
    or
    network 3.0.0.0
    step3:R2/R3,删除原来的,通过物理接口构建的邻居.记得建立router-id
    R2#router bgp 123
       no nei 23.0.0.3
    r3#no nei 23.0.0.2
    Step4:通过环回口构建IBGP邻居:
    4-1:
    以对方的环回口,作为IBGP的目标地址:
    R2#neighbor 3.3.3.3 remote-as 123
    R3#neighbor 2.2.2.2 remote-as 123
    4-2:
    更改了IBGP邻居后需要把下一跳也做相应更改
    R2(config-router)#nei 3.3.3.3 next-hop-self
    R3(config-router)#nei 2.2.2.2 next-hop-self
    注意:删除原物理接口所做的IBGP邻居时,相应的下一跳将自动删除.
    4-3:
    以自己的环回口,作为IBGP连接的源地址:
    R2#neighbor 3.3.3.3 update-source loopback 2
    R3#neighbor 2.2.2.2 update-source loopback 3
    step5:
    任意切断本AS123 中的物理链路,
    只要两个IBGP路由器R2/R3之间,还有最后一条能够到达,对方的环回口的路由,IBGP邻居都不会中断.
    建议:
    凡是构建IBGP,默认都使用环回口做更新新源,以构建稳定的IBGP.
    LAB4:在两AS间,存在多条冗余链路的网络环境中:
    LoopBack接口作为EBGP更新源,构建稳定的EBGP Session.
    Step1:在两AS之间回口,构建多条冗余链路.
    如果两AS,没有多条冗余链路,就使用物理接口构建EBGPP即可.
    Step2:为两AS间的EBGP路由器,构建环回口
    Step3:在各自路由器上,指定到达对方环回口静态路由:
    ∵有两条冗余链路,
    ∴要有两条到达对方环口的静态路由
    R5:(config)#
    ip route 3.3.3.3 255.255.255.255 35.0.0.3
    ip route 3.3.3.3 255.255.255.255 100.0.0.1
    r3#:(config)#
    ip route 5.5.5.5 255.255.255.255 35.0.0.5
    ip route 5.5.5.5 255.255.255.255 100.0.0.2
    测试:
    R3#ping 5.5.5.5 source 3.3.3.3 !!!!!!!!!!!!!
    Step4:建立邻居EBGP邻居:
    R3#
    router bgp 123
    bgp router-id 123.0.0.3
    neighbor 5.5.5.5 remote-as 150
    R5#
    router bgp 150
    bgp router-id 150.0.0.5
    neighbor 3.3.3.3 remote-as 123
    step5:告知对方,自己的更新源:
    r3(config-router)#neighbor 5.5.5.5 update-source loopback 3 
    r5(config-router)#neighbor 3.3.3.3 update-source loopback 5
    Step6:更改EBGPTTL(Time to Live)
    EBGP TTL值默认是1,
    EBGPTTL值最少要设为2
    而实际上EBGP多跳这个命令,在不指定其取值时,会自动默认指定为255
    r3(config-router)#neighbor 5.5.5.5 EBGP-multihop(255)
    r5(config-router)#neighbor 3.3.3.3 EBGP-multihop 2
    TTL:time to liveL3IP包头中的一个特定字段,IP包每经过一个路由设备,TTL会自动减1.
    如果TTL减到为0,即使路由器有去往目标的路由,也不会继续转发这个IP.
    Step7:测试
    R3上添加103.0.0.3/24
    R5上添加105.5.5.5/24
    r3(config)#router bgp 123 
    r3(config-router)#net 103.0.0.0 mask 255.255.255.0
    r5(config)#router bgp 123 
    r5(config-router)#net 105.5.5.0 mask 255.255.255.0
    R3#ping 105.5.5.5 source 103.0.0.3 repeat 1000000 size 15000
    结论:
    在一般情况下,EBGP的邻居关系,是不需要使用环回口构建邻居的.
    默认都直接使用物理接口,
    在只有单链路的时候,都是使用物理接口构建邻居.
    只有在两AS之间,存在多条冗余链路的时候,才需要考虑使用环回口构建EBGP邻居,以确保其EBGP的稳定性.
    LAB5:观察BGP黑洞的形成
    Step1:按图配置BGP网络
    注意:R1不运行BGP.
    R2#
    router rip
    ver 2
    network 2.0.0.0
    net 23.0.0.0
    net 12.0.0.0
    R3#
    router rip
    ver 2
    network 3.0.0.0
    net 23.0.0.0
    net 13.0.0.0
    r2/3#
    router bgp 123
    bgp router-id 123.0.0.2/3
    R2#neighbor 3.3.3.3 remote-as 123
    R3#neighbor 2.2.2.2 remote-as 123
    R2(config-router)#nei 3.3.3.3 next-hop-self
    R3(config-router)#nei 2.2.2.2 next-hop-self
    R2#neighbor 3.3.3.3 update-source loopback 2
    R3#neighbor 2.2.2.2 update-source loopback 3
    Step2:AS140/AS150中的BGP路由,宣告到BGP网络中:
    R4#(config-if)#
    router bgp 140
    network 104.0.0.0 mask 255.255.255.0
    记得R4R2建邻居
    R5(config-if)#
    router bgp 150
    network 105.5.5.0 mask 255.255.255.0
    Step3:过程AS123中的BGP路由用户问题:
    3-1:同步
    R2#
    router bgp 123
    no synchronization
    Step4:这时候全网络互通
    R4#ping 105.5.5.5 source 104.0.0.4 repeat 1000000 size 15000
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Step5:这时候切断23.0.0.0.
    R4#ping 105.5.5.5 source 104.0.0.4 repeat 1000000 size 15000
    ..............................
    R1因为没有运行BGP,
    ∴不会有导致BGP的路由,成为BGP路由的黑洞.
    BGP路由黑洞的解决方案:
    解决BGP路由黑洞,可供选择的解决方案/Solution:
    1:Redistribute Selected BGP Route into IGP
    2:Full-mesh IBGP
    3:Part-mesh IBGP+Refilector
    4:Confederation
    5:MPLS
    LAB6part-mesh IBGP,Redistribute Selected BGP Route into IGP,with sync(同步/synchronization)
    Step1:定义需要重分布到IGP中的,BGP的路由:
    R3(config)#ip prefix-list B-105 permit 105.1.0.0/16
    R2(config)#ip prefix-list B-104 permit 104.1.0.0/24
    Step2:通过Route-map,控制重分布到IGP的范围,
    route-map R3-BGP-RP permit 10
    match ip address prefix-list B-105
    set metric 1
    R2#
    route-map R2-BGP-PR permit 10
    match ip address prefix-list B-104
    set metric 1
    小提醒:
    不要配置:"route-map R3-BGP_RP permit 20"
    一旦配置,意味着所有一切BGP路由都进入IGP!
    Step3:按照route-map所定义的条件,BGP路由注入RIP:
    R3#
    router rip
    redistribute bgp 123 route-map R3-BGP-RP
    Step4:R2上观察,105.5.0.0/16,
    R2:同时从RIPBGP,都能学到路由,但因为AD竞争原因,
    RIP所获得的路由,成功进入路由表,
    而从BGP所获得的路由,不能进入路由表.
    R2#show ip route
    R      105.5.0.0[120/2]
    R2#show ip bgp
    r>i105.5.0.0/16              3.3.3.3
    Step5:R2观察,如果R2,此时启动了BGP"同步",
    是否还能优化?
    结果:可以优化~~~!!!
    因为:R2此时通过RIP,学到105.5.0.0/16,
    结果:可以优化!!!!
    Step6:R1观察两条路由:
    R       104.4.4.0[120/1] via 12.0.0.2
    R       105.5.0.0[120/1] via 13.0.0.3
    R1不再是黑洞!!
    Step7:R2上观察路由的递归查询:
    R      105.5.0.0[120/2] via 12.0.0.1
    C      12.0.0.0 is directly connected, serial0
    Step8:测试:
    R4#ping 105.5.5.5 source 104.4.4.4 !!!!!!!!!!!
    LAB7Full-mesh IBGPNo-Sync/(Peer Groups)
    Step0:启动BGP进程
    R1(config)#
    router bgp 123
    bgp router-id 123.0.0.1
    Step1:R1,使用Peer-Group(一个模版),R2/R3IGBP邻居:
    1-1:定义peer-group:(模块R1-PG
    R1#
    router bgp 123
    neighbor R1-PG peer-group
    neighbor R1-PG remote-as 123
    neighbor R1-PG update-source loopback 1 
    1-2:对不同的IBGP邻居,调用peer-group:
    neighbor 2.2.2.2 peer-group R1-PG
    neighbor 3.3.3.3 peer-group R1-PG
    peer-group 只是一种模版,只影响本路由器的,邻居建立的方法.
    R2/R3,R1的邻居建立,仍然可以使用普通方法建立.
    Step2:确保整个AS123中的所有BGP路由器的,下一跳,同步问题能够解决:
    2-1:
    R1/R2/R3#关闭同步
    2-2:
    R2,R1/R3 Say next-hop-self
    R3,R1/R2 Say next-hop-self
    r2/r3#nei 1.1.1.1 next-hop-self
    Step3:R1,观察所有BGP路由:
    *>i103.3.3.0/24       3.3.3.3
    *>i104.4.4.4.0/24     2.2.2.2
    *>i105.5.5.5.0/16     3.3.3.3
    Step4:观察在R2上的BGP路由的递归查询:
    R2#
    B     105.5.0.0[/0]via 3.3.3.3
    R     3.3.3.3[120200/2]via 12.0.0.1
    C     12.0.0.0 is directly connected, serial0
    Step5:测试:
    R4#ping 105.5.5.5 source 104.0.0.4
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!




  • 相关阅读:
    HADOOP docker(六):hive简易使用指南
    HADOOP docker(四):安装hive
    HADOOP docker(二):HDFS 高可用原理
    Python 自用代码(调整日期格式)
    Python 自用代码(某方标准类网页源代码清洗)
    python合并多个csv文件并去重
    Python连接MySQL乱码(中文变问号)
    Shell实现循环执行curl向Solr导入json文件
    Python 自用代码(拆分txt文件)
    shell报错:未预期的符号***附近有语法错误
  • 原文地址:https://www.cnblogs.com/sanyuanempire/p/6155012.html
Copyright © 2011-2022 走看看