黑洞路由、 DDoS 攻击 、 环路

黑洞路由

DDoS 攻击

DDoS 攻击是一种针对服务器、服务或网络的恶意行为。DDoS 攻击通过向目标发送大量流量,使其不堪重负,导致资源和带宽被耗尽。因此,目标可能会变慢或崩溃,无法正常处理合法的流量。DDoS 攻击通常是由僵尸网络发起的,这些僵尸网络由大量感染了 恶意软件的计算机和设备组成,并受到攻击者的控制,通过向目标发送大量流量,从而淹没目标。由于 僵尸网络可能包含成百上千台设备,因此安全防御措施难以检测和抵御此类攻击。常见的 DDoS 攻击包括 ICMP 泛洪攻击、 SYN 泛洪攻击、Slowloris 攻击和 HTTP 泛洪攻击。

环路

环路是网络中数据包在转发过程中无限循环的情况,导致数据包无法正常到达目的地,最终造成网络的拥塞和故障。环路通常是由于网络设备配置不正确或网络拓扑结构设计缺陷引起的。

出现环路的原因可能包括以下几点:

  • 错误的路由配置:当网络中的路由配置错误时,可能会导致数据包在转发过程中出现环路。比如,如果网络设备上存在相互交叉的路由,数据包就可能在不同的路径上形成环路。

  • 网络拓扑设计缺陷:在网络拓扑结构设计中,如果存在设计缺陷或复杂的网络结构,可能会增加环路的发生概率。例如,网络中存在多个路径到达同一目的地,但没有足够的路由选择机制来避免环路。

  • 动态路由协议问题:在使用动态路由协议时,如果路由协议的配置不正确或网络中存在不稳定的连接,可能导致路由信息不一致或更新延迟,进而引发环路问题。

  • 网络设备故障:网络设备的硬件故障或软件异常也可能导致环路的发生。例如,路由器或交换机的转发表出现异常,无法正确处理数据包的转发。

示例

在这里插入图片描述
DeviceA作为本地网络的网关,本地网络使用一个B类网段地址172.16.0.0/16。DeviceA通过DeviceB、DeviceC和DeviceD分别与三个子网相连。

正常情况下,DeviceA的路由表应包含三部分路由:

  • 到172.16.2.0/24、172.16.3.0/24和172.16.4.0/24三个子网的路由。

  • 到DeviceB、DeviceC及DeviceD的网段路由。

  • 到ISP网络的缺省路由。

问题:
如果ISP侧网络路由器DeviceE接收到目的地址是172.16.10.0/24网段内的报文,则DeviceE会把该报文转发到DeviceA。

如果该报文的目的地址不是DeviceB、DeviceC和DeviceD所连网段的网络地址,DeviceA查找路由表后,会找到缺省路由,然后把该报文发给DeviceE。

因此这些目的地址不是DeviceB、DeviceC和DeviceD所连网段的网络地址,但是172.16.10.0/24网段的网络地址的报文,会在DeviceA和DeviceE之间如此反复被传输,形成路由环路。

黑洞路由

什么是黑洞路由 ?

为了解决路由黑洞问题(环路),或防止doss、黑客攻击,防止服务器造成不必要的性能损耗或带宽占用

实现方案
  • 配置一条静态的网络路由
  • 对于交换机或者路由器来说,当转发网络设备在转发某些数据包时,如果使用出接口为Null0的路由,指向该接口的路由,符合的报文都会被丢弃,就像直接被丢到一个黑洞里
  • 对于ubuntu系统来说,实现黑洞路由的方式参考:https://www.cyberciti.biz/tips/how-do-i-drop-or-block-attackers-ip-with-null-routes.html,http://www.uni-koeln.de/~pbogusze/posts/Blackhole_routing_with_linux.html

Null0接口实现解决环路

针对以上路由环路示例的解决方案描述

在实际应用中,一般会在DeviceA上配置一条到NULL0接口的静态路由。这样,当DeviceA收到目的网段不是本地三个子网的报文后,DeviceA会根据精确匹配原则,找到出接口是NULL0接口的路由,然后把该报文丢弃。

由此可见,在DeviceA上配置一条出接口是NULL0接口的静态路由,可以防止路由环路

Null0接口作用
  • 用于过滤流量:NULL0接口提供了过滤流量的一个可选的方法。可以通过将不想要的报文发送到NULL0接口,避免使用访问控制列表。

    • NULL0接口和访问控制列表都可以用于过滤流量,这两种用法各有裨益。下面对NULL0接口和访问控制列表进行简单比较。

    • 如果使用访问控制列表,首先要配置ACL规则,然后将它应用到接口。当路由器收到报文时,要首先查找访问控制列表:

      • 如果是接受,还要查找转发表,再对报文进行转发或丢弃。
      • 如果是拒绝,就直接扔掉。
  • NULL0接口的配置简单,只需将不想要的报文的出接口指定为NULL0接口。当路由器收到报文时,直接查找转发表,发现出接口是NULL0接口,则路由器不对报文做任何处理,直接丢弃。

所以对比起来,应用NULL0接口效率高,速度快。比如某路由器不希望收到某个指定目的地址的报文,用NULL0接口实现,只需配置路由。如果用访问控制列表实现,需要先配置一条ACL规则,然后再将这条规则在路由器的相应接口上应用。但是,NULL0接口不能细化流量,它面向的对象是整个路由器。访问控制列表是可以面向接口的。如果细致到需要控制面向接口的流量,NULL0接口就不能满足要求了。比如某路由器不希望在本地接口Serial1/0/0上收到目的地址是172.18.0.0/16的流量。用NULL0接口是不能实现的,只能通过配置ACL规则,然后将其应用到接口Serial1/0/0。

实现
# 设置了一个规则,让所有数据包都按照表 225 进行路由,并且设置了规则的优先级为 225。
ip rule add from all table 225 prio 225

# 在路由表 225 中添加了一个路由项,将目标网络地址为 192.168.194.0/24 的数据包丢弃。
# 在225中添加黑洞路由,比如网段是为192.168.194.0/24,则命令为
ip route add blackhole 192.168.194.0/24 table 225

# 删除225中的黑洞路由,比如保护子网为192.168.194.0/24,则命令为
ip route del blackhole 192.168.194.0/24 table 221

todo:未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/557578.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter 性能-内存溢出问题定位分析

1、堆内存溢出 ①稳定性压测一段时间后,Jmeter报错,日志报: java.lang.OutOfMemoryError.Java heap space ②用jmap -histo pid命令dump堆内存使用情况,查看堆内存排名前20个对象。 看是否有自己应用程序的方法,从…

CentOS7下安装mysql8或者mysql5.7

mysql8 1、下载 访问mysql官网下载mysql8软件包 https://dev.mysql.com/downloads/mysql/ 选择相应的版本如:RPM Bundle mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar RPM Bundle 8.0.33 下载地址:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.…

电脑桌面便签软件哪个好?好用的电脑桌面便签

电脑作为我们日常工作的重要工具,承载着大量的任务和项目。当工作任务繁重时,如何在电脑桌面上高效管理这些任务就显得尤为重要。这时,选择一款优秀的桌面便签软件,无疑会给我们带来极大的便利。 一款好的桌面便签软件&#xff0…

【React】Ant Design自定义主题风格及主题切换

Ant Design 的自定义主题,对于刚入手的时候感觉真是一脸蒙圈,那今天给它梳理倒腾下; 1、自定义主题要点 整体样式变化,主要两个部分: 1.1、Design Token https://ant.design/docs/react/customize-theme-cn#theme 官…

ffmpeg入门

ffmpeg入——安装 Fmpeg地址 FFmpeg源码地址:https://github.com/FFmpeg/FFmpeg FFmpeg可执行文件地址:https://ffmpeg.org/download.html Windows平台 Windows平台下载解压后如图所示(文件名称以-share结尾的是开发库) FFmpeg…

Eagle for Mac v1.9.13注册版:强大的图片管理工具

Eagle for Mac是一款专为Mac用户设计的图片管理工具,旨在帮助用户更高效、有序地管理和查找图片资源。 Eagle for Mac v1.9.13注册版下载 Eagle支持多种图片格式,包括JPG、PNG、GIF、SVG、PSD、AI等,无论是矢量图还是位图,都能以清…

AndroidStudio AGP 7+, 编译aar并输出到本地仓库

1 编写构建gradle脚本代码 1.1 配置publication和repository 在指定moudle目录下新建名为"maven-publish.gradle"文件,其声明的publication和repository如下所示: apply plugin: maven-publish// This creates a task called publishReleas…

《星光对话》系列直播:带你入门数据要素

2020年12月9日,财政部提出企业数据资源可作为资产列入财务报表,打响数据要素“1N”的第一枪; 2022年12月2日,《关于构建数据基础制度更好发挥数据要素作用的意见》“数据二十条”通过提出构建数据产权、流通交易、收益分配、安全治…

维护SQLite的私有分支(二十六)

返回:SQLite—系列文章目录 上一篇:SQLite、MySQL 和 PostgreSQL 数据库速度比较(本文阐述时间很早比较,不具有最新参考性)(二十五) 下一篇:SQLite数据库中JSON 函数和运算符 1…

# 从浅入深 学习 SpringCloud 微服务架构(三)注册中心 Eureka(1)

从浅入深 学习 SpringCloud 微服务架构(三)注册中心 Eureka(1) 段子手168 1、微服务的注册中心 注册中心可以说是微服务架构中的”通讯录”,它记录了服务和服务地址的映射关系。 在分布式架构中服务会注册到这里&am…

美易官方:美债美元黄金继续涨?

全球金融市场波动加剧,投资者对避险资产的需求不断升温。在这一背景下,“投行老将”们纷纷发表观点,认为避险情绪尚未结束,美债、美元和黄金等避险资产有望继续上涨。 巴克莱一位资深投资银行家表示,由于担心中东冲突升…

在Linux系统中搜索当前路径及其子目录下所有PDF文件中是否包含特定字符串

目录标题 方法一:pdfgrep方法二:使用find和xargs与pdftotext(将PDF转换为文本)组合,然后用grep搜索 方法一:pdfgrep pdfgrep -ri "rockchip" .方法二:使用find和xargs与pdftotext&am…

动手学深度学习11 权重衰退

动手学深度学习11 权重衰退 1. 权重衰退2. 代码实现3. QA 视频: https://www.bilibili.com/video/BV1UK4y1o7dy/?spm_id_fromautoNext&vd_sourceeb04c9a33e87ceba9c9a2e5f09752ef8 电子书: ttps://zh-v2.d2l.ai/chapter_multilayer-perceptrons/wei…

Mamba 学习

Vision Mamba U-Mamba 以后的趋势: 1.Mamba模型机机制上和transform一样,但是参数量上做了改进,可以直接替代 2.vision上可以实时处理

视频太大怎么压缩变小?8种方法随时压缩视频大小

视频太大怎么压缩变小?视频压缩方式分为两种,有损压缩和无损压缩,什么是有损什么是无损压缩,什么时候视频用无损压缩更好?什么时候用有损压缩更好?如何调整视频参数实现基本无损压缩? 今天就借助…

小红书笔记写作方法和技巧分享,纯干货!

很多小伙伴感叹小红书笔记流量就是一个玄学,有时精心撰写的笔记却没有人看,自己随便写的笔记却轻轻松松上热门。实际上你还是欠点火候,小红书笔记写作是有一套方法和技巧的,总归是有套路的,如果你不知道,请…

数仓建模—物理数据模型

文章目录 数仓建模—物理数据模型什么是物理数据模型物理数据模型示例如何构建物理数据模型物理数据模型与逻辑数据模型逻辑模型和物理模型之间有什么关系逻辑数据模型的好处物理数据模型的好处数仓建模—物理数据模型 前面我们讲了数据模型和逻辑数据模型,你可以参考前面的文…

【JAVA进阶篇教学】第四篇:JDK8中函数式接口

博主打算从0-1讲解下java进阶篇教学,今天教学第四篇:JDK8中函数式接口。 在 Java 8 中,函数式接口是指只包含一个抽象方法的接口。这种接口可以用作 Lambda 表达式的类型,从而使得函数式编程在 Java 中变得更加方便和灵活。下面…

【题解】NC398 腐烂的苹果(多源BFS)

https://www.nowcoder.com/practice/54ab9865ce7a45968b126d6968a77f34?tpId196&tqId40529&ru/exam/oj 从每个腐烂的苹果开始使用广度优先遍历&#xff08;bfs&#xff09; class Solution {int n, m;int dx[4] {0, 0, 1, -1};int dy[4] {1, -1, 0, 0};vector<v…

C++ STL 容器 deque

目录 1. deque 对象1.1 内部表示1.2 底层数据结构1.3 分段连续1.4 重新分配 2. deque 迭代器 本文测试环境 gcc 13.1 1. deque 对象 1.1 内部表示 deque 为我们提供了一个双端队列&#xff0c;即可以在队头进行 push、pop&#xff0c;可以在队尾进行 push、pop deque 容器擅…