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
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

1.7-BGP②的更多相关文章

  1. 1.7-BGP⑥

    BGP中的路由控制/过滤: LAB1:Distribute-list调用ACL(较落后) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      Step1:通过ACL定义 ...

  2. 1.7-BGP⑤

    BGP Attributes/BGP属性 (通过BGP的属性,实现对BGP路由的选择/操纵) BGP Route Selection/BGP的选路原则: 1: The BGP forwarding t ...

  3. 1.7-BGP④

    注意:默认路由ip route 0.0.0.0 0.0.0.0 12.1.1.1是不可以作为BGP邻居TCP始发连接的(但回包可以) 要配静态路由:ip route 13.1.1.3 255.255. ...

  4. 1.7-BGP③

    IBGP的水平分隔原则(Split Horizon Rule): IBGP的水平分割原则:by default,routes learned via IBGP are never propagated ...

  5. 1.7-BGP①

    IGP:   包括RIP/EIGRP/OSPF/ISIS/ODR等动态路由协议   运行在同一个AS中,   通过Cost/Metirc来判断路由的优劣(越小越好):   AS:自治系统(小)   A ...

  6. BGP路由协议详解(完整篇)

    原文链接:http://xuanbo.blog.51cto.com/499334/465596/ 2010-12-27 12:02:45 上个月我写一篇关于BGP协议的博文,曾许诺过要完善这个文档,但 ...

  7. 边界网关协议BGP

    Border Gateway Protocol (BGP) is a standardized exterior gateway protocol designed to exchange routi ...

  8. 1.4-动态路由协议OSPF④

    多区域的OSPF: 划分多区域的主要目的: 1.减少每个区域中的路由条目,进而减少每个路由器的内存中的路由,及其内存消耗,提高转发效率. 2.因为每一个OSPF区域对应在一个OSPF LSDB,配合在 ...

  9. BGP MPLS IP V匹N基本概念

    BGP/MPLS IP VPN基本概念 Site 在介绍VPN时经常会提到"Site",Site(站点)的含义可以从下述几个方面理解: · Site是指相互之间具备IP连通性的一组 ...

随机推荐

  1. log4j2异步日志解读(二)AsyncLogger

    前文已经讲了log4j2的AsyncAppender的实现[log4j2异步日志解读(一)AsyncAppender],今天我们看看AsyncLogger的实现. 看了这个图,应该很清楚AsyncLo ...

  2. EasyUI tree 异步树与采用扁平化实现的同步树

    所谓好记性不如烂笔头,为了以防忘记,才写下这篇博客,废话不多.. 异步树: tips:   可以采用easyui里的原始数据格式,也可以采用扁平化的数据格式. 使用场景: 当菜单模块数量庞大或者无限极 ...

  3. django.db.utils.OperationalError: (1050, "Table '表名' already exists)解决方法

    django.db.utils.OperationalError: (1050, "Table '表名' already exists)解决方法 找到解决方案,执行: python mana ...

  4. 如何利用sql注入进行爆库

    SQL注入能做什么 在<SQL注入基础>一文介绍了SQL注入的基本原理和实验方法,那接下来就要问一下,SQL注入到底能什么? 估计很多朋友会这样认为:利用SQL注入最多只能获取当前表中的所 ...

  5. Linux 学习(三)

    Linux进程 1.进程 进程:可执行应用程序执行后产生的对应的进程,重量级:进程是由一个线程或多个线程构成: 线程:是计算机中的最小单位,轻量级(依赖和物理性是独立存在的).损耗较低 假设进程1是由 ...

  6. 【PostgreSQL-9.6.3】使用pg_settings表查看参数的生效条件

    PostgreSQL数据库的配置参数都在postgresql.conf文件中,此文件的目录为数据库的数据目录($PGDATA).这些参数有些是直接修改就可以生效,有些需要重启数据库才能生效,而有些根本 ...

  7. HDU_1875_畅通工程再续

    畅通工程再续 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  8. 题解 [USACO18DEC]Balance Beam

    被概率冲昏的头脑~~~ 我们先将样例在图上画下来: 会发现,最大收益是: 看出什么了吗? 这不就是凸包吗? 跑一遍凸包就好了呀,这些点中,如果i号点是凸包上的点,那么它的ans就是自己(第二个点),不 ...

  9. 动态 SQL(2)

    前面我们学习了使用动态 SQL 的 if.where.trim元素来处理一些简单查询操作,但对于一些 SQL 语句中含有 in 条件,需要迭代条件集合来生成的情况,我们就需要使用 foreach 标签 ...

  10. Oracle 密码文件

    一.密码文件 作用:主要进行DBA权限的身份认证 DBA用户:具有sysdba,sysoper权限的用户被称为dba用户.默认情况下sysdba角色中存在sys用户,sysoper角色中存在syste ...