自制MPLS解决路由黑洞实验
利用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解决路由黑洞实验的更多相关文章
- 详解eNSP下的单臂路由模拟实验配置
不同VLAN之间的通信可以通过两种方式:单臂路由和三层交换机.其中,单臂路由是通过路由子接口,交换机的某个端口以trunk的方式与路由器的某个端口相连,同时路由器的链接端口配置子接口,配置子接口承载的 ...
- HCIA-Datacom 2.1 实验一:IPv4编址及IPv4路由基础实验
实验目的 掌握接口IPv4地址的配置方法 理解LoopBack接口的作用与含义 理解直连路由的产生原则 掌握静态路由的配置方法并理解其生效的条件 掌握通过PING工具测试网络层联通性 掌握 ...
- 自制mpls ldp实验
实验步骤 步骤1:完成EIGRP BGP 及宣告配置 步骤2:完成LDP 的配置 过程校验 步骤1:校验和理解LDP 邻居关系的发现和邻接关系的建立 R4#show mpls ldp discover ...
- 自制mpls ldp实验
实验步骤 步骤1:完成EIGRP BGP 及宣告配置 步骤2:完成LDP 的配置 过程校验 步骤1:校验和理解LDP 邻居关系的发现和邻接关系的建立 R4#show mpls ldp discover ...
- 【node.js web项目】解决路由默认是hash模式(带#)
[概念讲述] 1.什么是hash模式 Vue+WebPack项目,本身是一个单页应用. vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 ...
- Vue - 解决路由过渡动画抖动问题
前言 Vue-Router 作为 Vue 的核心模块,它为我们提供了基于组件的路由配置.路由参数等功能,让单页面应用变得更易于管理.良好的路由管理尤为重要,比如路由拦截.路由懒加载.路由权限等都在开发 ...
- CCNP第一课:默认路由(路由黑洞,路由终结)
一:功能实现 R1的环回口由R3控制下放,下放之后R4才可以ping通 代码: R1: 只需要一条静态路由,能回包就行了 ip route 20.1.1.0 255.255.255.0 10.1.1. ...
- 华为eNSP路由交换实验-生成树之RSTP
RSTP基础配置 实验拓扑图 实验步骤 1.基本配置 根据实验编址表进行相应的基本IP配置. 2.配置RSTP基本功能. (1)把生成树模式由默认的MSTP(华为交换机默认开启)改为RSTP. [FW ...
- Vue中解决路由切换,页面不更新的实用方法
前言:vue-router的切换不同于传统的页面的切换.路由之间的切换,其实就是组件之间的切换,不是真正的页面切换.这也会导致一个问题,就是引用相同组件的时候,会导致该组件无法更新,也就是我们口中的页 ...
随机推荐
- POJ-1915 Knight Moves (BFS)
Knight Moves Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 26952 Accepted: 12721 De ...
- UE4 距离场简单分析
距离上一篇博客已经有点久了,中间忙的飞起,忽然发现很久没写了,这样不好,写一篇和工作无关的吧. 一直想搞清UE4距离场的原理,网上有几乎找不到任何有关UE4距离场实现的内容,加上上篇末说要写一个完全的 ...
- Python开发规范
背景 Python语言规范 Lint 导入 包 异常 全局变量 嵌套/局部/内部类或函数 列表推导(List Comprehensions) 默认迭代器和操作符 生成器 Lambda 函数 条件表达式 ...
- CSS小随笔(三)浮动与定位
先来说一下CSS中的浮动 一.浮动 1.标准流中的块级盒子,宽度将自动伸展为100%,而浮动的块级盒子,宽度不会自动伸展,而是由内容撑开 2.当一个盒子浮动,标准流中未浮动的其他盒子,将视浮动盒子不存 ...
- 推广技巧:新站要如何推广引流做到日IP10000?
一.回复高人气帖子插楼推广 1.找高人气的帖子在二楼或者二楼楼层中直接插入链接推广.虽然这种方法存活率比较低,但也算是贴吧里面最直接的有效的方法.一般我们分为三种: 1.1图中链接是一个短网址,这个是 ...
- 修改windows user 文件夹中的用户名
假设我们需要将帐户A改名为B.首先我们需要用另一个管理员帐户C登陆系统. 1.在控制面板-〉用户帐户中将帐户A改名为B. 2.打开C:/Users或"用户"文件夹,将文件夹A重命名 ...
- Redis使用记录-相关资料汇总
1 redis在centos上的安装 http://www.cnblogs.com/hanyinglong/p/5036558.html 2 redis在windows上的可视化GUI工具 https ...
- 扩展Python模块系列(四)----引用计数问题的处理
承接上文,发现在使用Python C/C++ API扩展Python模块时,总要在各种各样的地方考虑到引用计数问题,稍不留神可能会导致扩展的模块存在内存泄漏.引用计数问题是C语言扩展Python模块最 ...
- 再起航,我的学习笔记之JavaScript设计模式16(享元模式)
### 享元模式 **享元模式(Flyweight):** 运用共享技术有效地支持大量的细粒度的对象,避免对象间拥有相同内容造成多余的开销. 上回我们在组合模式中创建了文章列表类,这次我们要向不同的文 ...
- Django 模板.html中 href参数传入
在Django模板中可能会出现访问多个URL指向同一函数,为减少代码可以利用正则表达式实现 url(r'^remove_userinfo(?P<nid>\d+)/',views.remov ...