DV classless(无类) osi七层(应用层协议)基于tcp协议端口号为179
L2 IP TCP BGP FCS
BGPv4 只能对ipv4有用
BGPv4 plus
AS号也是要购买的,想IANA购买 范围是0~65535
前段0~64511公有AS号
私有AS号64512~65535
使用open建立邻居关系,使用keepalive来维护邻居关系60秒,没有度量值11个属性来衡量路由条目的好坏。邻居发送来的路由信息(其中是路由条目)不会马上更新,而是存在本地的BGP表里,通过计算出最优路由。
BGP定义了4中报文 单播形式发送
Open:includes hold time and BGP router ID
Keep alive:维护路由器邻接关系 周期是60秒
Update:information for one path only(could be to multiple network)
Includes path attributes and network
Notification:when error is detected
BGP connection closed after message is sent
解决BGP数据层面路由黑洞的方式
1:在AS内使用物理线路全互连。Full mesh
2:AS内IBGP对等体连接关系的全互连,full mesh
3:将AS内部的边沿路由器上的BGP路由重分发进IGP中。
4:在AS内部的边缘路由器之间建立tunnel
5:在AS内所有路由器上启用mpls(multi-protocol lable switch) (应用广泛)
为什么要选用BGP
出于管理
IGP产生的路由条目可控制特性太少了
任何IGP能承载的路由条目太少了 isis也只能是两万条,ospf一万条
一台BGP会话者收到了一条IBGP路由,该路由器只可能将该路由传递给其EBGP对等体,而不会将该路由传递给任何其他的IBGP对等体。
一台BGP会话者收到了一条EBGP路由,只要该EBGP路由内包含的接受者所在的AS号,则该路由会立即被丢弃。
BGP路由的传递原则
1:对于一条BGP路由,如果一台路由器是该路由始发路由器,该路由器会将该路由传递给其他所有IBGP 对等体以及所有EBGP对等体。
2:对于该路由器而言该路由条目是一条EBGP路由,则该路由器会将该路由条目转发给所有IBGP对等体以及所有其他的EBGP对等体
如果对于该路由器而言该路由条目是一条IBGP路由,则该路由器会将该路由条目转发给所有EBGP对等体,而不会转发任何IBGP对等体。
BGP邻接关系即便建立完毕,路由器之间也不会传递任何BGP路由。想让BGP路由器彼此传递BGP路由,需要在BGP进程中要么使用network语句进行BGP路由通告,要么使用redistribute进行路由重分发。
BGP的邻接关系状态
1:IDLE
2:connect
3:active (该邻接关系状态为问题状态)
4:open sent
5:open confirm
6:established
Show tcp brief
修改更新源
修改更新源建议两边都配置,虽然只要一边就可以了。
需要先配置静态路由
//默认是255跳
使用network来宣告路由条目,先查看路由表
以上为精确通告
也可模糊通告就是主类的路由
如果BGP表中的一条BGP路有没有标识>,则该路由不是最优的,不是最优的路由没有资格被添加进路由表并且没有资格被传递给任何其他的邻居路由器。
导致BGP路由不优的原因:
1:BGP路由的下一跳的可达性
2:同步原则
当一台路由器通过一个IBGP对等体收到了一条IBGP路由,该路由条目不能被放入路由表也不能被传递给任何其他的邻居,除非该路由器同时通过某种IGP获悉了该路由条目
1条路由条目如果打R和> 则代表该路由条目是最优的,但是由于管理距离的问题无法被加入路由表,但是该路由可以传递给其他的BGP对等体。
EBGP 20 IBGP200
//建立对等体组
//设置as号
当一台BGP speaker 将一条BGP路由传递给同MA网段的下一跳EBGP邻居时,该路由器如果发现该路由条目的上一跳邻居传递该路由的接口的ip地址和下一跳邻居接收该路由的接口的ip地址在同一个ip子网段,此时该路由器会主动将该路由条目的下一条地址改写为上一跳邻居的发送路由接口的ip地址。
关于BGP路由条目的下一跳地址
1:如果一台路由器将本地路由通告进BGP进程,则对于这些被通告路由,该路由器本地BGP表中关于他们的下一跳都为0.0.0.0 C S
2:如果一台路由器将通过IGP获悉的路由通告进BGP进程,则这些路由在该路由器的BGP表中下一跳会继承相应的IGP路由的下一跳地址
3:如果一台路由器将其本地通告的本地路由传递给其任何BGP对等体,则会将该路由条目的下一跳改为本地对于这些邻居的更新源。
4:如果一台路由器通过EBGP学习到了一条路由,则该路由在出传递给IBGP对等体时,默认情况下一跳不变(除非做next-hop-self)
5:如果一台路由器将任何BGP路由通告给其EBGP对等体,则路由的下一跳会变成该路由器对于该邻居的BGP更新源地址。
.
BGP认证:
//显示本地哪些路由条目发给接收方
//接收方不会花费内存来存放对方给我放松的路由条目信息
需要通过以下命令方可
BGP的 auto-summary
在早期的IOS版本中默认情况一台路由器的BGP进程的auto-summary是开启的
在后期版本的IOS中auto-summary是自动关闭的。
作用:
无论在路由器上是否开启auto-summary都不会影响BGP精确通告的BGP路由。
该特性只有两个作用
1:当在路由器上使用汇总通告时候,如果该路由器路由表中拥有汇总条目内的明细路由的时候,并且该路由器开启了自动汇总,则该路由器会将明细路由抑制并且将其在其主类网络边界汇总后发送给邻居。
2:当在路由器的BGP进程中重分发外部路由时,如果开启了auto-summary,那么该路由器会将这些路由以主类的形式发给邻居。还会将重分发进入的的下一跳地址写为0.0.0.0,即便这些路由本身携带metric,在BGP表中也不会继承。
发送接口的ip地址和路由的前缀不在同一个主类地址段中。
//养成好习惯
BGP的手工汇总,手工聚合
1.在本地创建指向null 0接口的聚合路由,并且在该路由器的BGP进程中使用network语句桶盖该聚合路由,而不需要通告任何一条明细路由。
2.
BGP路由聚合原则,只要聚合命令配置了,该路由器如果在BGP表中拥有该聚合内的明细路由,则会直接在本地BGP表中生成该聚合路由,并且再通告给其他邻居。
Len < ge-value <= le-value
Ip prefix-list 10 permit x.x.x.x/X ge Y LE Z
管理距离描述该路由的获悉方式是否可靠,度量值描述该路径的长短
属性:
公认属性以及可选属性
强制属性以及自由属性
可传输属性以及不可传输属性
部分属性
Weight(权重属性)
1:传递范围,该属性只能在路由器本地有意义,路由器发送任何BGP路由的时候不会携带该属性
2:却僧值:对于一条下一跳地址为.0.0.0.0的BGP路由,在该路由器本地BGP表中该路由的缺省weight值是32768
如果该路由是邻居通告的,无论IBGP或者EBGP都是缺省0,如果该路由是本地通告但是来源于IGP,则该路由缺省权重也是0
0~65535
3:比较方式weight属性值越大,该路由条目越有