BGP的宣告是依赖路由表的,宣告满足:
1.被宣告路由必须在路由表中
2.被宣告路由必须和路由表中的前缀掩码一致
IBGP建立邻居建议使用回环
EBGP建立邻居没有特殊情况一般使用直连建立,如果使用非直连建立需要修改条数,默认情况下条数为一(不修改条数用非直连建立邻居会无法建立)
Neighbor 10.3.3.3 ebgp-multihop //修改条数
BGP的路由串子传递的是BGP路由表中的路由信息
BGP收到路由以后需要检验该路由的下一跳是否可达,如果不可达该路由一定不优
cisco私有属性,对于离开AS的路由器在路由器选择哪一条最优,适用于一台路由器在多条路径下的选路,无视邻居属性
修改方式:
R1(config)#router bgp 2
R1(config-router)#neighbor 10.1.34.3 weight 1 //修改该邻居所有传递过来的路由weight为1
weighr的修改只能影响本路由器,不能影响到其他路由器,意味着如果AS只有一个出口,weight选路是适用的,担忧多个出口路由器情况下,weight就不太适用了
起源属性,标识该路由的来源方式,0表示宣告(i),1表示EGP学到了(E),3表示其他手段得到(重发布?),用i>E>?选路
该属性可以选路,但一般不用于选路
修改方式:
R1(config-router)#neighbor 10.1.24.2 route-map org in //用in和out方向都行,适用于任何邻居之间
R1(config)#route-map org permit 10
R1(config-route-map)#match ip address perfix-list a
R1(config-route-map)#set origin ?
igp local IGP
incomplete unknown heritage
一条路由在传输追踪经历了哪些AS(不包括自己)顺序是最近过的AS排前面,一个AS拒绝接受携带有自己AS号的路由,可用来防环。也可以用于选路AS-path短的优先。
修改方式:
R1(config)#route-map org permit 10
R1(config-route-map)#match ip address perfix-list a
R1(config-route-map)#set origin incomplete
R1(config-route-map)#set as-path prepend 2 3 4
R1(config)#route-map org permit 20
R1(config)#route bgp 2
R1(config-router)#nei
R1(config-router)#neighbor 10.1.24.2 route-map org in
一般在选路中添加AS会重复添加已经历的AS,不会添加未经历的AS,适用于任何邻居之间,in和out方向都行
nei x.x.x.x allowas-in 允许具有自己相同的AS的路由器进入本AS //打破防环,本路由器使用
nei x.x.x.x as-override 把具有和其他AS相同AS号的路由放入这个AS //邻居路由器的使用
到达路由的下一跳路由器ip地址,IBGP之间next-hop不变,为0的时候会修改为更新源地址,EBGP之间传路由next-hop修改为更新源地址
下一跳为0的优于其他路径
与weight一样,也是选路路径
不能在EBGP邻居之间传递,可以在IBGp邻居之间传递,值越高越优,常用于当本AS有多个出口路由器时,选择拥有local值大的路由器作为出口路由器,也可以是到达一个网段有多个出口时,选择local值大的路径
修改方式:
1.修改路由器的默认local-pref值,该路由器通过给IBGP邻居的路由都会携带修改后的local值
R1(config)#router bgp 1
R1(config-router)#bgp default local-preference 120 //修改路由器默认的local值
2.通过route-map修改某路由的local-pref值,EBGP只能在iin方向,IBG可以是in或out方向
R1(config)#route-map k permit 10
R1(config-route-map)#match ip address prefix-list k
R1(config-route-map)#set local-preference 120
R1(config)#route-map k permit 20
R1(config)#router bgp 1
R1(config-router)#neighbor 10.1.34.4 route-map k in
选路属性,本质就是metric默认为0,一般只能用于自同一个as发出的路由的不同路径med值比较,只能在两个AS之间传递,不能传给第三个AS
一般用于影响对方As,如果在本AS使用和local-pref等同(注意med不能在路由器上修改默认值)
R1(config)#route-map k permit 10
R1(config-route-map)#match ip address prefix-list k
R1(config-route-map)#set metric 10
R1(config)#route-map k permit 20
R1(config)#router bgp 1
R1(config-router)#neighbor 10.1.34.4 route-map k in
用来警告下游路由器路由聚合后产生的路由路径丢失
BGP支持向BGP邻居传递重叠路由可以选择多种方式
as-set命令会使得该属性消失
1.明细和粗略的都公布 //aggregate-address 10.0.0.0 255.0.0.0
2.只公布明细 //aggregate-address 10.0.0.0 255.0.0.0 suppress-map
3.只公布没有重叠的as-path //aggregate-address 10.0.0.0 255.0.0.0 summary-only as-set
4.聚合后公布聚合后的路由 //aggregate-address 10.0.0.0255.0.0.0 summary-only
用于通告汇聚路由器BGP_ID(cisco),方便寻找
团体属性,为了更好的表示BGP路由,表示格式为X:Y
团体值的设置不能在EBGP之间,他的传递可以在IBGP之间也可以在EBGP之间
标记设置
R1(config)#route-map p permit 10
R1(config-route-map)#match ip address prefix-list p
R1(config-route-map)#set community 111
R1(config)#route-map p permit 20
R1(config)#router bgp 1
R1(config-router)#neighbor kkk route-map p out
设置必须在IBGP时间,可以一用in,也可以用out
传递设置
R1(config-router)#neighbor 10.1.24.4 send-community both/standard/extended //团体属性需要传递必须开启该指令
匹配设置
R1(config)#ip community-list ? //专用的community匹配工具
<1-99> Community list number (standard)
<100-500> Community list number (expanded)
expanded Add an expanded community-list entry
standard Add a standard community-list entry
R1(config)#ip community-list expanded k permit 111
用community-lilst匹配完成之后,route-map调用即可
查看
R1#show ip bgp community //该指令可以查看所有具有团体值的路由
R1#show ip bgp community 111 //查看某团体值的所有路由
1.internet 默认属性,可以给任何BGP发送 //不对携带团体值的路由做任何限制
2.no_export 只能在一个AS内传递,可以在联盟内传递,该属性携带团体值的路由传递给EBGP邻居,联盟的EBGP除外
3.no_advertise 不再IBGP/EBGP邻居间传递,禁止传递给任何邻居
4.local-as 不向任何EBGP邻居发送包括联盟的EBGP邻居
R1(config-router)#neighbor 10.3.3.3 route-reflector-client //在反射服务端上制定反射客户端,未指定的就是非客户端
反射器可以反射客户端之前客户端与非客户端之间的路由,但是不能反射非客户端之间的路由
缺点:
反射器收到两个或两个以上达到统一目标路径时会判断出最优的路由,然后反射给客户端与非客户端路由器,这样这些设备就丧失了多条路径判断最优的权利
originator_id
路由器反射使用,是路由发起者产生的一个32bit的值,该值时本地路由发起者的RID,如果路由发起者从属性上看到自己的RID,说明有环路就忽略
Cluster_list
路由反射器使用,是路由经过反射器簇ID的一个序列号,如果反射器在属性里看到自己的簇ID就说明有环路,忽略