配置 BGP

主题:

BGP 的 IPSec 配置

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
策略类型下拉菜单,确保选中站对站
3
选择需要的验证方法。本例使用使用共享密钥的 IKE
4
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
单击网络选项卡。

11
对于本地网络,在从列表中选择本地网络下拉菜单选择 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 配置

要在 SonicWALL 安全设备配置 BGP,请执行以下任务:
1
在 SonicOS GUI,转至网络 > 路由页面。
2
路由模式下拉菜单,选择高级路由
3
BGP 下拉菜单中,选择已启用(使用 CLI 配置)

4
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 路径选择过程

以下属性可用于配置 BGP 路径选择过程。

 

表 175. BGP 路径选择过程属性

功能

说明

权重

首选向邻居学习的路由具有最高权重值。仅适用于本地路由器。

本地首选项

为管理目的首选向邻居学习的路由。与整个 AS 共享。

网络聚合路径

首选在本地来源于网络聚合地址命令的路径。

AS_PATH

首选具有最短 AS_PATH 的路径。

来源

首选拥有最低来源类型的路径(如“更新”消息中发布):IGP < EGP < 不完整。

多出口标识 (MED)

对于去往来源 AS 的路径的邻居提供路径首选项信息。

最近

首选最近收到的路径。

路由器 ID

首选来自拥有最小路由器 ID 的路由器的路径。

权重

权重命令按地址家族向学习自邻居的所有路由分配权重值。如相同前缀向多个同等项学习,则首选具有最高权重高的路由。权重仅适用于本地路由器。

使用 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 之间的路由的拓扑结构示例。

图 71. BGP 本地首选项拓扑结构

以下 BGP 配置在 SNWL1 和 SNWL2 中输入。SNWL2 中的较高本地首选值致使 SNWL2 成为 AS 12345(SonicWALL AS)向外部 AS 发布的首选路由。

 

表 176. SNWL1 和 SNWL2 配置

SNWL1 配置

SNWL2 配置

x0 = 12.34.5.228

x1 = 172.16.228.45

------------------

router bgp 12345

neighbor 172.16.228.228 remote-as 7675

neighbor 12.34.5.237 remote-as 12345

bgp default local-preference 150

x0 = 12.34.5.237

x1 = 10.1.1.2

------------------

router bgp 12345

neighbor 10.1.1.1 remote-as 8888

neighbor 12.34.5.228 remote-as 12345

bgp default local-preference 200

使用路由映射的本地首选项

路由映射类似于访问控制列表。其中包含一系列用于确定设备如何处理路由的允许和/或拒绝语句。路由映射应用于入站流量,而不是出站流量。下图显示使用路由映射配置本地首选项的拓扑结构示例。

图 72. 使用路由映射的 BGP 本地首选项拓扑结构

以下 BGP 配置在 SNWL1 和 SNWL2 中输入。

 

表 177. SNWL1 和 SNWL2 配置

SNWL1 配置

SNWL2 配置

x1 = 172.16.228.45

 

 

------------------

router bgp 12345

neighbor 172.16.228.228 remote-as 7675

neighbor 12.34.5.237 remote-as 12345

bgp default local-preference 150

x0 = 12.34.5.237

x1 = 10.1.1.2

x4 = 10.4.4.1

------------------

router bgp 12345

neighbor 10.1.1.1 remote-as 9999

neighbor 10.1.1.1 route-map rmap1 in

neighbor 12.34.5.237 remote-as 12345

....

ip as-path access-list 100 permit ^8888$

...

route-map rmap1 permit 10

match as-path 100

set local-preference 200

 

route-map rmap1 permit 20

set local-preference 150

在 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_Path 预置是在路径更新开始时添加附加 AS 编号的一项操作。这会使该路由的路径更长,从而降低其首选性。

AS_Path 预置可应用于出站或入站路径。如果受邻居超控,则 AS_Path 预置可能不起作用。

 

表 178. 出站和入站路径配置

出站路径配置

入站路径配置

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 long out

!

route-map long permit 10

set as-path prepend 12345 12345

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 prepend in

!

route-map prepend permit 10

set as-path prepend 12345 12345

本配置将使路由安装到邻近的 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

多出口标识 (MED)

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) 是可用于影响路径优先性的可选属性。这是非传递性的,表示在单个设备上配置,不会在更新消息中发布给邻居。在此部分中,我们将考虑使用1525 页的 bgp always-compare-med 命令1526 页的 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 团体可以视为一种标签形式。下面是 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 的流量),也可以是非中转对等项(要求所有流量来自或终止于相应的 AS)。中转对等项显著扩大了路由表。通常,您不想将 SonicWALL 安全设备配置为中转对等项。

图 73. 中转对等项与非中转对等项

为了防止您的设备意外成为中转对等项,您要配置入站和出站过滤器,例如:

出站过滤器

仅允许来自本地 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

使用多宿主 BGP 进行负载分担

以下拓扑结构显示 SonicWALL 安全设备使用多宿主 BGP 网络在两个 ISP 之间分担负载的示例。

图 74. 用于负载分担拓扑结构的多宿主 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