注:

  • 本文根据《BGP in the Datacenter》整理,有兴趣和英文阅读能力的朋友可以直接看原文:https://www.oreilly.com/library/view/bgp-in-the/9781491983416/
  • 上一部分笔记请参考:https://blog.csdn.net/tushanpeipei/article/details/128535543?spm=1001.2014.3001.5501

一、常用的show命令

前面四部分笔记着重于描述现代化数据中心的架构,以及BGP如何应用于数据中心中。在本篇的笔记中主要涉及到的是BGP的维护和排错的相关操作。首先是常用的show命令(不同厂商的设备会有一定的差别):

1.查看BGP的会话信息:
使用命令show bgp summary,结果如图1所示。默认显示的是IPv4的会话信息,如果想要查看IPv6的,乃至其他的会话信息,可以通告AFI/SAFI模型对命令进行修改,例如:show bgp ipv6 unicast summary则是查看IPv6的单播会话信息。

图1: BGP会话输出信息

以下是此输出中需要注意的要点:

  1. 列出了此设备所有的邻居(与OSPF等其他协议不同)。
  2. 列出了每个会话的状态。如果会话处于Established状态,则显示从对等体接收到的路由数量。
  3. 显示每个会话的正常运行时间(如果会话处于关闭状态,则显示其关闭持续的时间)。
  4. 显示了节点的路由器ID和ASN等信息。

此外,我们还需要注意的是,这里的neighbor显示的是对等体的hostname,这是BGP中的一个新的能力(capability)“hostname”。它可以在Open报文交互的时候携带上。一旦双方都支持该能力,后续所有的show命令都可以携带上对应的hostname而不是对端的IP,这样能够更加方便我们进行排错。例如:使用命令show ip bgp neighbors neighbor_name可以查看邻居的详细会话信息。详细的会话信息中包括对等体之间协商的能力信息,各个定时器,每一个地址簇的邻居,收发报文等。

2.查看对等体之间的路由交换信息
另外一条常用的命令则是show ip bgp或者show bgp ipv4 unicast。具体的输出信息如图2所示:

图2: BGP路由输出信息

关键字段是路由网段Network、可能的Nexthops以及与每条路由关联的AS_PATH。此屏幕仅显示12个路由中的8个,因为其他两个不被接受。拒绝路由的常见原因是策略决策或检测到AS_PATH环路。此外,每一行开头的星号(*)表示路线有效,即Nexthop是可以到达的。之后,相等符号(=)表示该路由具有多个可用的等成本路径。

此外,如果我们想要查看其中详细的路由信息,则可以使用show ip bgp x.x.x.x(路由网段)进行查看。例如,在这里我们查看10.254.0.3这条路由的详细信息,最终的输出如图3所示:

图3: BGP详细路由输出信息

使用此命令,我们可以仔细检查一条具体的路由。图3显示了该路由包含了哪些属性,以及该设备向哪些对等体通告了该路由。

二、连接外部网络

目前,我们还没有探讨Clos网络与外部网络通信的注意事项。如图4所示,它展示了一个简单的Clos网络通过Exit Leaf访问外网的拓扑:

图4: 连接外部网络拓扑设计

简单来说,Exit01和Exit02是从划分数据中心内部和外部的两个节点,也被称为Border交换机。它们通过连接到Internet节点实现与外部网络的互访以及将Clos网络与外部网络进行隔离。为了保证上述2个目的,我们需要在Border交换机与Internet节点交换路由时,上实现如下2个功能:

  1. 使用命令neighbor neighbor_name remove-private-AS all剥离数据中心路由的私网AS号;
  2. 使用命令aggregate-address summary-route summary-only聚合数据中心路由,并不发送明细路由。当然,一旦路由被聚合,AS_Path信息也会被默认地清除掉。

三、节点维护调度

如果我们需要对数据中网络中的某些节点进行升级,就需要避免路由被发送到正在升级的设备而导致流量损失。例如,在图4中,如果Spine01要升级,我们应该要求所有Leaf节点在最佳路径计算中忽略Spine01,并在此期间将所有流量发送到Spine02,以确保平稳的交通流。同样,对于服务器上连2个Leaf的情况,Spine也需要避免向其中正在升级的Leaf发送流量。

此外,现代数据中心有两个以上的Spine节点。其中四个Spine节点更为常见,在这种情况下,当一个Spine停止使用进行维护时,网络可以保持75%的容量。在传统的企业网络工作设计中,只有两个Spine节点,当单个Spine停止服务时,这将导致更严重的容量损失。相较之下,一些超大型网络中部署了16或32个Spine同时运行,在这种情况下,一个Spine等故障的只会导致容量下降1/16或1/32。

那么,我们如何让流量绕过升级中的节点呢?一个很直接有效的方式就是通过路由策略,在升级前增加去往升级节点路由的AS长度。在BGP的选路规则中,AS_path越短的情况下,越优先。所以流量就可以提前避过这个升级节点。例如,Leaf01访问Leaf04可以通过Spine01或者Spine02(ECMP)。但是现在Spine02需要进行升级。所以我们需要提前在Spine02节点上配置如下路由策略,以增加发送给Leaf节点路由的AS_Path长度:

route-map SCHED_MAINT permit 10set as-path prepend 65000 65000
neighbor ISL route-map SCHED_MAINT out

当下行Leaf节点收到Spine02的路由条目后,由于AS_path长度比从Spine01学习到的更长,所以流量都被切换到Spine01上。如图5所示:

图5: 通告增加AS_path长度来引导路由

四、BGP调试

像任何其他软件一样,由于错误或操作员的误解,BGP偶尔会表现得不可预测。解决这个问题的一个常见方法是启用调试(Debugging)并查看调试日志,以确定不可预测行为的原因。不同厂家的调试命令不同,通常是debug bgp [option]类似的格式。其中option字段可以被替换为一些特定的选项以对特定的方向进行调试。例如:

  1. neighbor-events:这用于调试所有会话,也可以仅适用于特定会话。启用此选项后,可以在调试日志中看到哪个端启动连接、BGP状态机转换以及协商了哪些能力等信息。
  2. bestpath:这用于调试最佳路径计算。如果我们为特定路由启用它,日志将显示选择前缀的最佳路径时遵循的逻辑,包括多路径选择。
  3. Updates:这用于调试对等体之间发布或接收的路由的问题。我们可以为邻居指定单条路由、所有路由,以便更仔细地检查问题的根本原因。调试日志不仅会显示被接受的路由,还会显示被拒绝的路由。

总之,本文主要介绍了数据中心BGP的一些维护方法。下一个笔记是该文章整理的最后一篇,主要介绍Leaf节点如何与下行服务器连接和通信。

BGP在数据中心的应用5——BGP生命周期管理相关推荐

  1. 重磅发布 | Serverless 应用中心:Serverless 应用全生命周期管理平台

    随着 Serverless 架构的不断普及与应用,Serverless 工具链体系的匮乏.更新/部署流程复杂.资源零散以及管理难度大等问题也随之显露.尽管 2020 年 11月,Serverless ...

  2. 发布 | Serverless 应用中心:Serverless 应用全生命周期管理平台

    作者:江昱|阿里云 Serverless 产品经理 参加文末有奖体验活动,快速上手 Serverless 应用中心. 随着 Serverless 架构的不断普及与应用,Serverless 工具链体系 ...

  3. BGP在数据中心的应用2——BGP如何适应数据中心网络

    注: 本文根据<BGP in the Datacenter>整理,有兴趣和英文阅读能力的朋友可以直接看原文:https://www.oreilly.com/library/view/bgp ...

  4. PPT 下载 | 神策数据孙文亮:客户全生命周期管理从方法到实践全解析

    在以"场景赋能·驱动有数"为主题的神策 2018 数据驱动大会现场,神策数据技术经理孙文亮发表了名为<客户全生命周期管理从方法到实践>的主题演讲. 温馨提示:点击文末阅 ...

  5. BGP在数据中心的应用6——BGP在服务器上的应用

    注: 本文根据<BGP in the Datacenter>整理,有兴趣和英文阅读能力的朋友可以直接看原文:https://www.oreilly.com/library/view/bgp ...

  6. NVisual数据中心运维管理之线路可视化管理

    数据中心(DataCenter)顾名思义是指在一个物理空间内实现信息的集中处理.存储.传输.交换.管理的场所,数据中心的关键设备,比如计算机设备.服务器设备.网络设备.存储设备等. 规模分级 超大型数 ...

  7. 智慧水务管理系统、 智慧泵房、水厂监控、水质监控、数据中心、调度指挥中心、仓储物料管理

    智慧水务管理系统. 智慧泵房.水厂监控.水质监控.数据中心.调度指挥中心.仓储物料管理 智慧水务管理系统. 智慧泵房.水厂监控.水质监控.数据中心.调度指挥中心.仓储物料管理.后台管理.工业控制.数字 ...

  8. 热温冷冰,数据存储需要全生命周期管理

    随着云计算.大数据等新兴应用广泛普及,业务数据呈现爆炸式增长,海量数据的高效访问.经济存储和智能管理变得越来越重要. 从数据生命周期来看,在数据刚生成并使用时,属于在线数据,在线数据访问的频率最高,数 ...

  9. 从全生命周期管理角度看大数据安全技术研究

    从全生命周期管理角度看大数据安全技术研究 李树栋1,2, 贾焰2, 吴晓波3, 李爱平2, 杨小东4, 赵大伟5 1. 广州大学网络空间先进技术研究院,广东 广州 510006 2. 国防科技大学计算 ...

最新文章

  1. d3.js--04(enter和exit)
  2. number类型的数组
  3. 业界 | 如何达到Kaggle竞赛top 2%?这里有一篇特征探索经验帖
  4. 如何在不同摄像头里识别行人?多层相似度感知CNN网络解析
  5. correct ways to define variables in python
  6. macOS查看IP地址的命令
  7. dns服务器v6解析 windows_04:缓存DNS、Split分离解析、电子邮件通信、Web服务器项目实战...
  8. js排序算法详解-选择排序
  9. 面试官解答:BAT等大厂最需要怎样的程序员
  10. 用好Windows 7自带文件加密工具
  11. 阿里巴巴实习生笔试研发工程师
  12. 联想拯救者Y7000关闭触摸板
  13. 程序员如何写项目经历
  14. 埃默里大学计算机科学排名,美国埃默里大学各专业的最新排名分析
  15. java图片打包下载_java 批量下载图片,批量打包文件并下载
  16. html网页设计板报,html5做一个黑板报页面
  17. insertSelective和insert的区别?
  18. 黑马程序员——C语言学习——概述
  19. linux fd dup 使用
  20. 【亲测有效】解决执行nrm ls命令查看不到*星号的问题

热门文章

  1. java实现编译器_实现一个简单的编译器
  2. 并行编程1——什么是并行程序?
  3. 动态规划:8行代码搞定最大子数组和问题
  4. m数据结构 day5 栈:后进先出,只能在表尾插入和删除的线性表
  5. 刹那间的感觉仿佛一夕穿越回几百年前
  6. HNUST-OJ-2184-huffman编码(1)
  7. 网络流之最大流算法——EK算法(通俗讲解)
  8. mysql单表查询实例_MySQL简单查询详解-单表查询
  9. 2019年30岁完成从一名程序员转行成一名高中信息技术教师
  10. Java 仿QQ空间评论 后台代码实现 一张表