CCNP-第十一篇-BGP(三)
BGP十三条线路原则(大点)
能修改的前7条,後6条是无法修改的,所以实际上7条
跟ACL一样,从上往下执行,比如第一条比较出来了就不会继续往下了
工作中比较多用的,第四条根据as-path
一,权重-Weight
1.思科里面叫权重,是思科私有的,在华为叫首选优先级(Pref-Val)
思科华为均是本地有效,意味着只能管收进来的路由条目
和之前的负载均衡一样的环境,中间一个设备
然后两边各有一个相同的地址
在BGP中,第一条选录原则是权重,Weight
这个东西一般只要你收到了,那就默认是0(越大越好)
不过在本地上是32768
因为默认是0,所以正常比不出来
修改方法 这个时候就要用到策略了哦!
ACL结合Route-map,所以为什么说学不好Route-map就肯定学不好BGP
首先用acl抓这个123.1.1.0的网段,你要去改什么网段就抓什么网段
然后route-map先匹配起来
曾经是修改下一跳让他没有路由的时候也能通
然而在这,则是修改weight值
反正不管多少,你比他大就行
还需要做一个空的permit 20
然后到协议内挂接
在BGP中的挂接不是在整个协议里面挂接
而是针对对应的邻居
>与此同时,因为Weight只能是本地有效
>所以这条属性只能用in方向的route-map
这个时候再来看看bgp表
可以看到权重已经变成了123,下一条也跳到变成了3.3.3.3
一样的,路由表也会跟着变化,以此来验证.
还有一种修改weight的办法
不过这种也有坏处
坏处是只要是给这个邻居宣告的任何条目的权重发出去都是123
使用route-map的原因是需要精细到一个网段,甚至是一个主机IP
二,本地优先级
这个东西叫做local-preference,默认值100
在BGP表中的这个简写的locprf就是这个本地优先级
>一样是用acl+route-map抓前缀>做法几乎一样,只不过是改了名字
在route-map里面的这个set选项中
里面很多东西都是BGP的
set local-preference 数字
不要忘记了写一条空的route-map
此时来挂接
一样是在邻居这里做
TAG:如果别的人是发过来的在route-map上写in,就可以修改发他出去的时候的优先级
针对本机上全部路由条目,这个是针对本地优先级的所有的.
意味着本地宣告的任何网络,发出去都是这个数
然后再去看bgp已经发生了变化
但是有个特殊的情况
在IBGP中in/out方向都可以
但是在EBGP中,in可以,OUT方向是不可以的
route-map做上去,是不生效的
所以这个选路一般用于IBGP
三,优选本地的路由
最大特点:下一跳为0.0.0.0,意思就是本地的
这一条是适用于EBGP的
但是不能用在IBGP
因为,如果你收到了来自了自己发出去的路由条目那不就环路了吗
只要收到了就会触发水平分割了,所以在这用不到
举个例子:
EBGP的环境下,默认设置无配置
192.168.1.0/24
我自己本机上有
但是我收到了,这个时候请问我会选择走那边?
可以看到选择了下面,但是这是选的权重.
如果这个时候时候我们强制的把上面的weight改成比32768大
那么会发生什么?
来看看
可以看到,两个条目的前面都有一个R,R代表什么?
R代表无法写入路由表
这是为什么?
首先来想想,我们为什么能宣告呢?
任何协议宣告之前,你最起码得有吧?
那么,我是这个直连啊,你跟我一样又怎么了你凭什么啊
你长得跟我一模一样,还比我优秀咋啦?
我老婆就是爱我我才是正版!!!
我承认你比我优秀(权重)
所以BGP表中选择了他,但是不会进入路由表
四:AS-PATH(仅能用于EBGP)
到了这,就是最常用的值,也是默认值,为什么这样说呢?
你看啊
1.权重,大家都默认一样的
2.优先级,大家都一样的
3.本地,你还干的过我原配?
4.你还能干扰我怎么走路?
插播一条东东哈
这个东东叫邻居关闭,你也能叫他冻结.
如果以后你们能接触到运营商,数据中心的话
肯定能用到BGP的
那这个时候来个问题
客户突然不续费了,他说过几天把钱交上你说信他个鬼
但是呢,你如果把他邻居no了
就意味着要重新做配置
在工作上的BGP只会配置多不会少
而且你这一no,也有可能涉及到其他问题
所以一般在这个行业的行业习惯呢
会shutdown掉这个邻居,哪怕出问题了你直接开了就好了
不恢复你就一直放在这也不会咋样啊
但是如果重新配置,就会麻烦很多
他的接口是不会关闭的,只是邻居关了
这里可以看到很明显的idle状态,是管理员手动关闭的
回到正题,AS-Path
这又来了AS-PATH了?什么意思呢?
是这个东西
跟后面这个i没任何关系哈!
例如这张图的意思,就是这个123.1.1.0的路由条目,是先经过了300,再经过200来到我这里
在这个属性里面,是对比走的路,谁多谁少.
越少越好.代表的更快.
在这个修改的地方,只能增加,不能减少
什么意思呢?
就是莫须有的意思
比如你杀人了,叛10年
哎我不,性质恶劣,杀人之后无悔改之心,还这样那样什么的
无期徒刑,懂吧
只能加,但是不能减
那这个要怎么做呢?
一样用acl+route-map抓起来先
然后set as-path prepend
然后后面写数字(代表AS编号就行,爱怎么加怎么加)
但是要注意一点
记得要写个空的route-map在后面
记得挂接在邻居后面哦!
效果:
有一个问题
如果我加的这个正好有在这个网络中,那后面再经过这些真的
不就触发防环机制了吗那不就gg了吗?
缺少路由条目会死人的呀
那这个时候就可以这样写了
我无限复制我自己
既然不能给你死刑,我给你翻倍总可以吧?
这个时候来看看效果
可以看到,上面的都是一样的
所以说这个as-path,是根据数量来选择路径的
既能防环路,又能手动调整
那如果一样的数量比不出来呢?
那还用问,下一跳,来了
五.起源属性
起源属性是在这里的
顺序优先依次从I-E-?
这个path后面的i和e和?
并不是代表igp和egp和什么
这个i代表的是在BGP中的IBGP协议
这个E就是代表EGP,EGP是十几年前的东西了早就淘汰了
然后问号代表的是重分布的意思
做法是一样的,也是在route-map中的set里面
详细步骤跟前面的一模一样就不写了
1.ACL抓人
2.route-map匹配
3.set属性找你要的
4.接口或者协议内挂接
5.记得写一个空的route-map跟在后面
六.MED值(默认下在IBGP内生效可修改)
这个参数其实就是路由表里面路由条目的
管理距离的后面那个数据
就叫做MED,这个值在BGP中越小越好
做法:
ACL抓路由前缀
首先做in方向
意思就是从这个邻居进来的生效
然后这个时候来看看bgp表
有的时候或许会不生效,那么可以使用这条命令
这个情况是:默认情况下,在EBGP的in方向是不生效的.
这条命令的意思是,总是去比较med值
总结
1.权重(本地有效,可以适用于IBGP和EBGP)思科私有,仅仅能用于in方向,默认值0.
2.本地优先级,可以用于IBGP环境下,默认值100,in/out均可
在EBGP环境下,仅可以使用在in方向,out方向不生效
3.更相信本地,下一跳为0.0.0.0本地
4.as-path,经过的越少越好,要复制自己,比较的是多少并不是大小
而且是从后往前经过(仅支持EBGP)IBGP可以传递但是不生效
5.起源属性(I>E>?),所有环境均生效
6.MED,度量值,越小越好.默认下0.默认不支持EBGP
如果要用到EBGP的情况,修改后参数会变但是`路由器本身默认不比较`
需要做一条bgp always-compare-med
意思是总是比较MED值
这次的所有实验均搭建在模拟器EVE-NG下
所以每做一个实验都会进行软重启或者直接重启
clear ip bgp * soft bgp软重启
clear ip bgp * bgp进程重启
实际工作中可清可不清,但是如果环境很大的时候还是软重启或者等待吧
下一章继续BGP