iproute2的策略路由與流量控制筆記是怎么樣的-創(chuàng)新互聯(lián)

iproute2的策略路由與流量控制筆記是怎么樣的,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

10余年的梁園網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調整梁園建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“梁園網(wǎng)站設計”,“梁園網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

iproute2 策略路由與流量控制筆記

-- 前提知識: --
如果需要使用策略路由需確認編譯內核時配置中帶有IP:advanced route和IP:policy routing

iproute匹配條件:from源地址,to目的地址,Tos域,Dev物理接口,Fwmark防火墻標記  這些做為匹配條件

iproute動作:可以以table指明所用的表,nat網(wǎng)絡地址轉換,prohibit丟棄并發(fā)送icmp信息,reject單純丟棄,unreachable丟棄并發(fā)送icmp信息.

ip rule首先程序從優(yōu)先級高到低掃描所有的規(guī)則,如果規(guī)則匹配,處理該規(guī)則的動作。如果是普通的路由尋址或者是nat地址轉換的換,首先從規(guī)則得到路由表,然后對該路由表進行操作。這樣RPDB(routing policy database)終于清晰的顯現(xiàn)出來了。
 
iproute相關的內核編譯選項:CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_FWMARK=y

/etc/iproute2/rt_tables 保存規(guī)則的名字與數(shù)字的關聯(lián)

iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu 允許調整tcp syn包里的MSS域,用于控制連接包的大長度。一些防火墻或主機會很不適當?shù)倪^濾掉type 3、code 4(需要分片)的icmp包。目前發(fā)行的linux的內核從2.4.7開始已經(jīng)包含了這個補丁。

IMQ 中介隊列設備
被打了特定標記的數(shù)據(jù)包在netfilter的NF_IP_PRE_ROUTING和NF_IP_POST_ROUTING兩個鉤子函數(shù)處被攔截,并被送到一個隊列規(guī)定中,該隊列規(guī)定附加到一個IMQ設備上。可以實現(xiàn)對入口流量整形,而且可以把網(wǎng)卡當成一個個的類來看待而進行全局整形設置。

--應用案例1 --

通過iptables與iproute2協(xié)同實現(xiàn)根據(jù) 應用 的策略路由
實現(xiàn)要點: iptables根據(jù)端口將服務類的數(shù)據(jù)包打上標示,iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 100 (用這些標記我們可以做帶寬限制和基于請求的分類)
根據(jù)情況做nat iptables -t nat -A POSTROUTING -o eth3 -j MASQUERADE
然后設置路由策略ip rule add fwmark 100 table 100 

-- 應用案例2 --

普通雙ISP的設置 外網(wǎng)接口$IF1 IF1接口地址$IP1 ISP1網(wǎng)關地址$P1 ISP1的網(wǎng)絡地址P1_NET
#分別指定兩條默認網(wǎng)關負責單獨的上行流
ip route add $P1_NET dev $IF1 src $IP1 table T1 源地址為IP1且目的為ISP1網(wǎng)段從IF1接口發(fā)出(必需的,它能夠讓我們找到該子網(wǎng)內的主機及本網(wǎng)關) 將這條路由加入表T1
ip route add default via $P1 table T1
ip route add $P2_NET dev $IF2 src $IP2 table T2 源地址為IP2且目的為ISP2網(wǎng)段從IF2接口發(fā)出((必需的,它能夠讓我們找到該子網(wǎng)內的主機及本網(wǎng)關) 將這條路由加入表T2
ip route add default via $P2 table T2

#也加入到main路由表
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2
  main缺省走ISP1
ip route add default via $P1

#設置路由規(guī)則
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
#設置負載均衡
ip route add default scope global nexthop via $P1 dev $IF1 weight 1 \
nexthop via $P2 dev $IF2 weight 1

均衡是基于路由進行的,而路由是經(jīng)過緩沖的,所以這樣的均衡并不是100%精確.

-- 應用案例3 --
 TC帶寬管理的主要實現(xiàn)步驟 主要是在輸出端口處建立一個隊列進行流量控制,控制的方式是基于路由,亦即基于目的IP地址或目的子網(wǎng)的網(wǎng)絡號的流量控制。
1 編譯內核時注意事項
以下實例:發(fā)往A主機8M帶寬 發(fā)往B主機1M帶寬 發(fā)往C主機1M帶寬
2  1) 針對網(wǎng)絡物理設備(如以太網(wǎng)卡eth0)綁定一個CBQ隊列;
 tc qdisc add dev eth0 root handle 1: cbq bandwidth 10Mbit avpkt 1000 cell 8 mpu 64
  2) 在該隊列上建立分類;
 tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 10Mbit rate 10Mbit maxburst 20 allot \ 1514 prio 8 avpkt 1000 cell 8 weight 1Mbit
 tc class add dev eth0 parent 1:1 classid 1:2 cbq bandwidth 10Mbit rate 8Mbit maxburst 20 allot \ 1514 prio 2 avpkt 1000 cell 8 weight 800Kbit split 1:0 bounded
 tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth 10Mbit rate 1Mbit maxburst 20 allot \ 1514 prio 1 avpkt 1000 cell 8 weight 100Kbit split 1:0
 tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth 10Mbit rate 1Mbit maxburst 20 allot \ 1514 prio 6 avpkt 1000 cell 8 weight 100Kbit split 1:0
  3) 為每一分類建立一個基于路由的過濾器;
tc filter add dev eth0 parent 1:0 protocol ip prio 100 route
tc filter add dev eth0 parent 1:0 protocol ip prio 100 route to 2 flowid 1:2
tc filter add dev eth0 parent 1:0 protocol ip prio 100 route to 3 flowid 1:3
tc filter add dev eth0 parent 1:0 protocol ip prio 100 route to 4 flowid 1:4
  4) 最后與過濾器相配合,建立特定的路由表。
ip route add 192.168.1.24 dev eth0 via 192.168.1.66 realm 2
ip route add 192.168.1.30 dev eth0 via 192.168.1.66 realm 3
ip route add 192.168.1.0/24 dev eth0 via 192.168.1.66 realm 4
3 應用,監(jiān)控

--關于負載平衡--
關于負載平衡 CONFIG_IP_ROUTE_MULTIPATH內核選項將把所有這些路徑(缺省路由)等同看待,然后再根據(jù)/usr/src/linux /Documentation/Configure.help來選擇其特定的方式。Ip route命令的equalize選項,會讓Linux內核基于IP地址平衡外部連接。對于一個特定的IP地址,內核會選擇一個接口用于傳輸流出的數(shù)據(jù)包,然后內核會為該IP地址在路由緩沖中建一個記錄。這樣,其它到達的有相同IP地址的數(shù)據(jù)包就會使用同一個接口,直到該記錄從路由緩沖中刪除。我們可以使用ip route list cache命令來查看路由緩沖。


通過DNS循環(huán)來實現(xiàn)的服務的負載平衡
各種不同的服務(DNS、SMTP、HTTP、LDAP、SSH等) 可以通過DNS循環(huán)來實現(xiàn)。
循環(huán)復用DNS還有太多的限制(DNS緩存,忽略TTL值,修改后的刷新時間,不能意識到服務器的可用性),只能算是一種勉強可接受的負載平衡方案

--相關命令 --
ip link list 顯示鏈路
ip address show 顯示IP地址 對于PPP0接口還會告訴我們鏈路另一端的地址
ip route show 輸出結果之一default via x.x.x.x dev x

ip neigh show 查看緩存的ARP表
ip neigh delete x.x.x.x dev x

--TC流量控制:--
我們只能對發(fā)送數(shù)據(jù)進行整形
默認整形方式是Pfifo_fast隊列規(guī)定。特點為先進先出。只看數(shù)據(jù)包的TOS字節(jié)節(jié)來判斷應該放到哪個頻道(優(yōu)先).一般的應用程序會如何設置他們的TOS值。
HTB分層的令牌桶
HTB 可以保障提供給每個類帶寬的數(shù)量是它所需求的最小需求或者等于分配給它的數(shù)量.當一個類需要的帶寬少于分配的帶寬時,剩余的帶寬被分配給其他需要服務的類.

SFQ隨機公平隊列
簡單輪轉。使用一個散列算法,把所有的會話映射到有限的幾個隊列中去。(只有當你的出口網(wǎng)卡確實已經(jīng)擠滿了的時候,SFQ才會起作用)
 
(如果你并不希望進行流量整形,只是想看看你的網(wǎng)卡是否有比較高的負載而需要使用隊列,可使用pfifo隊列。它缺乏內部頻道但是可以統(tǒng)計backlog)

--HTB應用案例4--
1)
tc qdisc add dev eth0 root handle 1: htb default 12
2)
tc class add dev eth0 parent 1: classid 1:1 htb rate 100kbps ceil 100kbps
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 30kbps ceil 100kbps
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 10kbps ceil 100kbps
tc class add dev eth0 parent 1:1 classid 1:12 htb rate 60kbps ceil 100kbps
3)為隊列規(guī)定分配子類, 如果沒有指定缺省是pfifo
tc qdisc add dev eth0 parent 1:10 handle 20: pfifo limit 5
tc qdisc add dev eth0 parent 1:11 handle 30: pfifo limit 5
tc qdisc add dev eth0 parent 1:12 handle 40: sfq perturb 10
1:12隊列的類不定義時,即所有不匹配其它類規(guī)則的數(shù)據(jù)包。

--流量分析與故障診斷--
tc -s -d qdisc show dev eth0 隊列狀態(tài)
tc -s class show dev eth0 類狀態(tài)
tc filter show dev eth0 過濾器狀態(tài)

關于iproute2的策略路由與流量控制筆記是怎么樣的問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道了解更多相關知識。

當前題目:iproute2的策略路由與流量控制筆記是怎么樣的-創(chuàng)新互聯(lián)
URL分享:http://muchs.cn/article4/dsgpie.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、定制網(wǎng)站品牌網(wǎng)站建設、響應式網(wǎng)站、網(wǎng)站制作、自適應網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設