色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在Linux下使用TC優雅的實現網絡限流

dyquk4xk2p3d ? 來源:陳少文的博客 ? 2023-05-06 09:24 ? 次閱讀

1. Linux 下的流量控制原理

通過對包的排隊,我們可以控制數據包的發送方式。這種控制,稱之為數據整形,shape the data,包括對數據的以下操作:

增加延時

丟包

重新排列

重復、損壞

速率控制

在 qdisc-class-filter 結構下,對流量進行控制需要進行三個步驟:

創建 qdisc 隊列

上面提到 Linux 是通過包的排隊進行流量的控制,那么首先得有一個隊列。

創建 class 分類

class 實際上,就是劃分流量策略分類。比如劃分兩檔流量限速 10MBps、20MBbs。

創建 filter 過濾

雖然創建了 class 分類,但是并沒有將任何的 IP、Port 綁定到 class 上,此時并不會有控制作用。還需要創建 filter 將指定的 IP、Port 綁定到 class 上,才能使流量控制 class 生效于資源。

TC 是 Linux 下提供的流量控制工具,也是 Cilium/eBPF 等網絡組件的核心基礎設施之一。

2. 限制指定 IP、Port 對本機的訪問速度

2.1 查看網卡

ifconfig

eth0:flags=4163mtu1500
inet1.1.1.1netmask255.255.254.0broadcast1.1.1.1
inet61:11prefixlen64scopeid0x20
ether111:1txqueuelen1000(Ethernet)
RXpackets2980910bytes2662352343(2.4GiB)
RXerrors0dropped0overruns0frame0
TXpackets1475969bytes122254809(116.5MiB)
TXerrors0dropped0overruns0carrier0collisions0

2.2 配置 qdisc-class-filter

創建 qdisc 根隊列

tcqdiscadddeveth0roothandle1:htbdefault1

創建第一級 class 綁定所有帶寬資源

注意這里的單位是 6 MBps,也就是 48 Mbps。

tcclassadddeveth0parent1:0classid1:1htbrate6MBpsburst15k

創建子分類 class

可以創建多個子分類,對資源的流量進行精細化管理。

tcclassadddeveth0parent1:1classid1:10htbrate6MBpsceil10MBpsburst15k

這里 ceil 設置的是上限,正常情況下限速為 6MBps,但網絡空閑時,可以達到 10 MBps。

創建過濾器 filter,限制 IP

tcfilteradddeveth0protocolipparent1:0prio1u32matchipdst1.2.3.3flowid1:10

這里對 1.2.3.4 進行限制帶寬為 1:10,也就是 6MBps。當然,你也可以直接給網段 1.2.0.0/16 加 class 策略。

2.3 查看并清理配置

查看 class 配置

tcclassshowdeveth0

classhtb1:10parent1:1leaf10:prio0rate48Mbitceil80Mbitburst15Kbcburst1600b
classhtb1:1rootrate48Mbitceil48Mbitburst15Kbcburst1590b

查看 filter 配置

tcfiltershowdeveth0

filterparent1:protocolippref1u32chain0
filterparent1:protocolippref1u32chain0fh800:htdivisor1
filterparent1:protocolippref1u32chain0fh800::800order2048keyht800bkt0flowid1:10not_in_hw
match01020303/ffffffffat16

清理全部配置

tcqdiscdeldeveth0root

3. 限制本機對指定 IP、Port 的訪問速度

由于排隊規則主要是基于出口方向,不能對入口方向的流量(Ingress)進行限制。因此,我們需要將流量重定向到 ifb 設備上,再對 ifb 的出口流量(Egress)進行限制,以最終達到控制的目的。

3.1 啟用虛擬網卡

將在 ifb 設備

modprobeifbnumifbs=1

啟用 ifb0 虛擬設備

iplinksetdevifb0up

3.2 配置 qdisc-class-filter

添加 qdisc

tcqdiscadddeveth0handleffff:ingress

重定向網卡流量到 ifb0

tcfilteradddeveth0parentffff:protocolipu32matchu3200actionmirredegressredirectdevifb0

添加 class 和 filter

tcqdiscadddevifb0roothandle1:htbdefault10
tcclassadddevifb0parent1:0classid1:1htbrate6Mbps
tcclassadddevifb0parent1:1classid1:10htbrate6Mbps
tcfilteradddevifb0parent1:0protocolipprio16u32matchipdst1.2.3.4flowid1:10

3.3 查看并清理配置

下面是限速本機對指定 IP 訪問的監控圖

90ad9b5c-eb7b-11ed-90ce-dac502259ad0.png

進入的流量被限制在 6 MBps 以下,而出去的流量不被限制。

查看 class 配置

tcclassshowdevifb0

classhtb1:10parent1:1prio0rate48Mbitceil48Mbitburst1590bcburst1590b
classhtb1:1rootrate48Mbitceil48Mbitburst1590bcburst1590b

查看 filter 配置

tcfiltershowdevifb0

filterparent1:protocolippref16u32chain0
filterparent1:protocolippref16u32chain0fh800:htdivisor1
filterparent1:protocolippref16u32chain0fh800::800order2048keyht800bkt0flowid1:10not_in_hw
match01020304/ffffffffat16

清理全部配置

tcqdiscdeldeveth0ingress
tcqdiscdeldevifb0root
modprobe-rifb

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11320

    瀏覽量

    209832
  • 數據包
    +關注

    關注

    0

    文章

    263

    瀏覽量

    24412
  • 流量控制
    +關注

    關注

    0

    文章

    27

    瀏覽量

    9666

原文標題:如何在 Linux 下使用 TC 優雅的實現網絡限流

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Linux場景數據包是如何在協議層傳輸的

    所有互聯網服務,均依賴于TCP/IP協議棧。懂得數據是如何在協議棧傳輸的,將會幫助你提升互聯網程序的性能和解決TCP相關問題的能力。 我們講述在Linux場景數據包是如何在協議層傳輸
    的頭像 發表于 11-11 11:33 ?1145次閱讀
    <b class='flag-5'>Linux</b>場景<b class='flag-5'>下</b>數據包是如<b class='flag-5'>何在</b>協議層傳輸的

    何在linux上的“ifconfig -a”枚舉wifi接口網絡,就像wlan0一樣?

    何在 linux 上的“ifconfig -a”枚舉 wifi 接口網絡,就像 wlan0 一樣
    發表于 07-19 06:54

    何在Linux安裝字體

    問題場景在用itext開發完PDF之后,有要求Apache要部署到Linux,也可能部署到windows,由于筆者在Windows開發的,字體沒問題;但是
    發表于 07-04 08:14

    何在VxWorks實現NAT/NAPT的方法

    何在VxWorks實現NAT/NAPT的方法
    發表于 03-29 12:25 ?19次下載

    Linux網絡HOOK實現

    最近瘋狂的研究Linux的種種功能,也頗有心得,這里講述一Linux的Net的Hook,使用net的Hook可以實現很多很多非常底層的功
    發表于 05-14 10:27 ?5154次閱讀

    Linux基于Socket的網絡編程

    linux開發編程教程資料——Linux基于Socket的網絡編程,感興趣的小伙伴們可以看一看。
    發表于 08-23 16:23 ?0次下載

    Linux網絡編程總結

    linux開發編程教程資料——Linux網絡編程總結,感興趣的小伙伴們可以看一看。
    發表于 08-23 16:23 ?0次下載

    LinuxSocket網絡編程

    linux開發編程教程資料——LinuxSocket網絡編程,感興趣的小伙伴們可以看一看。
    發表于 08-23 16:23 ?0次下載

    何在Linux如何刪除大量文件的詳細資料概述

    本文檔的主要內容詳細介紹的是如何在Linux刪除大量文件的過程詳細資料概述免費下載。
    發表于 11-14 17:10 ?7次下載

    LINUX系統教程之如何在Linux系統進行編程

    本文檔的主要內容詳細介紹的是LINUX系統教程之如何在Linux系統進行編程主要內容包括了:程序開發過程 ,Linux編程環境和開發工具
    發表于 12-18 19:09 ?9次下載

    何在Linux環境搭建51單片機的開發燒寫環境

    本文檔的主要內容詳細介紹的是如何在Linux環境搭建51單片機的開發燒寫環境。
    發表于 08-15 17:32 ?2次下載
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b>環境<b class='flag-5'>下</b>搭建51單片機的開發燒寫環境

    何在Linux環境實現Python環境的搭建

    本文檔的主要內容詳細介紹的是如何在Linux環境實現Python環境的搭建。
    發表于 08-24 12:12 ?14次下載
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b>環境<b class='flag-5'>下</b><b class='flag-5'>實現</b>Python環境的搭建

    何在Linux系統開啟wifi

    大家好,我是ST。今天主要和大家聊一聊如何在Linux系統開啟wifi。
    的頭像 發表于 10-08 09:21 ?4532次閱讀

    何在Linux使用TC優雅實現網絡限流

    TCLinux 提供的流量控制工具,也是 Cilium/eBPF 等網絡組件的核心基礎設施之一。
    發表于 12-26 10:06 ?785次閱讀

    何在DRA821U上使用Linux實現快速引導

    電子發燒友網站提供《如何在DRA821U上使用Linux實現快速引導.pdf》資料免費下載
    發表于 09-03 10:11 ?0次下載
    如<b class='flag-5'>何在</b>DRA821U上使用<b class='flag-5'>Linux</b><b class='flag-5'>實現</b>快速引導
    主站蜘蛛池模板: 蜜桃传媒在线观看| 久久麻豆亚洲AV成人无码国产| 国产欧美一区二区三区视频| 亚洲精品沙发午睡系列| 饱满奶大30p| 拍床戏被肉高H纯肉H在水| 中文字幕1| 久久婷婷五月免费综合色啪| 亚洲视频网站欧美视频网站| 国产在线精品亚洲一品区| 鸭子玩富婆流白浆视频| 国产亚洲精品A久久777777| 无限资源日本2019版| 国产精品一区第二页| 亚洲 在线 日韩 欧美| 国产亚洲精品V在线观看一| 亚洲黄色成人| 久久草这在线观看免费| 樱桃视频影院在线播放| 玖玖爱在线播放| 97国产精品人妻无码免费| 欧美 亚洲 有码中文字幕| tobu中国日本高清| 久久re这里精品在线视频7| 久久久久综合网久久| 武侠古典久久亚洲精品| 国产午夜在线观看视频| 亚洲国产综合另类视频| 制服的微热| 亚洲AV怡红院影院怡春院| 亚洲综合免费视频| 亚洲AV 无码AV 中文字幕| 国产99久久久国产精品免费看| 十九禁啊啪射视频在线观看 | 亚洲日本欧美天堂在线| 九九精品视频一区二区三区| 中文人妻熟妇精品乱又伦| 青草伊人久久| 高挑人妻无奈张开腿| 亚洲欧洲日韩视频在钱| 老司机试看午夜|