Dynamic Routing Protocol Review
- Interior Gateway Protocol
- Distance Vector Routing Protocol
- RIP
- EIGRP
- Link-State Routing Protool
- OSPF
- IS-IS
- Distance Vector Routing Protocol
- Exterior Gateway Protocol
- Path-Vector Routing Protocol
- BGP
- iBGP
- eBGP
- BGP
- Path-Vector Routing Protocol
Why BGP
- EIGRP 和 OSPF 不适用于超大规模网络,设计之初没有考虑到互联网的快速发展
- EIGRP 还是Cisco 协议
- OSPF Database 同区域每台设备都要同步,每台设备变化都要导致重新计算
- Autonomous System : AS 归1个组织管理的全部路由器的集合
ASN Autonomous System Number
- 最初是16bit,只有65535个
- RFC4893 更新为32bit
- 2个段被保留做私有AS
- 16bit 的 64152 - 65535
- 32bit 的 42000,000,000 - 4294967294
BGP Sessions
- 本质是个 application,交换路由信息,不是真正的路由协议
- C/S 模型,通过 TCP 端口179 建立连接
- 2种类型
- Internal BGP:同1个AS内部
- External BGP:不同AS之间建立的Session
Path Attributes
- BGP 使用 Path Attribute 来标识每个Path,PA提供了操控路由的颗粒度
- BGP中的路由更新包称作 Network Layer Reachability Information (NLRI),包含了 prefix,prefix length,以及PAs
- 2种类型
- Well-known
- mandatory :所有的prefix advertisement 都必须包含,开车必须带驾照
- discretionary :身份证是个公认的东西,但出门不一定要带身份证
- Optional
- transitive :可传递的,我不认,但我会传递,可以在AS之间传递
- non-transitive :不能穿越不同的AS
- Well-known
Loop Prevention
- eBGP :
- PA : As_PATH,Well-known mandotary,每经过1个AS,都会附加自己的ASN。如果1个Router 收到了包含自己ASN的路由宣告,他就会丢弃这条路由
Address Families
- 每个 Address Family 为每个协议维护1套单独的数据库和配置
Inter-Router Communication
- BGP 依赖TCP,所以TCP要先建立,IGP要先跑起来
- 以前学过的路由协议,两台设备需要直连才能建立关系 ??? BGP不一样,可以跨设备建立联系,可以和非直连的设备建立路由关系
BGP Messages
- 类似 OSPF Type,EIGRP Hello
- 包含4种类型
- Open - Set up and establish adjacency, 包含 BGP 版本号,源ASN,Hold Timer,BGP Id
+ Hold Timer : 2端的可以不同,谁小用谁的。Cisco默认值180s,不能少于3s
+ BGP Identifier:32bit 的Router ID ,和之前学到的类似
- KEEPALIVE - Ensure BGP Neighbor 还活着,每隔 (hold timer 的 1/3 时间)交换1次
- UPDATE - Advertise, Updates,宣告 feasible 路由,或者撤回之前的路由
- NOTIFICATION - Indicate Error Condition,当发生错误(hold timer 到期等)时发出,通常会导致BGP连接自动关闭
- Open - Set up and establish adjacency, 包含 BGP 版本号,源ASN,Hold Timer,BGP Id
BGP Neighbor States
- 6个状态,之间会互相转换
- idle:
- 敲入命令后,尝试建立TCP 179连接
- 出错后,需要等待 ConnectRetry Timer,不能直接重新建立
- 每出错1次,ConnectRetry Timer 会增加
- connect
- 尝试建立TCP连接
- 如果3次握手已完成,ConnectRetry Timer被重置,发送 open ,并将状态改为 opensent state
- 如果ConnectRetry Timer 到期,仍未完成,则转去 Active
- active
- 重新尝试建立TCP连接
- open sent
- open 已发出,等待对端返回open
- 收到 open 后,开始检查
- BGP 版本需要一致
- Source IP 地址匹配
- ASN匹配
- BGP Router ID 唯一
- Security 参数正常
- 如果检查通过,就开始协商 hold timer ,同时发出 keep alive
- 转到 open confirm
- open confirm
- 一旦收到 keep alive,就转去 establish
- 如果 hold timer 到期,或者收到 NOTIFICATION,则转去 IDLE
- establish
- 开始通过 UPDATE 交换路由
- idle: