網絡分類器 cgroup 【ChatGPT】

網絡分類器 cgroup

網絡分類器 cgroup 提供了一個接口,用於給網絡數據包打上一個類別標識符(classid)。

流量控制器(tc)可以用來爲來自不同 cgroup 的數據包分配不同的優先級。此外,Netfilter(iptables)也可以使用這個標識符來對這些數據包執行操作。

創建一個 net_cls cgroups 實例會生成一個 net_cls.classid 文件。這個 net_cls.classid 的值會初始化爲 0。

你可以向 net_cls.classid 寫入十六進制的值;這些值的格式爲 0xAAAABBBB;其中 AAAA 是主要句柄號,BBBB 是次要句柄號。讀取 net_cls.classid 會得到一個十進制的結果。

例如:

mkdir /sys/fs/cgroup/net_cls
mount -t cgroup -o net_cls net_cls /sys/fs/cgroup/net_cls
mkdir /sys/fs/cgroup/net_cls/0
echo 0x100001 > /sys/fs/cgroup/net_cls/0/net_cls.classid
  • 設置一個 10:1 的句柄:
cat /sys/fs/cgroup/net_cls/0/net_cls.classid
1048577
  • 配置 tc:
tc qdisc add dev eth0 root handle 10: htb
tc class add dev eth0 parent 10: classid 10:1 htb rate 40mbit
  • 創建流量類別 10:1:
tc filter add dev eth0 parent 10: protocol ip prio 10 handle 1: cgroup
  • 配置 iptables,基本示例:
iptables -A OUTPUT -m cgroup ! --cgroup 0x100001 -j DROP
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章