Ebgp用loopback 作为更新源接口时注意 ebgp的多跳问题 默认为bgpopen消息中ttl值为1
bgp属性
权重值 cisco私有属性只提供本地策略,不会传递给任何的bgp邻居 范围0-65535 越大越优先 update message消息中不会传递
本地始发的默认权重32768 ,从其他bgp邻居学习的为0
本as有效告诉那条离开as的首选路径
Local-preference越高越优先,只会传递ibgp邻居,不能发送给ebgp邻居
默认本地优先级100 ebgp发送路由的lp为空
As-set: 无序的as列表 用于汇总的路由
As-seqence:有序的as号列表 正则表达式可以匹配 (还有两个属性是联邦里面用的跟现在的这两个意思一样)
as-path的个数越多那他的优先级也就越低
-i通过bgpnetwork,起源于igp
-e 由egb协议重发布进来
-? inomlete ,从其他渠道学习,路由来源不完全 重发布
优选顺序i>e>?
可选非传递
是一种度量值,告诉外部邻居进入as的首选路径 于local-preference作区分
越小越优先
Med是as之间交换的,只会在as内传递不会传递给下个as
公认强制属性
路由传递给ebgp peer
如果传递给ibgp邻居,并描述as外的目的地 会造成目的网络不可达
在r2上对r3敲next-hop self
如果在是由igp协议学到的路由network或者重发布 那么它的next-hop属性会继承igb的属性,注意如果这些路由是该ibgp peer配置的bgp汇总,那hp为其更新源ip
如果在共享介质中
第三方下一跳 a发现c和b在同一个网段的时候那np属性不发生变化
可传递属性 4b的数值存储的时候是以16进制的,cisco默认是10进制
一种标记,简化路由策略的执行 下游路由器可以直接用community来匹配
全局配置命令切换显示方式 ip bgp-community new-format
Community不会主动传递需要指定neig xxxx send-community
Additive 增加一条新的community值
Intermet 所有路由都携带这个属性,如果match的是这个的话就会匹配所有路由
No-advertise 不会将路由传递给任何的gbp peer
No -export
Local-as
路由汇总
自动汇总仅针对从igp重发布到bgp的路由条目
Bgp宣告就是逐条重发布
Bgp重发布就是批量重发布 区别在于,起源属性不同 逐条优于批量
Bgp自动汇总只汇总重发布引入的路由和network宣告主类网络可以被汇总当然前提是要先打开自动汇总
下面要用到的拓扑
手动汇总 aggregate-address 172.16.0.0 255.255.0.0 summary-only //加上summary-only会产生标示,标记这条汇总路由的汇总地点和执行者 自动生成空接口防环
1要先逐条宣告在聚合 2先配置到达汇总地址的空接口路由在宣告到bgp中 只宣告网络号 推荐
汇总地址如果不在更新源的话
如图
3上宣告给2两个条目 2当烂好人进项汇总 1学到没问题 单手3 4也会收到汇总 4要是访问黑洞路由 则发到2上进行丢弃 as-set
抑制列表 只能用在汇总路由后面
Route-map 可以允许或拒绝 在neighbor后
分发列表
前缀列表 neixxx prefix x out
但是这样做有隐患,它生成的是全新的路由会重传回as100中造成环路所以这个时候要加上as-set关键字,使得这条汇总路由继承明细路由的部分属性
当然as-set关键字加上后 关于汇总路由的告警预示就会消失
As-path 将所有明细路由的as-path放进{}里计算长度只算一个
Origin 继承明细里面属性最差的
Community 继承所有路由的community
Lp 取最大值
Nexp-hop 全0
Suppress-map 抑制列表 被route-map 所匹配的条目全部抑制
现在要抑制1.0 10.0 这两条
R4结果
Advertise-map 针对某些特定明细路由去继承它们的属性,汇总路由为它们而生,一个在汇总就在,只有advertise-map所匹配的明细全消失 汇总才消失
R1上
R3上
R4结果
第一个show为r3没敲advertise之前继承r1的community的属性
Attribute-map 这个是对产生的汇总路由来执行动作的 不用匹配直接set就可以
Bgp在ma网络的下一跳
Icmp重定向
Clear ip bgp * 硬重置
Clear ip bgp * soft软重启
Show ip bgp neighbor xxxx advertised-routers 查看本地发送邻居的路由
Show ip bgp nei xxx received 查看本地收到邻居的路由
正则表达式
常规字符
控制字符
1.原子字符:位于常规字符之前或之后用于限制或扩充常规字符的的控制字符或占位符
2.乘法字符:跟在原子字符或常规字符之后,用来描述它前面的字符的重复方式 必须搭配常规字符
3.范围字符:限制范围
Ip as-path access-list 1 permlt 100(正则表达式)
案例1
R2上两条lp口模拟路由 一条是as200 一条as是200,600,用正则表达式来匹配as600过来的路由
R2上插入as-path
ip prefix-list 1 seq 5 permit 172.16.1.0/24
!
ip prefix-list 2 seq 5 permit 172.16.2.0/24
!
route-map 1 permit 10
match ip address prefix-list 2
set as-path prepend 600
!
route-map 1 permit 20
R3 上
neighbor 10.1.23.2 filter-list 1 in
ip as-path access-list 1 permit _200$
在rout-map xx permit 10
Match 1 2 //或关系
Match1
Match2 //且关系
在ip community-list x permit xx yy //注意这个时候是且关系
Ip community list x permit zz //与上面的呈或关系
R3上
ip community-list 1 permit 100:1 no-advertise
route-map 1 permit 10
match community 1
set metric 111
!
route-map 1 permit 20
router bgp 300
neighbor 10.1.23.2 remote-as 200
neighbor 10.1.23.2 route-map 1 in
实验结果路由没有被第一个match语句匹配中
Network Next Hop Metric LocPrf Weight Path
结果一:*> 172.16.1.0/24 10.1.23.2 111 0 200 100 i
结果二: Network Next Hop Metric LocPrf Weight Path
*> 172.16.1.0/24 10.1.23.2 0 200 100 i
在匹配community时如果要精确匹配 就在route-map 的match动作后面加exacr-match
ip community-list 1 permit no-export
!
route-map 1 permit 10
match community 1 exact-match
set metric 111
!
route-map 1 permit 20
!
结果
Network Next Hop Metric LocPrf Weight Path
*> 172.16.1.0/24 10.1.23.2 0 200 100 i
*> 172.16.2.0/24 10.1.23.2 111 0 200 100 i
假如要删除某条路由携带的community属性的时候 注意匹配的时候要用多行,一行中写多个是不生效的
1.先编写一条命名的ip community 列表去匹配你要删除的community属性
2.在route-map中匹配那条要删除的community属性
3.Set comm-list del(名称)delete
4.ip community-list standard del permit no-export
5.route-map 1 permit 10
6. match community del
Route-map在network的时候跟在邻居后面
network 11.11.11.0 mask 255.255.255.0 route-map 11
network 12.12.12.0 mask 255.255.255.0 route-map 12
neighbor 10.1.12.2 send-community
ip prefix-list 11 seq 5 permit 11.11.11.0/24
!
ip prefix-list 12 seq 5 permit 12.12.12.0/24
route-map 11 permit 10
set community 6553611
route-map 12 permit 10
set community 6553612
Route-map 也可以针对某个邻居直接调用
把ospf重发布进bgp 默认值重发布o和oi的oe的不会进来 除非加上mstch ex
Policy-map :match语句的模块化 相当于只有match语句的route-map 提供给route-map去匹配
Policy-list 1
Match x
Match c //且关系
Route-map text
Match policy-list 1 =match x ,c
Ip prefix 1 permit 11.11.11.0/24
Ip perfix 2 permit 12.12.12.0/24
Route-map pr1 permit10
Match ip address prefix1
Route-map pr2 permit 10
Match ip address prefix 2
Neighbor 10.1.23.3 advertise-map pr1 non-exist-map pr2 //pr1中的路由在就给邻居更新pr2中的路由,反之就更新pr1
Orf
A给b发送100条路由 b只要10个,在本地执行策略可以做到过滤但实际上它已经收到了100条路由,orf可以让a感知到b只要10条 自主通过学习b的策略,然后只给b发10条路由
Orf信息存放在router refresh message a与b部署了orf后邻居关系会断然后协商能力值
Show ip b neighbors 10.1.23.3 advertised-routes 查看本地发送给邻居的路由 bgp
Orf中包含了 afi (address family identifier) orf type 128 cisco
A上
Router b 100
Address-family unicast //开启
Neighbor 10.1.23.3 capability orf prefix-list receive
B上
Router b 200
Address-family ipv4 unica
Neighbor 10.1.23.2 capability orf prefix-list send
Ip prefix-list filtry deny xxxx
Ip prefix-list filtry permit
路由拆分
Bgp inject-map 1 exist-map 2 [copy attributes] 当2里面的路由汇总在的时候 在bgp表中注入 1 里的路由 (明细) 加上copy attributes 关健字 明细继承汇总的属性 不加明细就是本地始发的
Exist-map 要有两个match
Match ipaddress prefix-list 匹配汇总
Match ip route-souress 匹配发送汇总的更新源ip 那台路由器执行汇总 就是他的更新源ip
Inject-map
Set ip address prefix-list 匹配你要生成的明细 //注意这两个都是route-map
A -b- c
B拆分路由给c
B上
Ip prefix-list x permit 汇总
Ip prefix-list y permit 明细
Ip prefix-list z permit 汇总路由的更新源ip
Route-map 明细 permit 10
Set ip address prefix-list y
Route-map 汇总 permit 10
Match ip address prefix-lisy x
Match ip route-source z
Router b 200
Bgp inject-map 明细 exist-map 汇总
Ibgp的水平分割产生原因 as内放环 没有as-path
Route reflector
反射规则
1 如果学习自非client ibgp对等体 则反射给所有的client
2 如果学习自client ,则反射给所有非client ibgp邻居和该client以外的所有client
3 如果学习自ebgp邻居,则发送给所有的client和非client ibgp邻居
RR知道谁是客户 它是4维的 client 和非client不知道RR的概念 它是3维的
路由反射器实际上是放宽了ibgp的水平分割 它用originator_id 和cluster_list这两个可选非传递的属性来防环 只反射最优的路由
在真机上用next-hop-self 是不生效的;
router-map x permit10
set ip next-hop peer-address 然后对邻居后面调用
Originator_id cluster list 属性会影响bgp的路径决策
A-b-c都在一个as
Originator_id:a更新路由给b时b添加上originator id (a的更新源ip)传给c 假设c由于某种原因又把路由传给a时,a发现有自己origintor id 然后丢弃该路由 实现破环
Cluster list :a更新路由给b后,b插入clister 字段(它是个列表形式 簇id 默认是b的更新源ip)然后传给c 假设 c也是RR 它有传给下游d d传给b时,b发现有自己的id 丢弃该路由
这就是反射的概念 添加origintor id 和cluster list 发送是不会添加的
每个簇都有唯一的簇id
此处出自三杯红茶的博客
部署
Router b 456
Neighbor xxxx route-reflector-client
Bgp cluster_id xxxx 修改簇id
联邦
联邦 —在一个真实的AS内部构建多个虚拟的小AS;
对于其他的大AS来说,只能看到大AS号;
小AS建议使用私有的AS编号;
小AS间构建—联邦内的EBGP邻居关系;这种关系间路由条目可以传递,但不修改属性,学习的路由管理距离为200;
配置:
【1】启动及所有的配置均基于小AS编号进行
【2】联邦内所有设备声明自己的大AS号
r2(config)#router bgp 64512
r2(config-router)#bgp confederation identifier 2
【3】小AS间互指peer–配置点为联邦内的EBGP邻居关系设备
r3(config-router)#bgp confederation peers 64513 对端的小AS号