乾颐堂军哥HCIE8-BGP工作原理以及更新机制(含下一跳解析)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介:

BGP(规则)乾颐堂军哥HCIE8-BGP工作原理以及更新机制(含下一跳解析)
1.BGP基本的工作机制

dis bgp routing //验证BGP路由的手段
<R1>dis ip routing-table protocol bgp //目的是通过BGP更新路由
已经在AS内部存在了IGP,为什么还要使用iBGP呢? 逐跳转发、BGP黑洞、路由操控
构建环回接口来建立iBGP邻居的前提条件:源目IP可达
[R1-bgp]ping -a 11.1.1.1 15.15.15.15
PING 15.15.15.15: 56 data bytes, press CTRL_C to break
Reply from 15.15.15.15: bytes=56 Sequence=1 ttl=254 time=30 ms
Reply from 15.15.15.15: bytes=56 Sequence=2 ttl=254 time=50 ms
R1:
bgp 10
peer 10.1.12.2 as-number 20 
peer 15.15.15.15 as-number 10 
peer 15.15.15.15 connect-interface LoopBack0
SW3:
[SW3-bgp]dis th
#
bgp 10
peer 11.1.1.1 as-number 10
peer 11.1.1.1 connect-interface LoopBack0 //指定本端的去建立TCP连接的源IP地址
验证邻居关系:
[SW3-bgp]display bgp peer

BGP local router ID : 10.1.15.3
Local AS number : 10
Total number of peers : 1 Peers in established state : 1

Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv

11.1.1.1 4 10 3 3 0 00:00:33 Established 1

采用非直连的方式构建eBGP邻居关系
备份
eBGP报文中的TTL=1,所以需要修改TTL
bgp 60
peer 55.1.1.1 as-number 345 
peer 55.1.1.1 ebgp-max-hop 255 //修改ebgp报文的TTL为255,
peer 55.1.1.1 connect-interface LoopBack0 //使用环回接口0作为建立TCP会话的源地址

2.BGP的报文类型
先建立TCP链接,之后再发送BGP的报文
OPEN(扩展能力:多协议BGP的能力、路由刷新能力、4字节AS号码的能力)
Keepalive ([R6-bgp]timer keepalive 50 hold 150 //针对所有邻居 ;[R6-bgp]peer 55.1.1.1 timer keepalive 40 hold 120 //针对某个邻居做出参数修改 )
UPdate,承载NLRI(网络层可达信息,即路由条目属性,公认必遵属性:1.起源(出身i,e和?);2.as-path;3.下一跳)
Notification
Route-refresh,(<R6>refresh bgp all import //发出去该种报文,请求对端发送更新-update报文给本端,import才会触发route-refresh报文)
3.BGP的邻居状态机
6种状态
IDLE
connect
active
opensent
openconfirm
est

常见的问题:指定的错误的邻居AS;指定了错误的邻居的地址;没有到达对端源地址的路由;本设备指定了错误的源地址;认证错误
为什么R1和R2之间没有指定“连接接口呢”
从邻居处得到bgp表(dis bgp routing)--过滤、策略,选出最优的路由--全局路由表(dis ip rou)
4.BGP路由的更新(通告)原则
4.1
BGP仅仅向邻居通告最优的路由;如果存在多路径(没有开启负载均衡的情况下),BGP选取最优的放入路由表
[R5]dis bgp routing-table peer 44.1.1.1 advertised-routes

BGP Local router ID is 10.1.35.5 
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete

Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn

> 5.5.5.5/32 55.1.1.1 0 100 0 i
> 6.6.6.6/32 66.1.1.1 0 100 0 60i
*> 55.1.1.1/32 55.1.1.1 0 100 0 i
[R5]
4.2 
从ebgp邻居得到的路由会向所有的BGP邻居通告(ibgp和ebgp),除了得到该路由的eBGP邻居(水平分割)
下一跳的议题,下一跳在bgp中指到达其他AS的一个转发地址
1)iBGP环境下的下一跳
BGP路由最优的2个基本条件:A 下一跳可达性 B 同步关闭
[R1-bgp]peer 15.15.15.15 next-hop-local //从ebgp邻居处得到的路由,更新给ibgp邻居,会保持原来的下一跳(会导致下一跳不可达),ASBR针对ibgp邻居修改下一跳为本设备
[SW3]dis bgp routing-table

BGP Local router ID is 10.1.15.3 
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete

Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn

>i 5.5.5.5/32 11.1.1.1 100 0 20 345i
>i 6.6.6.6/32 11.1.1.1 100 0 20 345 60i
*>i 22.1.1.1/32 11.1.1.1 0 100 0 20i
2)eBGP多跳环境下的下一跳
3)多点接入网络环境的下一跳
BGP自动优化多点接入网络的下一跳(类似OSPF的转发地址技术)
在SW3和R5之间新建一个ebgp邻居
<R2>tracert 5.5.5.5
traceroute to 5.5.5.5(5.5.5.5), max hops: 30 ,packet length: 40,press CTRL_C to break 
1 10.1.12.1 40 ms 10 ms 20 ms 
2 10.1.15.5 60 ms 40 ms 30 ms 
和重定向没有关系(ICMP重定向要经过报文触发)
4)RR(路由反射器)情况下的下一跳
敬请期待
4.3 iBGP的防环机制
从ibgp邻居处得到的iBGP路由不会再更新给iBGP邻居(铁公鸡,ibgp路由更新一跳-指一个ibgp邻居)
造成路由黑洞(由于某些设备没有运行bgp,而导致该设备缺少路由,而IP转发是逐跳转发)
解决方案:设备之间两两互联(所有设备都存在邻居关系)

作业:
1.在R1、R5和SW3之间观察MA网络的bgp下一跳自动优化,主要看R1到R5的路由
之后拿掉SW3和R5的邻居
2)构建ebgp邻居以及配置下一跳本地:
eBGP:2+4;1+2;5+6
iBGP:4+5;1+SW3
下一跳本地:R1\R5\R4


本文转自EnderJoe 51CTO博客,原文链接:http://blog.51cto.com/enderjoe/2058348


相关文章
|
23天前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
38 3
|
27天前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
61 3
|
12天前
|
存储 缓存 安全
🌟Java零基础:深入解析Java序列化机制
【10月更文挑战第20天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
20 3
|
10天前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
25 1
|
16天前
|
数据采集 存储 编解码
一份简明的 Base64 原理解析
Base64 编码器的原理,其实很简单,花一点点时间学会它,你就又消除了一个知识盲点。
48 3
|
17天前
|
Java 开发者 UED
Java编程中的异常处理机制解析
在Java的世界里,异常处理是确保程序稳定性和可靠性的关键。本文将深入探讨Java的异常处理机制,包括异常的类型、如何捕获和处理异常以及自定义异常的创建和使用。通过理解这些概念,开发者可以编写更加健壮和易于维护的代码。
|
1月前
|
前端开发 Java 应用服务中间件
21张图解析Tomcat运行原理与架构全貌
【10月更文挑战第2天】本文通过21张图详细解析了Tomcat的运行原理与架构。Tomcat作为Java Web开发中最流行的Web服务器之一,其架构设计精妙。文章首先介绍了Tomcat的基本组件:Connector(连接器)负责网络通信,Container(容器)处理业务逻辑。连接器内部包括EndPoint、Processor和Adapter等组件,分别处理通信、协议解析和请求封装。容器采用多级结构(Engine、Host、Context、Wrapper),并通过Mapper组件进行请求路由。文章还探讨了Tomcat的生命周期管理、启动与停止机制,并通过源码分析展示了请求处理流程。
中断处理机制解析
【10月更文挑战第5天】中断处理需定义中断处理函数`irq_handler_t`,参数包括中断信号`irq`和通用指针`dev_id`。返回值`IRQ_NONE`表示非本设备中断,`IRQ_HANDLED`表示已处理,`IRQ_WAKE_THREAD`表示需唤醒等待进程。处理程序常分上下半部,关键部分在中断处理函数中完成,延迟部分通过工作队列处理。注册中断处理函数需调用`request_irq`,参数包括中断信号、处理函数、标志位、设备名和通用指针。
|
1月前
|
搜索推荐 Shell
解析排序算法:十大排序方法的工作原理与性能比较
解析排序算法:十大排序方法的工作原理与性能比较
47 9
|
1月前
|
开发框架 缓存 前端开发
electron-builder 解析:你了解其背后的构建原理吗?
本文首发于微信公众号“前端徐徐”,详细解析了 electron-builder 的工作原理。electron-builder 是一个专为整合前端项目与 Electron 应用的打包工具,负责管理依赖、生成配置文件及多平台构建。文章介绍了前端项目的构建流程、配置信息收集、依赖处理、asar 打包、附加资源准备、Electron 打包、代码签名、资源压缩、卸载程序生成、安装程序生成及最终安装包输出等环节。通过剖析 electron-builder 的原理,帮助开发者更好地理解和掌握跨端桌面应用的构建流程。
65 2

推荐镜像

更多
下一篇
无影云桌面