基于SDN環境下的DDoS異常攻擊的檢測與緩解

參考以下兩篇博客,最后成功:

基于SDN的DDoS攻擊檢測和防御方法_基于sdn的ddos攻擊檢測與防御-CSDN博客

利用mininet模擬SDN架構并進行DDoS攻擊與防御模擬(Ryu+mininet+sflow+postman)_mininet模擬dos攻擊-CSDN博客

需求

H2 模擬flood攻擊H1

解決:

H2不能ping H1,但H2可以訪問H1的HTTP服務

實施步驟

一、基本環境配置

1. 安裝sflow flow-trend app

下載flow-trend,下載到與sflow-rt同級

git clone https://github.com/sflow-rt/flow-trend
?

安裝flow-trend

sflow-rt/get-app.sh sflow-rt flow-trend

2. 開啟sflow-rt

cd sflow-rt
./start.sh

瀏覽器訪問:

http://localhost:8008/html/index.html

點擊頁面上的 【Apps】選項, 再點擊【flow-trend】選項

分別在Keys,Value,Filter列填入:ipsource,ipdestination,stack;bytes;留空 ,然后點擊右面的【 Submit (√)】提交,之后,將自動轉到圖形化流量監控頁面

即會開始進行采樣

二、運行網絡

1.開啟ryu

/opt/sdn/ryu/ryu/app$ ryu-manager ofctl_rest.py simple_switch.py

(此處最開始使用FLOODLIGHT,但后來發現下發流表的時候不好用,后改為RYU)

2.創建星型拓撲

sudo mn --controller=remote,ip=127.0.0.1,port=6653 -topo=single,3

3.使用如下指令,打開 Host1,和Host2的終端,在 Host1 上啟動一個 http 服務:

三、配置sFlow Agent

sudo ovs-vsctl -- --id=@sflow create sflow agent=eth0 target=\"127.0.0.1:6343\" sampling=10 polling=20 -- -- set bridge s1 sflow=@sflow

在 Host2 上 ping Host1,觀察flow trend

四、DDoS攻擊檢測

在h2中停止ping操作。進行DDoS 模擬攻擊,在 mininet 終端中執行,h2 ping -f h1 ,-f 參數的意思就是 Ping Flood ,模擬 Flood Attack。

再去觀察交換機流量

mininet> h2 ping -f h1

五、DDoS 攻擊防御

使用postman,查詢流表,目前H1與H2可以互通

GET :? ?http://localhost:8080/stats/flow/1

1. 添加流表操作

使用postman,添加流表

POST:? http://localhost:8080/stats/flowentry/add

body->raw->json

{"dpid":1,"cookie":1,"cookie_mask":1,"table_id":0,"priority":35268,"flags":1,"match":{"in_port":1},"actions":[]
}

從1口進入的數據流都被drop

但是如果此時,從h1對h3進行http訪問,會發現h1對h3正常進行的http訪問也無法進行,因為流表是把從1口的流量都給down掉了,所以正常的訪問也無法進行。

2. 修改流表

首先,將剛才的流量進行刪除,使用的url:http://localhost:8080/stats/flowentry/delete,功能post,流表項依然為剛才使用的,點擊send后,返回值200OK證明刪除完成。

改造需要下發的流表,讓OpenFlowSwitch 只Drop掉 ICMP的流量,不影響正常的HTTP服務。在之前的流表的基礎之上,加上dl_type字段和nw_proto字段,其中,dl_type字段代表ip協議,其中2048的16進制0x0800代表ipv4協議,nw_proto代表:ip協議上搭載的協議類型,其中1代表icmp協議。改造完成的流表通過postman進行流表下發之后,再次進行測試,發現h1對h3的ping泛洪攻擊失效,而h1對h3的正常的http訪問是得到了正常的回應。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/85596.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/85596.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/85596.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

責任鏈模式:構建靈活可擴展的請求處理體系(Java 實現詳解)

一、責任鏈模式核心概念解析 (一)模式定義與本質 責任鏈模式(Chain of Responsibility Pattern)是一種行為型設計模式,其核心思想是將多個處理者對象連成一條鏈,并沿著這條鏈傳遞請求,直到有某…

如何進行頁面前端監控

🧑?💻 寫在開頭 點贊 收藏 學會🤣🤣🤣 前端監控主要分三個方向 前端性能(用戶體驗優化) 異常監控 業務指標跟 下面我來分別介紹三類指標如何獲取 1)前端性能指標: …

Ajax技術分析方法全解:從基礎到企業級實踐(2025最新版)

引言 Ajax技術自2005年正式命名以來,已支撐全球83%的Web應用實現異步交互。2025年最新數據顯示,單頁面應用(SPA)的Ajax請求密度已達日均120億次/應用。本文將系統化解析Ajax分析方法論,涵蓋從基礎原理到企業級工程實踐的完整技術棧。 一、Ajax技術架構解構 1.1 核心組件…

git管理github上的repository

1. 首先注冊github并創建一個倉庫,這個很簡單,網上教程也很多,就不展開說了 2. 安裝git,這個也很簡單,不過這里有個問題就是你當前windows的用戶名即:C/Users/xxx 這個路徑不要有中文,因為git …

Windows 下部署 SUNA 項目:虛擬環境嘗試與最終方案

#工作記錄 #回顧總結 本文記錄了在 Windows 系統上,通過 PyCharm 圖形界面(盡量減少命令行操作)部署 SUNA 項目時,針對不同虛擬環境方案的嘗試過程、遇到的問題以及最終選擇的可行方案,并補充了整體部署思路與推薦。…

無向圖的點、邊雙連通分量

文章目錄 點雙連通分量邊雙連通分量 有向圖的強連通分量:寒假學習筆記【匠心制作,圖文并茂】——1.20拓撲、強連通分量、縮點 點雙連通分量 在這之前,先讓我們了解幾個概念。 割點:刪除一個點和其連出的邊后,原圖會…

第六十二節:深度學習-加載 TensorFlow/PyTorch/Caffe 模型

在計算機視覺領域,OpenCV的DNN(深度神經網絡)模塊正逐漸成為輕量級模型部署的利器。本文將深入探討如何利用OpenCV加載和運行三大主流框架(TensorFlow、PyTorch、Caffe)訓練的模型,并提供完整的代碼實現和優化技巧。 一、OpenCV DNN模塊的核心優勢 OpenCV的DNN模塊自3.3…

Spring @Autowired自動裝配的實現機制

Spring Autowired自動裝配的實現機制 Autowired 注解實現原理詳解一、Autowired 注解定義二、Qualifier 注解輔助指定 Bean 名稱三、BeanFactory:按類型獲取 Bean四、注入邏輯實現五、小結 源碼見:mini-spring Autowired 注解實現原理詳解 Autowired 的…

勝牌?全球成為2026年FIFA世界杯?官方贊助商

勝牌全球將首次與國際足聯(FIFA)旗艦賽事建立合作關系。 此次贊助恰逢美國首個潤滑油品牌即將迎來160周年之際,其國際擴張步伐正在加快。 在這項全球頂級賽事籌備期間,勝牌全球將通過各種富有創意的零售和體驗活動與球迷互動。 …

YOLOV7改進之融合深淺下采樣模塊(DSD Module)和輕量特征融合模塊(LFI Module)

目錄 一、研究背景? 二. 核心創新點? ?2.1 避免高MAC操作? ?2.2 DSDM-LFIM主干網絡? 2.3 P2小目標檢測分支? ?3. 代碼復現指南? 環境配置 關鍵修改點 ?4. 實驗結果對比? 4.1 VisDrone數據集性能 4.2 邊緣設備部署 4.3 檢測效果可視化 ?5. 應用場景? …

【C/C++】chrono簡單使用場景

chrono使用場景舉例 1 輸出格式化字符串 示例代碼 auto now std::chrono::system_clock::now(); auto t std::chrono::system_clock::to_time_t(now); auto ms std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()) % 1000;std::ostrin…

Med-R1論文閱讀理解-1

論文總結&#xff1a;Med-R1: Reinforcement Learning for Generalizable Medical Reasoning in Vision-Language Models 論文寫了什么&#xff1f; 本文提出了一種名為 Med-R1 的新框架&#xff0c;旨在通過強化學習&#xff08;Reinforcement Learning, RL&#xff09;提升…

京東熱點緩存探測系統JDhotkey架構剖析

熱點探測使用場景 MySQL 中被頻繁訪問的數據 &#xff0c;如熱門商品的主鍵 IdRedis 緩存中被密集訪問的 Key&#xff0c;如熱門商品的詳情需要 get goods$Id惡意攻擊或機器人爬蟲的請求信息&#xff0c;如特定標識的 userId、機器 IP頻繁被訪問的接口地址&#xff0c;如獲取用…

MCU_IO驅動LED

注意事項&#xff1a; 1、亮度要求較高的情況下&#xff0c;不能由IO直接驅動LED MCU_IO引腳輸出的電壓和電流較弱&#xff0c;如果對光的亮度有要求的話&#xff0c;需要使用三極管來驅動。 MCU_IO的電壓一般為3.3V或者5V&#xff0c;輸出電流一般10mA-25mA。 2、不同顏色…

MyBatis 深度解析:高效 Java 持久層框架實踐指南(基于 3.5.10)

一、MyBatis 核心架構與設計哲學 MyBatis 作為半自動 ORM 框架&#xff0c;核心設計目標是在靈活性與開發效率之間取得平衡。與 Hibernate 等全自動 ORM 框架不同&#xff0c;MyBatis 允許開發者完全控制 SQL 編寫&#xff0c;同時通過映射機制減少重復代碼&#xff0c;特別適…

二叉樹(二)

98.驗證二叉樹 中序遍歷二叉樹&#xff0c;每次遍歷存下當前節點的值&#xff0c;遍歷到下一個節點比較&#xff0c;根據二叉搜索樹的特性&#xff0c;左<中<右有&#xff1a; 如果當前值小于或等于上一個的值&#xff0c;說明不是二叉搜索樹 如果當前值大于上一個節點…

解決Vue3+uni-app導航欄高亮自動同步方案

路由跳轉自動識別導航高亮實現方法 以下代碼使用wd-tabbar組件實現路由跳轉時自動同步導航欄高亮狀態&#xff0c;適用于所有的Vue3uni-app項目。 請根據自身使用框架類型完成&#xff0c;也可根據我使用的UI組件進行完成地址如下&#xff1a; Tabbar 標簽欄 | Wot UI &#…

免費論文查重與AI檢測工具推薦

文章目錄 概要一、PaperPass二、PaperYY注意 概要 畢業季&#xff0c;總少不了查重這一步&#xff0c;甚至查 AI 率。推薦兩款免費查重AIGC檢測的工具。 論文免費查重查AI&#xff1a; https://paperpass.com/ https://www.paperyy.com/ 一、PaperPass 網址&#xff1a; ht…

4、ubuntu系統 | 文本和目錄操作函數

1、目錄操作函數 ls(列出目錄內容) 用途:列出指定目錄中的文件和子目錄。語法:ls [選項] [路徑]常用選項: -l:以長格式顯示文件詳細信息(權限、所有者、大小、時間等)。-a:顯示隱藏文件(以.開頭的文件)。-R:遞歸列出子目錄內容。# 列出當前目錄下的所有文件和子目…

C++--范圍for循環詳解

范圍 for 循環是 C11 引入的語法特性&#xff0c;用于簡化遍歷容器或數組元素的過程。它比傳統 for 循環更簡潔安全&#xff0c;特別適合初學者。以下是詳細講解&#xff1a; 基本語法 for (元素類型 變量名 : 容器/數組) {// 循環體&#xff08;使用變量名訪問當前元素&#…