本帖最后由 子杰 于 2013-2-18 20:56 编辑
目录 1 BGP基础部分 1.1 BGP的报文 1.2 BGP建立邻居经历五个状态 1.2.1 出现IDLE状态: 1.2.2 出现ACtive状态原因: 1.3 邻居建立的条件 1.4 BGP的TTL 1.5 BGP的路由表 1.6 BGP路由优化的条件 1.7 BGP RIB-Failure 1.7.1 RIB产生的原因 1.7.2 RIB的结果 1.7.3 查看BGP的路由条目 2 BGP的各种特殊情况 2.1 BGP中自动汇总的情况环境 2.2 BGP中解决路由黑洞 2.3 peer group作用 2.4 路由聚合(汇总) 2.4.1 手工创建: 2.4.2 创建静态路由并重分布进BGP 2.5 BGP的默认路由产生 2.5.1 对所有邻居发送默认路由 2.5.2 只对特定的邻居发送默认路由 2.6 BGP的密码认证 2.7 BGP的过滤 2.7.1 根据路由的IP来过滤之外 2.7.2 根据路由携带的AS_Path来过滤 2.8 BGP条件路由 3 BGP的反射器 3.1 为什么需要配置BGP的反射器 3.2 BGP的反射器的机制 3.3 BGP的反射器的特点 3.4 BGP的反射器命令配置 3.5 BGP的反射器中修改cluster ID 4 BGP联邦 4.1 为什么需要配置联邦 4.2 BGP联邦的机制 4.3 BGP联邦的特点 4.4 BGP联邦的配置命令步骤
1 BGP基础部分
1.1 BGP的报文 1. OPEN :建立邻居,open包中包含holdtime/router-id 2. keepalive :维持邻居关系,默认每60秒发送一次,hold timer为180秒,即到达180秒没有收到邻居的Keepalive,便认为邻 居丢失,则断开与邻居的连接。 3. **:更新报文 4. notification:当错误发生的时候,会发生通告报文 1.2 BGP建立邻居经历五个状态 1. idle 空闲状态,查找邻居的条目是否在自己的路由表里 2. connect 本台已找到邻居的路由,也已完成TCP三次握手,首先先建TCP握手,再发**报文 3. open sent :比较参数,密码认证、AS号是否与邻居一致 4. open confirm:发现参数都通过 5. established:邻居已建立完成 1.2.1 出现IDLE状态: 1. IGP的邻居不完整 1.2.2 出现ACtive状态原因: 1. 邻居没有本端的路由条目 2. 对端没有配置邻居的命令 3. neighbor x.x.x.x 中地址写错 4. AS号写错 1.3 邻居建立的条件 1. 双方需要建立邻居的IP地址在网络上是互通的,可以建立TCP会话。 2. 双方指定的AS号码必须匹配 3. 双方BGP数据包必须可达(eBGP默认TTL为1,需要注意) 4. 对方BGP数据包的目的IP和自己的源IP必须相同(单向满足即可) 1.4 BGP的TTL 1. 数据包发送给EBGP邻居时,TTL默认值为1,所以EBGP邻居必须是直连的路由器 2. 数据包发送给IBGP邻居时,TTL默认值为255,所以IBGP邻居可以是任意路由器 1.5 BGP的路由表 1. 一台运行了BGP协议的路由器,会将BGP得到的路由表与普通路由表分开存放,所以BGP路由器会同时拥有两张路由器。 2. BGP路由表需要通过命令show ip bgp才能查看 3. 在初始状态下,BGP的路由表为空,没有任何路由 4. BGP本地路由:只要BGP的路由不是从邻居学习到的而是手工导入的,那么这样的路由被称为。 1.6 BGP路由优化的条件 当收到的更新信息只有在BGP表中被优化了以后,才会被发送给其他的邻居
1. 同步(从IGP学习到/no syn)同步条件只是对IBGP起作用 2. 下一跳(静态/next-hop-self) 1.7 BGP RIB-Failure1.7.1 RIB产生的原因: 1. 该路由已经在IGP中有比BGP更高优先级的AD值 2. 内存错误 3. 超出VRF中的路由限制数。 1.7.2 RIB的结果: 1. 不放进路由表 2. 但会传给其他的BGP邻居 1.7.3 查看BGP的路由条目: 1. 查看发送出去的路由条目的命令:show ip bgp neighbor 12.1.1.1 advertised-routes 2. 查看接收者接收到的哪些路由(前提是有在设备上配置了保留邻居路由条目的命令) show ip bgp neighbor 12.1.1.2 received-routes 保留邻居给自己发送的哪些路由: router bgp x neighbor x.x.x.x soft-reconfiguration inbound 2 BGP的各种特殊情况
2.1 BGP中自动汇总的情况环境: 1. 在任何路由重分布进BGP时,会发生自动汇总,但正常network的路由条目不会发生自动汇总 2. auto-summary :不携带IGP的next-hop和metric值,会自动汇总 3. no auto-summary :携带源有的IGP的next-hop和metric值,不会自动汇总 2.2 BGP中解决路由黑洞: 1. 物理线路FULL MESH 2. BGP邻居的full mesh 3. BGP重分布进IGP(LAB) 4. MPLS 2.3 peer group作用 1.减少buffer 2.减少命令行 配置命令: router bgp 1 neighbor ccna peer-group neighbor ccna remote-as 1 neighbor ccna **-source loopback 0 neighbor 2.2.2.2 peer-group ccna neighbor 3.3.3.3 peer-group ccna neighbor 4.4.4.4 peer-group ccna 注意:Peer Group唯一的限制就是,同一个Peer Group中的所有邻居,必须全部为iBGP邻居,或者全部为eBGP邻居,也就是说不能将iBGP邻居和eBGP邻居同时混杂在同一个Peer Group中,但是如果全部都为eBGP邻居,这些邻居可以是任意AS的,而不必所有邻居都是同一个AS的。
(1)peer-group的策略会对三个邻居都产生相同的作用: (修改peer-group的名字ccna) r1(config)#router bgp 1 r1(config-router)#neighbor ccna weight 111 说明:将Peer Group “as1”的weight值改为111,将对Peer Group中所有邻居生效。
(2)若其中一个策略只对2.2.2.2起作用,则可以用以下的方法: (修改peer-group中的一个参数,但只对2.2.2.2起作用) r1(config)#router bgp 1 r1(config-router)#neighbor 5.5.5.5 weight 5 说明:将Peer Group “as45”的中邻居5.5.5.5的weight值改为5,此改动只对Peer Group中的单个邻居生效,而不会影响其它邻
居。 2.4 路由聚合(汇总) 汇总有两种方法: 1)手工命令创建汇总路由 2)创建静态路由并重分布进BGP
2.4.1 手工创建: 1) 汇总时允许所有明细路由传递出去: router bgp 4 aggregate-address 100.1.0.0 255.255.252.0 as-set 注意:AS-SET会显示出明细路由所含有的AS号, bgp路由表会显示明细路由和汇总路由条目,但汇总路由不会传递给已有的明细路由器中。 2) 汇总时拒绝所有明细路由传递出去: router bgp 4 aggregate-address 100.1.0.0 255.255.252.0 as-set summary-only 3) 汇总时抑制某条特定明细路由传递出去: access-list 1 permit 100.1.1.0 route-map spoto permit 10 match ip address 1 router bgp 4 aggregate-address 100.1.0.0 255.255.252.0 as-set suppress-map spoto 4) 汇总时,除某条特点明细不抑制,其他都拒绝传递出去: access-list 1 permit 100.1.1.0 route-map spoto permit 10 match ip address 1 router bgp 4 aggregate-address 100.1.0.0 255.255.252.0 as-set summary-only neighbor 5.5.5.5 unsuppress-map spoto
2.4.2 创建静态路由并重分布进BGP: ip route 100.1.0.0 255.255.252.0 null 0 router bgp 4 redistribute static 或network 100.1.0.0 mask 255.255.252.0 2.5 BGP的默认路由产生 (BGP的默认路由只能创建,不能通过静态重分布)
2.5.1 对所有邻居发送默认路由: router bgp 4 default-information originate
2.5.2 只对特定的邻居发送默认路由: router bgp 4 neighbor 6.6.6.6 default-originate 2.6 BGP的密码认证 配置: router bgp 1 neighbor 1.1.1.1 password xxx
2.7 BGP的过滤2.7.1 根据路由的IP来过滤之外 (1)配置全局过滤路由 r4(config)#access-list 2 permit 100.1.2.0 r4(config)#router bgp 4 r4(config-router)#distribute-list 2 in 说明:该方式配置全局过滤路由,所有邻居只接收100.1.2.0的路由。 (2)针对单个邻居过滤路由
r4(config)#access-list 2 permit 100.1.2.0 r4(config)#router bgp 4 r4(config-router)#neighbor 6.6.6.6 distribute-list 2 in 说明:只有邻居6.6.6.6只接收100.1.2.0
2.7.2 根据路由携带的AS_Path来过滤:
(1)只收起源于AS 6的路由,过滤其它所有路由 (AS起源必须是为6才能接收) r5(config)#ip as-path access-list 5 permit ^6$ r5(config)#router bgp 5 r5(config-router)#neighbor 4.4.4.4 filter-list 5 in (2)起源于AS 6的路由(只要AS含有6都能接收) r5(config)#ip as-path access-list 55 permit _6$ r5(config)#router bgp 5 r5(config-router)#neighbor 4.4.4.4 filter-list 55 in 2.8 BGP条件路由 (作用是只有当100.1.1.0存在bgp路由表里,100.1.2.0条目才会传递给x.x.x.x邻居) 配置命令: access-list 10 permit 100.1.1.0 route-map ccna permit 10 match ip address 10 exit access-list 20 permit 100.1.2.0 route-map ccnp permit 10 match ip address 20 exit router bgp x nei x.x.x.x advertise-map ccna exist-map ccnp /作用是只有当100.1.1.0存在bgp路由表里,100.1.2.0条目才会传递给x.x.x.x邻居/
3 BGP的反射器
3.1 为什么需要配置BGP的反射器: BGP在将路由传递给eBGP邻居时,会带上AS-path,为了防止环路。而传递给iBGP时,不会带上AS-path,但为了防止环路,所以就规定在iBGP内部只能传递一跳。 3.2 BGP的反射器的机制: 1. BGP Reflector和自己的Client称为一个cluster 2. 一个Cluster拥有一个唯一的Cluster ID,这个Cluster ID默认就是Reflector的Router-ID,也可以随 意设置。 3. Reflector在将路由反射出去时,都会写入自己的Cluster ID,在路由发送到其它Cluster后,其它Reflector在写入自己的Cluster ID时,还会保留之前的Cluster ID,就像保留AS_Path一样。 3.3 BGP的反射器的特点: 1. 从eBGP邻居学习到的路由会发送给所有client和所有非client,也就是发给所有邻居。 2. 从非client学习到的路由将发送给所有client。 3. 从client学习到的路由将发送给所有client和所有非client,也就是发给所有邻居。 3.4 BGP的反射器命令配置: 在R2和R3都为同一个AS号时,将R2设置为BGP 反射器,R3设为client端: r2(config)#router bgp 1 r2(config-router)#neighbor 3.3.3.3 route-reflector-client 3.5 BGP的反射器中修改cluster ID: r3(config)#router bgp 1 r3(config-router)#bgp cluster-id 123
4 BGP联邦
4.1 为什么需要配置联邦
为了解决路由在iBGP内部只能传递一跳的问题,除了BGP的反射器,还可以通过BGP联邦实现。
4.2 BGP联邦的机制: 采用在AS内部建立多个子AS的方法,从而将一个大的AS分割成多个小型AS,让AS内部拥有足够数量的eBGP邻居关系来解决路由限制问题。 4.3 BGP联邦的特点: 1. 在使用BGP Confederation在AS内部创建子AS时,建议使用私有AS号码,范围是64512-65534。 2. 在路径属性中,联邦内部的子AS是不被AS_Path计算在内的。 3. 在选路规则中,比较eBGP与iBGP邻居类型时,AS内部的子AS之间是不作eBGP与iBGP邻居类型比较的。 4.4 BGP联邦的配置命令步骤:
在R1上配置BGP Confederation r1(config)#router bgp 64512 r1(config-router)#bgp router-id 1.1.1.1 r1(config-router)#bgp confederation identifier 1 r1(config-router)#bgp confederation peers 64513 r1(config-router)#neighbor 5.5.5.5 remote-as 5 r1(config-router)#neighbor 5.5.5.5 **-source loopback 0 r1(config-router)#neighbor 5.5.5.5 ebgp-multihop r1(config-router)#neighbor 2.2.2.2 remote-as 64513 r1(config-router)#neighbor 2.2.2.2 **-source loopback 0 r1(config-router)#neighbor 2.2.2.2 ebgp-multihop r1(config-router)#neighbor 3.3.3.3 remote-as 64512 r1(config-router)#neighbor 3.3.3.3 **-source loopback 0
待续。。。。。。
----------------------------------------------------------------------------------------- SPOTO 我们共创未来
您的朋友 周俊杰(Jay)
|