Linux的高級路由和流量控制:對包進行分類的高級篩檢程式

來源:互聯網
上載者:User
關鍵字 Linux 流量控制 高級篩檢程式 高級路由

就象在分類的佇列規定一段中解釋的,篩檢程式用與把資料包分類並放入相應的子佇列。 這些篩檢程式在分類的佇列規定內部被調用。

下面就是我們可用的分類器(部分):

fw

根據防火牆如何對這個資料包做標記進行判斷。 如果你不想學習tc的篩檢程式語法,這倒是一個捷徑。 細節請參見佇列那一章。

u32

根據資料包中的各個欄位進行判斷,如源IP位址等等。

route

根據資料包將被哪條路由進行路由來判斷。

rsvp, rsvp6

根據資料包的RSVP情況進行判斷。 只能用於你自己的網路,互聯網並不遵守RSVP。

tcindex

用於DSMARK佇列規定,參見相關章節。

通常來說,總有很多途徑可實現對資料包分類,最終取決於你喜歡使用哪種系統。

分類器一般都能接受幾個參數,為了方便我們列出來:

protocol

這個分類器所接受的協定。 一般來說你只會接受IP資料。 必要參數。

parent

這個分類器附帶在哪個控制碼上。 控制碼必須是一個已經存在的類。 必要參數。

prio

這個分類器的優先權值。 優先權值低的優先。

handle

對於不同篩檢程式,它的意義不同。

後面所有的節都假定你試圖對去往HostA的流量進行整形。 並且假定根類配置為1:,並且你希望把選中的資料包送給1:1類。

1. u32分類器

U32分類器是當前實現中最先進的篩檢程式。 全部基於雜湊表實現,所以當有很多篩檢程式的時候仍然能夠保持健壯。

U32篩檢程式最簡單的形式就是一系列記錄,每條記錄包含兩個部分:一個選擇器和一個動作。 下面要講的選擇器用來與IP包相匹配,一旦成功匹配就執行其指定的動作。 最簡單的動作就是把資料包發送到特定的類佇列。

用來配置篩檢程式的tc命令列由三部分組成:篩檢程式說明、選擇器和動作。 一個篩檢程式可以如下定義:

tc filter add dev IF [ protocol PROTO ]
[ (preference|priority) PRIO ]
[ parent CBQ ]

上面行中,protocol欄位描述了篩檢程式要匹配的協定。 我們將只討論IP協定的情況。 preference欄位(也可以用priority代替)設置該篩檢程式的優先權。 這非常重要,因為你可能有幾條擁有不同優先權的篩檢程式。 每個篩檢程式清單都按照輸入的順序被掃描一遍,然後優先權值低(更高的偏好值)的清單優先被處理。 「parent」欄位定義了篩檢程式所屬的CBQ的頂部(如1:0)。

上面描述的選項適用于所有篩檢程式,而不僅僅適用于U32。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.