文章目录
- BGP路由宣告
- Network--逐一宣告
- BGP的路由悖论
- BGP的宣告问题
- 重发布 -- 批量宣告
- BGP的MED
- BGP路由聚合
- 自动聚合
- 手动聚合
- 抑制策略
- 其他方式
BGP路由宣告
BGP的邻居关系和路由宣告是分开做的,不像OSPF在建立邻接关系的过程中就交换了LSA信息,BGP在建立了对等体关系之后,我们可以选择性将本地路由表中通过任意来源获取的路由条目,向BGP协议中进行宣告。宣告的方式有逐一宣告和批量宣告。
下面我将以该拓扑进行演示BGP如何发布路由,其中R1-R2使用直连建邻,R2-R3和R3-R4使用环回建邻,R4-R5也是用环回建邻。如果看不懂下面配置的可以去看看我之前的博客。
# R1配置
interface GigabitEthernet0/0/0
ip address 12.1.1.1 255.255.255.0
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.0
#
bgp 1
router-id 1.1.1.1
peer 12.1.1.2 as-number 2
#
# R2配置
interface GigabitEthernet0/0/0
ip address 12.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 23.1.1.1 255.255.255.0
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.0
#
bgp 2
router-id 2.2.2.2
peer 3.3.3.3 as-number 2
peer 3.3.3.3 connect-interface LoopBack0
peer 12.1.1.1 as-number 1
#
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 23.1.1.1 0.0.0.0
#
# R3配置
interface GigabitEthernet0/0/0
ip address 23.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 34.1.1.1 255.255.255.0
#
bgp 2
router-id 3.3.3.3
peer 2.2.2.2 as-number 2
peer 2.2.2.2 connect-interface LoopBack0
peer 4.4.4.4 as-number 2
peer 4.4.4.4 connect-interface LoopBack0
#
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 23.1.1.2 0.0.0.0
network 34.1.1.1 0.0.0.0
#
# R4配置
interface GigabitEthernet0/0/0
ip address 34.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 45.1.1.1 255.255.255.0
#
interface LoopBack0
ip address 4.4.4.4 255.255.255.0
#
bgp 2
router-id 4.4.4.4
peer 3.3.3.3 as-number 2
peer 3.3.3.3 connect-interface LoopBack0
peer 5.5.5.5 as-number 3
peer 5.5.5.5 ebgp-max-hop 2
peer 5.5.5.5 connect-interface LoopBack0
#
ospf 1 router-id 4.4.4.4
area 0.0.0.0
network 4.4.4.4 0.0.0.0
network 34.1.1.2 0.0.0.0
#
ip route-static 5.5.5.0 255.255.255.0 45.1.1.2
#
# R5上配置
interface GigabitEthernet0/0/0
ip address 45.1.1.2 255.255.255.0
#
interface LoopBack0
ip address 5.5.5.5 255.255.255.0
#
bgp 3
router-id 5.5.5.5
peer 4.4.4.4 as-number 2
peer 4.4.4.4 ebgp-max-hop 2
peer 4.4.4.4 connect-interface LoopBack0
#
ip route-static 4.4.4.0 255.255.255.0 45.1.1.1
#
Network–逐一宣告
- 同OSPF和RIP相同使用network命令宣告路由,但BGP和OSPF和RIP不同的是BGP可以宣告自己路由表上任意一条路由,需要注意的是:BGP宣告的条目必须同本地路由表中的记录完全一致。
[r1]bgp 1 # 进入BGP进程
[r1-bgp]network 1.1.1.0 24 --- 宣告r1的环回接口
# 如果宣告本地路由表中不存在的路由则会出现以下情况
[r1-bgp]network 10.0.0.0 8
Info: The network does not exist.
- R1上宣告环回后,生成路由信息会出现在本地BGP表中,查看本地BGP表:
[r1]display bgp routing-table # 查看本地BGP表
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 0.0.0.0 0 0 i
- 本地BGP表里存放着本设备所宣告的和所有从其他对等体出收到的路由信息,路由信息主要包括目标网段和掩码,还有各种属性,下面只展示了一部分属性
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 0.0.0.0 0 0 i
Network:目标网段和掩码
nexthop:下一跳IP地址,在EBGP关系间发送路由信息时,谁发给我,nexthop就是谁,由于1.1.1.0/24的路由信息是本地宣告,所以为0.0.0.0
MED:本地宣告到BGP中的路由会携带原协议的开销值,通过MED属性携带。
LocPrf、PreVal:这里先不用了解,后续我会出一篇关于BGP属性的博客。
Path:即AS-PATH属性,用于EBGP水平分割,记录该路由信息所经过的AS编号。AS号的添加,在EBGP邻居间发送路由时进行的,这里由于本地宣告,并没有显示AS号。
Ogn:起源属性:以什么方式进入BGP的,1.BGP宣告本地路由表中路由:i,2.本地路由表中IGP路由重发布到BGP协议:?,3.将本地路由表中EGP路由重发布到BGP协议:e,这里1.1.1.0/24是本地宣告,所以标:i
*>:该路由的状态码:
*:代表可用, BGP设备每收到一条路由信息,都会通过路由表查询检查其下一跳属性的可达性,如果下一跳的地址是可达的,则代表该路由可用,不可达则不可用,不可用的路由无法加表。
’>’: 代表优选,当收到多条到达相同网段的路由信息时,BGP将会在其中根据路由属性选择最好的最为优选路由,只有优选的路由才会被加载到路由表中,并且传递给其他BGP对等体。不优选的则不传递,不加表。
- R1宣告后,会将该路由信息传给它所有的对等体,在R2上查看BGP表,可以看出,与R1的BGP表比较,nexthop和path属性都发生改变。
[r2]display bgp routing-table
BGP Local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 12.1.1.1 0 0 1i
- R2收到路由信息也会发给它其他所有的对等体,由于BGP的AS-BY-AS特性,路由信息在IBGP间传递时,属性并不会发生改变,查看R3的BGP表发现1.1.10/24路由的状态码只有一个:i,说明它不可用,这是为什么?因为该路由信息的下一跳对于R3来说不可达,12.1.1.1属于R2的直连网段,R2并没有将它宣告在IGP中,所以该路由的状态为不可用,下一跳不可达则不可用。
<r3>display bgp routing-table
BGP Local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
i 1.1.1.0/24 12.1.1.1 0 100 0 1i
状态码为 i ,代表该路由信息是从IBGP对等体处学来的路由。
- 虽然路径属性默认在AS内部传递时,不会自动修改,但可以手工修改。
[r2]bgp 2
[r2-bgp]peer 3.3.3.3 next-hop-local --- 配置该命令后,本地会将发往 3.3.3.3对等体的路由的下一跳修改为本地
- 再次查看R3的BGP表,状态码已改为 *>,可达且最优
<r3>display bgp routing-table
BGP Local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 1.1.1.0/24 2.2.2.2 0 100 0 1i
- 查看R4的BGP表时发现R4没有收到1.1.1.0/24这条路由,这是因为IBGP水平分割,从IBGP对等体处学到的路由不能传递给其他IBGP对等体,所以R3不能将从R2学到的路由信息发送给R1,这里我们让R2和R4间也建立IBGP关系,使R2直接将路由信息发送给R4。
[r2]bgp 2
[r2-bgp]peer 4.4.4.4 as-number 2
[r2-bgp]peer 4.4.4.4 connect-interface l
[r2-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r2-bgp]peer 4.4.4.4 next-hop-local
[r4]bgp 2
[r4-bgp]peer 2.2.2.2 as-number 2
[r4-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[r4-bgp]peer 2.2.2.2 next-hop-local --- 由于R4也存在EBGP对等体,所以R4需要将从EBGP对等体处学到的路由信息的下一跳修改为本地后再发送给R2。
- 上述命令配置完成后,R4就可以收到R2传来的路由信息了,R4也会将该路由信息发给R5,在R5上查看路由表:
<r5>display ip routing-table protocol bgp
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : BGP
Destinations : 1 Routes : 1
BGP routing table status : <Active>
Destinations : 1 Routes : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.1.1.0/24 EBGP 255 0 RD 4.4.4.4 GigabitEthernet
0/0/0
BGP routing table status : <Inactive>
Destinations : 0 Routes : 0
- 当一台路由器收到来自EBGP对等体发送的路由信息正常加表后,该路由的协议类型为:EBGP,优先级:255
- 当一台路由器收到来自IBGP对等体发送的路由信息正常加表后,该路由的协议类型为:IBGP,优先级:255
BGP的路由悖论
- 将R5的环回宣告到BGP中,查看R4的BGP表
[r5]bgp 3
[r5-bgp]network 5.5.5.0 24
[r4]display bgp routing-table
BGP Local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 1.1.1.0/24 2.2.2.2 0 100 0 1i
5.5.5.0/24 5.5.5.5 0 0 3i
- 发现R4有R5的环回的路由信息,但该路由不可用,这是为什么?下一跳可达就应该是可用的,这是因为这里产生产生了一个逻辑悖论,R4是通过5.5.5.0/24的静态路由和R5建立对等体关系的,而此时R5又发送了一条5.5.5.0/24网段的路由信息给R4,这就是我和你建邻是为了学到可以和你建邻的路由。
- 由于逻辑悖论,该路由不可用也就不能传递,但虽然R4上有去往5.5.5.0/24网段的静态,但R4的其他邻居没有呀,所以需要将该路由变为可用且优,产生逻辑悖论的原因是本地用来建邻的静态路由和R5传来的路由网段是相同的,所以我们可用修改本地静态路由,将之修改为去往5.5.5.5/32的静态主机路由。
[r4]undo ip route-static 5.5.5.0 24 45.1.1.2
[r4]ip route-static 5.5.5.5 32 45.1.1.2
- 再次查看R4的路由表,发现可用且优
[r4]display bgp routing-table
BGP Local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 1.1.1.0/24 2.2.2.2 0 100 0 1i
*> 5.5.5.0/24 5.5.5.5 0 0 3i
BGP的宣告问题
若通过BGP协议传递的路由条目与本地通过其他协议学习到的条目目标一致,将出现:
- 如果该路由同时作为与其他BGP邻居建立邻居关系时的底层路由,那么这条BGP路由将不优,不能传递也不能加表
- 该路由不作为建立其他BGP邻居的路由,将在本地不加表,但可以传递,属于优的路由;
重发布 – 批量宣告
- 当通告的路由数量较大时,使用network逐条发布效率较低,则可以通过重发布的方法来批量发布路由
[r2]bgp 2
[r2-bgp]import-route ospf 1
- 查看R1的BGP表,R1学到了AS2内的所有路由。
<r1>display bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 6
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 0.0.0.0 0 0 i
*> 2.2.2.0/24 12.1.1.2 0 0 2?
*> 3.3.3.3/32 12.1.1.2 1 0 2?
*> 4.4.4.4/32 12.1.1.2 2 0 2?
*> 23.1.1.0/24 12.1.1.2 0 0 2?
*> 34.1.1.0/24 12.1.1.2 2 0 2?
BGP的MED
- 在BGP协议中进行宣告时,是宣告本地路由表中任意路由,不关注这些条目的产生方式;默认将携带本地到这些路由的cost值到BGP的路由条目中去;若本地将本地宣告的BGP路由传递给本地的EBGP邻居,将携带这些cost,便于本地的EBGP邻居所在AS内部设备选路,当然这些路由在进入其他AS时不会修改度量;
- 若本地通过IBGP邻居学习到了BGP路由,优且存在cost值,在本地将这些路由传递给本地的EBGP邻居时,将cost值归0,因为这些度量不是本地产生的。
BGP路由聚合
- 由于BGP传递的路由条目数量巨大,所以为了减少路由条目数,可用使用汇总把一组路由汇聚为一个单个的路由发送,那什么是聚合呢?如果多条路由合并成一条时,如果这个合并的路由是一条超网路由,则该合并我们成为路由聚合,如果不是超网路由,则成为路由汇总。
- 在上述拓扑的R1上添加两个环回,分别是172.16.0.1/24、172.16.1.1/24,对此进行聚合演示,先取消之前所有在BGP宣告和重发布到BGP中的路由,方便观察实验结果。
自动聚合
- 自动聚合只能对重发布在BGP中的路由生效,所以我这里为了将新添的环回重发布到BGP中,将R1的直连重发布到BGP中,但我并不想将R1和R2的直连网段和R1的环回同时宣告,所以我首先做个路由策略在重发布时调用。
# 抓取172.16.0.0/24和172.16.1.0/24的路由信息
[r1]ip ip-prefix aa permit 172.16.0.0 23 greater-equal 24 less-equal 24
# 创建route-policy,并编写策略
[r1]route-policy aa permit node 10
Info: New Sequence of this List.
[r1-route-policy]if-match ip-prefix aa
# 进入BGP,在将直连重发布到BGP中时调用策略
[r1-route-policy]bgp 1
[r1-bgp]import-route direct route-policy aa
- R1重发布后在R2上查看BGP表,只收到了R1上的172.16.0.0/24和172.16.1.0/24
<r2>display bgp routing-table
BGP Local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 172.16.0.0/24 12.1.1.1 0 0 1?
*> 172.16.1.0/24 12.1.1.1 0 0 1?
- 华为设备中默认关闭了自动汇总,需要我们手动开启
[r1-bgp]summary automatic
Info: Automatic summarization is valid only for the routesimported through the import-route command.
- 此时再查看R2的BGP表,R2只收到了聚合后的路由,但网段为主类网段。
<r2>display bgp routing-table
BGP Local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 172.16.0.0 12.1.1.1 0 1?
- 查看R1的BGP表,发现本地BGP表依然存放着明细路由,但状态码前有一个s,s代表抑制,一旦路由前面的状态码中添加S标记,则代表该路由被抑制,将不再加标和传递。自动聚合完成后会自动生成一条指向汇总的空接口路由进行防环。
[r1]display bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 172.16.0.0 127.0.0.1 0 ?
s> 172.16.0.0/24 0.0.0.0 0 0 ?
s> 172.16.1.0/24 0.0.0.0 0 0 ?
手动聚合
- 由于自动聚合的问题: 1,只能聚合到主类,不可控导致产生路由黑洞;2,只能对重发布的路由生效。所以我们更多的是采用手动聚合。在R1上关闭自动汇总,使用手动聚合。
[r1]bgp 1
[r1-bgp]undo summary automatic # 关闭自动汇总
[r1-bgp]aggregate 172.16.0.0 23 # aggreate 聚合网段 掩码 本地路由表中存在一条聚合网段内的明细网段,该命令就会发出聚合路由信息
- 查看R2的BGP表,发现R2不仅收到了聚合后的路由信息,同时也受到了明细路由信息。这是由于手工聚合没有抑制明细路由,导致传递的路由条目没有减少,反而增加。
<r2>display bgp routing-table
BGP Local router ID is 2.2.2.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 172.16.0.0/23 12.1.1.1 0 1?
*> 172.16.0.0/24 12.1.1.1 0 0 1?
*> 172.16.1.0/24 12.1.1.1 0 0 1?
[r4-bgp]aggregate 172.16.0.0 22 detail-suppressed # 在聚合路由的同时抑制所有明细路由
- 手动聚合可用针对本地BGP表中的是所有路由,无论来源,接下来我在原拓扑中新添一个AS,拓扑如下,R6宣告172.16.1.0/24环回,R1宣告172.16.0.0/24环回。
- 在R4上查看BGP表,可用看出R4学到了R1和R6宣告的路由信息,且Path属性携带着它们的各自的AS编号
[r4]display bgp routing-table
BGP Local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 172.16.0.0/24 2.2.2.2 0 100 0 1?
*>i 172.16.1.0/24 2.2.2.2 0 100 0 4i
- 在R4上配置手工聚合,将收到两条BGP路由进行聚合,查看本地BGP表,发现R4抑制了明细路由,并向其他对等体发送聚合路由信息,仔细观察发现聚合后的网段的Path属性发生改变,这是因为聚合也相当于本地宣告了一条路由,但Path属性是用来防环的,聚合后的路由信息又可以传回原AS,有可能导致环路的产生。
[r4-bgp]display bgp routing-table
BGP Local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 172.16.0.0/23 127.0.0.1 0 ?
s>i 172.16.0.0/24 2.2.2.2 0 100 0 1?
s>i 172.16.1.0/24 2.2.2.2 0 100 0 4i
- 因为聚合后的路由存在属性丢失的情况,所以,这样的汇总路由需要格外关注。为此,BGP专门设计了两个聚合相关的属性:ATOMIC_AGGREGATE、AGGRGATOR。
ATOMIC_AGGREGATE ---- 纯粹的预警属性,聚合路由将会携带(只有将所有明细路由全部抑制的汇总路由才会携带),意图是提醒该路由为聚合路由,可能存在属性丢失问题。
AGGRGATOR ---- 将会记录执行汇总路由器所在的AS号及RID。
- 我们可以用通过激活AS_SET关键字,使汇总路由携带明细路由的AS_PATH属性。激活后可用看到汇总路由的path为{1 4},这代表着明细路由是来自AS:1和AS:2的,这样明细路由的所有原AS就不会接收这条聚合路由信息。
[r4-bgp]aggregate 172.16.0.0 23 detail-suppressed as-set # 在聚合命令后加一个as-set,激活AS_SET关键字
[r4-bgp]display bgp routing-table
BGP Local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 172.16.0.0/23 127.0.0.1 0 {1 4}?
s>i 172.16.0.0/24 2.2.2.2 0 100 0 1?
s>i 172.16.1.0/24 2.2.2.2 0 100 0 4i
[r4]display bgp routing-table 172.16.0.0 # 可以查看一条BGP路由的详情信息,包括所有属性
抑制策略
手工聚合不能自动抑制明细路由,需要我们手工配置,但是,因为BGP协议的特殊性,导致在一些环境下,往往不能将所有明细路由全部抑制,所以,我们在做BGP的聚合时,往往仅抑制一部分路由信息,而实现这个效果,需要用到suppress - Policy。
# 1,先抓取需要抑制的流量
[r4]ip ip-prefix bb permit 172.16.0.0 24
# 2,使用路由策略匹配流量
[r4]route-policy bb permit node 10
Info: New Sequence of this List.
[r4-route-policy]if-match ip-prefix bb
# 使用抑制策略进行调用
[r4-bgp]aggregate 172.16.0.0 22 suppress-policy bb
- 实现抑制策略的其他方法
# 使用路由策略在邻居间直接进行收发路由的管理
[r2]ip ip-prefix qq permit 172.16.0.0 24
[r2]route-policy qq deny node 10
[r2-route-policy]if-match ip-prefix qq
[r2-route-policy]q
[r2]route-policy qq permit node 20
[r2]bgp 2
[r2-bgp]aggregate 3.3.0.0 21
[r2-bgp]peer 12.1.1.1 route-policy qq export
# 直接使用前缀列表来实现方法的功能
[r2]ip ip-prefix ww deny 172.16.0.0 24
[r2]ip ip-prefix ww permit 0.0.0.0 0 less-equal 32
[r2]bgp 2
[r2-bgp]pe 12.1.1.1 ip-prefix ww export
- 查看R4的BGP表,这里没有配置激活as-set,所以汇总路由的path属性为空。可以看出172.16.0.0/24的明细路由被抑制,而172.16.1.0/24的明细路由没有被抑制。
[r4-bgp]display bgp routing-table
BGP Local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 172.16.0.0/23 127.0.0.1 0 ?
s>i 172.16.0.0/24 2.2.2.2 0 100 0 1?
*>i 172.16.1.0/24 2.2.2.2 0 100 0 4i
其他方式
- 利用了BGP的宣告的特点,本地路由表中任意路由,不关注来源均可以宣告到BGP中;不用逐一宣告明细路由,先本地手工静态一条指向汇总网段的空接口防环路由,然后再将其宣告到BGP协议中来;从IGP表中宣告到BGP协议中的条目,仅携带目标网络号和度量值;
[r4]ip route-static 172.16.0.0 23 null 0
[r4]bgp 2
[r4-bgp]network 172.16.0.0 23
[r4-bgp]display bgp routing-table
BGP Local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 172.16.0.0/23 0.0.0.0 0 0 i
*>i 172.16.0.0/24 2.2.2.2 0 100 0 1?
*>i 172.16.1.0/24 2.2.2.2 0 100 0 4i
- 聚合的缺点是将多个网络合成一个,导致访问整个聚合网段时,仅存在唯一的路径;若在多路径建邻的前提下,将无法精确的选路;故在大型的多链路的网络中为了更好控制选路,必然在传递聚合条目的同时,再在最佳路径处传递部分的明细路由。
- 若需要在传递聚合条目的同时,传递部分明细路由,只需要在宣告了空接口路由后,逐一宣告需要的明细路由即可。
- 该做法的缺点是不能携带原有明细路由的cost值,因为宣告的是本地路由表中人为添加那条静态空接口路由。