第四节:检测环境搭建——用GNS3/EVE-NG搭BGP实验环境

说实话,搞路由泄露攻击检测,最怕什么?

怕你学了一堆理论,一上手发现环境都搭不起来。

我个人习惯是:先搭环境,再讲原理。因为只有你亲手配过BGP,你才知道哪些地方容易出问题,哪些配置是攻击者最爱钻的空子。

这一节,我就带你用GNS3和EVE-NG把BGP实验环境搭起来。两种工具我都会讲,你选一个顺手就行。

4.1 环境选型:GNS3还是EVE-NG?

先说说我的看法。

GNS3我用了七八年,EVE-NG也用了三四年。说实话,各有千秋。

对比项 GNS3 EVE-NG
上手难度 低,图形化拖拽 中,需要Web访问
设备支持 思科、华为、Juniper等 几乎全厂商
资源占用 中等 较低(可跑在VMware上)
适合场景 小规模实验、教学 大规模、多厂商混合
我个人的推荐 初学者首选 进阶/生产模拟
我的建议:如果你是第一次搭BGP环境,用GNS3。它直观,出错了容易排查。等你要做多AS、多厂商的复杂攻击模拟时,再切到EVE-NG。

4.2 用GNS3搭建基础BGP拓扑

好,咱们直接开干。

我假设你已经装好了GNS3,并且导入了至少一个IOS镜像(比如c7200-adventerprisek9-mz.152-4.M7)。

4.2.1 拓扑设计

我们要模拟一个最简单的路由泄露场景:

  • AS 100:三台路由器(R1、R2、R3),全互联
  • AS 200:一台路由器(R4),通过EBGP连到R1和R2
  • R3上有一个Loopback0(1.1.1.1/32),作为被泄露的目标

你想想看,如果R4通过R1学到了1.1.1.1/32,然后又通过R2学到了同一条路由,但R2的路径更优——这时候R4会不会把这条路由再通告给R1?

嗯,这就是典型的路由泄露场景。

4.2.2 具体配置步骤

第一步:拖拽设备并连线

  • 从左侧设备栏拖出4台路由器
  • 用以太网线连接:R1↔R2、R1↔R3、R2↔R3、R1↔R4、R2↔R4
  • 接口分配:我习惯用GigabitEthernet0/0到0/3

第二步:配置IP地址

! R1配置
interface GigabitEthernet0/0
 ip address 10.0.12.1 255.255.255.0
 no shutdown
!
interface GigabitEthernet0/1
 ip address 10.0.13.1 255.255.255.0
 no shutdown
!
interface GigabitEthernet0/2
 ip address 10.0.14.1 255.255.255.0
 no shutdown

! R2配置
interface GigabitEthernet0/0
 ip address 10.0.12.2 255.255.255.0
 no shutdown
!
interface GigabitEthernet0/1
 ip address 10.0.23.2 255.255.255.0
 no shutdown
!
interface GigabitEthernet0/2
 ip address 10.0.24.2 255.255.255.0
 no shutdown

! R3配置
interface GigabitEthernet0/0
 ip address 10.0.13.3 255.255.255.0
 no shutdown
!
interface GigabitEthernet0/1
 ip address 10.0.23.3 255.255.255.0
 no shutdown
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255

! R4配置
interface GigabitEthernet0/0
 ip address 10.0.14.4 255.255.255.0
 no shutdown
!
interface GigabitEthernet0/1
 ip address 10.0.24.4 255.255.255.0
 no shutdown
注意:我曾经在这里栽过跟头——接口没配no shutdown,结果BGP邻居死活起不来。你配完IP后,记得用show ip interface brief检查一下接口状态。

第三步:配置BGP

! R1 BGP配置
router bgp 100
 bgp router-id 10.0.12.1
 neighbor 10.0.12.2 remote-as 100
 neighbor 10.0.13.3 remote-as 100
 neighbor 10.0.14.4 remote-as 200
 network 10.0.12.0 mask 255.255.255.0
 network 10.0.13.0 mask 255.255.255.0

! R2 BGP配置
router bgp 100
 bgp router-id 10.0.12.2
 neighbor 10.0.12.1 remote-as 100
 neighbor 10.0.23.3 remote-as 100
 neighbor 10.0.24.4 remote-as 200
 network 10.0.12.0 mask 255.255.255.0
 network 10.0.23.0 mask 255.255.255.0

! R3 BGP配置
router bgp 100
 bgp router-id 10.0.13.3
 neighbor 10.0.13.1 remote-as 100
 neighbor 10.0.23.2 remote-as 100
 network 1.1.1.1 mask 255.255.255.255
 network 10.0.13.0 mask 255.255.255.0
 network 10.0.23.0 mask 255.255.255.0

! R4 BGP配置
router bgp 200
 bgp router-id 10.0.14.4
 neighbor 10.0.14.1 remote-as 100
 neighbor 10.0.24.2 remote-as 100

配置完记得敲 clear ip bgp * 重置一下BGP会话,或者等它自动建立。

4.3 用EVE-NG搭建多AS环境

如果你觉得GNS3跑起来有点卡,或者你想模拟更复杂的场景——比如5个AS、10台路由器——那我建议你试试EVE-NG。

EVE-NG我一般装在VMware Workstation上,分配4核CPU、8GB内存就够了。装好后通过浏览器访问,界面比GNS3清爽不少。

4.3.1 导入镜像

EVE-NG支持导入各种镜像。我个人常用的是:

  • 思科:vIOS-L2、vIOS-L3
  • 华为:AR1K、CE12800
  • Juniper:vMX、vSRX

导入方法很简单:把镜像文件放到 /opt/unetlab/addons/ 对应的目录下,然后运行 /opt/unetlab/wrappers/unl_wrapper -a fixpermissions 修复权限。

小技巧:导入后记得重启一下EVE-NG服务:systemctl restart eve。不然有时候设备列表刷不出来。

4.3.2 搭建拓扑

在EVE-NG里搭建拓扑比GNS3更直观。你只需要:

  1. 点击左侧的「Network」图标
  2. 拖拽设备到画布
  3. 右键设备选择「Start」启动
  4. 双击设备进入CLI配置

配置命令和GNS3完全一样,我就不重复了。

4.4 验证环境是否正常

环境搭好了,怎么知道它能不能用?

我一般做三步检查:

  1. 检查邻居状态:show ip bgp summary,看所有邻居是不是Established状态
  2. 检查路由表:show ip bgp,看1.1.1.1/32是不是出现在R4的路由表里
  3. 模拟泄露:在R4上配置 neighbor 10.0.14.1 route-map LEAK out,把从R2学到的路由再通告给R1

如果第三步成功了,恭喜你——你的环境已经可以用于路由泄露攻击检测实验了。

核心要点:
  • GNS3适合小规模、教学场景
  • EVE-NG适合大规模、多厂商模拟
  • BGP邻居状态必须是Established
  • 路由泄露的本质是:从一个AS学到的路由,又被通告回同一个AS

4.5 本章知识体系

下面这张图,是我自己总结的BGP实验环境搭建的核心逻辑。你看一眼,心里就有数了。

BGP实验环境搭建核心逻辑 第一步:环境选型 GNS3 vs EVE-NG 第二步:拓扑设计 AS规划 + 接口分配 第三步:配置部署 IP + BGP配置 第四步:验证 邻居状态 + 路由表 第五步:模拟攻击 配置route-map泄露路由 注:GNS3适合小规模教学,EVE-NG适合大规模多厂商模拟

这张图把整个流程串起来了。你照着这个顺序走,基本不会出错。

最后说一句:环境搭好只是第一步。下一节我们会在这个环境上,实际演示一次路由泄露攻击——从攻击者的视角,看看他们是怎么操作的。到时候你会发现,原来漏洞就藏在那些你平时不注意的配置里。

公众号:蓝海资料掘金营,微信deep3321