Link

BGP

目录

  1. 概述
  2. 手动聚合
  3. 抑制列表
  4. 默认路由下放
  5. BGP表中导致路由不优的原因:
  6. BGP 自动汇总
  7. VPNv4
  8. 关于下一跳

概述

  • 优点:支持条目数多(ospf 1万,isis 2万),稳定,选路可修改的参数多(一般igp只有metric和AD)。增量更新(只将更新的条目传给peer)

  • 基于TCP(端口179),所以是可靠更新

  • EBGP ad 20, IBGP 200

  • ebgp 要求必须直连,open包中跳数只有1(此值可以被修改)

nei 1.1.1.1 ebgp-multihop 2
nei 1.1.1.1 eb 2
如果中间有一个三层交换,则改为3
  • ibgp 的open包中跳数有255,因此可以跨路由器建邻居

img

i 表示通过 network 宣告学习到的。

clear ip bgp * soft out

不清除bgp tcp会话,重发更新。

ibgp 内部防环(水平分割) :

show ip bgp中打 i 的不会发给 ibgp 邻居,解决办法,全互联 or router-reflect

从IBGP 学到的EBGP 路由,其下一跳仍然是EBGP的。

同步原则,学习的 BGP 路由也要存在于 igp 路由表中。

同步:指的是从BGP协议学到的路由也必须从IGP协议学到 –>如果违反:路由不优化

路由条目不优:此路由不会被放进路由表中,也不会传递给下一邻居

手动聚合

1,

ip route 192.168.0.0 255.255.0.0 null 0

之后本地会有此路由条目,在bgp中可用network 宣告

2, 使用 agg,如果BGP路由中有该聚合内的明细路由,则在BGP中生成聚合,然后把所有的发给邻居。因此需要启用 summary-only,之后在本地的bgp 表中,能看到明细路由前面有S,表示被抑制。

聚合的问题:可能将聚合路由发给不需要的路由

假如一端是本AS,另一端是ISP,则将聚合路由发给ISP不好。加入AS-set只发给本AS之后AS Path 会从 ? 变成 num i

抑制列表

supress-map -- 需要调用route-map
192.168.8.0/23
192.168.9.0/23   !抑制
192.168.10.0/23
192.168.11.0/23
ip Prefix-list 10 permit 192.168.8.0/23 ge 24 le 24
route-map SUP permit 10
match ip add prefix 10
exit

!不需要加空条目,否则会抑制所有条目
router bgp xx
aggregate-address 192.168.8.0 255.255.255.0 supress-map SUP

默认路由下放

router bgp 111
nei 1.1.1.1 default-information originate
ip route 0.0.0.0 0.0.0.0 null 0
router bgp
redistribute static
ip route 0.0.0.0 0.0.0.0 null 0
net 0.0.0.0 

BGP表中导致路由不优的原因:

1.下一跳不可达

2.同步未关闭

img

show ip bgp 1.1.1.0 ,如果未关闭同步,则显示未同步,而路由不优

如果将 bgp 重发布ospf,这样 ibgp 邻居都能通过 IGP 学到路由,也通过 IBGP 学到了,也显示最优路由,但是还是不加表,因为ospf管理距离比 ibgp 学到的 200 小。

img

全网运行ospf,全互联。

R4 将自己的环回口宣告到bgp。 R3 上设置next-hop-self

之后R1 能学到192.168.1.0/24,下一跳是4.4.4.4

根据IGP路由表,4.4.4.4 的下一跳是10.1.1.2

R2 通过R1 也学到了,下一条是R1,1.1.1.1(因为通过EBGP peer R1学到的)

解决办法,R1上设置 next-hop-unchanged

router bgp 200
nei 2.2.2.2 next-hop-unchanged

BGP 自动汇总

imgBGP 自动汇总默认未被开启

汇总原则:

1, igp: 172.16.0.0/16 xxx

C 172.16.1.1/24

C 172.16.2.1/24

那么router bgp 200 – network 172.16.0.0 不会宣告,因为路由表中没有完全匹配的路由条目,如果开启了bgp auto-summary ,那么还会寻找igp中的明细路由,如果有则汇总后宣告。

2, 通过rip宣告了。 然后将rip重发布进bgp,这样bgp中会有明细的条目(show ip bgp)开启了自动汇总,还会汇总后宣告(按照主类)

img

当 Path 为问号,表示不确定时,意味着条目是重发布进来的,且重发布的下一跳是0.0.0.0

VPNv4

RD – route DIstinguisher

在MPLS VPN 中,私网路由的前缀形式是 XX:XX :192.168.1.1

直接在路由前缀(192.168.1.1)中标示路由的VPN信息(XX:XX)

格式:

16位自制系统号ASN:32位用户定义数: 100:1

IP地址:16位用户自定义数

• 通常建议每个VPN用相同的实例,理论上,只有保证本地相同IP地址的两个VPN实例RD不同即可。这两个VPN实例一定不能互访

• RD 的作用是路由撤销。按照BGP原理,在撤销路由时不会携带路由属性值,也就是不能携带RT属性。PE在撤销时不知道要撤销哪个

VPN的路由

(个人理解,RT是让对方判断哪些该接收到哪些vrf表中,但是在vrf中,还得需要RD判断路由来源,从对方收到的会携带RD信息)

• 在IPv4 地址前加上RD后,就成了VPNv4 地址镞,原来标准地址族为IPv4

• VPNv4 主要用于PE路由器间传递VPN路由

• VPNv4 地址只存在于MP-BGP的路由信息和PE设备的私网路由表中。即只出现在路由的发布学习中

关于下一跳

img

R1 和 R3 建立 peer, R3 和R4 peer,R4 去往R1 的下一跳会直接成为R1 的接口

原因:

R3 发现收到R1报文的源地址和要发给R4更新包的目标地址处于同一网段。因此更新包的下一跳直接改成R1的接口地址,而不是自己的地址。

只有两种情况下一跳是0.0.0.0:宣告的是本地直连,宣告的是静态路由条目

卡在Idle : 没有去往邻居的路由条目;检查IGP

卡在active:

1, 收到邻居发来的open报文,但是回包时,没有去往对方更新源的路由

2,邻居地址配错

3,单向 neighbor, 对方收到open后会直接丢弃。

4,AS number 号错误了