【转】BGP 学习笔记 (一)

【转】BGP 学习笔记 (一)

BGP 边界网关协议
IGP 内部网关协议 RIP、EIGRP、OSPF、ISIS
EGP 外部网关协议 EGP、BGP
ISP 互联网服务提供商

术语
AS:自治系统(一组被统一管理的路由器)不同AS号可以互相通信
范围:1-65535
公有,
私有,65412-65535

peer 对等体(neighbor)
IBGP PEER
EBGP PEER
CIDR-REPORT

OSI
RIP(UDP-520) BGP(TCP-179)
OSPF(89) EIGRP(88)
ISIS

CIDR是把几个小网络汇聚成一个大网络来做表示,
VLSM则是把一个大网络继续细分为几个小网络进行IP地址分配。
前者能让路由器的路由条目得到有效的减少,
后者可以充分利用IP进行地址分配而解决IP地址不被浪费的问题。

运行特征 高级路径矢量
最佳路径 选路方式(EBGP-20 IBGP-200)没有度量值的概念
路径属性 path-attribute
单播发送
telnet route-server.ip.att.NET
login:rviews
password:rviews

router bgp 100
no synchronization 关闭路由同步
bgp router-id 1.1.1.1 指定BGP RID
neighbor 10.1.12.2 remote-as 2345 指定邻居
network 1.1.1.1 mask 255.255.255.255 (要加这条才会显示BGP路由,通告路由)
no auto-summary 关闭路由汇总

show ip bgp neighbors 邻居表
show ip bgp summary 邻居表
show ip bgp 数据库表
show ip route bgp 路由表

open message 用于初始状态下的邻居建立
update message 用于承载及传递路由条目及路径属性(NLRI+PATH Attribute)
notification message 用于对BGP错误进程报错
keepalive massage 长度19个字节 用于实现可靠确认及邻居维持 (60s发一次,180s hold time)

邻居建立
IDLE(空闲,检测邻居的可达性)—>三次握手(connec连接)—>open message(open sent)—>keepalive message(open confirm)—>established(已确认)
active(故障时出现,修正后重新连接)

环回口建邻居
BGP更新源检测
若本地的neighbor的IP与更新源IP不一致,则邻居无法建立
router bgp 2345
neighbor 2.2.2.2 update-source loopback 1
流程:
通过IGP实现底层可达(show run | s r o)
指定对方loopback口作为邻居
修改本地更新源

EBGP Multihop(多跳)
router bgp 100
neighbor 2.2.2.2 remote-as 2345
neighbor 2.2.2.2 ebgp-multihop 255
neighbor 2.2.2.2 update-source loopback 1

neighbor 10.1.12.2 remote-as 2345(原来的指端口当邻居)

网络设计
网络拓扑演变
1、BGP运行在边缘环境,内部路由器不运行
neighbor 4.4.4.4 next-hop-self要在边缘处加这条命令(EBGP与IBGP之间)

路由黑洞
传递路由、传递数据不一样,内部路由没有获得BGP的信息表
BGP路由只要底层可达则可传递
路由黑洞表示当数据流路径中间有某些路由器因为缺失路由导致数据丢失
此拓扑设计因内部路由器没有运行导致自治区域间通信失败

2、BGP运行在网络边缘并部署重分发技术(IGP 压力大、属性全没、策略复杂)
no synchronization
路由同步 BGP邻居不会将路由传递给EBGP邻居,直到本地自治区域内的IGP也学到此路由

3、BGP运行在所有路由器上,并采用部分互联
IBGP水平分割(BGP AS 内部防环机制)
从IBGP邻居学到路由不会传递给另一个IBGP邻居

3、BGP运行在所有路由器上,并采用全互联
资源过多

4、路由反射
路由反射(route reflector)
用于解决BGP全互联问题
原理
route-reflector server 服务端
route-reflector client 客户端
route-reflector cluster 反射簇 (服务器和客户端看作一个整体)
反射簇中的路由信息是共享的逻辑意义上相当于1台路由器
大路由器只有server知道,client不知道,逐级指向
反射簇的成员数量是不受限制的
部署:
router bgp 2345
neighbor 2.2.2.2 route-reflector-client
neighbor 4.4.4.4 route-reflector-client

路由联盟
路由联盟(route conferderation)
用于解决BGP全互联问题
原理:切割AS
AS2345–AS23/AS45 联盟EBGP 联盟IBGP

router bgp 23
no synchronization
bgp router-id 3.3.3.3
bgp log-neighbor-changes
bgp confederation identifier 2345 宣告所在的大AS
bgp confederation peers 45 宣告联盟AS(子AS)
neighbor 2.2.2.2 remote-as 23
neighbor 2.2.2.2 update-source Loopback1
neighbor 2.2.2.2 next-hop-self
neighbor 4.4.4.4 remote-as 45
neighbor 4.4.4.4 ebgp-multihop 255
neighbor 4.4.4.4 update-source Loopback1
no auto-summary

5、MPLS 基于标签数据库、路由表

路径属性(Path Attributes)功能类似于度量值
用于衡量BGP的路径距离

分类:
公认 VS 可选
强制 VS 自由
传递 VS 非传递
部分

公认强制:必须存在而且都能识别(NEXT_HOOP AS_PATH ORIGIN)

1、next-hop属性:用于通告路由条目的下一跳
IGP:每个Route为一跳
BGP:每个AS为一跳
router bgp 2345
neighbor 3.3.3.3 next-hop-self

第三方下一跳(优化流量)

2、AS_PATH:用于标识BGP路由所经过的AS路径以及AS间防环,规则越短越优先
当从EBGP邻居学到一条BGP路由并且夹带本地AS时,此路由丢弃
不能在IBGP内应用,如果连邻居边界所给的路由都不是最优,则不会往内部通告

控制:
通过prefix-list抓取路由
ip prefix-list AS-PATH seq 5 permit 6.6.6.6/32

通过route-map调用prefix-list并设置策略
route-map AS-PATH permit 10
match ip address prefix-list AS-PATE
set as-path prepend 600 600 600 600
route-map AS-PATH permit 20

针对某个邻居应用策略
router bgp 100
neighbor 2.2.2.2 route-map AS-PATH in
别人给我的用in 我给别人的用out
clear ip bgp * soft 软清除 不重置邻居关系

3、ORIGIN属性(起源属性)
作用,用于标志路由的来源
i–通过network(igp)命令导入 优先级高
e–通过egp命令导入
?–通过重分发 优先级低

控制:
ip prefix-list ORIGIN seq 5 permit 2.2.2.2/32
route-map ORIGIN permit 10
match ip address prefix-list ORIGIN
set origin egp 100
route-map ORIGIN permit 20
router bgp 700
neighbor 10.1.67.6 route-map ORIGIN in

公认自由:不一定存在并且都能识别

1、LOCAL-PREFERENCE属性(本地优先级)
用于控制本地AS到外部路由的选路过程
越大越优先 默认100

控制:

ip prefix-list LOCAL seq 5 permit 7.7.7.7/32

route-map LOCAL permit 10
match ip address prefix-list LOCAL
set local-preference 200
route-map LOCAL permit 20

router bgp 2345
neighbor 3.3.3.3 route-map LOCAL out
可以在R3处刷新clear ip bgp * soft

2、MED属性:用于控制EBGP邻居如何到达本AS
越小越优先

控制:
ip prefix-list MED seq 5 permit 3.3.3.3/32

route-map MED permit 10
match ip add prefix-list MED
set metric 300
route-map MED permit 20

router bgp 100
neighbor 10.1.17.7 route-map MED out

router bgp 700
bgp always-compare-med 不管MED值是否同一AS,都会进行对比

weight 属性(权重,思科私有)
用于影响本地BGP路由器的选路
规则越大越优先,默认值为32768
只能在本地采用in方向

控制:
ip prefix-list WEIGHT seq 5 permit 17.17.17.17/32

route-map WEIGHT permit 10
match ip address prefix-list WEIGHT
set weight 10000
route-map WEIGHT permit 20

router bgp 2345
neighbor 4.4.4.4 route-map WEIGHT in

可选传递:不一定识别但会传递
可选非传递:不一定识别且不传递

BGP选路原则
1.权重(越大越优先)
2.优先级(越高越优先)
3.起源于本地 (next hop=0.0.0.0)
4.AS路径(越小越优先)(注意选择做的位置,以及显示的效果)
5.最低起源属性(i–e–?)
6.最低MED
7.EBGP优于IBGP
8.最近的IGP邻居(cost 越小越优先)
9.生存最长路由
10.最低的RID
11.最低的IP ADDR

起源于本地验证
int lo2
ip add 7.7.7.7 255.255.255.255
router bgp 2345
network 7.7.7.7 mask 255.255.255.255

最近IGP邻居验证
int f0/0
ip ospf cost 100
show ip ospf int f0/0 查看cost

对称体组(peer group)
定义:用于简化配置
部署:
创建对等体组
router bgp 2345
network IBGP-GROUP peer-group
针对对等体组做策略
neighbor IBGP-GROUP remote-as 2345
neighbor IBGP-GROUP update-source Loopback1
neighbor IBGP-GROUP next-hoop-self
将邻居放入对等体组
neighbor 3.3.3.3 peer-group IBGP-GROUP
不能针对其中的一个进行策略

邻居认证
1.BGP只支持MD5认证
2.BGP的认证信息放置在TCP头部中(Options选项)
配置:
router bgp 2345
neighbor 2.2.2.2 password pinginglab

路由汇总
方法1
第一步:通过手工方式将精细路由汇总到NULL0
ip router 172.16.0.0 255.255.252.0 Null0
第二步:通过network将汇总路由通告出去
router bgp 100
network 172.16.0.0 mask 255.255.252.0

方式2
router bgp 100
通过network通告精细路由
network 172.16.0.0 mask 255.255.255.0
network 172.16.1.0 mask 255.255.255.0
network 172.16.2.0 mask 255.255.255.0
network 172.16.3.0 mask 255.255.255.0
部署路由聚合
aggregate-address 172.16.0.0 255.255.252.0 summary-only 只通过汇总路由
aggregate-address 172.16.0.0 255.255.252.0 summary-only as-set 补全AS号

路由抑制
通过前缀列表抓取路由
ip prefix-list su seq 5 permit 172.16.0.0/24
ip prefix-list su seq 10 permit 172.16.1.0/24
通过路由表调用前缀列表
route-map su permit 10
match ip address prefix-list su
通过抑制图调用route-map
aggregate-address 172.16.0.0 255.255.252.0 as-set suppress-map su

团体属性
Community:用于影响路由选路传递的范围
可以对路由进行标记,实现更优化的部署,简化路由策略的执行
分类:
公有属性:传递范围
Internet 传递所有
No-advertise 不传递给其他邻居
Local-AS 不传递出本联盟AS
No-export 不传递出大AS
ip prefix-list COM seq 5 permit 1.1.1.1/32

route-map COM permit 10
match ip add prefix-list COM
set community internet/no-advertise/local-as/no-export
route-map COM permit 20

router bgp 100
network 2.2.2.2 route-map COM out
network 2.2.2.2 send-community (沿途加上)

show ip bgp 1.1.1.1

私有属性:路由标记
在源路由器上通过route-map将特定路由打上community标记
在源路由器上在BGP进程下针对特定下游路由器调用route-map
在源路由器上在BGP进程下针对特性下游路由器显式发送community属性
在接收路由器上通过community-list去匹配相应的community标记
在接收路由器上通过route-map调用community-list并设置策略
在接收路由器上在BGP进程下针对特定下游路由器调用route-map
在接收路由器上在BGP进程下针对特定下游路由器显式发送community属性

源发送端(打标签)
ip prefix-list seq 5 COM permit 1.1.1.1/32
ip prefix-list seq 10 COM permit 11.1.1.1/32

route-map COM permit 10
match ip address prefix-list COM
set community 100
route-map COM permit 20

neighbor 10.1.12.2 send-community
neighbor 10.1.12.2 route-map COM out

接收端(根据标签做策略)

ip community-list 1 permit 100:100

route-map COM-LIST permit 10
match community 1
set weight 20000
route-map COM-LIST permit 20

neighbor 10.1.12.1 route-map COM-LIST in

在路由器加上
ip community-list 1 permit 100
ip bgp-community new-format

show ip bgp 1.1.1.1
show ip bgp community 100:100

后门路由(backdoor route)用于调整IGP和BGP的路径优先
router bgp 100
network 3.3.3.3 mask 255.255.255.255 backdoor (BGP的管理距离变成200)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值