AS(自治系统/路由域)
定义:运行相同路由协议,具有相同管理规则的区域(一般为一个企业网);
指具有相同路由管理策略的区域合集,一般为一个园区网;
标识:通过AS号进行标识;
范围:0~65535
其中 0~64511为公网AS,运营商网络使用,固定;
64512~65535为私网AS,企业网络使用,一般向运营商租用;
**一台路由器只能加入一个AS;
按照传递路由时是否携带掩码分类:
1、有类路由协议
路由传递时,无需携带掩码,对端收到后,根据网段的类别,自动生成掩码;
2、无类路由协议(ospf、isis、BGP)
传递路由时,会携带掩码
使用IGP传递路由
使用BGP传递路由
在AS之间专门使用BGP(Border Gateway Protocol,边界网关协议)协议进行路由传递,相较于传统的IGP协议:
BGP基于TCP,只要能够建立TCP连接即可建立BGP。
只传递路由信息,不会暴露AS内的拓扑信息。
触发式更新,而不是进行周期性更新。
• AS 之间需要直连链路,或通过 VPN 协议构造逻辑直连(例如 GRE Tunnel )进行邻居建立。
• AS 之间可能是不同的机构、公司,相互之间无法完全信任,使用 IGP 可能存在暴露 AS 内部的网络信息的风险。
• 整个网络规模扩大,路由数量进一步增加,路由表规模变大,路由收敛变慢,设备性能消耗加大。
BGP****在企业中的应用
BGP(边界网关协议)
作用:实现AS之间的互通,传递AS间的路由;
特点:
1、具有十三条选路原则,确保无次优;
2、具有丰富的防环规则,确保网络无环;
3、工作在TCP之上,每一份BGP报文被接收后,都需要进行TCP ACK确认;
4、BGP报文均为单播发送,因此可以跨跳建立BGP邻居 ;
sip默认为物理接口ip;
dip为peer的地址;
BGP使用TCP作为其传输层协议(端口号为179),使用触发式路由更新,而不是周期性路由更新。
BGP能够承载大批量的路由信息,能够支撑大规模网络。
BGP提供了丰富的路由策略,能够灵活的进行路由选路,并能指导对等体按策略发布路由。
BGP能够支撑MPLS/VPN的应用,传递客户VPN路由BGP提供了路由聚合和路由衰减功能用于防止路由振荡,通过这两项功能有效地提高了网络稳定性。
BGP****特征
BGP使用TCP为传输层协议,TCP端口号179。路由器之间的BGP会话基于TCP连接而建立。
运行BGP的路由器被称为BGP发言者(BGP Speaker),或BGP路由器。
两个建立BGP会话的路由器互为对等体(Peer),BGP对等体之间交换BGP路由表。
BGP路由器只发送增量的BGP路由更新,或进行触发式更新(不会周期性更新)。
BGP能够承载大批量的路由前缀,可在大规模网络中应用。
BGP通常被称为路径矢量路由协议(Path-Vector Routing Protocol)。
每条BGP路由都携带多种路径属性(Path attribute),BGP可以通过这些路径属性控制路径选择,而不像IS-IS、OSPF只能通过Cost控制路径选择,因此在路径选择上,BGP具有丰富的可操作性,可以在不同场景下选择最合适的路径控制方式。
BGP工作过程
1、建立TCP连接(三次握手)
主动端:发送TCP SYN(seq=a),用于请求主动端到被动端的连接
被动端:发送TCP SYN+ACK(ack=a+1,seq=b),用于确认建立主动端到被动端的连接,以及请求被动端到主动端的连接建立;
主动端:发送TCP ACK(Seq=a+1,ack=b+1),用于确认被动端到主动端的连接建立;
主动端如何确定:
(1)如果使用loopback接口建立BGP邻居,则指定了更新源地址的一端为主动端;
(2)先启动BGP的一端为主动端;
(3)router id大的一端为主动端;
TCP连接建立完成后,BGP报文可以开始交互;
2、建立BGP邻居;
建立方式:通过物理接口建立;
通过loopback接口建立;
默认为物理接口ip;
在进行TCP连接时,会进行更新源检查:会检查收到的TCP报文的sip跟自身PEER的地址是否一致,一致则通过,不一致则不通过,无法建立TCP连接;
如果在通过loopback接口建立BGP邻居时,只有一边修改了更新源,则需要修改了更新源的一端作为主动端,可以建立BGP邻居;
BGP邻居分类:
1、IBGP邻居
定义:邻居双方处于同一AS;
一般使用loopback接口建立(一个AS内一般存在多条冗余路径,通过loopback接口建立,可以提高邻居的可靠性);
(1)通过物理接口建立
bgp 100 //进入自身的BGP AS进程;
peer 10.1.23.3 as-number 100 //peer对端的物理接口,指定对方的AS号;
(2)通过loopback接口建立
bgp 100
peer 2.2.2.2 as-number 100 //peer对端的loopback接口
peer 2.2.2.2 connect-interface LoopBack 0 //将自身跟2.2.2.2建立BGP邻居时的更新源修改为自身的loopback 0接口;
注意事项:1、需要确保peer的地址可达;
2、需要修改更新源;
3、无需修改多跳(默认建立ibgp邻居时,报文发送的TTL值默认为255)
2、EBGP邻居
定义:邻居双方处于不同AS;
一般使用物理接口建立;(一般AS之间的距离较远,处于成本考虑,一般只部署单一链路,使用物理接口配置更方便)
(1)通过物理接口建立
bgp 100
peer 10.1.34.4 as-number 65535
(2)通过loopback接口建立
bgp 100
peer 4.4.4.4 as-number 65535
peer 4.4.4.4 connect-interface LoopBack 0 //将自身跟4.4.4.4建立BGP邻居时的更新源修改为自身的loopback 0接口;
peer 4.4.4.4 ebgp-max-hop 2 //指定跟4.4.4.4建立邻居时,最大跳数为2,发送的报文TTL值修改为2;
注意事项:1、需要确保peer的地址可达;
2、修改更新源;
3、修改最大跳数;(默认建立ebgp邻居时,报文发送的TTL值默认为1)
display bgp peer //查看BGP邻居
3、产生、传递BGP路由;
BGP路由的产生方式
1、宣告-network
前提:需要路由表中存在一摸一样的路由,才能宣告成功;
注意:宣告可以调用路由策略去修改属性;
特点:起源属性为i
配置
BGP 65535
network 40.1.1.1 32
2、引入-import
将其他协议的路由引入到BGP,传递给BGP邻居;
特点:起源属性为?
配置
BGP 65535
import-route direct
BGP****对等体关系
BGP报文
结构:BGP------TCP------ip------以太网2;
发送方式:单播发送;
分类:
1、open报文
作用:用于建立BGP邻居;
协商内容:
(1)版本:默认为v4,向下兼容;
(2)my as:携带发送者的AS号,对方收到后,会对比该字段与自身peer该邻居指定的AS号是否一致,一致则协商通过;
(3)hold time:指keepalive报文的超时时间,如果两端不一致,则以小的为准;
(4)router id不能冲突;
(5)可选字段
a、多协议扩展能力
代表该open报文请求建立的邻居关系;
AFI代表建立哪种协议的邻居:IPV4 \ IPV6 \ VPNV4 \ VPNV6.....
SAFI代表建立方式:单播/组播
b、路由刷新能力
默认支持
c、四字节AS号支持能力
如果一边是2字节,一边为4字节,则2字节会填充23456与4字节那一端建立BGP邻居
2、keepalive报文
作用:用于对open报文进行确认;
周期发送维护BGP邻居(默认60s/次,超时为180s)
bgp 100
peer 4.4.4.4 timer keepalive 30 hold 90 //修改keepalive周期为30s,超时时间为90s,其中超时时间修改为0,代表邻居永不老化;
3、notification报文
当双方参数协商不通过时,会发送notification报文,并且进行四次挥手,拆除TCP连接;
BGP状态机
1、idle(初始状态)
设备刚运行BGP,没有收到start事件(没有peer地址/peer的地址不可达);
2、connect(等待连接状态)
当设备收到start事件后,会发送TCP连接请求,并且进入该状态;
如果发送的TCP连接请求,32s内没有收到回应(链路问题、认证不通过),则进入active(重连接)状态,再次发送TCP连接请求,再回到connect状态,如果32s内仍然无法收到回应,则停留在connect状态,直至配置发生改变;
3、active状态(重连接状态)
如果发送的TCP连接请求,收到TCP RST回应(拒绝连接)(更新源检测不通过),则进入active状态,并且重新发送TCP连接请求,如果还是收到TCP RST回应则停留在active状态,并且每32s发送一次TCP连接请求;
4、opensent
如果TCP连接没有问题,则会在TCP连接建立完成后,由主动端发送open报文,请求BGP邻居的建立,并且进入该状态;
5、openconfirm
收到open报文后,协商参数没有问题,则回应keepalive报文进行确认,并且进入该状态;
6、established
收到对方的keepalive报文后,进入该状态;
双方均进入该状态时,代表邻居建立完成;
注意:bgp路由传递过程中,状态不会改变;