1、.BGP的宣告问题:
一台运行BGP协议的设备在宣告本地路由表中非本地直连路由时,将携带本地到达这些路由的度量和下一跳地址;
度量问题:AS2中假设R2/R3同时连接着AS1;那么它们在宣告了本AS的路由后,将在路由信息中携带本地到达这些网段的度量值,便于AS1判定R2/R3谁离目标最近; 同时这些路由也会被同一AS内的R4/5学习到,R4/5连接着AS3,它们在将路由传递给AS3时,会将度量清0;可以通过在R4/5上宣告AS2的路由,来向AS3导入R4/5的度量;
总结:所有存在EBGP邻居的路由器均宣告本地AS的路由;
2、关闭bgp的自动汇总问题
no auto-summary 对BGP的正常的宣告路由没有影响;正常宣告路由即使设备在auto-summary条件下也携带路由表中的实际掩码;
12.2(8)T以上IOS默认已经关闭了自动汇总no auto-summary;
自动汇总针对的是从IGP重发布到BGP的路由;
r2(config)#router bgp 2
r2(config-router)#redistribute ospf 1
批量重发布的路由
auto-summary | no auto-summary |
不携带原有掩码、度量、下一跳 | 携带原有掩码、度量、下一跳 |
总结:所有存在EBGP邻居的路由器均重发布本地AS的路由;同时为 no auto-summary;
1.将IGP重发布到BGP–批量的将IGP路由宣告到BGP;
2.在BGP协议中逐条宣告IGP路由–逐一的将IGP路由重发布到bgp;这两种的路由区别仅仅在于起源属性不同; **逐一的起源属性优于批量的属性;**
3、BGP的认证
r1(config)#router bgp 1
r1(config-router)#neighbor 12.1.1.2 password cisco123
与12.1.1.2 邻居间进行认证,认证秘钥为cisco123,秘钥默认为MD5模式发送;
开启密码加密服务后,在本地的running-config中,密码会被加密;
r1(config)#service password-encryption
4、BGP的聚合–汇总
【1】利用BGP的宣告特点
本地路由表中无论条目的来源均可宣告;
不需要宣告明细路由,而是在准备汇总设备上,先配置一条到达汇总地址的空接口防环路由,然后将其再宣告到BGP协议中
r5(config)#ip route 10.1.0.0 255.255.252.0 null 0
r5(config)#router bgp 3
r5(config-router)#network 10.1.0.0 mask 255.255.252.0
基于优选路径要求,BGP协议常常需要在传递汇总路由给EBGP邻居后,再传递部分的明细路由;
这种聚合配置,只需要在宣告了汇总条目后,再逐一宣告需要的明细路由即可;
【2】BGP的聚合配置
先逐一宣告所有的明细路由;再在汇总源路由上,进行聚合配置
r5(config)#router bgp 3
r5(config-router)#aggregate-address 10.1.0.0 255.255.252.0
聚合配置完成后,本地自动生成空接口防环路由注:以上配置完成后,明细和聚合条目,同时发送
r5(config-router)#aggregate-address 10.1.0.0 255.255.252.0 summary-only
仅传递聚合条目,所有明细路由被抑制;标记S;
【3】控制明细的收发
(1)抑制列表
在汇总时,设定一张抑制列表,未被抑制的明细路由和汇总路由同时发出
在汇总配置时,先不抑制明细路由;
再定义一张抑制列表
r5(config)#ip prefix-list ss permit 10.1.2.0/24
r5(config)#route-map ss permit 10
r5(config-route-map)#match ip address prefix-list ss
r5(config-route-map)#exit
r5(config)#router bgp 3
r5(config-router)#aggregate-address 10.1.0.0 255.255.252.0 suppress-map ss
注:以上被允许流量,实际最终被抑制传输;
;
注:以下三种方式,即便不在汇总时,也可以正常和邻居间使用;
(2)分发列表
r5(config)#access-list 1 deny 10.1.2.0
r5(config)#access-list 1 permit any
r5(config)#router bgp 3
r5(config-router)#neighbor 4.4.4.4 distribute-list 1 out 控制层面方向的邻居
r5#clear ip bgp * soft
(3)Route-map
r5(config)#ip prefix-list r permit 10.1.2.0/24
r5(config)#route-map r deny 10
r5(config-route-map)#match ip address prefix-list r
r5(config-route-map)#exit
r5(config)#route-map r permit 20
r5(config-route-map)#exit
r5(config)#router bgp 3
r5(config-router)#neighbor 4.4.4.4 route-map r out 控制层面方向
r5(config-router)#end
r5#clear ip bgp * soft
关注实际状态设备,in、out方向均可;若拒绝的条目多,建议编写允许,然后自动拒绝所有;拒绝的少,那么仅关注拒绝流量,添加允许所有;
(4)前缀列表
r5(config)#ip prefix-list qq deny 10.1.2.0/24
r5(config)#ip prefix-list qq permit 0.0.0.0/0 le 32
r5(config)#router bgp 3
r5(config-router)#neighbor 4.4.4.4 prefix-list qq out 控制层面方向调用
r5(config-router)#end
r5#clear ip bgp * soft
关注实际状态设备,in、out方向均可;若拒绝的条目多,建议编写允许,然后自动拒绝所有;拒绝的少,那么仅关注拒绝流量,添加允许所有;
5、BGP在MA网络中的下一跳问题
基于ICMP重定向规则,在MA网段中传递路由时,将定义为最佳下一跳;
r1# debug ip bgp updates
r1#clear ip bgp * | 硬重启 断开本地所有邻居间的TCP会话然后重建 |
r1#clear ip bgp 123.1.1.2 | 和某个特定的邻居进行硬重启 |
r1#clear ip bgp * soft | 软重启,仅和所有邻居重新收发路由信息,不断开邻居关系 |
r1#clear ip bgp 123.1.1.2 soft | 和某个特定的邻居进行软重启 |
r1#clear ip bgp 123.1.1.2 soft ? in Soft reconfig inbound update out Soft reconfig outbound update | 还可以定义方向,区分本地发出和接收流量 |
查看本地发送给该邻居的BGP表内容
r1#show ip bgp neighbors 123.1.1.2 advertised-routes
查看本地从某个邻居接收的BGP表内容
r1#show ip bgp neighbors 123.1.1.2 received-routes
% Inbound soft reconfiguration not enabled on 123.1.1.2 默认没有空间来进行区分
创建专用空间,建议查看完空间内容后,删除该空间
r1(config)#router bgp 1
r1(config-router)#neighbor 123.1.1.2 soft-reconfiguration inbound
6.社团属性
BGP协议的一种扩展属性
各家厂商的产品默认不传播社团属性,故在使用社团属性时,必须开启传递性
例:关闭控制条目传播范围的几种社团属性
r1(config)#route-map com permit 10 定制社团属性
r1(config-route-map)#set community ?
<1-4294967295> community number
aa:nn community number in aa:nn format
additive Add to the existing community
internet Internet (well-known community)
local-AS Do not send outside local AS (well-known community)
no-advertise Do not advertise to any peer (well-known community)
no-export Do not export to next AS (well-known community)
none No community attribute
<cr>
r1(config-route-map)#set community no-advertise
r1(config-route-map)#exit
r1(config)#router bgp 1
r1(config-router)#neighbor 12.1.1.2 route-map com out 调用属性
r1(config-router)#end
r1#clear ip bgp * soft
r1(config)#router bgp 1
r1(config-router)#neighbor 12.1.1.2 send-community
开启传递性后,才将社团属性传递给下一邻居,每台BGP设备均需要与下一台设备间开启
no-advertise | 接收到的路由条目中,若存在该属性,将不再传递给下一个邻居; |
no-export | 接收到的路由条目中,若存在该属性,将不再传递给下一个大AS; |
local-AS | 接收到的路由条目中,若存在该属性,将不再传递给下一个小AS; |
若没有小AS,no-export和local-AS作用一致;均不传递给下一个大AS; |
配置小工具:
peer-group–简化BGP配置的技术
r1(config)#router bgp 1
r1(config-router)#neighbor xxx peer-group 创建名为xxx的peer-group
定制xxx的内容
r1(config-router)#neighbor xxx remote-as 2
r1(config-router)#neighbor xxx update-source loopback 0
r1(config-router)#neighbor xxx ebgp-multihop
针对邻居进行调用
r1(config-router)#neighbor 2.2.2.2 peer-group xxx
r1(config-router)#neighbor 3.3.3.3 peer-group xxx
r1(config-router)#neighbor 4.4.4.4 peer-group xxx
注:一旦和某个邻居间调用了peer-group,那么之后与该邻居的大部分操作均需要在peer-group中定制;