利用mpls解决BGP路由黑洞配置命令全解析

——By Jim

什么是BGP路由黑洞?

BGP规定无论路由器是否启动bgp都要无条件地转发BGP消息和更新包(凌驾于IGP之上),违背了IGP"非igp路由器阻断igp域"的原则,因而辗转造成了BGP路由器"居然ping不通路由表中的条目"的现象,也就是所谓的路由黑洞。

本实验用gns3模拟器3640路由器完成,笔者将配置全拷贝,读者按图搭建拓扑后直接右击复制命令行即可完成实验。

实验拓扑:

第一步:底层基础配置

R1:

int
e0/1

no shu

ip add 12.12.12.1
255.255.255.0

int loo
0

ip add 1.1.1.1
255.255.255.0

int loo
100

ip add 100.100.100.1
255.255.255.0

router os
1

router-id
1.1.1.1

net 12.12.12.1
255.255.255.0 a 0

net 1.1.1.1 255.255.255.0 a
0

R2:

int
e0/1

no shu

ip add 12.12.12.2
255.255.255.0

int
e0/2

no shu

ip add 23.23.23.2
255.255.255.0

no shu

int loo
0

ip add 2.2.2.2
255.255.255.0

router os
1

router-id
2.2.2.2

net 12.12.12.2
255.255.255.0 a 0

net 2.2.2.2 255.255.255.0 a
0

net 23.23.23.2
255.255.255.0 a 0

!

R3:

int
e0/1

ip add 23.23.23.3
255.255.255.0

int
e0/2

ip add 34.34.34.3
255.255.255.0

int lo
0

ip add 3.3.3.3
255.255.255.0

router os
1

router-id
3.3.3.3

net 23.23.23.3
255.255.255.0 a 0

net 34.34.34.3
255.255.255.0 a 0

net 3.3.3.3 255.255.255.0 a
0

R4

int
e0/1

no shu

ip add 34.34.34.4
255.255.255.0

int
e0/2

no shu

ip add 45.45.45.4
255.255.255.0

int loo
0

ip add 4.4.4.4
255.255.255.0

ROUTER OS
1

router-id
4.4.4.4

net 34.34.34.4
255.255.255.0 a 0

net 45.45.45.4
255.255.255.0 a 0

net 4.4.4.4 255.255.255.0 a
0

R5

int
e0/1

no shu

ip add 45.45.45.5
255.255.255.0

int loo
0

ip add 5.5.5.5
255.255.255.0

int loo
200

ip add 200.200.200.1
255.255.255.0

router os
1

router-id
5.5.5.5

net 45.45.45.5
255.255.255.0 a 0

net 5.5.5.5 255.255.255.0 a
0

第二步:进行bgp的配置

R1

router bgp
12345

no au

no syn

bgp router-id
1.1.1.1

neighbor 5.5.5.5 remote-as
12345

neighbor 5.5.5.5
update-source loo 0

neighbor 5.5.5.5
next-hop-self

net 100.100.100.0 mask
255.255.255.0

R5:

router bgp
12345

no au

no syn

bgp router-id
5.5.5.5

neighbor 1.1.1.1 remote-as
12345

neighbor 1.1.1.1
update-source loopback 0

neighbor 1.1.1.1
next-hop-self

net 200.200.200.0 mask
255.255.255.0

=====================================================================

第三步:校验

R1#show ip route
bgp

B 200.200.200.0/24 [200/0]
via 5.5.5.5, 00:55:29

R5#show ip route
bgp

100.0.0.0/24 is subnetted,
1 subnets

B 100.100.100.0 [200/0] via
1.1.1.1, 00:57:47

此时R1和R5都通过BGP学到了AS外的路由。

但是!!!

R1#ping
200.200.200.0

Type escape sequence to
abort.

Sending 5, 100-byte ICMP
Echos to 200.200.200.0, timeout is 2 seconds:

UUUUU

Success rate is 0 percent
(0/5)

!

R1#trace
200.200.200.0

Type escape sequence to
abort.

Tracing the route to
200.200.200.0

1 12.12.12.2 36 msec 56
msec 16 msec

2 12.12.12.2 !H !H
!H

同理,R5也ping不通100.100.100.0,直接原因都是卡在第一条。

根本原因:出现了路由黑洞,R2R3R4上没有自治系统外的路由条目,收到该路由包直接丢弃!

第四步:配置mpls
ldp

R1:

mpls ldp router-id loopback
0

mpls label range 100
199

int
e0/1

mpls ip

R2:

mpls ldp router-id loopback
0

mpls label range 200
299

int
e0/1

mpls ip

int
e0/2

mpls ip

R3:

mpls ldp router-id loopback
0

mpls label range 300
399

int
e0/1

mpls ip

int
e0/2

mpls ip

!

!

!

R4:

mpls ldp router-id loopback
0

mpls label range 400
499

int
e0/1

mpls ip

int
e0/2

mpls ip

!

!

!

!

R5:

mpls ldp router-id loo
0

mpls label range 500
599

int
e0/1

mpls ip

=====================================================================

第五步:验证

R1#ping
200.200.200.0

Type escape sequence to
abort.

Sending 5, 100-byte ICMP
Echos to 200.200.200.0, timeout is 2 seconds:

!!!!!

Success rate is 100 percent
(5/5), round-trip min/avg/max = 104/128/176 ms

!

!

R1#trace
200.200.200.0

Type escape sequence to
abort.

Tracing the route to
200.200.200.0

1 12.12.12.2 [MPLS: Label
204 Exp 0] 120 msec 112 msec 136 msec

2 23.23.23.3 [MPLS: Label
303 Exp 0] 124 msec 120 msec 128 msec

3 34.34.34.4 [MPLS: Label
403 Exp 0] 108 msec 92 msec 112 msec

4 45.45.45.5 124 msec 140
msec 124 msec

同理R5也能ping通100.100.100.0

……………………成功…………………………

自制MPLS解决路由黑洞实验的更多相关文章

  1. 详解eNSP下的单臂路由模拟实验配置

    不同VLAN之间的通信可以通过两种方式:单臂路由和三层交换机.其中,单臂路由是通过路由子接口,交换机的某个端口以trunk的方式与路由器的某个端口相连,同时路由器的链接端口配置子接口,配置子接口承载的 ...

  2. HCIA-Datacom 2.1 实验一:IPv4编址及IPv4路由基础实验

    实验目的 掌握接口IPv4地址的配置方法 理解LoopBack接口的作用与含义 理解直连路由的产生原则 掌握静态路由的配置方法并理解其生效的条件 掌握通过PING工具测试网络层联通性 掌握 ...

  3. 自制mpls ldp实验

    实验步骤 步骤1:完成EIGRP BGP 及宣告配置 步骤2:完成LDP 的配置 过程校验 步骤1:校验和理解LDP 邻居关系的发现和邻接关系的建立 R4#show mpls ldp discover ...

  4. 自制mpls ldp实验

    实验步骤 步骤1:完成EIGRP BGP 及宣告配置 步骤2:完成LDP 的配置 过程校验 步骤1:校验和理解LDP 邻居关系的发现和邻接关系的建立 R4#show mpls ldp discover ...

  5. 【node.js web项目】解决路由默认是hash模式(带#)

    [概念讲述] 1.什么是hash模式 Vue+WebPack项目,本身是一个单页应用. vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 ...

  6. Vue - 解决路由过渡动画抖动问题

    前言 Vue-Router 作为 Vue 的核心模块,它为我们提供了基于组件的路由配置.路由参数等功能,让单页面应用变得更易于管理.良好的路由管理尤为重要,比如路由拦截.路由懒加载.路由权限等都在开发 ...

  7. CCNP第一课:默认路由(路由黑洞,路由终结)

    一:功能实现 R1的环回口由R3控制下放,下放之后R4才可以ping通 代码: R1: 只需要一条静态路由,能回包就行了 ip route 20.1.1.0 255.255.255.0 10.1.1. ...

  8. 华为eNSP路由交换实验-生成树之RSTP

    RSTP基础配置 实验拓扑图 实验步骤 1.基本配置 根据实验编址表进行相应的基本IP配置. 2.配置RSTP基本功能. (1)把生成树模式由默认的MSTP(华为交换机默认开启)改为RSTP. [FW ...

  9. Vue中解决路由切换,页面不更新的实用方法

    前言:vue-router的切换不同于传统的页面的切换.路由之间的切换,其实就是组件之间的切换,不是真正的页面切换.这也会导致一个问题,就是引用相同组件的时候,会导致该组件无法更新,也就是我们口中的页 ...

随机推荐

  1. Github 开源:使用升讯威 Mapper( Sheng.Mapper)与 AutoMapper 互补,大幅提高开发效率!

    Github 地址:https://github.com/iccb1013/Sheng.Mapper 在上一篇幅中,简单介绍了 升讯威 Mapper( Sheng.Mapper)[http://www ...

  2. 一个UITableViewCell的简单动画效果

    实现下面UITableViewDelegate的方法: forRowAtIndexPath:(NSIndexPath *)indexPath{ CATransform3D rotation; rota ...

  3. centos7安装mysql(yum)

    centos7安装mysql(yum) ----安装环境----依赖安装----检查mysql是否已安装----安装----验证是否添加成功----选择要启用的mysql版本----通过Yum安装my ...

  4. [转载]无旋treap:从好奇到入门(例题:bzoj3224 普通平衡树)

    转载自ZZH大佬,原文:http://www.cnblogs.com/LadyLex/p/7182491.html 今天我们来学习一种新的数据结构:无旋treap.它和splay一样支持区间操作,和t ...

  5. Qt5.8以上版本编译Oracle数据库的OCI驱动教程

    在前一篇的文章中我已经发过一个相似的文章,详情请点击:Qt5编译oracle驱动教程. 在那一篇文章中已经可以解决了Qt5的常用版本的Oracle数据库驱动的支持,但是在新的Qt开发工具中那种方法竟然 ...

  6. C++ 开发OCX 的方法和注意事项

    C++ 开发OCX 的方法和注意事项 前言 ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM组件.ActiveX控件这种技术涉及到了几乎所有的COM和OLE的技术精 ...

  7. 举例详解Python中的split()函数的使用方法

    这篇文章主要介绍了举例详解Python中的split()函数的使用方法,split()函数的使用是Python学习当中的基础知识,通常用于将字符串切片并转换为列表,需要的朋友可以参考下   函数:sp ...

  8. 像Linux终端一样使用windows命令行【cmder】

    像Linux终端一样使用windows命令行[cmder] 下载cmder 我下载的是full版,下载之后是个压缩包,解压之后点击cmder.exe即可运行. 需要解决的几个问题 默认的是λ,当然还是 ...

  9. 师兄写的一个JAVA播放器的源代码(转)

    师兄写的一个JAVA播放器的源代码 MediaPlayer.java------------------------------------------------------------------ ...

  10. .net Path 类

    检索文件扩展名.   GetExtension 检索文件的完全限定路径. GetFullPath 检索路径中的文件名和扩展名. GetFileName 只检索路径中的文件名. GetFileNameW ...