GP_Advanced_Routing
本附录概述 SonicWALL 的边界网关协议 (BGP) 实施、BGP 的运行方式,以及如何针对您的网络配置 BGP。
本附录包含以下章节:
• BGP 概述
• 注意
• 配置 BGP
• IPv6 BGP
• BGP 术语
以下章节提供 BGP 概述:
• 什么是 BGP?
• 后台信息
• 自治系统
BGP 用于在自治系统 (AS) 之间交流路由信息的大型路由协议。这些自治系统是定义明确、单独管理的网络域。BGP 支持允许 SonicWALL 安全设备替代网络自治系统使用的传统 BGP 路由器。BGP 的当前 SonicWALL 实施最适用于“单提供商/单宿主”环境,在这种环境下,网络使用一个 ISP 作为互联网提供商,且与该提供商采用单一连接。SonicWALL BGP 还可以支持“单提供商/单宿主”环境,其中,网络使用单个 ISP,但具有连至提供商的少量单独路由。BGP 在 SonicOS GUI 的网络 > 路由页面上启用,然后再通过 SonicOS 命令行接口 (CLI) 进行完全配置。
下表显示 BGP 授权要求。
|
注 购买 SonicOS 扩展许可证后,NSA 2600 和 NSA 3600 支持 BGP。可以在 www.mysonicwall.com 购买许可证。
路由协议不仅是通过网络传输的数据包,还包含各路由器和路由器组用于发现、组织和交流网络拓扑结构的所有机制。路由协议使用取决于指定的各协议参与者的分布式算法,且在网络域内的路由器随着网络节点更改状态而动态变化时尤为有用。
路由协议通常与两个数据库交互:
• 路由信息库 (RIB) - 用于存储路由协议本身所需的全部路由信息。
• 转发信息库 (FIB) - 用于实际的数据包转发。
从 RIB 选择的最佳路由用于填充 FIB。RIB 和 FIB 都随着各路由协议接收路由更新或设备的连接变更而动态变化。
有两个基本路由协议类:
• 内部网关协议 (IGP) - 内部网关协议是用于在 AS 内部的网络内进行路由通信的路由协议。有两代 IGP。第一代由距离向量协议组成。第二代由链接状态协议组成。距离向量协议相对简单,但在扩展到大量路由器时会出现问题。链接状态协议更为复杂,也具有更好的扩展能力。现有的距离向量协议有内部网关路由协议 (IGRP)、增强内部网关路由协议 (EIGRP)、路由信息协议 (RIP) 和 RIPv2 (增强版 RIP)。IGRP 和 EIGRP 是专有的 Cisco 协议。目前使用的链接状态协议有开放最短路径优先 (OSPF) 和较少使用的中间系统到中间系统 (IS-IS) 协议。
SonicOS 支持 OSPFv2 和 RIPv1/v2 协议,这是两个最常用的路由内部网关协议,允许客户在其 IGP 网络中使用我们的产品,并避免配备单独的传统路由器产生附加成本。
• 外部网关协议 (EGP) - 标准的普适型外部网关协议是 BGP(更准确地说是 BGP4)。BGP 是用于在称为自治系统 (AS) 的定义明确网络域之间进行路由信息和策略通信的大型路由协议。自治系统是独立于其他自治系统的单独管理网络域。BGP 用于在自治系统之间传输路由和路由策略。ISP 通常使用 BGP 与其客户及其他 ISP 传输路由和路由策略。
每个自治系统都被分配了 16 位编号。和 IP 地址一样,AS 编号也可以是公用或私有的。公用 AS 编号是有限的资源,会基于很多因素的考虑提供。有多重托管至两个或多个 ISP 的大型网络的 ISP 客户通常具备公用 AS,较小型客户则具备由其 ISP 提供商管理的私有 AS。
随着我们的产品为支持企业级需求而不断发展,有些客户可能想要将我们的产品应用于 AS 以替代传统的 BGP 路由器。
每个自治系统都被分配了 16 位编号。和 IP 地址一样,AS 编号也可以是公用或私有的。公用 AS 编号是有限的资源,会基于很多因素的考虑提供。有多重托管至两个或多个 ISP 的大型网络的 ISP 客户通常具备公用 AS,较小型客户则具备由其 ISP 提供商管理的私有 AS。
BGP 是很灵活、复杂的路由协议。因此,BGP 路由器可融入多种拓扑结构设置中,例如互联网核心路由器、中间 ISP 路由器、ISP 客户前端设备 (CPE) 或小型私有 BGP 网络中的路由器。不同拓扑结构所需的 BGP 路由数相差悬殊,核心路由器需要大于 300,000 个 BGP 路由,而使用单一 ISP 和为 AS 之外的所有目标使用默认路由则不需要 BGP 路由。ISP 客户通常被要求从其边缘路由器 (CPE) 至 ISP 运行 BGP,而不论他们从 ISP 接收的路由数。这允许 ISP 客户控制使用哪些网络向外界发布。人们通常担心客户发布一个自己并不拥有的网络或网络组,会有黑洞互联网流量通过这些网络。实际上,ISP 提供商小心地过滤来自客户的无效发布(BGP 的优势之一),所以以上担心并无必要。
有三种规模的 BGP 网络:
• 单提供商/单宿主 - 网络从单一 ISP(单一提供商)接收单一路由(单宿主)。ISP 客户从其 ISP 接收的路由数取决于其 AS 的性质。仅使用一个 ISP 作为互联网提供商并且该提供商只有单一连接(单提供商/单宿主)的 ISP 客户无需接收任何路由,目标在 AS 以外的所有流量将被转到其 ISP。这些客户仍可以将其网络内的部分或全部内容发布给 ISP。
• 单提供商/多宿主 - 网络从单一 ISP(单一提供商)接收多个路由(多宿主)。使用单个 ISP,但与其 ISP 有多个连接的 ISP 客户只能在各 ISP 网关接收默认路由 (0.0.0.0/0)。如果某 ISP 连接断开,从断开的 CPE 路由器向内部路由器发送的默认路由将被撤回,互联网流量则流向连至 ISP 的 CPE 路由器。客户的内部网络也将在各 CPE 路由器网关发布至 ISP,并在与客户的特定连接断开时允许 ISP 使用替代路径。
• 多提供商/多宿主 - 使用多个 ISP,且各 ISP 有一个或多个单独网关路由器的 ISP 客户。在这种情况下,客户的 AS 必须是公用 AS,也可能是中转 AS 或非中转 AS。中转 AS 接收和转发来自 ISP 的流量,该流量去往可通过其他 ISP 连接的网络(流量的目的地不在客户的 AS 内)。非中转 AS 应该只接收去往 AS 的流量,所有其他流量均被丢弃。中转 AS 中的 BGP 路由器通常接收各 ISP 的完整 BGP 路由表的一大部分(在大多数情况下是全部)。
• 即使您并非处在互联网上的大型网络中,BGP 也可以作为多宿主、负载均衡和冗余用例的标准:
– 单提供商/单宿主 - 不常用于 BGP,但仍可用于将网络发布到 ISP。单宿主网络不符合用于 RIR 中公用 AS 的条件。
– 单提供商/多宿主 - 按照 RFC2270 使用单一私有 AS(64512 至 65535)的建议,经常被选用,可以发挥 BGP 的优势,同时保存公用 ASN。
– 多提供商/多宿主 - 高度冗余,通常用于各 ISP 的专用路由器。需要公用 ASN。大内存占用
• 路由汇总实现可扩展性。
BGP 使用 TCP 端口 179 进行通信。BGP 被视为一种路径向量协议,包含目的地的端对端路径描述。BGP 邻居可以是内部 (iBGP) 或外部 (eBGP) 的:
• iBGP - 邻居位于相同 AS 内。
• eBGP - 邻居位于不同 AS 中。
路径在标记为各种路径属性的更新消息中发布。AS_PATH 和 NEXT_HOP 是描述 BGP 更新消息中路由路径的两个最重要属性。
• AS_PATH:表示路由通信往来的 AS。在下例中,AS_PATH 来自 AS 7675,去往 AS 12345。对于内部 BGP,AS_PATH 为源和目标指定相同的 AS。
• NEXT_HOP:表示路径前往的下一路由器的 IP 地址。穿过 AS 边界发布的路径继承了边界路由器的 NEXT_HOP 地址。BGP 依赖内部路由协议连通 NEXT_HOP 地址。
用于定义 BGP 的 RFC 1771 描述了 BGP 与以下状态机相关的工作。下图后面的表格提供了有关各种状态的附加信息。
图 81:1 BGP 有限状态机
|
BGP 通信包含以下几个消息:
• 开启 - 在建立 TCP 会话后,BGP 对等项之间的第一条消息。包含建立对等会话的必需信息,例如 ASN、保持时间以及多产品扩展和路由刷新等功能。
• 更新 - 这些消息包含路径信息,例如路由宣布或撤回。
• 保持连接 - 有关保持 TCP 层活动和发布活动连接的定期消息。
• 通知 - 有关终止 BGP 会话的请求。包含错误代码“cease”的非致命性问题通知。子代码提供更多详细信息:
|
• 路由刷新 - 用于对等项重新发送其路由的请求。
BGP 更新消息可以包含以下属性:
|
有关 BGP 属性的更多信息,请参见:http://www.iana.org/assignments/bgp-parameters/bgp-parameters.xml
• 规模 - 目前,SonicOS 支持 512 至 2,048 个基于策略的路由 (PBR)。这对于完全甚或部分路由表是不够的。RIB 中存在的路由数可能大于 PBR(是 FIB)中安装的数目。当通过路由协议收到多个竞争路由时,会发生这种情况。在 RIB 包含去往特定网络目标的多个竞争路由时,只有一个路由可被选择安装到 FIB 中。
目前,我们的实施最适合于单提供商/单宿主客户。如果从 ISP 收到默认路由,或者客户收到很少量的 ISP 特定路由,单提供商/多宿主也很适用。第二种情况允许内部路由器采用最优路径到达 AS 外部的目标,但仍处于 ISP 网络域内(这被称为部分路由)。
• 负载均衡 - 目前 SonicOS 或 Zebos 中没有多路径支持(“最多路径”功能)。这样就阻止了负载均衡,且不拆分网络。
• 环回 - 目前没有环回接口支持。
• NAT - BGP 适用于路由。但不能与 NAT 良好共存。
• VPN 更新 - 目前无法通过 VPN 进行 BGP 更新。
• 异步路径 - 状态防火墙目前不处理异步路径,尤其对于穿越多个防火墙的情况。
以下章节描述如何配置 SonicOS 的 BGP 高级路由:
• BGP 团体
• 同步和自动汇总
BGP 传输数据包畅通无阻。因此为了增强安全性,Dell SonicWALL 推荐配置 IPSec 隧道用于 BGP 会话。IPSec 隧道和 BGP 的配置彼此独立。IPSec 隧道完全在 SonicOS GUI 的 VPN 配置部分进行配置,而 BGP 在网络 > 路由页面启用,然后在 SonicOS 命令行接口进行配置。在配置通过 IPSec 的 BGP 时,首先配置 IPSec 隧道,然后在配置 BGP 之前验证通过隧道的连接是否有效。
以下过程显示 SonicWALL 和远程 BGP 对等项之间的 IPSec 配置示例,其中,SonicWALL 配置为 X0 网络上的 192.168.168.75/24,远程对等项配置为 X0 网络上的 192.168.168.35/24。
1. 浏览至 VPN > 设置页面,然后单击“VPN 策略”下方的添加按钮。显示“VPN 策略”窗口。
2. 在策略类型下拉菜单,确保选中站对站。
注 通过 IPSec 的 BGP 必须使用站对站 VPN 隧道。隧道接口将不适用于 BGP。
3. 选择需要的验证方法。本例使用使用共享密钥的 IKE。
4. 输入 VPN 策略的名称。
5. 在 IPsec 主要网关名称或者地址字段,输入远程对等的 IP 地址(本例中是 192.168.168.35)。
6. 在 IPsec 次要网关名称或者地址字段,输入 0.0.0.0。
7. 输入共享密钥,然后确认。
8. 在本地 IKE ID 字段,输入 SonicWALL 的 IP 地址(本例中是 192.168.168.75)。
9. 在对等 IKE ID 字段,输入远程对等的 IP 地址 (192.168.168.35)。
10. 单击网络选项卡。
对于本地网络,在从列表中选择本地网络下拉菜单选择 X0 IP。
12. 对于远程网络,在从列表中选择目标网络下拉菜单中选择远程对等 IP 地址,本例中是
192.168.168.35。如果远程 IP 地址未列出,则选择创建新地址对象创建 IP 地址的地址对象。
13. 单击建议选项卡。您可以使用默认的 IPSec 协议或根据需要自定义。
14. 单击高级选项卡。
15. 选中启用 Keep Alive 复选框。
16. 单击确定。
防火墙的 VPN 策略现在已配置。现在,完成远程对等项的相应 IPSec 配置。完成时,返回到 VPN > 设置页面,然后选中 VPN 策略的启用复选框以启动 IPSec 隧道。
使用 SonicWall 上的 ping 诊断功能 ping BGP 对等 IP 地址,并使用 Wireshark 确保请求和响应封装在 ESP 数据包中。
注 如本例中的配置,传送的流量不会经过用于 BGP 的 IPSEC 隧道。该流量的发送和接收畅通无阻,这正符合预期的行为,因为目标是保障 BGP 的安全性,而不是所有传送的网络流量。
有关配置 IPSec 的更多详细信息,请参见《SonicOS 管理员指南》中的 VPN 章节。
要在 SonicWALL 安全设备配置 BGP,请执行以下任务:
1. 在 SonicOS GUI,浏览至网络 > 路由页面。
2. 在路由模式下拉菜单,选择高级路由。
3. 在 BGP 下拉菜单中,选择已启用(使用 CLI 配置)。
在通过 GIU 启用 BGP 后,BGP 配置的具体设置使用 SonicOS 命令行接口 (CLI) 执行。有关如何连接至 SonicOS CLI 的详细信息,请参见《SonicOS 命令行接口指南》,链接:
http://www.sonicwall.com/us/support/230_3623.html
4. 通过控制台界面登录 SonicOS CLI。
5. 通过输入 configure 命令进入配置模式。
6. 通过输入 route ars-bgp 命令进入 BGP CLI。现在,您可以看到以下提示:
ZebOS version 7.7.0 IPIRouter 7/2009
ARS BGP>
7. 现在,您在 BGP 非配置模式中。输入 ? 查看非配置命令的列表。
8. 输入 show running-config 查看当前的 BGP 运行配置。
9. 要进入 BGP 配置模式,输入 configure terminal 命令。输入 ? 查看配置命令的列表。
10. 在完成配置后,输入 write file 命令。如果该单元是“高可用性”对或群集的一部分,配置更改将自动传达至一个或多个其他单元。
以下属性可用于配置 BGP 路径选择过程。
|
权重命令按地址家族向学习自邻居的所有路由分配权重值。如相同前缀向多个同等项学习,则首选具有最高权重高的路由。权重仅适用于本地路由器。
使用 set weight 命令分配的权重替代使用上述命令分配的权重。
如为对等组设置权重,则对等组中的所有成员都具有相同的权重。该命令还可用于向特定的对等组成员分配不同的权重。
下例显示权重配置:
router bgp 12345
neighbor 12.34.5.237 remote-as 12345
neighbor 12.34.5.237 weight 60
router bgp 12345
neighbor group1 peer-group
neighbor 12.34.5.237 peer-group group1
neighbor 67.78.9.237 peer-group group1
neighbor group1 weight 60
“本地首选项”属性用于表示设备路由表中各外部路由的首选程度。“本地首选项”属性包含在发送至相同 AS 中设备的所有更新消息中。“本地首选项”不与外部 AS 交流。下图是显示本地首选项如何影响相邻 AS 之间的路由的拓扑结构示例。
以下 BGP 配置在 SNWL1 和 SNWL2 中输入。SNWL2 中的较高本地首选值致使 SNWL2 成为 AS 12345(SonicWALL AS)向外部 AS 发布的首选路由。
|
路由映射类似于访问控制列表。其中包含一系列用于确定设备如何处理路由的允许和/或拒绝语句。路由映射应用于入站流量,而不是出站流量。下图显示使用路由映射配置本地首选项的拓扑结构示例。
图 81:3 使用路由映射的 BGP 本地首选项拓扑结构
以下 BGP 配置在 SNWL1 和 SNWL2 中输入。
|
在 SNWL2 (rmap1) 配置的路由映射应用于来自邻居 10.1.1.1 的入站路由。有两个允许条件:
• route-map rmap1 permit 10:该允许条件匹配经配置允许来自 AS 8888 流量的访问列表 100,并将来自 AS 8888 的路由设为本地首选值 200。
• route-map rmap1 permit 10:该允许条件将不匹配访问列表 100 的所有其他流量(即来自 8888 以外的其他 AS 的流量)设为本地首选值 150。
AS_Path 预置是在路径更新开始时添加附加 AS 编号的一项操作。这会使该路由的路径更长,从而降低其首选性。
AS_Path 预置可应用于出站或入站路径。如果受邻居超控,则 AS_Path 预置可能不起作用。
|
本配置将使路由安装到邻近的 10.50.165.233,AS_Path Prepended 为 12345 12345。这可以通过输入 show ip bgp 命令查看。
ARS BGP>show ip bgp
BGP table version is 98, local router ID is 10.50.165.228
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, l - labeled
S Stale
Origin codes: i - IGP, e - EGP, ?- incomplete
Network Next Hop Metric LocPrf Weight Path
*> 12.34.5.0/24 10.50.165.233 0 0 12345 12345 12345 i
*> 7.6.7.0/24 0.0.0.0 100 32768 i
Total number of prefixes 2
set metric 命令可用于路由映射中设置路径的优先性:
router bgp 7675
network 7.6.7.0/24
neighbor 10.50.165.233 remote-as 12345
neighbor 10.50.165.233 route-map highmetric out
!
route-map highmetric permit 10
set metric 300
多出口标识 (MED) 是可用于影响路径优先性的可选属性。这是非传递性的,表示在单个设备上配置,不会在更新消息中发布给邻居。在这部分,我们考虑使用 bgp always-compare-med 和 bgp deterministic-med 命令。
bgp always-compare-med 命令
bgp always-compare-med 命令允许比较来自不同 AS 的路径的 MED 值以选择路径。首选具有较低 MED 的路径。
例如,考虑 BGP 表中的以下路由,always-compare-med 命令被启用:
Route1: as-path 7675, med 300
Route2: as-path 200, med 200
Route3: as-path 7675, med 250
路由 2 将成为被选中的路径,因为它具有最低的 MED。
如果 always-compare-med 命令被禁用,在比较路由 1 和路由 2 时就不会考虑 MED,因为它们具有不同的 AS 路径。仅比较路由 1 和路由 3 的 MED。
bgp deterministic-med 命令
选择的路由也受 bgp deterministic-med 命令影响,该命令在选择相同自治系统中不同对等项发布的路由时会比较 MED。
bgp deterministic-med 命令被启用时,来自相同 AS 的路由被群组,将比较各组的最佳路由。如果显示 BGP 表:
Route1: as-path 200, med 300, internal
Route2: as-path 400, med 200, internal
Route3: as-path 400, med 250, external
BGP 将具有包含路由 1 的群组和包含路由 2 和路由 3 (相同 AS)的第二个群组。
将比较各组的最佳路由。路由 1 是其所在组的最佳路由,因为它是来自 AS 200 的唯一路由。
路由 1 与 AS 400 群组中的最佳项路由 2 (最低 MED)进行比较。
由于两个路由并非来自相同 AS,在比较中不会考虑 MED。外部 BGP 路由优于内部 BGP 路由,因此路由 3 成为最佳路由。
团体是共享相同的属性,且可以使用传递性 BGP 团体属性配置的前缀群组。前缀可以具有多个团体属性。路由器可以具备一个、多个或所有属性。BGP 团体可以视为一种标记形式。下面是 BGP 团体配置的示例。
router bgp 12345
bgp router-id 10.50.165.233
network 12.34.5.0/24
network 23.45.6.0/24
neighbor 10.50.165.228 remote-as 7675
neighbor 10.50.165.228 send-community
neighbor 10.50.165.228 route-map comm out
!
access-list 105 permit 12.34.5.0/24
access-list 110 permit 23.45.6.0/24
!
route-map comm permit 10
match ip address 105
set community 7675:300
!
route-map comm permit 20
match ip address 110
set community 7675:500
!
router bgp 7675
bgp router-id 10.50.165.228
network 7.6.7.0/24
neighbor 10.50.165.233 remote-as 12345
neighbor 10.50.165.233 route-map shape in
!
ip community-list 1 permit 7675:300
ip community-list 2 permit 7675:500
!
route-map shape permit 10
match community 1
set local preference 120
route-map shape permit 20
match community 2
set local preference 130
同步设置控制路由器是否根据学习自 iBGP 邻居的路由在 IGP 中的存在情况发布这些路由。同步启用时,BGP 将仅发布可通过 OSPF 或 RIP(相对于 BGP 的外部网关协议)连接的路由。同步是发生 BGP 路由发布问题的常见原因。
自动总结设置控制是否按类别发布路由。自动总结是发生 BGP 配置问题的另一个常见原因。
默认情况下,自动总结和同步在 Zebos 中被禁用。
正如之前所述,AS 对等项既可以是中转对等项(允许从外部 AS 到另一 AS 的流量),也可以是非中转对等项(要求所有流量来自或终止于相应的 AS)。中转对等项显著扩大了路由表。通常,您不想将 SonicWALL 安全设备配置为中转对等项。
图 81:4 中转对等项与非中转对等项
为了防止您的设备意外成为中转对等项,您要配置入站和出站过滤器,例如:
出站过滤器
仅允许来自本地 AS 的路由输出:
ip as-path access-list 1 permit ^$
router bgp 12345
bgp router-id 10.50.165.233
network 12.34.5.0/24
neighbor 10.50.165.228 remote-as 7675
neighbor 10.50.165.228 filter-list 1 out
neighbor 172.1.1.2 remote-as 9999
neighbor 10.50.165.228 filter list 1 out
仅允许拥有的前缀输出:
ip prefix-list myPrefixes seq 5 permit 12.34.5.0/24
ip prefix-list myPrefixes seq 10 permit 23.45.6.0/24
router bgp 12345
bgp router-id 10.50.165.233
network 12.34.5.0/24
network 23.45.6.0/24
neighbor 10.50.165.228 remote-as 7675
neighbor 172.1.1.2 remote-as 9999
neighbor 10.50.165.228 prefix-list myPrefixes out
neighbor 172.1.1.2 prefix-list myPrefixes out
入站过滤器
丢弃所有拥有的和私有的入站前缀
ip prefix-list unwantedPrefixes seq 5 deny 12.34.5.0/24 le 32
ip prefix-list unwantedPrefixes seq 10 deny 23.45.6.0/24 le 32
ip prefix-list unwantedPrefixes seq 20 deny 10.0.0.0/8 le 32
ip prefix-list unwantedPrefixes seq 21 deny 172.16.0.0/12 le 32
ip prefix-list unwantedPrefixes seq 22 deny 192.168.0.0/16 le 32
ip prefix-list unwantedPrefixes seq 30 permit 0.0.0.0/0 le 32
router bgp 12345
bgp router-id 10.50.165.233
network 12.34.5.0/24
network 23.45.6.0/24
neighbor 10.50.165.228 remote-as 7675
neighbor 172.1.1.2 remote-as 9999
neighbor 10.50.165.228 prefix-list unwantedPrefixes in
neighbor 172.1.1.2 prefix-list unwantedPrefixes in
以下拓扑结构显示 SonicWALL 安全设备使用多宿主 BGP 网络在两个 ISP 之间分担负载的示例。
图 81:5
用于负载分担拓扑结构的多宿主 BGP
SonicWALL 安全设备的配置如下:
router bgp 12345
bgp router-id 10.50.165.233
network 12.34.5.0/24
neighbor 10.50.165.228 remote-as 7675
neighbor 10.50.165.228 route-map ISP1 out
neighbor 172.1.1.2 remote-as 9999
neighbor 10.50.165.228 route-map ISP2 out
!
route-map ISP1 permit 10
match ip address 1
set weight 100
route-map ISP1 permit 20
match ip address 2
route-map ISP2 permit 10
match ip address 1
route-map ISP2 permit 20
match ip address 2
set weight 100
access-list 1 permit 12.34.5.0/25
access-list 2 deny 12.34.5.0/25
access-list 2 permit any
以下章节描述验证 BGP 配置的方法:
下图显示基本 BGP 拓扑结构,其中,SonicWALL 安全设备配置为可使 BGP 连接至位于两个不同 AS 的两个路由器。
该网络的 FIB 中的路由可以在 SonicOS GUI 中或通过使用 CLI 查看。
在 SonicOS GUI,通过单击网络 > 路由页面顶部“路由模式”下拉菜单旁边的 BGP 状态按钮查看 BGP 配置的摘要。“BGP 状态”窗口显示 show ip bgp summary 和 show ip bgp neighbor 命令的输出。
FIB 中的 BGP 路由也可以在 SonicOS GUI 的网络 > 路由页面的“路由策略”表中查看。
要查看 CLI 中的 FIB 路由,执行以下命令:
SonicWALL> configure
(config[SonicWALL])> route ars-nsm
ZebOS version 7.7.0 IPIRouter 7/2009
ARS NSM>show ip route
Codes:K - kernel, C - connected, S - static, R - RIP, B - BGP
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default
B 7.6.7.0/24 [20/0] via 10.50.165.228, X1, 05:08:31
B 199.199.0/16 [20/0] via 10.50.165.237, X1, 05:08:31
C 10.50.165.192/26 is directly connected, X1
C 127.0.0.0/8 is directly connected, lo0
C 12.34.5.0/24 is directly connected, X0
要在 CLI 中查看 RIB 路由,输入 show ip bgp 命令:
ARS BGP>show ip bgp
BGP table version is 98, local router ID is 10.50.165.233
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, l - labeled
S Stale
Origin codes: i - IGP, e - EGP, ?- incomplete
Network Next Hop Metric LocPrf Weight Path
*> 7.6.7.0/24 10.50.165.228 0 0 7675 i
*> 12.34.5.0/24 0.0.0.0 100 32768 i
*> 199.199.0.0/16 10.50.165.228 0 0 7675 9999 i
Total number of prefixes 3
注 最后一个路由是通过 AS7675 学习并去往 AS9999 的路径。
SonicWALL BGP 提供用于显示 BGP 流量相关日志事件的全面调试命令选择。可以在 CLI 使用调试 bgp 命令加上以下关键字配置 BGP 日志:
|
要禁用 BGP 调试,输入“no”形式的命令。例如,要禁用事件调试,输入 no debug events 命令。
BGP 日志消息也可以在 SonicOS GUI 的日志 > 视图页面查看。BGP 消息作为日志消息中高级路由类别的一部分显示。
以上消息显示对出站 RIB 的更新被拒绝,因为更新的来源路由器未直接连接到设备。
要允许未直接连接的 BGP 对等项,请使用 ebgp-multihop 关键字与 neighbor 命令。例如:
neighbor 10.50.165.228 ebgp-multihop
IPv6 边界网关协议 (BGP) 在自治系统 (AS) 之间交流 IPv6 路由信息。具备 IPv6 BGP 支持的 Dell SonicWALL 安全设备可以替代网络自治系统使用的传统 BGP 路由器。
IPv6 BGP 在网络 > 路由页面启用,但必须在 SonicOS 命令行接口 (CLI) 进行配置。
以下限制适用于 SonicOS 6.2:
• 仅 NSA 平台上支持 IPv6 BGP。
• IPv6 BGP 取决于 IPv6 功能和 ZebOS (Zebra OS)。
• IPv6 BGP 中不支持 MPLS/VPN 和组播。
配置多个自治系统
如果自治系统 (AS) 具有多个 BGP 路由器,AS 可以用于其他 AS 的转换服务。BGP 在不同 AS 的路由器之间运行时使用外部 (eBGP)。BGP 在相同 AS 的路由器之间运行时使用内部 (eBGP)。
在下图中,AS 200 是 AS 100 和 AS 300 的转换 AS。
要如上图所示配置多个 AS,请配置路由器 RTA、RTB 和 RTC,如下所示:
在 RTA:
router bgp 100
neighbor 129.213.1.1 remote−as 200
address-family ipv6
redistribute connected
neighbor 129.213.1.1 activate
在 RTB:
router bgp 200
neighbor 129.213.1.2 remote−as 100
neighbor 175.220.1.2 remote−as 200
address-family ipv6
redistribute connected
neighbor 129.213.1.2 activate
neighbor 175.220.1.2 activate
在 RTC:
router bgp 200
neighbor 175.220.212.1 remote−as 200
address-family ipv6
neighbor 175.220.212.1 activate
neighbor 175.220.212.1 activate
配置基本 BGP over IPv6
可以配置 IPv6 BGP 对等路由器以通过 IPv6 地址族或 IPv4 地址族传输 IPv4 或 IPv6 路由信息。
要配置基本 BGP over IPv6,请配置路由器 R1 和 R2,如下所示:
在 R1:
router bgp 6501
bgp router−id 1.1.1.1
neighbor 2011:11:11:11::2 remote−as 6502
address−family ipv6
neighbor 2011:11:11:11::2 activate
exit−address−family
在 R2:
router bgp 6502
bgp router−id 2.2.2.2
neighbor 2011:11:11:11::1 remote−as 6501
address−family ipv6
network 1010::1/128
network 2020::1/128
neighbor 2011:11:11:11::1 activate
配置 EBGP Multihop
EBGP Multihop 用于在两个未直接相连的外部对等机之间建立相邻连接。Multihop 仅可用于 eBGP,不适用于 iBGP。如果防火墙具有无直接连接的外部邻居,您可以使用 ebgp−multihop 命令建立邻居连接。
要配置 EBGP Multihop,请配置路由器 R1 和 R2,如下所示:
在 R1:
router bgp 6501
bgp router−id 1.1.1.1
neighbor 2011:11:11:11::2 remote−as 6502
neighbor 2011:11:11:11::2 ebgp−multihop
address−family ipv6
neighbor 2011:11:11:11::2 activate
exit−address−family
在 R2:
router bgp 6502
bgp router−id 2.2.2.2
neighbor 2011:11:11:11::1 remote−as 6501
neighbor 2011:11:11:11::1 ebgp−multihop
address−family ipv6
network 1010::1/128
network 2020::1/128
neighbor 2011:11:11:11::1 activate
配置 IPv6 BGP 出站路由过滤器
IPv6 BGP 出站路由过滤器 (ORF) 可用于通过滤除来源处的多余路由更新来最大限度减少在对等路由器之间发送的 BGP 更新数。
要配置 IPv6 BGP 出站路由过滤器 (ORF),请配置路由器 R1 和 R2,如下所示:
在 R1:
router bgp 6501
bgp router−id 1.1.1.1
neighbor 2011:11:11:11::2 remote−as 6502
address−family ipv6
redistribute connected
neighbor 2011:11:11:11::2 activate
neighbor 2011:11:11:11::2 prefix-list pref1 in
neighbor 2011:11:11:11::2 prefix-list pref2 out
exit−address−family
ipv6 prefix-list pref1 seq 10 deny 1010::1/128
ipv6 prefix-list pref1 seq 20 permit any
ipv6 prefix-list pref2 seq 10 deny 1111::1/128
ipv6 prefix-list pref2 seq 20 permit any
在 R2:
router bgp 6502
bgp router−id 2.2.2.2
neighbor 2011:11:11:11::1 remote−as 6501
address−family ipv6
redistribute connected
neighbor 2011:11:11:11::1 activate
要检查 R1 和 R2 上的路由,请使用 show bgp ipv6 unicast 命令。
R1 上的路由应具有 IPv6 地址 1010::1/128。
R2 上的路由应具有 IPv6 地址 1111::1/128。
在 R1:
R1> show bgp ipv6 unicast
在 R2:
R2> show bgp ipv6 unicast
配置 IPv6 BGP 分布列表
IPv6 BGP 分布列表可用于通过滤除来源处的多余路由更新来最大限度减少在对等路由器之间发送的 BGP 更新数。
要配置基本 IPv6 BGP 分布列表,请配置路由器 R1 和 R2,如下所示:
在 R1:
router bgp 6501
bgp router−id 1.1.1.1
neighbor 2011:11:11:11::2 remote−as 6502
address−family ipv6
redistribute connected
neighbor 2011:11:11:11::2 activate
neighbor 2011:11:11:11::2 distribute-list acl1 in
neighbor 2011:11:11:11::2 distribute-list acl2 out
exit−address−family
ipv6 access-list acl1 deny 1010::1/128
ipv6 access-list acl1 permit any
ipv6 access-list acl2 deny 1111::1/128
ipv6 access-list acl2 permit any
在 R2:
router bgp 6502
bgp router−id 2.2.2.2
neighbor 2011:11:11:11::1 remote−as 6501
address−family ipv6
redistribute connected
neighbor 2011:11:11:11::1 activate
要检查 R1 和 R2 上的路由,请使用 show bgp ipv6 unicast 命令。
R1 上的路由应具有 IPv6 地址 1010::1/128。
R2 上的路由应具有 IPv6 地址 1111::1/128。
在 R1:
R1> show bgp ipv6 unicast
在 R2:
R2> show bgp ipv6 unicast
IPv6 BGP 路由映射
IPv6 BGP 路由映射可用于通过滤除来源处的多余路由更新来最大限度减少在对等路由器之间发送的 BGP 更新数。
要配置基本 IPv6 BGP 路由映射,请配置路由器 R1 和 R2,如下所示:
在 R1:
router bgp 6501
bgp router−id 1.1.1.1
neighbor 2011:11:11:11::2 remote−as 6502
address−family ipv6
redistribute connected
neighbor 2011:11:11:11::2 activate
neighbor 2011:11:11:11::2 route-map map1 in
neighbor 2011:11:11:11::2 route-map map2 out
exit−address−family
ipv6 access-list acl1 deny 1010::1/128
ipv6 access-list acl1 permit any
ipv6 access-list acl2 deny 1111::1/128
ipv6 access-list acl2 permit any
!
route-map map1 permit 1 match ipv6 address acl1
!
route-map map2 permit 1 match ipv6 address acl2
!
在 R2:
router bgp 6502
bgp router−id 2.2.2.2
neighbor 2011:11:11:11::1 remote−as 6501
address−family ipv6
redistribute connected
neighbor 2011:11:11:11::1 activate
要检查 R1 和 R2 上的路由,请使用 show bgp ipv6 unicast 命令。
在 R1:
R1> show bgp ipv6 unicast
R1 上的路由应具有 IPv6 地址 1010::1/128。
在 R2:
R2> show bgp ipv6 unicast
R2 上的路由应具有 IPv6 地址 1111::1/128。
配置 AS 正则表达式
您可以配置可被匹配并用于拒绝或允许来自 AS 的地址的正则表达式。
RTB 发布以下这些路由:
• 2004::/64
• 2003::/64
• 2002::/64
RTC 发布以下这些路由:
• 5000::/64
• 6666::6/128
• 7777::7/128
要检查路由器 RTA 上的路由,请使用 show bgp ipv6 unicast 命令。
在 RTA:
RTA> show bgp ipv6 unicast
BGP table version is 4, local router ID is 10.0.1.2
Status codes: s suppressed, d damped, h history, * valid, > best,
i - internal, l - labeled
S Stale
Origin codes: i - IGP, e - EGP, ?- incomplete
|
要配置 RTA 上的 AS 正则表达式并拒绝来源于 AS100 的所有路由:
router bgp 200
neighbor 10.0.1.1 remote-as 100
neighbor 10.0.1.1 update-source X2
neighbor 2004::1 remote-as 100
neighbor 2004::1 update-source X2
!
address-family ipv6
neighbor 10.0.1.1 activate
neighbor 10.0.1.1 filter-list 1 in
neighbor 2004::1 activate
exit-address-family
ip as-path access-list 1 deny ^100$
ip as-path access-list 1 permit .*
要检查路由器 RTA 上的路由,请使用 show bgp ipv6 unicast 命令。
在 RTA:
RTA> show bgp ipv6 unicast
BGP table version is 4, local router ID is 10.0.1.2
Status codes: s suppressed, d damped, h history, * valid, > best,
i - internal, l - labeled
S Stale
Origin codes: i - IGP, e - EGP, ?- incomplete
|
Total number of prefixes 3
要修改 AS 路径以拒绝学习自 AS100 的所有路由:
在 RTA:
router bgp 200
neighbor 10.0.1.1 remote-as 100
neighbor 10.0.1.1 update-source X2
neighbor 2004::1 remote-as 100
neighbor 2004::1 update-source X2
!
address-family ipv6
neighbor 10.0.1.1 activate
neighbor 10.0.1.1 filter-list 1 in
neighbor 2004::1 activate
exit-address-family
ip as-path access-list 1 deny _100_
ip as-path access-list 1 permit .*
要检查路由器 RTA 上的路由,请使用 show bgp ipv6 unicast 命令。
在 RTA:
RTA> show bgp ipv6 unicast
EBGP 路由选择
路由根据所运行的路由协议的管理距离进行选择。管理距离较短的路由协议较之管理距离较长的路由协议具有更高的优先级。EBGP 的管理距离为 20。OSPF 的管理距离为 110。
本图显示 BGP 路由器使用的三个 AS 和路由协议。
AS300 中的 RTC 路由器对 AS100 和 AS200 发布路由 1000::/64。
从 RTC (AS300) 至 RTA (AS100) 的路由运行 OSPF。
从 RTC (AS300) 至 RTB (AS200) 的路由运行 eBGP。
从 RTA (AS100) 至 RTB (AS200) 的路由运行 eBGP。
RTA (AS100) 接收来自 OSPF 和 eBGP 的路由 1000::/64 的更新。学习自 eBGP 的路由被选择和添加到 RTA 的路由表,因为 eBGP 的管理距离小于 OSPF 的管理距离。
在 RTA:
router bgp 100
neighbor 3001::1 remote-as 200
!
address-family ipv6
distance bgp 150 150 150
neighbor 3001::1 activate
exit-address-family
在 RTB:
router bgp 200
bgp log-neighbor-changes
neighbor 1001::1 remote-as 300
neighbor 2003::1 remote-as 100
address-family ipv6
network 6666::6/128
neighbor 1001::1 activate
neighbor 2003::1 activate
exit-address-family
在 RTC:
router bgp 300
neighbor 3002::1 remote-as 200
!
address-family ipv6 network 1000::/64
neighbor 3002::1 activate
exit-address-family
要检查路由器 RTA 上的路由,请使用 show ipv6 route 命令。
RTA> show ipv6 route
IPv6 Routing Table
Codes:K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP
Timers:Uptime
B 1000::/64 [20/0] via fe80::204:27ff:fe0c:b006, X1, 00:01:07
C 2003::/64 via ::, X1, 00:30:50
B 6666::6/128 [20/0] via fe80::204:27ff:fe0c:b006, X1, 00:01:07
C fe80::/64 via ::, X1, 00:30:53
由于 RTC 与 RTA 直接相连,来自 OSPF 的路由实际优于 BGP 学习的路由。为了确保为路由表选择 RTA 与 RTC 之间的路由,您可以使用 distance 命令将 BGP 路由的默认管理距离更改为长于 OSPF 路由的管理距离。例如:
distance bgp 150 150 150
您还可以使用 backdoor neighbor 命令设置 BGP 路由为首选路由。例如:
在 RTA:
router bgp 100
neighbor 3001::1 remote-as 200
!
address-family ipv6
network 1000::/64
backdoor neighbor 3001::1 activate
exit-address-family
要检查路由器 RTA 上的路由,请使用 show ipv6 route 命令。
RTA> show ipv6 route
IPv6 Routing Table
Codes:K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP
Timers:Uptime
O 1000::/64 [110/2] via fe80::217:c5ff:feb4:57f2, X4, 00:30:53
C 2003::/64 via ::, X1, 0:31:18
B 6666::6/128 [20/0] via fe80::204:27ff:fe0c:b006, X1, 0:00:03
C fe80::/64 via ::, X1, 0:31:21
IPv6 BGP 同步
IPv6 BGP 同步保持所有 BGP 路由更新为所有可用路由和网络的 IPv6 地址。
在 BGP 同步中,如果 AS (AS100) 从另一个 AS (AS300) 向第三个 AS (AS400) 传输流量,则 BGP 不发布该路由,直至 AS100 中的所有路由器向 IGP 学习该路由。在这种情况中,IGP 是 iBGP。AS100 必须等待至 iBGP 向 AS100 中的所有路由器传播该路由。然后,eBGP 向外部 AS 发布该路由。
在本例中,RTB 通过 iBGP 学习地址 6666::6/128,然后向 RTD 发布地址。
注 您可以通过向 RTB 上的 6666::6/128 添加静态路由和确保其他路由可以达到 6666::6/128 让 RTB 认为 IGP 已传播路由信息。
在本例中,RTC (AS2) 向 RTA (AS100) 发布地址 6666::6/128。在 AS100 中,RTA 和 RTB 运行 iBGP,所以 RTB 学习地址 6666::6/128 并可以通过下一个跃点 5.5.5.5 (RTC) 到达。下一个跃点通过 iBGP 传送。但是,要达到下一个跃点 (RTC),RTB 必须通过 RTE 发送流量,但 RTE 不知道 IP 地址 6666::6/128。
如果 RTB 向 RTD (AS400) 发布 6666::6/128,则尝试从 RTD 到达 6666::6/128 的流量必须经过 AS100 中的 RTB 和 RTE。但是由于 RTE 未学习 6666::6/128,所有数据包将在 RTE 被丢弃。
要在 AS100 中配置 RTB 上的 BGP 同步:
在 RTB:
router bgp 100
neighbor 10.103.10.129 remote-as 100
neighbor 3001::1 remote-as 100
neighbor 3001::1 update-source X4
neighbor 5000::1 remote-as 400
neighbor 5000::1 update-source X2
!
address-family ipv6
synchronization
neighbor 10.103.10.129 activate
neighbor 3001::1 activate
neighbor 5000::1 activate
exit-address-family
如果您不通过中间 AS 从一个 AS 向另一个 AS 传输流量,可以禁用同步。如果中间 AS 中的所有路由器都运行 BGP,您也可以禁用同步。禁用同步可以在 IGP 中传送较少的路由,并允许 BGP 更快汇合。
要在 AS100 中禁用 RTB 上的 BGP 同步:
在 RTB:
router bgp 100
neighbor 10.103.10.129 remote-as 100
neighbor 3001::1 remote-as 100
neighbor 3001::1 update-source X4
neighbor 5000::1 remote-as 400
neighbor 5000::1 update-source X2
!
address-family ipv6
neighbor 10.103.10.129 activate
neighbor 3001::1 activate
neighbor 5000::1 activate
exit-address-family
BGP 路由反射
默认情况下,AS 中的所有 iBGP 路由器必须采用完全网状配置。每个路由器必须配置为每个其他路由器的对等路由器。
通过路由反射,所有 iBGP 无需完全结网。路由反射使 AS 中的各 iBGP 路由器无需与所有其他 iBGP 路由器通信。iBGP 路由器可以被指定为路由反射器,并向多个 iBGP 客户端传送 iBGP 学习的路由。
当路由器被配置为路由反射器,将作为所有其他 iBGP 路由器获取 iBGP 学习的路由的单一点。路由反射器充当服务器,而不是 AS 中的每个其他路由器的对等路由器。所有其他 IBGP 路由器变为路由反射器的客户端。路由器只要有至少一个路由反射器客户端,就成为路由反射器。
要在 AS 中配置路由反射:
在 RouterA:
interface Serial0/0
ipv6 address 2011:12:12:12::1/64
ipv6 ospf 10 area 0
interface Serial0/1
ipv6 address 2011:13:13:13::1/64
ipv6 ospf 10 area 0
router bgp 100
bgp router−id 1.1.1.1
no bgp default ipv4−unicast
bgp log−neighbor−changes
neighbor 2011:22:22:22::22 remote−as 100
neighbor 2011:22:22:22::22 update−source Loopback0
neighbor 2011:33:33:33::33 remote−as 100
neighbor 2011:33:33:33::33 update−source Loopback0
!
address−family ipv6
neighbor 2011:22:22:22::22 activate
neighbor 2011:22:22:22::22 route−reflector−client
neighbor 2011:33:33:33::33 activate
neighbor 2011:33:33:33::33 route−reflector−client
exit−address−family
!
ipv6 router ospf 10
router−id 1.1.1.1
在 RRClient1:
interface Loopback0
ipv6 address 2011:22:22:22::22/128
ipv6 ospf 10 area 0
!
interface Loopback10
ipv6 address 1010:10:10:10::10/128
interface Serial0/0
ipv6 address 2011:12:12:12::2/64
ipv6 ospf 10 area 0
!
router bgp 100
bgp router−id 2.2.2.2
bgp log−neighbor−changes
neighbor 2011:11:11:11::11 remote−as 100
neighbor 2011:11:11:11::11 update−source Loopback0
!
address−family ipv6
neighbor 2011:11:11:11::11 activate
network 1010:10:10:10::10/128
exit−address−family
!
ipv6 router ospf 10
router−id 2.2.2.2
RRClient2:
interface Loopback0
ipv6 address 2011:33:33:33::33/128
ipv6 ospf 10 area 0
!
interface Loopback20
ipv6 address 2020:20:20:20::20/128
!
interface Serial0/0
no ip address
ipv6 address 2011:13:13:13::2/64
ipv6 ospf 10 area 0
!
router bgp 100
bgp router−id 3.3.3.3
bgp log−neighbor−changes
neighbor 2011:11:11:11::11 remote−as 100
neighbor 2011:11:11:11::11 update−source Loopback0
!
address−family ipv6
neighbor 2011:11:11:11::11 activate
network 2020:20:20:20::20/128
exit−address−family
!
ipv6 router ospf 10
router−id 3.3.3.3
log−adjacency−changes
要检查路由,请使用 show bgp ipv6 unicast 命令。
在 RRClient1:
RRClient1> show bgp ipv6 unicast
您应该使用路由 2020:20:20:20::20/128。
在 RRClient2:
RRClient2> show bgp ipv6 unicast
您应该使用路由 1010:10:10:10::10/128。
IPv6 BGP 本地首选
本地首选指定通向某网络的路由作为来自 AS 的网络首选出口路由。具有最高本地首选级别的路由是首选路由。本地首选的默认值是 100,但可以使用 set local-preference 命令更改。
要配置 AS 中首选路由的本地首选:
在 R1:
interface Loopback0
ipv6 address 1111:111:111:A::/64 eui−64
ipv6 ospf 10 area 0
interface FastEthernet0/0
ipv6 address AB01:CD1:123:A::/64 eui−64
ipv6 ospf 10 area 0
!
interface Serial0/0
ipv6 address AB01:CD1:123:C::/64 eui−64
!
interface FastEthernet0/1
ipv6 address AB01:CD1:123:B::/64 eui−64
ipv6 ospf 10 area 0
!
ipv6 router ospf 10 router−id 1.1.1.1 log−adjacency−changes
redistribute connected route−map CONNECTED
!
route−map CONNECTED permit 10
match interface Serial0/0
!
router bgp 123
bgp router−id 1.1.1.1
neighbor 2222:222:222:A:C602:3FF:FEF0:0 remote−as 123
neighbor 2222:222:222:A:C602:3FF:FEF0:0 update−source Loopback0
neighbor 3333:333:333:A:C603:3FF:FEF0:0 remote−as 123
neighbor 3333:333:333:A:C603:3FF:FEF0:0 update−source Loopback0
neighbor AB01:CD1:123:C:C604:16FF:FE98:0 remote−as 101
neighbor AB01:CD1:123:C:C604:16FF:FE98:0 ebgp−multihop 5
!
address−family ipv6
neighbor 2222:222:222:A:C602:3FF:FEF0:0 activate
neighbor 2222:222:222:A:C602:3FF:FEF0:0 next−hop−self
neighbor 3333:333:333:A:C603:3FF:FEF0:0 activate
neighbor 3333:333:333:A:C603:3FF:FEF0:0 next−hop−self
neighbor AB01:CD1:123:C:C604:16FF:FE98:0 activate exit−address−family
在 R2:
interface Loopback0
ipv6 address 2222:222:222:A::/64 eui−64
ipv6 ospf 10 area 0
!
interface FastEthernet0/0
ipv6 address AB01:CD1:123:A::/64 eui−64
ipv6 ospf 10 area 0
!
interface FastEthernet0/1
ipv6 address AB01:CD1:123:D::/64 eui−64
ipv6 ospf 10 area 0
!
ipv6 router ospf 10 router−id 2.2.2.2 log−adjacency−changes
!
router bgp 123
bgp router−id 2.2.2.2
neighbor 1111:111:111:A:C601:3FF:FEF0:0 remote−as 123
neighbor 1111:111:111:A:C601:3FF:FEF0:0 update−source Loopback0
neighbor 3333:333:333:A:C603:3FF:FEF0:0 remote−as 123
neighbor 3333:333:333:A:C603:3FF:FEF0:0 update−source Loopback0
address−family ipv6
neighbor 1111:111:111:A:C601:3FF:FEF0:0 activate
neighbor 3333:333:333:A:C603:3FF:FEF0:0 activate
exit−address−family
在 R3:
interface Loopback0
ipv6 address 3333:333:333:A::/64 eui−64
ipv6 ospf 10 area 0
!
interface FastEthernet0/0
ipv6 address AB01:CD1:123:B::/64 eui−64
ipv6 ospf 10 area 0
!
interface Serial0/0
ipv6 address AB01:CD1:123:E::/64 eui−64
!
interface FastEthernet0/1
ipv6 address AB01:CD1:123:D::/64 eui−64
ipv6 ospf 10 area 0
!
ipv6 router ospf 10
router−id 3.3.3.3
redistribute connected route−map CONNECTED
!
router bgp 123
no synchronization
bgp router−id 3.3.3.3
neighbor 1111:111:111:A:C601:3FF:FEF0:0 remote−as 123
neighbor 1111:111:111:A:C601:3FF:FEF0:0 update−source Loopback0
neighbor 2222:222:222:A:C602:3FF:FEF0:0 remote−as 123
neighbor 2222:222:222:A:C602:3FF:FEF0:0 update−source Loopback0
neighbor AB01:CD1:123:E:C605:16FF:FE98:0 remote−as 202
neighbor AB01:CD1:123:E:C605:16FF:FE98:0 ebgp−multihop 5
!
address−family ipv6
neighbor 1111:111:111:A:C601:3FF:FEF0:0 activate
neighbor 1111:111:111:A:C601:3FF:FEF0:0 next−hop−self
neighbor 1111:111:111:A:C601:3FF:FEF0:0 route−map LOCAL_PREF out
neighbor 2222:222:222:A:C602:3FF:FEF0:0 activate
neighbor 2222:222:222:A:C602:3FF:FEF0:0 next−hop−self
neighbor 2222:222:222:A:C602:3FF:FEF0:0 route−map LOCAL_PREF out
neighbor AB01:CD1:123:E:C605:16FF:FE98:0 activate
exit−address−family
!
ipv6 prefix−list 10 seq 5 permit BC01:BC1:10:A::/64
!
route−map LOCAL_PREF permit 10
match ipv6 address prefix−list 10
set local−preference 500
!
route−map LOCAL_PREF permit 20
!
route−map CONNECTED permit 10
match interface Serial0/0
在 R4:
interface Serial0/0
ipv6 address AB01:CD1:123:C::/64 eui−64
!
interface Loopback10
ipv6 address BC01:BC1:10:A::/64 eui−64
!
interface Loopback11
ipv6 address BC02:BC1:11:A::/64 eui−64
!
interface Loopback12
ipv6 address BC03:BC1:12:A::/64 eui−64
router bgp 101
bgp router−id 4.4.4.4
neighbor AB01:CD1:123:C:C601:3FF:FEF0:0 remote−as 123
!
address−family ipv6
neighbor AB01:CD1:123:C:C601:3FF:FEF0:0 activate
network BC01:BC1:10:A::/64 network BC02:BC1:11:A::/64
network BC03:BC1:12:A::/64 exit−address−family
在 R5:
interface Serial0/0
ipv6 address AB01:CD1:123:E::/64 eui−64
clock rate 2000000
!
interface Loopback10
ipv6 address BC01:BC1:10:A::/64 eui−64
!
interface Loopback11
ipv6 address BC02:BC1:11:A::/64 eui−64
!
interface Loopback12
ipv6 address BC03:BC1:12:A::/64 eui−64
!
router bgp 202
bgp router−id 5.5.5.5
neighbor AB01:CD1:123:E:C603:3FF:FEF0:0 remote−as 123
neighbor AB01:CD1:123:E:C603:3FF:FEF0:0 ebgp−multihop 5
!
address−family ipv6
neighbor AB01:CD1:123:E:C603:3FF:FEF0:0 activate
network BC01:BC1:10:A::/64
network BC02:BC1:11:A::/64
network BC03:BC1:12:A::/64
exit−address−family
要验证路由,请使用 show bgp ipv6 unicast 命令:
在 R2:
R2> show bgp ipv6 unicast
在配置本地首选之前,R2 具有 R1 作为所有习得 IPv6 地址的下一个跃点。在将 R3 上的本地首选配置为 500 后,R2 对前缀 BC01:BC1:10:A::/64 具有不同的首选出口路由。现在,R2 可以通过 R3 的出口路径到达前缀 BC01:BC1:10:A::/64,该路由现被指定为本地首选。
BGP 对等组更新策略
BGP 对等组是一组共享相同更新策略的 BGP 邻居。更新策略通常按路由映射、分布列表和过滤器列表设置。
在您定义对等组和向其添加邻居时,分配到该对等组的所有更新策略均应用于对等组的所有邻居。您无需定义各邻居的策略。
对等组的成员继承该对等组的所有配置设置。您可以配置某些成员更改更新策略,但只有在对入站流量设置这些策略时才适用。如果策略应用于出站流量,您就无法配置成员以更改组策略。
要配置 IPv6 BGP 对等组及其更新策略:
在 R3:
router bgp 123
no synchronization
bgp router−id 3.3.3.3
neighbor interalmap peer-group
neighbor interalmap remote-as 123
neighbor 1111:111:111:A:C601:3FF:FEF0:0 peer-group interalmap
neighbor 2222:222:222:A:C602:3FF:FEF0:0 peer-group interalmap
neighbor AB01:CD1:123:E:C605:16FF:FE98:0 remote−as 202
neighbor AB01:CD1:123:E:C605:16FF:FE98:0 ebgp−multihop 5
!
address−family ipv6
neighbor interalmap activate
neighbor interalmap route-map 1 out
neighbor 1111:111:111:A:C601:3FF:FEF0:0 peer-group interalmap
neighbor 2222:222:222:A:C602:3FF:FEF0:0 peer-group interalmap
exit−address−family
!
ipv6 prefix−list 10 seq 5 permit BC01:BC1:10:A::/64
!
route-map 1 permit 10
match ipv6 address prefix-list 1 set tag 333
set metric 273
set local-preference 312
要验证是否已配置正确的本地首选路由,请使用 show bgp ipv6 unicast 命令:
在 R3:
R3> show bgp ipv6 unicast
验证 IPv6 地址 BC01:BC1:10:A::/64 从 AS100 传递至 R1 和 R2,且度量和本地首选被设为相应的路由映射设置。
BGP 联盟
您可以将一个 AS 分为多个 AS,然后将这些 AS 分配到一个 AS 联盟。BGP 联盟的实施缩小了 AS 的 iBGP 网,且联盟仍可以作为单个 AS 向外部对等系统发布路由。
联盟内的每个 AS 运行完全结网的 iBGP,且联盟内的每个 AS 还运行与联盟内其他 AS 的 eBGP 连接。联盟内的这些 eBGP 对等系统像使用 iBGP 一样交换路由信息。这样,联盟保留下一个跃点、度量和本地首选信息。联盟对外部显示为单个 AS。
要配置 BGP 联盟:
R1:
router bgp 2000
bgp log-neighbor-changes
bgp confederation identifier 200
bgp confederation peers 1000
neighbor 2003::1 remote-as 1000
!
address-family ipv4
neighbor 2003::1 activate
exit-address-family
!
address-family ipv6
network 3002::/64
network 4000::/64
neighbor 2003::1 activate
exit-address-family
在 R2:
router bgp 1000
bgp confederation identifier 200
neighbor 10.0.1.1 remote-as 1000
!
address-family ipv6
neighbor 10.0.1.1 activate
exit-address-family
在 R3:
router bgp 1000
bgp confederation identifier 200
bgp confederation peers 2000
neighbor 10.0.1.2 remote-as 1000
neighbor 3001::1 remote-as 2000
neighbor 5000::1 remote-as 100
neighbor 5000::1 update-source X2
!
address-family ipv6
neighbor 10.0.1.2 activate
neighbor 3001::1 activate
neighbor 5000::1 activate
exit-address-family
在 R5:
router bgp 100
bgp router-id 5.5.5.5
bgp log-neighbor-changes
neighbor 2002::1 remote-as 200
!
address-family ipv6
network 6666::6/128
network 7777::7/128
neighbor 2002::1 activate
exit-address-family
验证 R1、R2 和 R3 可以学习 R5 发布的该路由:
6666::6/128 和 7777::7/128
验证 R2 可以向 R1 学习该路由,即使两者未直接相连:
3002::/64 和 4000::/64
注 IPv6 BGP 配置数据和 IPv6 BGP 路由被转储到终止并驻留程序 (TSR) 文件。
注 IPv6 BGP 使用 ZebOS 调试接口。所有调试交换机的默认设置被关闭。在控制台输入 CLI debug 命令可以打开调试交换机。
ARD - 自治路由域 - 具有共用管理路由策略的网络/路由器的集合。
AS - 自治系统 - 分配有识别号的 ARD,通常在边界路由器运行 BGP4。
BGP4 - 边界网关协议 4:最普遍的 EGP。
CIDR - 无分类的域间路由,允许通过路由组的高效路由发布。
CPE - 客户前端设备 - 用于在客户网络与 ISP 交互的设备。
EGP - 外部网关协议 - 用于在自治系统之间进行路由信息通信的任何协议(通常是 BGP4)。
完整路由 - 完整的全局 BGP 路由表。
FIB - 转发信息库 - 用于查找出口接口和转发数据包时的下一跃点的现有路由表。
视窗* - 视窗 (LG) 服务器是运行 LG 服务器的组织中路由器的只读视图。通常,可公共访问的视窗服务器由 ISP 或 NOC 运行。
多宿主 - 与一个或多个 ISP 有多个连接的 ISP 客户。
多提供商 - 使用多个 ISP 连接互联网的 ISP 客户。
NSM - 网络服务模块 - 用于聚集接口至 FIB 和 RIB 的 ZebOS 组件。单独的路由协议守护程序与所有 RIB 更新的 NSM 交互。NSM 使用来自 RIB 的最佳路由信息独立更新 FIB。
部分路由 - 完整 BGP 路由表的子集,通常针对于作为 ISP 域一部分的目标。
RIB - 路由信息库 - NSM 拥有的运行时数据库,用于存储路由协议收集和使用的所有路由信息。