上图为今日所用拓扑
1.AS (Autonomous System)自治系统
出现背景:
随着互联网的普及,全球IP地址占有越来越多,如何在几十亿ip里找到想要找到的ip成为一种问题,路由器也承担着越来越大的计算压力,AS的引进,将全球IP按自治区划分,大大缩减寻址范围。
作用:
加快路由器寻址速度,进行快速路由
2.BGP(Border Gateway Protocol)边界网关协议
出现背景:
随着AS的引入,AS内部有IGP内部网关协议有OSPF进行内部网络的路由,但是AS与AS之间该如何进行路由交换呢?每个AS都有庞大的路由表,使用静态路由显然是行不通的,动态路由分为IGP和EGP两种,IGP分为距离矢量型和链路状态型路由协议,距离矢量型如RIP,链路状态型如OSPF、ISIS。EGP只有一种,即今日的主角BGP。
注意:BGP不属于链路状态路由协议,更像是距离矢量路由协议,因此没有数据库,也从来不会计算路由,是存在与AS与AS之间的“路由搬运工”。
BGP优势
1)属于OSI中第五层应用层的协议,端口号为TCP 179,可以使用TCP建立稳定可靠连接传输数据,所以非常稳定
2)可以传输大规模的路由
3)具有非常丰富的路由控制策略,可以进行灵活的路由选择
注:BGP属于第五层,故网络联通是使用BGP的前提,而不是使用BGP的结果,与OSPF要进行区分,毕竟OSPF工作在第三层,ISIS工作在第二层。
工作原理
1)建立TCP连接(三次握手四次挥手)
2)建立BGP邻居
3)搬运路由
BGP邻居
小概念:
运行BGP的设备叫做BGP Speaker或BGP路由器
建立BGP会话的两台设备互为Peer对等体,BGP对等体之间交换BGP路由表
邻居类型:
EBGP:运行于不同AS之间的BGP
IBGP:运行于同一AS中的,用于进行三种及以上AS间路由的搬运
配置:
R1:
bgp 100
router-id 1.1.1.1
peer 192.168.12.2 as 200
R2:
bgp 200
router-id 2.2.2.2
peer 192.168.12.1 as 100
查询:
[R1]dis bgp peer
BGP local router ID : 1.1.1.1 #本路由器的router-id
Local AS number : 100 #本路由器所在AS号
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre
fRcv
192.168.12.2 4 200 5 6 0 00:02:45 Established
1
#Total number of peers : 1 表示总共有1个邻居
# Peers in established state : 1 表示处于建立状态的邻居数量(类比OSPF中同步数据库时处于FULL状态)
#Peer 192.168.12.2 表示与邻居连接的端口ip
#V version 表示所用BGP的版本号,ipv4是BGP-4,ipv6是MP-BGP
#AS 表示邻居所属AS号
#MsgRcvd 表示从邻居那里收到的报文数
#MsgSent 表示本路由器向邻居发送了几条报文
#OutQ Out Queue出向队列,里面存放的是需要重传的报文若不为0说明传输链路不稳定,有丢包
#Up/Down up表示与邻居建立了多久,down表示与邻居断开了多久。分辨up与down要看State,established状态时为up其余为down
#State 状态,有六种状态,established为完满状态(类比Full状态)
#PrefRcv 网络前缀,也就是从邻居那边搬运过来的路由条数
BGP的注入路由的两种方式:
1)network 精确注入,一条一条注入,但是注入的ip必须是核心路由表里面有的
配置:
[R1-bgp]network 192.168.1.0 24
注:这里与OSPF注入不一样,这里是网段+子网掩码,而OSPF中是网段+通配符
2)import-route ospf 批量注入路由,是一个路由类别的注入
查询BGP路由表
[R1-bgp]dis bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 192.168.1.0 0.0.0.0 0 0 i
*> 192.168.2.0 192.168.12.2 0 0 200i
BGP通告原则,即BGP传递路由的方法
BGP只会把最好的路由传递给最好的邻居
BGP建立邻居之五种报文
1)Open 开放报文
类似于OSPF的Hello报文
作用:用于建立BGP邻居
2)Update 更新报文
NLRI:网络层可达信息:即路由 就是BGP邻居传来的网段地址
包含了网络前缀和子网掩码
Path attributes:路径属性 即是通向BGP邻居发来路由的路的信息
作用: 类似LSU报文
传递路由和撤销路由
3)Notification:通告报文
作用:报告错误信息,终止邻居关系
当BGP在运行中发生故障或错误时,BGP路由器会发送Notification报文,将错误信息通过Notification报文传输给BGP邻居
4)KeepAlive 保活报文 唯一的周期性报文
类似于OSPF的Hello报文
作用:维护BGP邻居,保持BGP连接
是周期性发送的,默认60s发一次
若在180s没有收到邻居发来的keepalive报文,则认为BGP邻居故障了,断开BGP邻居
5)router-refresh :重传报文
作用:
请求邻居重新传输报文