BGP协议
目录
BGP协议
基本概念
- BGP
- iBGP
- eBGP
- AS
- 对等体
- Speadker
- Peer
- BGP的路由器号(Route ID)
BGP协议
最近自己接触的一个项目有涉及到BGP相关的知识,这里记录一下。
BGP协议的基本概念
- BGP是Border GateWay Protocol,边界网关路由协议。
- 用于自治系统(Autonomous System)之间交换路由信息,称之为外部BGP,即eBGP
- 用于自治系统(Autonomous System)内部交换路由信息,称之为内部BGP,即iBGP
- BGP建立使用179端口
- GBP本身建立在TCP之上,可能不安全,需要有安全机制。
BGP建立连接
- 默认端口是179
- 默认TTL=1
BGP的工作原理
BGP对等体的建立、更新和删除等交互过程主要有5种报文、6种状态机和5个原则
BGP报文
5种报文
- Open报文:用于建立BGP对等体连接。
- Update报文:用于在对等体之间交换路由信息。
- Notification报文:用于中断BGP连接。
- Keepalive报文:用于保持BGP连接。
- Route-refresh报文:用于改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。
BGP状态机
6种状态
- 空闲(Idle)
- 连接(Connect)
- 活跃(Active)
- Open报文已发送(OpenSent)
- Open报文已确认(OpenConfirm)
- 连接已建立(Established) 在BGP对等体建立的过程中,通常可见的3个状态是:Idle、Active和Established
BGP安全保护
AS号
- AS号分为2字节AS号[1-65535]和4字节AS号[1-4294967295]
- 为了防止AS间产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。
- 为了防止AS内产生环路,BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。
过滤器
FRR提供了基于IP,基于Community和基于AS-PATH的三种过滤器来匹配路由。
IP Access List
- 基于IP的路由ACL规则,比较少使用,通常是用IP Prefix List来设置策略。
|
|
IP Prefix List
IP Prefix List提供了强大的基于IP前缀的过滤机制,除了access list之外,还能够基于ip掩码和ip掩码区间进行过滤。
|
|
Community-list
Community属性值是一种路由标记 ,FRR提供了基于Community的路由过滤方法。
|
|
as-path access-list
as-path access-list是基于as-path的过滤规则,能够使用正则表达式对as-path进行过滤。
|
|
路由策略
FRR的路由策略通过设置Route Maps来实现。Route Maps一共可分为五个模块,分别是
- Matching Conditions(条件匹配)
- Set Actions(策略设置)
- Matching Policy(条件策略)
- Call Action(跳转)
- Exit Policy(结束策略)