BGP真实案例案例分析

上传人:一*** 文档编号:140914610 上传时间:2022-08-23 格式:DOC 页数:96 大小:795.81KB
收藏 版权申诉 举报 下载
BGP真实案例案例分析_第1页
第1页 / 共96页
BGP真实案例案例分析_第2页
第2页 / 共96页
BGP真实案例案例分析_第3页
第3页 / 共96页
资源描述:

《BGP真实案例案例分析》由会员分享,可在线阅读,更多相关《BGP真实案例案例分析(96页珍藏版)》请在装配图网上搜索。

1、BGP 案例分析 1 使用由 RFC 1771 定义的 BGP,可以在自治系统 (AS) 之间创建无环路域间路由。 AS 是同处一个技术管理之下的一组路由器。 AS 中的路由器可以使用多个内部网关协议 (IGP) 在 AS 内部交换路由信息。 这些路由器可以使用外部网关协议将数据包路由至 AS 外部。 BGP 如何工作? BGP 在端口 179 上使用 TCP 作为传输协议。 两个 BGP 路由器互相之间形成 TCP 连接。 这些路由器是对等路由器。 对等路由器交换消息以公开和确认连接参数。BGP 路由器交换网络可达性信息。 这些信息主要指示路由为达到目标网络而必须通过的完整路径。 路径以 B

2、GP AS 编号形式表示。 此信息有助于构建无环路 AS 的图形。 该图形还显示在何处应用路由策略来对路由行为强制实施某些限制。 任何两个形成 TCP 连接以交换 BGP 路由信息的路由器都是“对等体”(或称“邻居”)。 BGP 对等体最初交换完整的 BGP 路由表。 在此交换以后,对等体在路由表更改时发送增量更新。 BGP 保存 BGP 路由表的版本号。 所有 BGP 对等体的版本号都是相同的。 每当 BGP 通过更改的路由信息更新路由表时,版本号就会更改。 发送保持连接数据包可确保 BGP 对等体之间的连接处于活动状态。 出现错误或特殊情况时将发送通知数据包。 eBGP 和iBGP 如果一

3、个 AS 有多个 BGP 扬声器,则该 AS 可以充当其他 AS 的传输服务。 如此部分中的图表所示,AS200 是 AS100 和 AS300 的传输 AS。 要将信息发送到外部 AS,必须确保网络的可达性。 为了保证网络可达性,将进行如下过程: 在 AS 内的路由器之间进行内部 BGP (iBGP) 对等 将 BGP 信息重分配到 AS 中运行的 IGP当 BGP 在分属两个不同 AS 的路由器之间运行时,该 BGP 称为外部 BGP (eBGP)。 当 BGP 在同一 AS 内的路由器间运行时,该 BGP 称为 iBGP。 启用 BGP 路由 完成以下步骤,以便启用和配置 BGP。假设您

4、希望使用两个通过 BGP 进行通信的路由器,即 RTA 和 RTB。 在第一个示例中,RTA 和 RTB 在不同的 AS 之中。 在第二个示例中,两个路由器属于同一个 AS。 1. 定义路由器进程和路由器所属的 AS 编号。 发出以下命令以在路由器上启用 BGP: router bgp autonomous-systemRTA#router bgp 100RTB#router bgp 200这些语句指示 RTA 运行 BGP,并且属于 AS100。 RTB 运行 BGP,并且属于 AS200。 2. 定义 BGP 邻居。 BGP 邻居的形成表明路由器尝试通过 BGP 进行通信。 形成 BGP

5、邻居部分解释了这个过程。形成 BGP 邻居 两个 BGP 路由器在建立彼此间的 TCP 连接之后互称邻居。 为使两个对等路由器启动路由更新交换,TCP 连接是必需的。 TCP 连接启动后,路由器发送开放消息,以便交换各自的值。 路由器交换的值包括 AS 编号、路由器所运行的 BGP 的版本、BGP 路由器 ID 以及连接持续时间。 在确认并接受这些值之后将建立邻居连接。 除 Established 之外的任何状态都表示两个路由器未成为邻居,因而无法交换 BGP 更新。 发出以下 neighbor 命令以建立 TCP 连接: neighbor ip-address remote-as numbe

6、r命令中的 number 是希望通过 BGP 进行连接的路由器的 AS 编号。 对于 eBGP 来说,ip-address 是直接连接的下一跳地址。 对于 iBGP 来说,ip-address 是另一个路由器上的任何 IP 地址。在对等路由器的 neighbor 命令中使用的两个 IP 地址必须 能够互相访问。 验证这两个 IP 地址之间的可达性的一种方法是在它们之间执行扩展 ping 操作。 扩展 ping 强制发出 ping 操作的路由器使用 neighbor 命令所指定的 IP 地址作为源。 路由器必须使用此地址,而不是发出数据包的接口的 IP 地址。如果有任何 BGP 配置发生更改,则

7、必须 重置邻居连接以使新参数生效。 clear ip bgp address 注意:address 是邻居地址。 clear ip bgp * 此命令清除所有邻居连接。默认情况下,将使用 BGP 4 开始 BGP 会话,如有必要可以向下协商到早期版本。 您可以禁止协商,强制指定路由器与邻居通信时使用的 BGP 版本。 在路由器配置模式下发出以下命令: neighbor ip address | peer-group-name version value以下是 neighbor 命令配置的示例: RTA#router bgp 100neighbor 129.213.1.1 remote-as 2

8、00RTB#router bgp 200neighbor 129.213.1.2 remote-as 100neighbor 175.220.1.2 remote-as 200RTC#router bgp 200neighbor 175.220.212.1 remote-as 200在本示例中,RTA 和 RTB 运行 eBGP。 RTB 和 RTC 运行 iBGP。 远程 AS 编号指向外部或内部 AS,表示使用 eBGP 或 iBGP。 并且,eBGP 对等体之间直接进行连接,但 iBGP 对等体之间未进行直接连接。 iBGP 路由器不需要进行直接连接。 但是,必须运行某个 IGP,以使两

9、个邻居能够互相访问。此部分提供 show ip bgp neighbors 命令所显示信息的一个示例。注意:请特别留意 BGP 状态。 除 Established 之外的任何状态都表明对等体未启动。注意:还要注意以下各项: BGP version 4 remote router ID 此编号是路由器上的最高 IP 地址或是最高环回接口(如果存在)。 table version table version 提供表的状态。 每当新信息传入时,表版本号就会增加。 如果版本号持续增加,则表明存在路由抖动导致路由出现持续更新。 # show ip bgp neighbors BGP neighbor i

10、s 129.213.1.1, remote AS 200, external link BGP version 4, remote router ID 175.220.12.1 BGP state = Established, table version = 3, up for 0:10:59 Last read 0:00:29, hold time is 180, keepalive interval is 60 seconds Minimum time between advertisement runs is 30 seconds Received 2828 messages, 0 no

11、tifications, 0 in queue Sent 2826 messages, 0 notifications, 0 in queue Connections established 11; dropped 10 BGP 和环回接口 iBGP 通常使用环回接口定义邻居,而 eBGP 通常不使用此接口。 通常,使用环回接口可确保邻居的 IP 地址保持启动,并使其不依赖硬件而正常工作。 如果是 eBGP,则对等路由器常常直接连接,而不使用环回。 如果在 neighbor 命令中使用环回接口的 IP 地址,则需要对邻居路由器进行某些额外配置。 邻居路由器需要通知 BGP 启用 BGP 邻居

12、TCP 连接时使用的是环回接口而不是物理接口。 为指示使用的是环回接口,可发出以下命令: neighbor ip-address update-source interface以下示例演示了此命令的用法:RTA# router bgp 100 neighbor 190.225.11.1 remote-as 100 neighbor 190.225.11.1 update-source loopback 1 RTB# router bgp 100 neighbor 150.212.1.1 remote-as 100 在本示例中,RTA 和 RTB 在 AS100 内运行 iBGP。 在 neig

13、hbor 命令中,RTB 使用 RTA 的环回接口 150.212.1.1。 在这种情况下,RTA 必须强制 BGP 使用环回 IP 地址作为 TCP 邻居连接的源。 为强制实施此操作,RTA 添加 update-source interface-type interface-number ,因此该命令为 neighbor 190.225.11.1 update-source loopback 1。 此语句在 BGP 与邻居 190.225.11.1 进行通信时强制 BGP 使用环回接口的 IP 地址。 注意:RTA 已使用 RTB 的物理接口 IP 地址 190.225.11.1 作为邻居。

14、 因为使用的是此 IP 地址,所以无需为 RTB 进行特殊配置。 有关完整的网络应用方案示例配置,请参阅使用或不使用环回地址的 iBGP 和 eBGP 示例配置。eBGP 多跳 有时,Cisco 路由器与不允许直接连接两个外部对等体的第三方路由器之间可以运行 eBGP。 可以使用 eBGP 多跳实现连接。 eBGP 多跳允许在没有直接连接的两个外部对等体之间形成邻居连接。 多跳只适用于 eBGP 而不适用于 iBGP。 以下示例演示 eBGP 多跳:RTA# router bgp 100 neighbor 180.225.11.1 remote-as 300 neighbor 180.225.

15、11.1 ebgp-multihop RTB# router bgp 300 neighbor 129.213.1.2 remote-as 100RTA 表示没有直接连接的外部邻居。 RTA 需要指出自己使用 ebgp-multihop 命令。 同时,RTB 表示一个地址为 129.213.1.2 的直接连接的邻居。 因为有此直接连接,RTB 不需要 ebgp-multihop 命令。 您还应配置一个 IGP 或静态路由,以便允许未连接的邻居互相访问。eBGP 多跳(负载平衡)部分的示例演示了在并行线路上使用 eBGP 的情况下如何达到 BGP 负载平衡。 eBGP 多跳(负载平衡) RTA#

16、 int loopback 0 ip address 150.10.1.1 255.255.255.0 router bgp 100 neighbor 160.10.1.1 remote-as 200 neighbor 160.10.1.1 ebgp-multihop neighbor 160.10.1.1 update-source loopback 0 network 150.10.0.0 ip route 160.10.0.0 255.255.0.0 1.1.1.2 ip route 160.10.0.0 255.255.0.0 2.2.2.2 RTB# int loopback 0 i

17、p address 160.10.1.1 255.255.255.0 router bgp 200 neighbor 150.10.1.1 remote-as 100 neighbor 150.10.1.1 update-source loopback 0 neighbor 150.10.1.1 ebgp-multihop network 160.10.0.0 ip route 150.10.0.0 255.255.0.0 1.1.1.1 ip route 150.10.0.0 255.255.0.0 2.2.2.1此示例演示环回接口、update-source 和 ebgp-multihop

18、 多跳的使用。 此示例是使两个 eBGP 扬声器在并行串联线路上实现负载平衡的一种变通方法。 在正常情况下,BGP 选取某一条线路发送数据包,此时负载不会平衡。 引入环回接口之后,eBGP 的下一跳为环回接口。 使用静态路由或 IGP 引入两个开销相等的路径来到达目标。 RTA 有两种选择可到达下一跳 160.10.1.1: 一条路径是通过 1.1.1.2,另一条路径是通过 2.2.2.2。 RTB 同样有两种选择。 路由映射 BGP 大量使用路由映射。 在 BGP 上下文中,路由映射是一种用于控制和修改路由信息的方法。 通过定义路由从一个路由协议重分配到另一个路由协议的条件,可对路由信息进行

19、控制和修改。 或者,可在路由信息传入或传出 BGP 时对其进行修改。 路由映射的格式如下: route-map map-tag permit | deny | sequence-number 映射标记只是您为路由映射指定的名称。 您可以定义同一路由映射或同一名称标签的多个实例。 序号只是表明新路由映射在您已用同一名称配置的路由映射的列表中所处的位置。 本例定义了两个名称为 MYMAP 的路由映射实例。 第一个实例的序号为 10,第二个实例的序号为 20。 route-map MYMAP permit 10 (此处为第一组条件。) 路由映射MYMAP permit 20 (第二一组条件去此处。)

20、将路由映射 MYMAP 应用到传入或传出路由时,将通过实例 10 应用第一组条件。 如果不满足第一组条件,则继续使用序号更高的路由映射实例。match 和 set 配置命令 每个路由映射包含一个 match 和 set 配置命令列表。 match 指定匹配条件,set 在满足 match 命令强制实施的条件时指定设置操作。例如,您可以定义一个路由映射来检查传出的更新。 如果有与 IP 地址 1.1.1.1 匹配的项,则将该更新的度量设置为 5。 以下命令演示了该示例: match ip address 1.1.1.1 set metric 5现在,如果满足匹配条件并且得到许可,则会像设置操作所

21、指定的那样重分配或控制路由。 您将跳出列表。如果满足匹配条件并且受到拒绝,则不会重分配或控制路由。 您将跳出列表。 如果不满足匹配条件,并且受到允许或拒绝,则检查路由映射的下一个实例。 例如,检查实例 20。 这种对下一个实例的检查将持续下去,直到跳出列表或检查完路由映射的所有实例。 如果完成列表检查,并且未找到匹配项,则不会接受或转发路由。 在早于 Cisco IOS 软件版本 11.2 的 Cisco IOS 软件版本中,当使用路由映射过滤 BGP 更新,而不是在协议之间进行重分配时,针对 IP 地址使用 match 命令时将无法 对入站更新进行过滤。 可接受针对出站更新的过滤。 Cisc

22、o IOS 软件版本 11.2 以及更高版本没有此限制。 match 的相关命令有: match as-path match community match clns match interface match ip address match ip next-hop match ip route-source match metric match route-type match tag set 的相关命令有: set as-path set clns set automatic-tag set community set interface set default interface se

23、t ip default next-hop set level set local-preference set metric set metric-type set next-hop set origin set tag set weight 以下是一些路由映射示例: 示例 1 假设 RTA 和 RTB 运行路由信息协议 (RIP),RTA 和 RTC 运行 BGP。 RTA 通过 BGP 获取更新并将更新重分配到 RIP。 假设 RTA 希望将度量 2 重分配给地址为 170.10.0.0 的 RTB 路由,将度量 5 重分配给所有其他路由。这种情况下,可以使用如下配置: RTA#rout

24、er ripnetwork 3.0.0.0network 2.0.0.0network 150.10.0.0passive-interface Serial0redistribute bgp 100 route-map SETMETRICrouter bgp 100neighbor 2.2.2.3 remote-as 300network 150.10.0.0route-map SETMETRIC permit 10match ip-address 1set metric 2route-map SETMETRIC permit 20set metric 5access-list 1 permi

25、t 170.10.0.0 0.0.255.255在本示例中,如果路由与 IP 地址 170.10.0.0 相匹配,则该路由将具有度量 2。 然后跳出路由映射列表。 如果没有匹配项,则继续检查路由映射列表,从而将所有其他路由都设置为度量 5。 注意:您应总是询问“与任何匹配语句都不匹配的路由将会怎样?” 默认情况下,将丢弃这些路由。 示例 2 假设在示例 1 中,您不希望 AS100 接受有关 170.10.0.0 的更新。 当根据 IP 地址进行匹配时,无法针对入站更新应用路由映射。 因此,必须对 RTC 使用出站路由映射: RTC#router bgp 300network 170.10.0

26、.0neighbor 2.2.2.2 remote-as 100neighbor 2.2.2.2 route-map STOPUPDATES outroute-map STOPUPDATES permit 10match ip address 1access-list 1 deny 170.10.0.0 0.0.255.255access-list 1 permit 0.0.0.0 255.255.255.255至此,您已经比较熟悉如何启动 BGP 以及如何定义邻居,现在看一下如何开始进行网络信息交换。 使用 BGP 发送网络信息有多种途径。 以下几部分内容逐一介绍了这些方法: network

27、 命令 再分配 静态路由和重分配 network 命令 网络命令的格式为: network network-number mask network-masknetwork 命令控制源于此的网络。 此概念不同于使用 Interior Gateway Routing Protocol (IGRP) 和 RIP 的常用配置。 此命令不尝试针对某个接口运行 BGP, 而是尝试向 BGP 指示什么网络 BGP 源于此框。 该命令使用掩码部分,因为 BGP 版本 4 (BGP4) 可以处理子网和超网。 最多可以接受 200 条 network 命令。如果路由器知道您尝试通告的网络(无论网络状态是已连接、静

28、态,还是动态获知),network 命令就会起作用。 以下是一个 network 命令示例: RTA#router bgp 1network 192.213.0.0 mask 255.255.0.0ip route 192.213.0.0 255.255.0.0 null 0此示例指示路由器 A 为 192.213.0.0/16 生成一个网络条目。 /16 表示使用 C 类地址的超网,通告前两个八进制数,即前 16 位。 注意:您需要静态路由来使路由器生成 192.213.0.0,因为静态路由将匹配项放置在路由表中。再分配 network 命令是通过 BGP 通告网络的一种方式。 另一种方式是

29、将 IGP 重分配到 BGP 中。 IGP 可以是 IGRP、开放最短路径优先 (OSPF) 协议、RIP、增强型内部网关路由协议 (EIGRP) 或其他协议。 此种重分配看似令人望而却步,因为现在要将所有内部路由都交付给 BGP; 其中某些路由可能已通过 BGP 获知,而无需再发送它们。 应仔细进行过滤,确保只发送到希望通告的纯 Internet 路由而不是发送到您拥有的所有路由。 如下面的示例所示:RTA 公告 129.213.1.0,RTC 公告 175.220.0.0。 查看 RTC 配置: 如果发出 network 命令,将得到如下结果: RTC#router eigrp 10net

30、work 175.220.0.0redistribute bgp 200default-metric 1000 100 250 100 1500router bgp 200neighbor 1.1.1.1 remote-as 300network 175.220.0.0 mask 255.255.0.0 !- This limits the networks that your AS originates to 175.220.0.0.如果改用重分配,则将得到如下结果: RTC#router eigrp 10network 175.220.0.0redistribute bgp 200defa

31、ult-metric 1000 100 250 100 1500router bgp 200neighbor 1.1.1.1 remote-as 300redistribute eigrp 10!- EIGRP injects 129.213.1.0 again into BGP.此重分配将导致从您的 AS 发源 129.213.1.0。 您的 AS 不是 129.213.1.0 的源; AS100 才是 129.213.1.0 的源。 因此您必须使用过滤器,防止从您的 AS 发源该网络。 正确的配置如下: RTC#router eigrp 10network 175.220.0.0redis

32、tribute bgp 200default-metric 1000 100 250 100 1500router bgp 200neighbor 1.1.1.1 remote-as 300neighbor 1.1.1.1 distribute-list 1 outredistribute eigrp 10access-list 1 permit 175.220.0.0 0.0.255.255使用 access-list 命令控制源于 AS200 的网络。 将 OSPF 重分配到 BGP 与对其他 IGP 的重分配略有不同。 仅仅在路由器 BGP 下发布 redistribute ospf 1

33、 是不起作用的。 重分配各自的路由需要使用特定关键字如 internal、external 和 nssa-external。 有关更多信息,请参阅了解将 OSPF 路由重分配到 BGP。静态路由和重分配 始终可以使用静态路由生成网络或子网。 唯一的区别是 BGP 会将这些路由的源视为不完整的或未知的。 可以使用如下方法获得与重分配部分的示例相同的结果: RTC#router eigrp 10network 175.220.0.0redistribute bgp 200default-metric 1000 100 250 100 1500router bgp 200neighbor 1.1.1

34、.1 remote-as 300redistribute static.ip route 175.220.0.0 255.255.255.0 null0.null0 接口表示忽略该数据包。 因此,如果您获取了该数据包,并且存在比 175.220.0.0 更加精确的匹配项,则路由器会将该数据包发送给该更精确的匹配项。 否则,路由器将忽略该数据包。 这是通告超网的一个好方法。 本文讨论如何使用不同的方法从您的 AS 生成路由。 请记住,生成这些路由时,还有其他一些 BGP 路由是 BGP 通过邻居(内部或外部)获知的。 BGP 将 BGP 获知的信息从一个对等体传送到另一个对等体。 区别在于源自

35、network 命令、重分配或者静态路由的路由表明 AS 是这些网络的源。重分配始终可以作为将 BGP 注入 IGP 的方法。如下面的示例所示:RTA#router bgp 100neighbor 150.10.20.2 remote-as 300network 150.10.0.0RTB#router bgp 200neighbor 160.10.20.2 remote-as 300network 160.10.0.0RTC#router bgp 300neighbor 150.10.20.1 remote-as 100neighbor 160.10.20.1 remote-as 200ne

36、twork 170.10.00注意:您不需要 RTC 中的网络 150.10.0.0 或网络 160.10.0.0,除非希望 RTC 生成这些网络,并且在这些网络从 AS100 和 AS200 传入时继续传送这些网络。 区别同样是 network 命令为这些网络添加一个额外的通告,表明 AS300 也是这些路由的源。 注意:请记住,BGP 不接受源自其自身 AS 的更新。 拒绝这样的更新可为无环路域间拓扑提供保证。 例如,假设本部分示例中的 AS200 与 AS100 有直接 BGP 连接。 RTA 生成路由 150.10.0.0 并将该路由发送到 AS300。 然后,RTC 将该路由传递到

37、AS200,源保持为 AS100。 RTB 将 150.10.0.0 传递到 AS100,源仍为 AS100。 RTA 注意到更新源于其自身的 AS,并且忽略该更新。 iBGP 如果希望 AS 充当到其他 AS 的传输系统,则使用 iBGP。 通过执行 eBGP 获知,重分配到 IGP,然后再次重分配到其他 AS,是否可以获得相同的结果? 是的,但 iBGP 为在 AS 内交换信息提供了更加灵活有效的方式。 例如,iBGP 可以使用本地优先级控制退出 AS 的最佳退出点。 本地优先级属性部分介绍了有关本地优先级的更多信息。 RTA#router bgp 100neighbor 190.10.5

38、0.1 remote-as 100neighbor 170.10.20.2 remote-as 300network 150.10.0.0RTB#router bgp 100neighbor 150.10.30.1 remote-as 100neighbor 175.10.40.1 remote-as 400network 190.10.50.0RTC#router bgp 400neighbor 175.10.40.2 remote-as 100network 175.10.0.0注意:请记住,当 BGP 在自身的 AS (iBGP) 之内收到来自其他 BGP 扬声器的更新时,收到更新的 B

39、GP 扬声器不再将该信息重分配给自身 AS 内的其他 BGP 扬声器。 收到更新的 BGP 扬声器会将该信息重分配到自身 AS 之外的其他 BGP 扬声器。 因此,AS 内的 iBGP 之间保持了完整的网格。在此部分的图表中,RTA 和 RTB 运行 iBGP。 RTA 和 RTD 也运行 iBGP。 从 RTB 到 RTA 的 BGP 更新传输到该 AS 之外的 RTE。 该更新不传输到该 AS 内的 RTD。 因此,应在 RTB 和 RTD 之间建立 iBGP 对等,以免中断更新流。BGP 决策算法 BGP 从不同的自治系统接收到关于不同目的地的更新之后,该协议必须选择到达特定目的地的路径

40、。 BGP 只选择一条到达特定目的地的路径。BGP 根据不同的属性作出决策,如下一跳、管理权重、本地优先级、路由源、路径长度、源代码、度量以及其他属性。 BGP 总是将最佳路径传播给邻居。 更多信息请参阅“ BGP 最佳路径选择算法 ”。BGP 案例分析 2 部分介绍了这些属性以及其用法。BGP 案例分析 2 AS_PATH 属性 每当某路由更新传过一个 AS 时,该更新前面便会附加该 AS 编号。 AS_PATH 属性实际上是路由为到达目的地而遍历过的 AS 的编号列表。 AS_SET 是已遍历的所有 AS 的有序算法集 。 本文的 CIDR 示例 2 (as-set) 部分提供了一个 AS

41、_SET 示例。 在此部分的示例中,RTB 通告 AS200 中的网络 190.10.0.0。 当该路由遍历 AS300 时,RTC 将其自身的 AS 编号附加到网络。 因此,当 190.10.0.0 到达 RTA 时,该网络附加了两个 AS 编号: 先附加 200,然后附加 300。 对于 RTA,到达 190.10.0.0 的路径是 (300, 200)。 相同的过程也应用于 170.10.0.0 和 180.10.0.0。 RTB 必须采用路径 (300, 100); 为到达 170.10.0.0,RTB 遍历 AS300,然后遍历 AS100。 为到达 190.10.0.0,RTC 必

42、须遍历路径 (200);为到达 170.10.0.0,必须遍历路径 (100)。 源属性 源是定义路径信息的源的必需属性。 源属性可以采用以下三个值: IGP 网络层可达性信息 (NLRI) 是源 AS 的内部信息。 发出 bgp network 命令时通常使用该值。 BGP 表中的 i 表示 IGP。 EGP NLRI 通过外部网关协议 (EGP) 获知。 BGP 表中的 e 表示 EGP。 INCOMPLETE NLRI 为未知或通过其他途径获知。 当将路由从其他路由协议重分配到 BGP,并且路由的源不完整时,通常会产生 INCOMPLETE。 ? 表示 INCOMPLETE。 RTA#

43、router bgp 100 neighbor 190.10.50.1 remote-as 100 neighbor 170.10.20.2 remote-as 300 network 150.10.0.0 redistribute static ip route 190.10.0.0 255.255.0.0 null0 RTB# router bgp 100 neighbor 150.10.30.1 remote-as 100 network 190.10.50.0 RTE# router bgp 300 neighbor 170.10.20.1 remote-as 100 network

44、170.10.0.0RTA 经由 300 i 到达 170.10.0.0。 “300 i”表示下一个 AS 路径为 300,路由的源为 IGP。 RTA 也通过 i 到达 190.10.50.0。 这个“i”表示该项位于同一个 AS 中,且源为 IGP。 RTE 经由 100 i 到达 150.10.0.0。 “100 i”表示下一个 AS 为 100,且源为 IGP。 RTE 也经由 100 ? 到达 190.10.0.0。 “100 ?” 表示下一个 AS 为 100,且源是不完整的且来自静态路由。 BGP 下一跳属性 BGP 下一跳属性是为到达特定目的地而使用的下一跳 IP 地址。 对于

45、 eBGP,下一跳总是 neighbor 命令指定的邻居的 IP 地址。 在本部分的示例中,RTC 将 170.10.0.0 通告给下一跳为 170.10.20.2 的 RTA。 RTA 将 150.10.0.0 通告给下一跳为 170.10.20.1 的 RTC。 对于 iBGP,协议声明 eBGP 通告的下一跳应传递给 iBGP。 因为有此规则,RTA 将 170.10.0.0 通告到下一跳为 170.10.20.2 的 iBGP 对等体 RTB。 因此,从 RTB 出发,到达 170.10.0.0 的下一跳为 170.10.20.2,而不是 150.10.30.1。 应确保 RTB 可以

46、通过 IGP 到达 170.10.20.2。 否则,RTB 将丢弃目的地为 170.10.0.0 的数据包,因为下一跳地址不可访问。 例如,如果 RTB 运行 iGRP,还可以针对 RTA 网络 170.10.0.0 运行 iGRP。 您希望在到 RTC 的链路中将 iGRP 设为被动,以便只交换 BGP。 RTA# router bgp 100 neighbor 170.10.20.2 remote-as 300 neighbor 150.10.50.1 remote-as 100 network 150.10.0.0 RTB# router bgp 100 neighbor 150.10.

47、30.1 remote-as 100 RTC# router bgp 300 neighbor 170.10.20.1 remote-as 100 network 170.10.0.0 注意:RTC 将 170.10.0.0 通告给下一跳等于 170.10.20.2 的 RTA。注意:RTA 将 170.10.0.0 通告给下一跳等于 170.10.20.2 的 RTB。 eBGP 下一跳在 iBGP 中传递。当处理多路访问或非广播多路访问 (NBMA) 网络时要特别注意。 有关更多信息,请参阅 BGP 下一跳(多路访问网络)以及 BGP 下一跳 (NBMA) 。 BGP 下一跳(多路访问网络

48、) 此示例演示以太网等多路网络中下一跳的活动方式。 假设 AS300 中的 RTC 和 RTD 运行 OSPF。 RTC 与 RTA 运行 BGP。 RTC 可以经由 170.10.20.3 到达网络 180.20.0.0。 当 RTC 将有关 180.20.0.0 的 BGP 更新发送到 RTA 时,RTC 将 170.10.20.3 用作下一跳。 RTC 不使用自身的 IP 地址 170.10.20.2。 RTC 使用此地址是因为 RTA、RTC 和 RTD 之间的网络是多路网络。 RTA 使用 RTD 作为到达 180.20.0.0 的下一跳比经由 RTC 使用额外跃点更加有效。 注意:

49、RTC 将 180.20.0.0 通告给下一跳为 170.10.20.3 的 RTA。 如果 RTA、RTC 和 RTD 的共同介质不是多路访问,而是 NBMA,则情况会更加复杂。 BGP 下一跳 (NBMA) 共同介质在图中显示为云状。 如果共同介质为帧中继或任何 NBMA 云,则其表现和通过以太网进行连接是一样的。 RTC 将 180.20.0.0 通告给下一跳为 170.10.20.3 的 RTA。 问题在于 RTA 没有到 RTD 的直接永久虚拟电路 (PVC),不能到达下一跳。 这时路由将失败。 next-hop-self 命令可解决此问题。 next-hop-self 命令 对于

50、BGP 下一跳 (NBMA) 示例中所示的下一跳问题,可以使用 next-hop-self 命令。 语法为: neighbor ip-address | peer-group-name next-hop-self next-hop-self 命令允许您强制 BGP 使用特定 IP 地址作为下一跳。对于 BGP 下一跳 (NBMA) 示例,如下配置可解决该问题: RTC# router bgp 300 neighbor 170.10.20.1 remote-as 100 neighbor 170.10.20.1 next-hop-self RTC 通告下一跳等于 170.10.20.2 的 18

51、0.20.0.0。 BGP 后门 在此图中,RTA 和 RTC 运行 eBGP。 RTB 和 RTC 运行 eBGP。 RTA 和 RTB 运行某种 IGP,即 RIP、IGRP 或其他协议。 为 eBGP 更新定义的距离为 20,小于 IGP 距离。 默认距离是: 对于 RIP 为 120 对于 IGRP 为 100 对于 EIGRP 为 90 对于 OSPF 为 110RTA 通过两个路由协议接收有关 160.10.0.0 的更新: 距离为 20 的 eBGP 距离大于 20 的 IGP默认情况下,BGP 距离如下: 外部距离 20 内部距离 200 本地距离 200 但可以使用 dist

52、ance 命令更改默认距离:distance bgp external-distance internal-distance local-distanceRTA 选择使用 eBGP 连接的 RTC,因为这样距离更短。 如果希望 RTA 通过 RTB(使用 IGP)获知 160.10.0.0,则有两种选择: 更改 eBGP 的外部距离或者更改 IGP 距离。注意:不建议进行此更改。 请使用 BGP 后门。BGP 后门使 IGP 路由成为首选路由。 发出 network address backdoor 命令。 配置的网络是希望通过 IGP 到达的网络。 对于 BGP 来说,此网络与本地分配的网络

53、得到同等对待,除非 BGP 更新不通告此网络。 RTA# router eigrp 10 network 150.10.0.0 router bgp 100 neighbor 2.2.2.1 remote-as 300 network 160.10.0.0 backdoor 网络 160.10.0.0 视为本地项,但不作为常规网络项进行通告。 RTA 从距离为 90 的 RTB 处通过 EIGRP 获知 160.10.0.0。 RTA 也通过 eBGP 从距离为 20 的 RTC 处获知了该地址。 通常 eBGP 是首选项,但因为发出了 backdoor 命令,EIGRP 成为首选项。同步 讨

54、论同步之前请先看下面的场景。 AS300 中的 RTC 发送有关 170.10.0.0 的更新。 RTA 和 RTB 运行 iBGP,因此,RTB 获取更新并能够经由下一跳 2.2.2.1 到达 170.10.0.0。 请记住下一跳是通过 iBGP 传递的。 RTB 必须将流量发送给 RTE 才能到达下一跳。 假设 RTA 未将网络 170.10.0.0 重分配给 IGP。 这时,RTE 甚至不知道 170.10.0.0 的存在。 如果 RTB 开始通告给 AS400,说明 RTB 可以到达 170.10.0.0,则从 RTD 到 RTB(目的地为 170.10.0.0)的流量将流入,并且在

55、RTE 处被丢弃。 同步是指,如果您的 AS 将流量从另一个 AS 传递到第三个 AS,BGP 在您的 AS 中的所有路由都通过 IGP 获知某个路由之前不应通告该路由。 BGP 应等到 IGP 在 AS 内传播该路由。 然后,BGP 才将该路由通告给外部对等体。在此部分的示例中,RTB 等待通过 IGP 获知 170.10.0.0。 然后,RTB 开始将更新发送到 RTD。 通过在 RTB 中添加指向 170.10.0.0 的静态路由,可以使 RTB 认为 IGP 已经传播信息。 确保其他路由器可以到达 170.10.0.0。 禁用同步 某些情况下并不需要同步。 如果不通过您的 AS 传递来

56、自其他 AS 的流量,则可以禁用同步。 如果您的 AS 中的所有路由器都运行 BGP,则也可以禁用同步。 禁用此功能可使您在 IGP 中传递的路由数减少,并使 BGP 更快地聚合。 禁用同步不是自动功能。 如果 AS 中的所有路由器都运行 BGP,而完全不运行 IGP,路由器并不会知道已禁用同步。 您的路由器将无限期等待有关某个路由的 IGP 更新,以将该路由发送到外部对等体。 这时必须手动禁用同步,以便使路由正常工作: router bgp 100 no synchronization注意:请确保发出 clear ip bgp address 命令重置会话。RTB# router bgp 1

57、00 network 150.10.0.0 neighbor 1.1.1.2 remote-as 400 neighbor 3.3.3.3 remote-as 100 no synchronization !- RTB puts 170.10.0.0 in its IP routing table and advertises the network!- to RTD, even if RTB does not have an IGP path to 170.10.0.0.RTD# router bgp 400 neighbor 1.1.1.1 remote-as 100 network 17

58、5.10.0.0 RTA# router bgp 100 network 150.10.0.0 neighbor 3.3.3.4 remote-as 100权重 属性 权重属性是由 Cisco 定义的属性。 此属性使用权重来选择最佳路径。 权重在本地分配到路由器。 该值只对特定路由器有意义。 任何路由更新都不会传播或传递该值。 权重可以是 0 到 65,535 之间的数字。 默认情况下,由路由器生成的路径权重值为 32,768,其他路径权重值则为 0。 当存在到达同一目的地的多个路由时,权重值较高的路由优先。 请看本部分中的示例。 RTA 从 AS4 处获知网络 175.10.0.0。 RTA

59、 将更新传播到 RTC。 RTB 也从 AS4 处获知网络 175.10.0.0。 RTB 将更新传播给 RTC。 RTC 有两条途径到达 175.10.0.0,必须确定采取哪一条。 如果在 RTC 上设置来自 RTA 的更新的权重,使该权重大于来自 RTB 的更新的权重,则强制 RTC 使用 RTA 作为到达 175.10.0.0 的下一跳。 有多种方法可以设置此权重: 使用 neighbor 命令。 o neighbor ip-address | peer-group weight weight 使用 AS_PATH 访问列表。 o ip as-path access-list acces

60、s-list-number permit | deny as-regular-expression neighbor ip-address filter-list access-list-number weight weight 使用路由映射。 RTC# router bgp 300 neighbor 1.1.1.1 remote-as 100 neighbor 1.1.1.1 weight 200 !- The route to 175.10.0.0 from RTA has a 200 weight. neighbor 2.2.2.2 remote-as 200 neighbor 2.2.

61、2.2 weight 100 !- The route to 175.10.0.0 from RTB has a 100 weight.具有较高权重值的 RTA 具有作为下一跳的优先权。 使用 IP AS_PATH 和过滤器列表也可以产生同样的结果。 RTC# router bgp 300 neighbor 1.1.1.1 remote-as 100 neighbor 1.1.1.1 filter-list 5 weight 200 neighbor 2.2.2.2 remote-as 200 neighbor 2.2.2.2 filter-list 6 weight 100 . ip as-

62、path access-list 5 permit 100$ !- This only permits path 100.ip as-path access-list 6 permit 200$ . 也可以使用路由映射获得相同的结果。 RTC# router bgp 300 neighbor 1.1.1.1 remote-as 100 neighbor 1.1.1.1 route-map setweightin in neighbor 2.2.2.2 remote-as 200 neighbor 2.2.2.2 route-map setweightin in . ip as-path access-list 5 permit 100$ . route-map setweightin permit 10 match as-path 5 set weight

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!