BGP基础【第三部】
静态路由的优点:安全稳定。缺点:配置繁琐不灵活。动态路由的优缺点则反之。
BGP边界网关路由协议
路径向量(rip是距离矢量)
到达目的网段所要经过的所有as
BGP选路不看度量值而参考13种路径属性(但大多情况下比较到前面五个就差不多结束了)
使用BGP的原因:
1.IGP只能最多容纳上千条路由信息而BGP可以容纳数十万条(路由器性能优越)
2.丰富的路径属性
问题:为什么整个互联网全使用比如说ospf而不用BGP?
设备性能达不到或网络规模较小的情况不建议使用BGP。
企业连接ISP的方式:
单宿:只连接一个运营商并且没有冗余链路
双宿:只连接一个ISP,有冗余链路
多宿:连接多个ISP,没有冗余
双多宿:连接多个ISP,有冗余
消息类型:
open
update
keeplive 维护对等体关系的建立,周期发送
notification报错消息,tcp连接错误时发送
BGP特点
路由器之间交换信息基于TCP,端口号179
路由更新增量触发,不会周期发送!!(IGP所有更新条目都是周期发送的!!!通常30分钟)因为BGP的路由表太大。
对等体关系手动指定
丰富的选路策略
show ip bop summary查询邻居表
命令:nei 对等体地址 remote-as 对等体的as号(对等体地址必须在此时的路由表中可达,也就是需要底层协议)
最好用环回口来建立peer关系
建立peer关系时双方的open消息的源和目的必须交差匹配!!!输入命令时要指定源update-sourse lo0
默认情况下ebgp关系不使用环回口建立而使用物理接口!!因为一般as间就一条链路,断掉后就没有其他路径了。
BGP的边界在路由器上不在接口上!IGP中只有IS-IS的边界在路由器上。
clear ip bgp *硬清除:强制重启bgp
”UUUUU“代表数据包能过去但回不来。
ebgp路由默认只有一跳,设置ebgp多跳,这样可以用环回口建立ebgp
来自ebgp的更新条目发送给ibgp,下一跳不是自己而是ebgp,对ibgp使用next-hop-self设定自己的ip为更新源,这样ibgp将数据包的源ip作为下一跳地址,非bgp路由器只是单纯依照目的ip转发消息包
路由黑洞解决方法:重分发或as中形成全互联的peer
BGP的as间还是DV算法,BGP路由器只把数据包交给下一跳就行了。
使用对等体组建立对等体关系:只是为了减少配置量。。。
BGP对等体建立经历的状态:
1.idle:协商建立tcp
2.connected:tcp已建立
3.open-sent:开始发送open,协商建立对等体关系
4.open-confirm:收到open,验证是否参数一致(源和目的ip)
5.established:建立成功
tcp连接失败进入active状态:重新连接;对等体建立失败
可能原因:ip不匹配,ip地址不可达,as不匹配(加错手段)
进入never状态。。
数据包源ip的价值:ping包的回包使用的目的IP;BGP路由更新用做下一跳地址。
BGP的水平分割:来自的ibgp的路由更新不会传递给其他ibgp
解决方案:路由反射器RR(中转设备):在所要任命RR的设备上指定ibgp为客户(客户并不知道自己是客户)
BGP 的认证:针对对等体进行认证,md5
BGP本身很慢
第一条选路原则“权重值”只针对思科设备有效:思科私有
本地学到的路由默认权重为32768,其他默认为0
权重值只在本地生效,不会通过路由更新传递出去!!只影响路由器自己的选路
两种方式:针对对等体!!(从他学到的所有路由);route-map
clear IP bgp * soft in/out软清除
第二条选路原则:本地优先级(大优)
只能在ibgp中传递,ebgp传来的条目缺省100(ebgp比ibgp优?)
第三条:起源本路由器上的路由(无法修改)
第四条:as-path,可以修改!!!
数据包中的目的ip字段都是前一个路由器紧邻的下一跳ip,而不是最终目标网络ip,目标网络ip存放在“负载”字段,数据包每经过一个设备都要封装一次,解析出最终的目标网络ip再查找路由表得到合适的下一跳放到目的ip字段,将包头中的目的IP字段变成下一跳的ip。这样一来二层交换机寻路时也就有了合适的依据而不谁便广播。路由器只关心目的ip指的是“负载”里的那个目的ip。同源ip字段!!!!!!但是BGP发包的下一跳是peer不一定是直连。
十三条选路原则就是为了针对同一个目标网络选择不同的下一跳:ibgp peer(不止一个),ebgp peer,或者说选择合适的邻居AS!!!