BGP属性值分了两个大类
1、周知的
1.1、必选的
1.1.1、origin 起源
1.1.2、as-path
1.1.3、next-hop
1.1.4、local preference
1.1.5、atomic aggregate 圆子聚合(汇总)
1.2、自觉的
2、可选的
2.1、可选传递(哪怕你不认识也需要往下传递)
2.1.1、aggregator 聚合
2.1.2、community 胎记 必须手动传送 才会传送给邻居
route-map att permit 10
set community 100:8
router bgp 100
network 1.1.1.0 mask 255.255.255.0 route-map att
neighbor 1.1.1.1 send-community
ip bgp-community new-format
2.2、可选非传递(如果你不认识就把这个属性值丢掉)
BGP 的汇总
BGP 自动汇总在做无类宣告单时候是不生效单,在重分布和有类宣告单时候才会生效。
BGP 手动汇总 aggregate 加上as-set 表示我需要把我的明细路由的 路由属性继承下来。
BGP 手动汇总 加上 summary-only 表示我在传递路由单时候不在传递被汇总后的明细路由。
BGP 手动汇总 加上 advertise-map 选择一些明细路由来做汇总并且继承这些明细路由单属性,被deny的明细路由就不继承他们的属性了。
BGP 手动汇总 加上 attribute-map 修改汇总路由的属性。
BGP 手动汇总 加上 suprers-map 传递汇总路由的时候选择性宣告部分明细路由。
工作为transit AS
1、别人给我给我的路由我要给别人。
2、别人给我的数据包我要转发给别人。
BGP 的路由过滤
过滤的优先级
1、prefix-list
2、filter-list
3、route-map
1、基于as-path的过滤
ip as-path access-list 1 permit regexp(正则表达式)
正则表达式
| 选择符 如 21|31 选择其中一个来匹配。
[] [1-3].[34]表示 1 2 3 任意选择一个来匹配 . 表示任意字符 3 4 任意选择一个来匹配。
^ 表示开始
$ 表示结束
_ 表示分隔符 ^ $ 空格
\ 表示后边跟的是字符
* 表示0个或者多个字符
? 表示0个或者一个字符
+ 表示1个或者多个字符
. 表示任意字符
2、基于路由的过滤
手动配置基于prefix-list
ORF协商基于prefix-list
3、route-map
与路由反射器相关的两个属性值
1、originator_id 起源id
2、cluster list 路由反射器的id
MED详细设置
bgp always-compare-med 总是要比较med值(不敲这条命令默认只在同一个as学到的时候才能比较med)
bgp bestpath med missing-med-worst 如果med不显示将他视为最坏的就不会被选择。
bgp bestpath med confed 用于bgp联邦的时候从2个邻居学到路由进行比较med
Communitiy详细设置
标准的属性值
no-advertise 不会通告给任何邻居
no-export 不会通告给一个真正的EBGP邻居(BGP联邦)
local-as 不会通告给任何一个EBGP邻居(BGP联邦)
internet
aa:nn AA所在的as号 NN 自己定义具有本地意义
ip bgp-community new-format 需要开启新的格式的显示
ip community-list 1 permit aa:nn 配合route-map来做路由过滤
扩展的属性值
cost 打破平衡优选cost值,当cost值一样的时候选着扩展ID小的路由(在第8条之后,第9条之前)
配置举例:
route-map cost
set excommunity cost 1 2
如果配置了pre-bestpath 就会比weight值还优先
route-map cost
set excommunity cost pre-bestpath 1 2
链路带宽
bgp dmzlink-bw 支持不等价的负载均衡
配置举例:
router bgp 100
nei 1.1.1.1 dmzlink-bw 针对邻居开启
bgp dmzlink-bw 全局开启
maximum-pahts 2 开启负载均衡
neighbor 1.1.1.1 remove-private-as 去除私有AS号
neighbor 1.1.1.1 local-as 210 no-prepend replace-as dual-as
local-as 210 与1.1.1.1建立邻居的时候用210去建立邻居
no-prepend 隐藏原有进程的AS
replace-as 隐藏原有进程的AS
dual-as 邻居可以和我原有进程带的as建立邻居也可以和210这个as建立邻居
neighbor 1.1.1.1 ebgp-multihop EBGP多条 默认ebgp建立邻居时TTL为1
路由反射器
1、所有的客户端都需要和路由反射器建立邻居
2、所有的路由反射器都需要全互联的关系
联邦
BGP收敛
BGP收敛条件
1、所有的路由条目都收到了
2、所有的路由条目通过计算都安装到了路由表里面
3、BGP表的版本要和所有的邻居一致
show ip bgp
show ip bgp nei
4、所有的输入队列和输出队列都是0
show interface f0/0
neighbor 1.1.1.1 maximum-prefix 600 我从邻居收到的最大路由条目
peer group 加入group以后可以单独对进入的流量做策略但是对于出去的流量只能针对group做策略
BGP damepening 只对EBGP的路由生效
====================================================================================
保留 AS 64512-65535
相同 AS 叫 IBGP 不同 AS叫 EBGP,TCP 179
有5种报文
1、open 建立邻居关系以后
2、keepalive 解决TCP的缺陷 (TCP不知道对方是死是活)
3、update 更新路由表
4、notification 如果遇到更新错误会报然后断开tcp连接
5、route refresh message 在执行 clear ip bgp * soft in 路由器产生的请求信息
BGP的防环机制
BGP 在EBGP带路径信息的距离向量协议(防环机制)在传路由的时候会带上as path
BGP 在IBGP里面有水平分割的防环机制(从IBGP邻居学到的路由不在传给其他的IBGP邻居)
BGP的2张表
1、BGP表
2、路由表
3、邻居表
BGP同步规则的定义:
在BGP同步打开的情况下一个BGP路由器不会把通过IBGP邻居学到的路由通告给自己的EBGP邻居,除非自己的IGP路由表中存在这个路由才可以向EBGP邻居通告。
BGP同步的解决方法:
1、路由反射器: (路由条路多了 cluster ID 也就是路由ID)
1、路由器从一个外部路由器学到的路由他会通告给所有的IBGP邻居
2、我从client学到的路由我会通告给所有的client和非client路由器
3、我从非client学到的路由我会通告给所有的client和EBGP
4、我学到的所有的IBGP和EBGP学到的路由我都会通告给所有的EGBP
2、BGP联盟
BGP的状态
1、idle
2、connect
3、opensent (协商是否支持多协议 )
4、openconfirm
5、established (这个状态才刚刚开始交换路由)
IGP为BGP服务,IGP帮助BGP的下一跳可达
BGP的选路原则
1、weight 值 谁的weight值高谁就优,本地生成的路由是32768 ,别人传给我的是0. weight 本地有效 其他无效。
2、local-preference 谁的locprf值高谁就优,为0表示是EBGP邻居传给我的,当一条路由通过多个IBGP邻居学到才会去比较locprf值,如果一条路由通过IBGP邻居和EBGP邻居同时学到就不比较locprf值。
3、这条路由产生于我自己的话我自己就是最优的。
4、AS path 的长度 谁的AS path短谁的优先, (只在EBGP邻居有效,IBGP邻居无效)
5、通过NETWORK宣告进来的优先,通过从分布进来的次优先。 在path里面 字母 i 代表network进来的, ?号代表从分布进来的。
6、更小的MED值 (影响全局) metric值
7、EBGP的path优先于IBGP的path
8、比较这条路由的下一跳,通过IGP学路由的metric值。
9、load balance 允许路由表存在多条路由(负载均衡)
10、最老的EBGP路由
11、route-id 小的优先
12、cluster list-ID 谁小的谁优先(在双RR的情况下才会出现而且没有统一他们的cluster-ID)
13、lowest address 最低的IP地址 (如果R1-R4起了一个BGP进程 通过双线互联 而且双线都建立了BGP邻居,选在IP地址小的线路优先)
文章目录
评论抢沙发