ROS防火墻-路由-PCQ培訓資料_第1頁
ROS防火墻-路由-PCQ培訓資料_第2頁
ROS防火墻-路由-PCQ培訓資料_第3頁
ROS防火墻-路由-PCQ培訓資料_第4頁
ROS防火墻-路由-PCQ培訓資料_第5頁
已閱讀5頁,還剩233頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、RouterOS培訓 RouterOS培訓 RouterOS培訓 - YuS RouterOS防火墻、路由與PCQ培訓內容一、RouterOS功能二、RouterOS IP firewallMangle的特點RouterOS IP數據工作流程ip friewall基本原理與講解 nat與firewall的關系三、Bridge與過濾 Bridge工作流程二層數據過濾四、QoS RouterOS常見的流控類型PCQ特點HTB詳解Nat的HTB控制 二層的流量控制五、事例企業網絡環境的規劃MetaRouter應用PCC 負載均衡RouterOS功能RouterOS現在所具備的功能,已經遠遠超出我們對

2、一般路由器的理解。RouterOS是基于Linux2.6內核開發,通過編譯后,實現各種功能的快速安裝和操作可以看成是一個路由化的操作系統,他與普通路由器的區別: 多功能平臺 基本的路由功能外,還包含防火墻、 QoS、認證系統、VPN、WLAN、3G等等; 腳本編輯 使路由器應用更加方便和智能; 虛擬化技術 多操作系統的兼容,達到一機多用的功能。配置支持基于Winbox的IP和MAC 管理CLI命令行操作,包括: Telnet、SSH、本地終端控制和串口控制API應用程序接口,通過設計后,擁有自己的管理Web管理接口RouterOS IP工作流程Mangle特點不管是QoS、防火墻、nat規則和

3、路由,在許多特殊的應用中都會使用Mangle標記(如routing-mark、connection-mark、packet-mark)Mangle在RouterOS中起到一個標記和分類的作用;掌握RouterOS的高級應用,必須了解Mangle在 RouterOS中的運用原理;理解了Mangle,也就理解了路由、防火墻和QoS的應用Mangle的作用RouterOS中的IP firewall主要由3個部分組成Mangle、Filter、 NAT ,而Address-list常用于地址列表分類。Mangle通過標記特定的IP數據流后,為Filter、NAT和Queue提供標記后的IP數據流Man

4、gle特點不管是QoS、防火墻、nat規則和路由,在許多特殊的應用中都會使用Mangle標記(如routing-mark、connection-mark、packet-mark)Mangle在RouterOS中起到一個標記和分類的作用;掌握RouterOS的高級應用,必須了解Mangle在 RouterOS中的運用原理;理解了Mangle,也就理解了路由、防火墻和QoS的應用RouterOS IP數據處理流程Prerouting 路由之前Input 進入路由Forward 轉發路由Output 路由發出Postrouting 路由之后Firewall協議分類分為二層過濾防火墻和三層與三層以上過

5、濾防火墻,分別在 bridge filter和ip firewall filter操作。Firewall鏈表分類RouterOS的鏈表組成主要包括:input 用于處理進入路由器的數據包,即數據包目標 IP地址是到達路由器一個接口的IP地址。forward 用于處理通過路由器的數據包。output 用于處理源于路由器并從其中一個接口出去的數據包。自定義鏈表 - RouterOS 中可以通過自定義建立其他鏈表,用于數據過濾分類。防火墻過濾 - Input Input的過濾流程防火墻過濾 - Output Output的過濾流程防火墻過濾 - Forward Forward過濾流程Filter規則

6、原則firewall filter 被用于IP數據包過濾,即三層數據過濾。防火墻規則構成是if then 的方式(if 環境條件 then action執行)防火墻規則執行是從上而下,成為FIFO(First In First Out)方式防火墻規則原則過濾數據時我們可以通過以下的兩種原則:先丟棄后接受先接受后丟棄 Filter actionAccept 接受數據包,沒有任何的操作。例如接受數據包直接通過,不再以后的規則進行處理;Add-dst-to-address-list 根據規則條件,將IP數據包的目標地址IP添加到指定address-list;Add-src-to-address-li

7、st 根據規則條件,將IP數據包的源地址IP添加到指定的address-list;Drop 丟棄掉數據包(不會發送ICMP拒絕信息);Jump 跳轉到指定的鏈表;Log 與之匹配的操作將會被記錄到system log中;Passthrough 忽略該規則,繼續向后執行下一條規則;Reject 拒絕數據包,并發送ICMP拒絕信息;Return 通過返回操作,返回到上一跳轉鏈表;Tarpit 捕捉并控制進入的TCP連接。input 鏈表 現在我來看事例中的防火墻規則,我先從input鏈表開始,這里是對所有訪問路由的數據進行過濾和處理:從input鏈表中可以看到,我們對進入路由器的數據采用先拒絕非法

8、的數據和連接,并將ICMP數據跳轉到自定義的ICMP的鏈表中過濾。forward鏈表 下面是forward鏈表一個應用防火墻事例:forward鏈表,對非法數據包、非單播數據、 ICMP協議和常見的病毒等進行過濾,控制TCP連接數。Jump 鏈表 我們來看看Jump操作在forward鏈表中的工作過程:forward中數據遇到jump規則,會判斷數據是否符合定義jump規則,如果滿足條件將跳轉到指定的鏈表,如上圖的ICMP和virus鏈表,當在數據進入這些鏈表執行完后,會返回jump規則所在的forward鏈表中。Firewall address-list能通過address-list定義IP

9、地址分組address-list能被 firewall nat規則調用和執行address-list能被 mangle或者firewall filter動態定義和調用定義地址列表 1定義10個經理的IP地址在address-list中,并取名為VIP定義地址列表 2定義不能上網員工的IP地址29-54,定義為intercept動態定義地址列表Address-list可以通過ip firewall fiter/nat/mangle 建立動態定義地址列表如記錄所有訪問udp/8000端口的客戶IP動態添加到access8000的address-list中,然后等待其他規則調用并處理也可以定義超過連

10、接數超過100的用戶定義到 blacklist黑名單Firewall操作實例允許VIP用戶0-9能連接QQ,禁止其他地址訪問QQ禁止29-54訪問外網禁止訪問訪問的網站,但10個 VIP可以正常訪問IP源地址和目標地址概念 1 如何判斷源地址和目標地址,與他們在ip firewall filter的鏈表,如下面的圖:從該圖上可以看到,內網主機8與路由器通信,內網主機8向路由和外網的web服務器通信。不同情況下源目標IP地址的轉變和使用的chain鏈表情況。IP源地址和目標地址概念 2在這里要記住任何通信是雙向的,而不僅只有源到目標一條鏈路。在RouterOS中兩個選擇涉及到源和目標地址,Gen

11、eral標簽中的src-address、dst-address和Advanced的src-address-list、 dst-address-list如下圖Layer 7協議 在RouterOS3.0中增加了Layer7協議過濾功能,即對應用程序的代碼進行過濾,這些代碼我們通過Regexp的腳本進行編輯,也可以通過我們預先編輯好的RouterOS腳本導入Layer7協議應用列表 網絡訪問控制 1通過address-list列表,將10個經理的IP地址設置規則為直接通過,不受限制的訪問網絡在ip firewall filter的forward中我們需要建立2條規則,一條是接受源地址的訪問,一條是

12、接受目標地址的訪問網絡訪問控制 RouterOS培訓 - YuS 網絡訪問控制 RouterOS培訓 - YuS 2添加后完兩條規則后,需要將規則移動到在病毒過濾的下方,TCP連接數限制的上方網絡訪問控制 3 禁止所有人用QQ聊天,在forward鏈表中調用7層過濾,禁止連接QQ 4禁止非上網員工連接網絡,通過intercept列表控制在/ip firewall filter add chain=foreward src-addresslist=intercept action=drop并將規則移動到最上網絡訪問控制 RouterOS培訓 - YuS 網絡訪問控制 RouterOS培訓 - Y

13、uS 5 新建一個content鏈表,對內容進行過濾,針對一些網頁傳輸的字符,如是web中的內容和網站名稱 6在content鏈表中,新建一個action=drop 指定的 的內容過濾可以在content添加更多的內容過濾NAT 網絡地址翻譯nat分為src-nat源地址nat和dst-nat目標地址natsrc-nat 用于管理源地址nat(如:隱藏內部網絡IP或翻譯內部IP為公網IP地址)dst-nat 用于管理目標地址nat(如:端口映射、數據重定向和數據轉移等)RouterOS培訓 - YuS RouterOS培訓RouterOS培訓 - YuS Masquerade與Src-natm

14、asquerade與src-nat都是改變源IP地址或一個數據包的端口Masquerade和source nat典型的應用都是將私有網絡隱藏在一個或多個外網后設置一個新的源地址natmasquerade使用的是路由器默認的IP地址src-nat需要指定to-addressMasquerade與Src-nat 我只允許在內部網絡/25上網,外網IP地址為0的路由器中,配置masquerade和 src-nat如下:Masquerade操作chain=srcnat src-address=/25 action=masquerade out-interface=WANSrc-nat操作chain=s

15、rcnat src-address=/25 action=src-nat out-interface=WAN to-address=0TCP三步握手協議Tracking連接跟蹤 用戶每個連接的端口與協議跟蹤,在非nat情況下可以禁用該功能端口映射規則 為web服務器配置端口映 射,內網的web服務器IP地 址為。 Web端口為TCP/80,進入 chain=dst-nat鏈表,映射到 外網地址0 Dst-nat與filter如果我們將80端口設置了dst-nat的端口映射,同時需要Filter控制80端口會發現80端口在做了dst-nat后,無法在Filter中被截去或者執行操作。我們回顧Pr

16、erouting的運行過程。Dst-nat分析 從下面的流程圖我們可以看出,Destination-NAT是在Filter(Input和Forward) 之前處理,所以Dst-nat被RouterOS先處理后,結果是后面的Filter規則不在起作用。PreroutingHotspot-InConnectionTrackingManglePreroutingDestinationNATGlobal-In Global-Total InputMangleInputFilter Input ForwardTTL=TTL-1MangleForwardFilterForwardAccounting Br

17、idgeDst-nat端口過濾在ip firewall mangle的prerouting標記dst-port=80,并定義80conn,標記connection-markchain=prerouting action=mark-connection new-connection-mark=80conn passthrough=yes protocol=tcp dst-port=80進入 ip firewall filter限制源地址是2的IP訪問路由器80端口。chain=input action=drop src-address=2 connection-mark=80conn nat指定

18、數據轉移 1當我們網絡內有非法用戶,我們可以將他指定內網某一臺web 服務器,提示相應的信息。我們可以通過dst-nat完成這個操作。首先需要定義非法用戶的名單,我們可以通過address-list定義通過定義好的address-list名單,取名為blacklist將所有訪問80端口的規則轉移到0的主機上nat指定數據轉移 2腳本命令如下:/ip firewall natadd chain=dstnat action=dst-nat to-addresses=0 to-ports=80 protocol=tcp src-address-list=blacklist dst-port=80配置

19、后,我們通過filter的forward鏈表過濾在所有blacklist的數據,觀察下具體情況!數據轉移可以通過腳本周期執行,起到廣告作用,但要求在用戶打開網頁時,正好在 dst-nat數據轉移的執行周期內。強制本地DNS解析我們可以通過dst-nat實現強制本地的DNS解析,加快用戶DNS解析速度。要求本地啟用DNS緩存功能,通過dst-nat的redirect將所有DNS請求轉移的本地來命令配置如下:/ip firewall natadd chain=dstnat action=redirect protocol=udp dst-port=53多公網IP地址的Src-nat如果在一個光纖出

20、口,分配了多個同網關的公網IP地址,并想讓內網不同IP地址段走不同的公網IP出去,可以使用src-nat方式比如我們有3個公網IP地址0-2,需要分別對應/24、/24和/24的內網地址。我們可以使用src-nat規則分別隱藏在對應的公網 IP地址下。首先0-2三個IP地址,必須添加到ip address中,即配置好IP地址。多公網IP地址的Src-nat 選擇src-nat的鏈表,通過src-address指明內網IP地址段,選擇action=src-nat,指明對應的公網IP地址to-address 多公網IP地址的Src-nat 在ip firewall nat中,分別添加3條規則對應的

21、規則,這樣內網IP 段就會根據對應的規則走不同的公網IP地址出去。Src-nat與Filter的關系Src-nat總是在Filter之后,因為根據RouterOS流程src-nat是放在postrouting,即路由之后也就是說,在前面經過的相應處理后,到了src-nat就不會在處理,即已被過濾掉。Bridge與過濾RouterOS Bridge工作流程RouterOS Bridge可以將以太網卡、無線網卡、隧道接口和虛擬接口連接起來實現二層網絡連接Bridging(橋接)或二層(MAC) ,路由部分簡化為一個“Layer-3”框。觀察Bridge工作流程能更好的判斷二層過濾與三層的不同。IP

22、 flow 在Bridge中Bridge User IP firewall 在bridge中的settings中可以選擇是否使用三層過濾。Bridge Filterbridge filter是起到二層防火墻控的作用,當我們把RouterOS設置為透明橋時,可以控制網絡內的主機MAC通訊和相應的二層通訊協議,這樣我們可以從二層上控制客戶端PC。通常應用于,透明防火墻的數據過濾,無線網橋應用,和其他特殊的隧道橋接。首先需要啟用Bridge,在Bridge中添加橋:添加Bridge 進入bridge中添加一個bridge接口,然后在bridge port中添加相應的網絡接口到bridge中: 設置B

23、ridge Port進入bridge port添加相應的網絡接口,這里可以指定多個接口。這里會自動判斷接口是否連接,如果沒有該網絡接口未啟用或者連接,將出現前綴“I”的提示。STP與RSTPSTP(Spanning Tree Protocol)是生成樹協議的英文縮寫。應用于環路網絡,通過一定的算法實現路徑冗余,同時將環路網絡修剪成無環路的樹型網絡,從而避免報文在環路網絡中的增生和無限循環。 STP協議的缺陷主要表現在收斂速度上。為了解決STP協議的這個缺陷,IEEE推出了802.1w標準,作為對802.1D標準的補充。在IEEE 802.1w標準里定義了快速生成樹協議 RSTP(Rapid S

24、panning Tree Protocol)。RSTP協議使得收斂速度快得多(最快1秒以內)。MAC地址過濾MAC地址過濾和我們常見的IP地址過濾是相同的,MAC地址過濾可以分為源和目標的過濾。設置mac-address時,后面跟著MAC掩碼,這個掩碼和我們IP層的子網掩碼類是,只是MAC掩碼是按照十六進制換算,十六進制的FF與 IP掩碼的255是相同,規定網絡范圍,因為這里是過濾一個臺主機的MAC地址,所以我們設置MAC子網掩碼為FF:FF:FF:FF:FF:FF。如一個主機MAC地址表示:00:E2:67:32:B4:81 / FF:FF:FF:FF:FF:FF如果是一個段的MAC地址表示

25、:00:E2:67:32:00:00/ FF: FF:FF :FF:00:00源MAC過濾需要對指定的一臺PC的MAC:00:E2:67:32:B4:81地址做過濾,不允許與bridge的外部網絡連接。這個MAC是發起源,選擇src-mac-address,由于這里拒絕訪問bridge以外的網絡,選擇chain=forward,設定action=drop。Winbox配置目標MAC過濾反過來從外網訪問一個該主機,則是目標MAC過濾,只是之前我們設置的是scr-mac-address,反過來填寫目標的MAC,即 dst-mac-address。我們添加目標MAC地址過濾規則,選擇dst-mac-

26、address=00:E2:67:32:B4:81,dst-mac-address默認為全FF。Winbox 操作MAC雙向過濾 下面我們可以在filter中看到2條規則,分別是控制從源地址和目標地址的數據,這樣設置后,我們可以理解為對00:E2:67:32:B4:81主機數據的雙向過濾。過濾某廠商的MAC地址我們知道網絡設備都有一個6位的MAC地址,前3位為生產廠商標示,后3位為設備編號,當我們在做無線網橋的時候,只允許特定某一廠商的網卡連接到RouterOS,可以通過Bridge的防火墻控制MAC地址,限制某一類的MAC不能連接到RouterOS 設備,或者通過RouterOS設備。例如,

27、我們的一臺RouterBOARD設備要求只能允許其他RouterBOARD的設備連接,可以通過brigde fiter控制,由于每個RouterBOARD的以太網卡MAC地址都是前3位都是以00:0C:42開頭,我們只需要允許前3位MAC為00:0C:42的MAC 通過就可以。配置操作在設置為bridge的接口參數后,我們在filter中配置2條input規則,限制除了MAC地址前3位是00:0C:42能連接RouterOS,其他的都拒絕掉。根據RouterOS防火墻FIFO原理,分別需要設置兩條規則,第一條,是接受MAC地址前3位是00:0C:42的RouterBOARD設備MAC地址。第二

28、條,是丟棄其他所有的MAC數據,不允許連接。Winbox配置 1第一條規則,設置src-mac-address=00:0C:42:00:00:00/src-macmask=FF:FF:FF:00:00:00,在action中選擇accpet接受,數據通過接受目標MAC地址通過, dst-mac-address=00:0C:42:00:00:00/dst-mac-mask=FF:FF:FF:00:00:00 Winbox 配置2第二條規則,是丟棄其他所有的MAC數據,直接添加規則配置 action=drop的規則完成配置后的規則順序情況:RouterOS 路由策略RouterOS的策略路由支持源

29、IP地址的策略路由支持目標IP地址策略路由支持網頁等端口的策略路由支持IP地址列表的策略路由各種策略都可以組合使用路由表的關系 1RouterOS能維護多個獨立的路由表,能靈活的分配策略路由規則;通過下面的操作命令可以標記路由與定義路由策略表/ip firewall mangle mark-routing (支持源目標和端口路由)/ip route routing-mark (支持源目標路由)/ip route rule table (支持源目標路由)他們之間關系是平等的:mark-routing = routing-mark = table當他們被定義后,都會在ip route中新建路由表,

30、路由表的關系2 路由表的關系 3在ip route中定義各個列表的網關出口路由表的關系ip route rules是對源和目標IP地址和端口定義各個表的策略路由規則即rules規則是調用各個IP和端口的路由到不同的路由表中源IP地址的策略路由我們內網一臺主機IP為0需要指定到電信線路首先在ip route 定義route1的路由表網關然后在ip route rule定義src-address的源IP地址,并定義到route1的路由表 12 目標IP地址路由目標IP路由有三種方式,但這里我們主要講其中兩種,電信網通的雙線路由表就屬于目標IP地址路由第一種:在ip route定義dst-addre

31、ss,添加后直接生效第二種:在ip route rule定義dst-address,添加后需要知道路由表網關第一種 第二種 目標IP地址路由 通過導入cnc的網通路由表到ip route rule中后,在ip route添加給路由表的網關和路由標記 端口策略路由端口策略路由需要使用mangle的標記路由。這里我們定義網頁的訪問路由,協議為tcp,目標端口為80,執行mark routing,并標記新的路由連接取名web。端口策略路由 2 在mangle中標記好端口后,在ip route設置web標記的網關,如果是普通雙線只做網頁80端口的策略規則,配置后可執行生效。端口策略路由 2 如果當多線

32、路,在ip route rule配置了各種規則,我們就需要在 ip route rule里再次定義web的路由表。地址列表的路由 地址列表的路由 RouterOS培訓 - YuS 地址列表的路由 RouterOS培訓 - YuS 1有一些特定的主機需要走指定的線路出去,但ip route rule每條規則只能指定IP地址段,無法同時設定非連續的地址,如服務器地址可能存在非連續或者局域網的VIP用戶等?;蛘呶覀冃枰獙ζ鏀岛团紨抵鳈C地址的路由策略,在雙線策略中我們可以將內網主機分類奇數和偶數組,分別走不通的線路,這樣分流更佳合理。通過ip firewall address-list定義地址列表,并

33、在mangle中標記路由數據。2我們定義服務器的IP地址列表走指定的路由在ip firewall address-list 添加名稱為“servers”定義地址列表我可以填寫固定IP,IP地址范圍和IP地址段,如下:3在ip firewall mangle標記servers的地址列表路由因為是內網地址我們選擇src-address-list,并設置servers的地址列表,并定義new routing mark 為servers4進入ip route為servers路由標記建立路由表,指定網關為 ether1-tel為確保規則運行正常,在ip route rule中添加規則 4奇偶的路由策略,

34、我們需要在ip address-list定義奇數或者偶數IP地址,如下面的列表為odd(奇數IP地址)之后的操作和servers服務器的標記相同,這樣的地址列表路由也屬于源地址策略路由,相反也可以應用到目標地址策略路由RouterOS培訓 - YuS RouterOS培訓 - YuS 策略組合應用通過Mangle的標記我們可以將地址列表和端口的策略路由組合使用。如網頁的80端口,我們可以添加奇數源地址地址列表,僅讓奇數IP主機走指定的網關出口?;蛘吲懦侥承┠繕司W站不走指定的網關出口。通過在規則參數前點 “ ! ”,即非的意思,就可以排除該地址列表范圍。RouterOS的負載均衡RouterO

35、S Nth匹配特定的第N次收到的數據包的規則。對數據包重新標記和排列。Nth的一個計數器最多可以計數16 個數據包Every 匹配每every數據包,同時指定Counter(計數器值)Packet 匹配給定的數據數,例如,Nth=3,1,匹配3個數據包的第1個Passthrough對Nth的控制在RouterOS中實現相同的Nth結果時,有兩種方法配置規則,改變Passthrough參數(Passthrough為是否將該規則數據繼續向下傳遞,no為停止向下傳遞,yes則相反,具體參考Mangle 章節)會得到不同的規則配置。首先要知道Mangle標記捕獲數據是先進先出算法,即從上往下執行,我們

36、在配置Mangle的Nth規則,需要注意前后順序Passthrough對Nth的控制 把數據流標記為兩個組,即一條為1/2,另一條也為1/2,把一個數據流看成“1”,而我們把可以通過兩種方法配置: Passthrough對Nth的控制 當我們需要將數據流標記為3組時,即每條規則為1/3。配置方法同樣有兩種,如下圖 Nth事例1 / 4根據Nth的原理我們可以將來至內網的聯接分為兩組,即一組為奇數連接、一組為偶數連接,即奇數走一條線路,偶數走另外一條線路。因為我們定義的是連接狀態為 new,即新建立的連接,對正常的訪問沒有任何影響,每個新建立所產生的后續數據都會按照原來的線路連接運行。我們從所有

37、的連接中,提取每次新建立的連接connection=new,并對他們做Nth的標記,將這些連接中相關的奇數(odd)包和偶數(even)包分離開,并走兩個不同的網關(ISP1與ISP2)出去。這樣就能保持每次連接的持續性。Nth事例 Nth事例 RouterOS培訓 - YuS Nth事例 RouterOS培訓 - YuS 2 / 4IP地址配置在ip firewall mangle中標記奇數和偶數的Nth,并配置路由標記,奇數Nth連接標記取名為odd,偶數連接標記取名為even,將奇數的路由標記取名為ISP1,將偶數的路由標記取名為ISP2 3 / 4NAT配置進入ip route中配置路

38、由規則,配置對應ISP2的路由標記,對應ISP1的路由標記,我們用作為路由器本身的默認網關。4 / 4Nth會出現一個問題,即一些網銀和要求IP驗證的網站無法正常打開,因為每次連接都會通過不同的IP地址出去。解決這個問題,只需要指定TCP協議的443和8443端口到一條固定的線路上,而且必須執行在Nth規則之前,并設置passthrough=no。RouterOS培訓 - YuS RouterOS培訓 - YuS RouterOS QoSRouterOS Queue類型常見的流控規則有2種FIFO 先進先出法,規定隊列長度(包括bytes或Packets) Simple queue中默然使用的

39、是PFIFOPCQ 每次連接隊列,一種高效的流量控制算法優先級控制策略HTB 等級令牌桶,基于Queue tree的一種等級優先的流量控制策略Simple queue在Queue中我們常用的是Simple queueSimple queue與firewall規則類似規則越多,處理的數據越多,CPU消耗越大規則越多,后面的規則獲取帶寬的幾率越小如果有1000條Simple queue規則,那必須判斷查詢999條規則(必要時減少queue數量)PCQ原理 1PCQ原理2 PCQ winbox配置PCQ參數該規則僅能容納40個用戶(total-limit/limit=2000/50=40) 如果to

40、tal-limit=x,那內存占用為X*(2000byte+200byte)1個包緩沖占用2000byte1個包協議占用200byte者減少limit 但必須保證每個用戶隊列( limit ) 獲取10-20個數據包解決方法必須增加total-limit或total-limit=2000=4.2MB RAMtotal-limit=5000=10.5MB RAM在simple隊列中調用 在Simple Queue中調用PCQ隊列規則,通過Simple Queue的特性,將VIP用戶放到PCQ規則之上,不受PCQ流量控制的限制Queue TreeQueue Tree是唯一能直接被HTB所調用Que

41、ue Tree沒有像Simple Queue是從上往下有序執行,他沒有次序。所有子隊列都要從”/ip firewall mangle”中提取標記數據當Simple Queue處理與Queue Tree相同數據時,那 Simple Queue會優先執行。動態流量控制RouterOS可以實現對帶寬的動態流量分配,如總帶寬為10M的網絡,可以將每天主機帶寬放到3-4Mbps,通過PCQ算法對流量進行動態控制。這里使用ip firewall mangle標記相應數據,通過Queue tree對標記的數據流,可實現動態流量控制。Queue Tree的PCQ通過Queue Tree實現動態流量的控制,這里

42、我們需要在ip firewall mangle中標記數據流例如,在多線路接入,分別需要對電信和網通線路進行單機的PCQ帶寬控制通過Mangle標記數據前,我們需要明白外網和內網接口的數據標記區別PCQ流量控制Mangle標記特點首先需要明白out-interface和ininterface對帶寬控制的區別對于外網接口的電信和網通(tel和cnc),in-interface相對于路由器,標記的是下載數據,out-interface 則是上傳數據但內網接口的lan相對于路由器則相反,in-interface是上傳,outinterface是下載PCQ動態流量實例這里我們有一個實際環境,我們需要實現

43、對帶寬的動態分配;電信帶寬為6M,網通帶寬為12M;通過網通路由表實現雙線路由,并將所有網頁訪問走網通線路。配置步驟:1、在ip firewall mangle標記上下行數據流2、進入queue type定義單機帶寬3、在queue tree定義總帶寬和流量控制規則Mangle數據包標記/ip firewall mangleadd action=mark-packet chain=prerouting comment=markether2-cnc in-interface=ether2-cnc new-packet-mark=ether2-cnc_down passthrough=noadd

44、action=mark-packet chain=forward comment=markether2-cnc new-packet-mark=ether2cnc_up out-interface=ether2-cnc passthrough=noadd action=mark-packet chain=prerouting comment=markether3-tel in-interface=ether3-tel new-packet-mark=ether3-tel_down passthrough=noadd action=mark-packet chain=forward commen

45、t=markether3-tel new-packet-mark=ether3tel_up out-interface=ether3-tel passthrough=noMangle標記要點 注意:如果是ADSL,我們需要將上行數據的標記放到ADSL的 change MSS的規則之后,否則會出現部分網站無法打開的問題。Queue type設置 在Queue type中定義 PCQ規則,為電信和網通分別定義各自的上下行帶寬Queue tree我們在定義是需要考慮預留帶寬,即電信為6M帶寬,我們在給定電信總帶寬 max-limit為4800k(約4.8M),網通設置為10 M/queue tree

46、add max-limit=4800k name=ether3_tel_down packet-mark=ether3-tel_down parent=global-in queue=ether3-tel_downadd max-limit=4M name=ether3_tel_up packet-mark=ether3-tel_up parent=globalout queue=ether3-tel_upadd max-limit=10M name=ether2-cnc1_down packet-mark=ether2-cnc1_down parent=global-in queue=eth

47、er2-cnc_downadd max-limit=10M name=ether2-cnc1_up packet-mark=ether2-cnc1_up parent=global-out queue=ether2-cnc_upWinbox配置 在queue tree中定義電信和網通線路的帶寬HTB等級令牌桶HTB等級令牌桶是創建一個等級隊列結構,并確定隊列之間的關系,就像“父親與兒子”或“兄弟之間”一旦隊列添加了一個Child(子隊列)將會變為inner(內部隊列),所有向下沒有Children(子隊列)稱為Leaf隊列(葉隊列)。在RouterOS必須指定Parent(父級)選項,并指定一

48、個隊列為子隊列。雙重限制每個隊列在HTB有2個速率限制:CIR (約定信息速率Committed Information Rate) (在RouterOS中的參數為limit-at) 最壞的情況下,無論如何都會將得到給定的的CIR傳輸量(假設我們能發送那么多的數據量) 。MIR (最大信息速率Maximal Information Rate) (在RouterOS 中的參數為max-limit) 最好的情況下,如果父級有剩余帶寬,將獲得該速率值。換句話說,首先Limit-at(CIR)都會被滿足,僅當子隊列嘗試借調父級剩余帶寬時,才以達到最大的帶寬max-limit (MIR). CIR與MI

49、R無論如何CIR 都將會被分配到符合該隊列的帶寬 (即使父級的 max-limit滿載) ,那就是為什么,確保最佳的使用雙重限制功能,我們建議堅持這些規則:CIR約定速率之和,即所有子級速率必須小于或等于可獲得父級傳輸量。CIR(parent) CIR(child1) +.+ CIR(childN) 如果子父級與主父級可以設置為 CIR(parent)=MIR(parent) 任何子級的最大速率必須小于或者等于父級的最大速率Priority 優先級這里已經知道,所有隊列的limit-at (CIR)都有可能將會被耗盡,優先級則主要負責分配父級隊列剩余的帶寬給Child(子隊列)達到max-li

50、mit。隊列高的優先級最優先達到max-limit,優先級低的則不會。8是最低優先級,1則最高。注意,優先級工作環境: 對于leaf葉隊列 優先級對于自己inner(內部隊列)沒有任何意義,即inner內部隊列與其所屬的leaf(葉隊列)的優先級不可比較。HTB事例下面這部分我們將分析HTB的操作,將演示一個HTB結構并將涵蓋可能出現的所有情況和功能,我們的HTB結構由下面5個隊列構成:Queue01 內部隊列有2個子級 - Queue02和Queue03Queue02 內部隊列有2個子級 - Queue04和Queue05Queue03 葉隊列 Queue04 葉隊列Queue05 葉隊列Q

51、ueue03,Queue04和Queue05分別需要10Mbps,我們總出口為10Mbps的帶寬普通事例 Queue01 limit-at=0Mbps max-limit=10Mbps Queue02 limit-at=4Mbps max-limit=10Mbps Queue03 limit-at=6Mbps max-limit=10Mbps priority=1 Queue04 limit-at=2Mbps max-limit=10Mbps priority=3 Queue05 limit-at=2Mbps max-limit=10Mbps priority=5 結論:Queue03 得到6

52、Mbps Queue04 得到2Mbps Queue05 得到2Mbps HTB通過滿足所有的limit-at,主隊列已沒有帶寬進行分發。max-limit事例 Queue01 limit-at=0Mbps max-limit=10Mbps Queue02 limit-at=4Mbps max-limit=10Mbps Queue03 limit-at=2Mbps max-limit=10Mbps priority=3 Queue04 limit-at=2Mbps max-limit=10Mbps priority=1 Queue05 limit-at=2Mbps max-limit=10Mb

53、ps priority=5 結論:Queue03 得到 2Mbps Queue04 得到 6Mbps Queue05 得到 2Mbps 在滿足所有的limit-at后,HTB將把剩余的帶寬分配給優先級高的隊列。inner隊列limit-at Queue01 limit-at=0Mbps max-limit=10Mbps Queue02 limit-at=8Mbps max-limit=10Mbps Queue03 limit-at=2Mbps max-limit=10Mbps priority=1 Queue04 limit-at=2Mbps max-limit=10Mbps priority

54、=3 Queue05 limit-at=2Mbps max-limit=10Mbps priority=5 結論:Queue03 得到2Mbps Queue04 得到6Mbps Queue05 得到2Mbps 在滿足所有的limit-at后,HTB將分配剩余帶寬給優先級高的,但在這個事例中,內部對列Queue02指定了Limit-at,這樣他會保留8Mbps的流量給Queue04和Queue05,Queue04有更高的優先級,那就是為什么會得到更高的帶寬。leaf隊列的Limit-at Queue01 limit-at=0Mbps max-limit=10Mbps Queue02 limit-

55、at=4Mbps max-limit=10Mbps Queue03 limit-at=6Mbps max-limit=10Mbps priority=1 Queue04 limit-at=2Mbps max-limit=10Mbps priority=3 Queue05 limit-at=12Mbps max-limit=15Mbps priority=5 結論:Queue03 得到3Mbps Queue04 得到1Mbps Queue05 得到6Mbps 為了滿足所有的Limit-at,HTB被強迫分配20Mbps,Queue03為6Mbps ,Queue04為2Mbps,Queue05為1

56、2Mbps,但我們的接口只能處理10Mbps,因此接口隊列通常 FIFO帶寬發分配將保持比例 6:2:12,即3:1:6。雙重QoS在同一臺路由器上會對IP數據重復標記兩次第一次Mangle chain Prerouting 第一次標記Global-in HTB 第一次流量控制第二次Mangle chain Forward 或者 Postrouting 第二次標記 Global-out 或者 Out-interface HTB 第二次流量控制 雙重流量控制只能在Queue Tree中實現Nat的HTB實現首先通過Prerouting標記IP數據流,使用Global-in對下行流量進行分類的HT

57、B控制。其次對使用Forward再次標記IP數據流,使用 out-interface對上行流量進行分類的HTB控制。下面一個事例,我們通過標記特定端口如80、 53、特定的游戲和QQ端口等為優先,剩余的流量HTB 下行Max-limit:為10M,即所有隊列在有足夠剩余帶寬時,都可以獲得最大值Limit-at:3個子隊列的Limit-at之和等于Max-limit=10MMangle標記下行使用Port_conn為端口連接標記,從Port_conn提取數據包,使用Port_Packet為端口數據包標記使用80_conn為web連接標記,從80_conn提取數據包,使用80_Packet為web

58、用戶數據包標記使用Other_conn為剩余數據連接標記,從Other_conn提取數據包,使用Other_Packet為剩余數據包標記下行流量標記/ip firewall mangleadd action=mark-connection chain=prerouting comment=“優先端口” dst-port=443 new-connection-mark=Port_Conn passthrough=yes protocol=tcpadd action=mark-connection chain=prerouting dst-port=3724 new-connection-mark

59、=Port_Conn passthrough=yes protocol=tcpadd action=mark-connection chain=prerouting dst-port=8000 new-connection-mark=Port_Conn passthrough=yes protocol=udpadd action=mark-packet chain=prerouting connection-mark=Port_Conn new-packet-mark=Port_Packet passthrough=noadd action=mark-connection chain=prer

60、outing comment=“web端口 dst-port=80 new-connection-mark=80_Conn passthrough=yes protocol=tcpadd action=mark-connection chain=prerouting dst-port=53 new-connection-mark=80_Conn passthrough=yes protocol=udp add action=mark-packet chain=prerouting connection-mark=80_Conn new-packet-mark=80_packet passthr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論