小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

IMQ 是中介隊列設(shè)備

 mrjbydd 2011-10-18

IMQ 是中介隊列設(shè)備的簡稱,是一個虛擬的網(wǎng)卡設(shè)備,與物理網(wǎng)卡不同的是,通過它可以進行全局的流量整形,不需要一個網(wǎng)卡一個網(wǎng)卡地限速。這對有多個ISP接入的情況特別方便。配合 Iptables,可以非常方便地進行上傳和下載限速。


一、網(wǎng)絡(luò)環(huán)境簡介

目的站點 (Internet)
    IP: 218.x.x.x (用 TARGET_IP 表示)

路由器 (Router)
    eth1_外網(wǎng)IP: 221.x.x.x (用INET_IP表示)
    eth0_內(nèi)網(wǎng)IP: 192.168.0.1 (用 GW_IP 表示)

內(nèi)網(wǎng)客戶機 (PC)
    IP: 192.168.0.2 (用 LAN_IP 表示)


二、數(shù)據(jù)包流程分析



要明白怎么控制流量,在什么地方控制,首先得弄清楚數(shù)據(jù)包從進網(wǎng)卡到出網(wǎng)卡這個過程中,內(nèi)核對數(shù)據(jù)包做了哪些操作,具體可以看這里的圖示: http://www.//kptd/

下面就客戶機上傳下載時,數(shù)據(jù)包的流程走向進行一些分析

下載流程
========
    PC 向 Internet 發(fā)起數(shù)據(jù)下載請求
    Internet 回應(yīng)相應(yīng)數(shù)據(jù)
    數(shù)據(jù)包通過 eth1 流入 Router [src: TARGET_IP, dst: INET_IP]
    Router 重寫目的地址(DNAT) [src:TARGET_IP, dst: LAN_IP]
    <==================== 流量控制點 ==========================>
    轉(zhuǎn)發(fā)到局域網(wǎng)網(wǎng)卡 eth0
    通過 eth0 流出 Router, 進入局域網(wǎng)
    PC 接收到數(shù)據(jù)

    顯然,要控制 PC 的下載速率,在 DNAT 之后可以做到

    小結(jié): 下載控制, 控制外網(wǎng)向客戶機發(fā)送數(shù)據(jù)的速率
         (在 DNAT之后, iptables 的 POSTROUTING 鏈)

上傳流程
========
    Internet 向 PC 發(fā)起數(shù)據(jù)上傳請求
    PC 回應(yīng)相應(yīng)數(shù)據(jù)
    數(shù)據(jù)包通過 eth0 流入 Router [src: LAN_IP, dst: TARGET_IP]
    <================== 流量控制點 =======================>
    Router 重寫源標地址(SNAT) [src:INET_IP, dst: TARGET_IP]
    轉(zhuǎn)發(fā)到廣域網(wǎng)網(wǎng)卡 eth1
    通過 eth1 流出 Router, 進入 Internet
    Internet 接收到數(shù)據(jù)

    顯然,要控制 PC 的上傳速率,在 SNAT 之前可以做到

    小結(jié): 上傳控制, 控制客戶機向外網(wǎng)發(fā)送數(shù)據(jù)的速率
          (在 SNAT之前, iptables 的 PREROUTING 鏈)


三、讓Linux支持 IMQ


    Linux 內(nèi)核以及 Iptables 并不直接支持 IMQ, 需要打補丁才行.

    我用的是 linux-2.6.18, iptables-1.3.6,可以從 http://www./
    或 http://www./jdg-qos-script/ 下載到

    打補丁的過程就不多說了....

    內(nèi)核支持 IMQ 后,通過 ip link show 可以看到有 imq0 這樣的設(shè)備
    (有多少個取決于你編譯內(nèi)核時的配置,默認有2個)


四、配合 Iptables 限速


    假設(shè) imq0 用于下載限速,imq1 用于上傳限速, 先設(shè)置好 imq 設(shè)備的隊列規(guī)定、過濾器之類的,如同真實網(wǎng)卡一樣

    IMQ 規(guī)則定義好后,只需在 iptables 的 mangle 鏈中加入2條規(guī)則即可:

        #### 下載限速, 出口 eth0
        iptables -t mangle -A POSTROUTING -o eth0 -j IMQ --todev 0

        #### 上傳限速,入口 eth0
        iptables -t mangle -A PREROUTING -i eth0 -j IMQ --todev 1


五、單機限速


    下載限速: 判斷數(shù)據(jù)包的目的 IP
    上傳限速: 判斷數(shù)據(jù)包的來源 IP

    提示: 由于上傳限速流控點是在 SNAT 之前,那是數(shù)據(jù)包里面還含有局域網(wǎng)IP的信息,故可以直接根據(jù)IP源信息來定位,無需再通過 iptables 做 MARK.

    TC 例子:

        ### 限制 192.168.0.2 下載 100K,最大 120K
        tc class add dev imq0 parent 1:1 classid 1:10 htb \
           rate 100kbps ceil 120kbps burst 10kb prio 2

        tc qdisc add dev imq0 parent 1:10 handle 10 sfq perturb 10

        tc filter add dev imq0 protocol ip parent 1:0 prio 100 u32 \
           match ip dst 192.168.0.2 classid 1:10

        ### 限制 192.168.0.2 上傳 40K,最大 50K
        tc class add dev imq1 parent 1:1 classid 1:10 htb \
           rate 40kbps ceil 50kbps burst 10kb prio 2

        tc qdisc add dev imq1 parent 1:10 handle 10 sfq perturb 10

        tc filter add dev imq1 protocol ip parent 1:0 pr

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多