网络安全-骨干网与WLAN1
骨干网与WLAN
BGP概述
动态路由分类
IGP:内部网关协议
- AS内部使用IGP来计算和发现路由,如OSPF
EGP:外部网关协议
- AS与AS之间使用BGP来传递和控制路由
AS
AS:自治系统
- AS:Autonomous System 自治系统,指由一组网络和路由器组成的网络
- 每个自治系统都有唯一的一个编号,即AS号
- AS号可以帮助互联网中的路由器找到要到达目的地的IP地址的最短路径
- AS号由互联网分配机构IANA(互联网分配号码管理局)分配
- AS号的范围被划分为两类:公共AS号和私有AS号
- 公共AS号是指由IANA分配的AS号,可用于在全球范围内标识自治系统
- 私有AS号是指由互联网注册机构(IR)分配的AS号,用于在私有互联网中标识自治系统
2字节AS号范围是0~65535
- 1
64511为公有AS,6451265535为私有AS
4字节AS号范围是0~4294967295
- 4200000000~4294967294为私有AS号
网络规模扩大,路由数量不断增长,IGP已无法管理,AS的概念诞生
AS与AS之间通信需要使用哪种路由协议?
- 在AS之间使用BGP协议进行路由传递
BGP发展历史
BGP在企业中的应用
场景一:遍布全国大型政企单位之间,或大型数据中心
场景二:运营商骨干网
BGP概述
BGP:Border Gateway Protocol 边界网关协议
- 作用:实现在AS与AS之间动态交换路由信息
- 稳定:BGP是基于TCP协议建立的,使用端口号TCP179,非常稳定
- BGP是公有协议,任何厂商的设备都支持BGP
- BGP位于OSI的第7层 (应用层)
- 2006年之后单播IPv4网络使用的版本是BGP-4
- IPv6使用的版本是MP-BGP
BGP特点
- 稳定性非常高
- 传递大量路由
- 丰富的路由传递策略
BGP基本概念
BGP特征
- 路由器之间的BGP会话基于TCP连接而建立
- 运行BGP的路由器被称为BGP发言者(BGP Speaker),或BGP路由器
- 两个建立BGP会话的路由器互为对等体(Peer),BGP对等体之间交换BGP路由表
- BGP路由器只发送增量的BGP路由更新,或进行触发式更新(不会周期性更新)
- BGP能够传递大批量的路由,可在大规模网络中应用
BGP邻居类型
BGP邻居类型
- EBGP:运行于不同AS之间,默认优先级255
- IBGP:运行于同一AS内部,默认优先级255
BGP报文
BGP邻居的建立过程主要有5种报文
报文 | 作用 |
---|---|
Open报文 | 用于建立BGP邻居 |
Update报文 | 用于在邻居之间传递路由信息和撤销路由 |
Keepalive报文 | 用于维护邻居关系,保持BGP连接,周期性发送,60秒发一次 |
notification报文 | 通知报文,用于通知BGP邻居之间的报错信息,用于断开BGP连接 |
Route-refresh报文 | 策略更改后,让邻居重新发送路由信息 |
BGP邻居关系建立
BGP状态机
Peer状态名称 | 用途 |
---|---|
Idle | 初始化状态,tcp未连接状态,邻居的状态为idle , 当bgp设备和邻居进行tcp 连接时,会从当前的状态转为connect 状态 |
Connect | 正在进行TCP连接,如果TCP连接建立失败则进入Active状态,反复尝试连接,如果tcp 建立连接成功,bgp 设备会向邻居发送open报文,状态也会转为OpenSent 状态 |
Active | TCP连接没建立成功,反复尝试TCP连接,如果成功,状态依然可以转为opensent 状态,如果重传计时器超时,依然没有收到邻居回应,bgp设备会返回上一个状态,上一个是connect 状态 |
OpenSent | TCP连接已经建立成功,开始发送Open报文,协商邻居的建立,如果bgp设备给邻居发送open报文后,如果收到来自邻居的回复,并且回复的报文是正确的,bgp 设备会继续发送keep alive 报文,状态转为 Open Comfirm 状态,如果bgp设备给邻居发送open报文后,如果收到来自邻居的回复,但是回复的报文有错误,bgp 设备会向邻居发送notification 报文(用于断开bgp连接状态),断开后会跳转到最初的idle 状态 |
OpenConfirm | 协商成功,自己发送Keepalive报文,等待对方的Keepalive报文,如果收到邻居发来的keep alive 报文,状态会转为established 建立状态,如果收到邻居发来的notification 报文,状态会跳转为 idle 状态 |
Established | 已经收到对方的Keepalive报文,开始使用Update通告路由信息,如果收到邻居发来的错误的update 报文或者keepalive 报文,bgp设备会发送notification 报文,通知邻居断开连接,会回到idle 初始化状态 |
EBGP配置
EBGP配置
配置EBGP邻居关系
配置命令
配置R1
1 | [R1]bgp 100 //启动BGP进程,指定AS号 |
配置R2
1 | [R2]bgp 200 //启动BGP进程,指定AS号 |
BGP路由的生成
如何产生路由
- 不同于IGP路由协议,BGP并不会发现并计算产生路由
- BGP只会将IGP路由表中已存在的路由“搬”到BGP路由表中,称为注入路由
- BGP将注入的路由通过Update报文“传递”给BGP邻居
BGP注入路由的方式有两种
- network
- import-route
BGP注入路由方式
Network
- Network只会注入IP路由表中已经存在的路由条目
- Network优势是精准注入,不足是只能逐条注入路由,配置繁琐
import-route
- import-route可以批量注入路由,可以将其他协议的路由注入BGP路由表
- 注入直连路由
- 注入静态路由
- 注入OSPF路由
- ……
邻居表和路由表
BGP邻居表
1 | <R1>display bgp peer |
BGP路由表
1 | <R1>display bgp routing-table |
IBGP全互联
Next_Hop
BGP路由中的Next_Hop属性设置规则
BGP路由器在向EBGP邻居发布路由时,会把该路由的下一跳设置为本地与对端建立的BGP邻居关系的接口地址
BGP路由器将本地始发路由发布给IBGP邻居时,会把该路由的下一跳设置为本地与对端建立的BGP邻居关系的接口地址
路由器在收到EBGP邻居发布的路由后,在将路由传递给自己的IBGP邻居时,默认不修改路由的下一跳地址
Next_Hop的缺省操作
使用peer next-hop-local命令可以在设置向IBGP对等体通告路由时,把下一跳设为本地与对端建立BGP邻居关系的接口地址
1 | [R1]bgp 200 |
IBGP全互联
实现AS100内R4的10.10.4.4 和 AS300内R5的10.10.5.5互通
IBGP配置步骤
配置步骤
- R4和R1建立EBGP邻居关系
- AS200内部R1/R2/R3部署OSPF
- R1/R2/R3建立IBGP全互联
- R3和R5建立EBGP邻居关系
- R4和R5中使用network注入路由
配置命令
配置R4
1 | [R4]int g0/0/0 |
配置R1
1 | [R1]int g0/0/0 |
配置R2
1 | [R2]int g0/0/0 |
配置R3
1 | [R3]int g0/0/0 |
配置R5
1 | [R5]int g0/0/0 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Nicopilot!