欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Linux下TC使用說明

系統 2577 0

一、TC原理介紹

Linux操作系統中的流量控制器TC(Traffic Control)用于Linux內核的流量控制,主要是通過在輸出端口處建立一個隊列來實現流量控制。

Linux流量控制的基本原理如下圖所示。

接收包從輸入接口(Input Interface)進來后,經過流量限制(Ingress Policing)丟棄不符合規定的數據包,由輸入多路分配器(Input De-Multiplexing)進行判斷選擇:如果接收包的目的是本主機,那么將該包送給上層處理;否則需要進行轉發,將接收包交到轉發塊(Forwarding Block)處理。轉發塊同時也接收本主機上層(TCP、UDP等)產生的包。轉發塊通過查看路由表,決定所處理包的下一跳。然后,對包進行排列以便將它們傳送到輸出接口(Output Interface)。一般我們只能限制網卡發送的數據包,不能限制網卡接收的數據包,所以我們可以通過改變發送次序來控制傳輸速率。Linux流量控制主要是在輸出接口排列時進行處理和實現的。

二、TC規則

1、流量控制方式

流量控制包括以下幾種方式:

SHAPING(限制)
當流量被限制,它的傳輸速率就被控制在某個值以下。限制值可以大大小于有效帶寬,這樣可以平滑突發數據流量,使網絡更為穩定。shaping(限制)只適用于向外的流量。

SCHEDULING(調度)
通過調度數據包的傳輸,可以在帶寬范圍內,按照優先級分配帶寬。SCHEDULING(調度)也只適于向外的流量。

POLICING(策略)
SHAPING用于處理向外的流量,而POLICIING(策略)用于處理接收到的數據。

DROPPING(丟棄)
如果流量超過某個設定的帶寬,就丟棄數據包,不管是向內還是向外。

2、流量控制處理對象

流量的處理由三種對象控制,它們是:qdisc(排隊規則)、class(類別)和filter(過濾器)。

QDISC(排隊規則)
QDisc(排隊規則)是queueing discipline的簡寫,它是理解流量控制(traffic control)的基礎。無論何時,內核如果需要通過某個網絡接口發送數據包,它都需要按照為這個接口配置的qdisc(排隊規則)把數據包加入隊列。然后,內核會盡可能多地從qdisc里面取出數據包,把它們交給網絡適配器驅動模塊。最簡單的QDisc是pfifo它不對進入的數據包做任何的處理,數據包采用先入先出的方式通過隊列。不過,它會保存網絡接口一時無法處理的數據包。

QDISC的類別如下:

(1)、CLASSLESS QDisc(不可分類QDisc)

1>無類別QDISC包括:

[p|b]fifo

使用最簡單的qdisc,純粹的先進先出。只有一個參數:limit,用來設置隊列的長度,pfifo是以數據包的個數為單位;bfifo是以字節數為單位。

pfifo_fast

在編譯內核時,如果打開了高級路由器(Advanced Router)編譯選項,pfifo_fast就是系統的標準QDISC。它的隊列包括三個波段(band)。在每個波段里面,使用先進先出規則。而三個波段(band)的優先級也不相同,band 0的優先級最高,band 2的最低。如果band里面有數據包,系統就不會處理band 1里面的數據包,band 1和band 2之間也是一樣。數據包是按照服務類型(Type of Service,TOS)被分配多三個波段(band)里面的。

red

red是Random Early Detection(隨機早期探測)的簡寫。如果使用這種QDISC,當帶寬的占用接近于規定的帶寬時,系統會隨機地丟棄一些數據包。它非常適合高帶寬應用。

sfq

sfq是Stochastic Fairness Queueing的簡寫。它按照會話(session--對應于每個TCP連接或者UDP流)為流量進行排序,然后循環發送每個會話的數據包。

tbf

tbf是Token Bucket Filter的簡寫,適合于把流速降低到某個值。

2>不可分類QDisc的配置

如果沒有可分類QDisc,不可分類QDisc只能附屬于設備的根。它們的用法如下:

tc qdisc add dev DEV root QDISC QDISC-PARAMETERS

要刪除一個不可分類QDisc,需要使用如下命令:

tc qdisc del dev DEV root

一個網絡接口上如果沒有設置QDisc,pfifo_fast就作為缺省的QDisc。

(2)、CLASSFUL QDISC(分類QDisc)

可分類的QDisc包括:

CBQ

CBQ是Class Based Queueing(基于類別排隊)的縮寫。它實現了一個豐富的連接共享類別結構,既有限制(shaping)帶寬的能力,也具有帶寬優先級管理的能力。帶寬限制是通過計算連接的空閑時間完成的。空閑時間的計算標準是數據包離隊事件的頻率和下層連接(數據鏈路層)的帶寬。

HTB

HTB是Hierarchy Token Bucket的縮寫。通過在實踐基礎上的改進,它實現了一個豐富的連接共享類別體系。使用HTB可以很容易地保證每個類別的帶寬,雖然它也允許特定的類可以突破帶寬上限,占用別的類的帶寬。HTB可以通過TBF(Token Bucket Filter)實現帶寬限制,也能夠劃分類別的優先級。

PRIO

PRIO QDisc不能限制帶寬,因為屬于不同類別的數據包是順序離隊的。使用PRIO QDisc可以很容易對流量進行優先級管理,只有屬于高優先級類別的數據包全部發送完畢,才會發送屬于低優先級類別的數據包。為了方便管理,需要使用iptables或者ipchains處理數據包的服務類型(Type Of Service,ToS)。

CLASS(類)
某些QDisc(排隊規則)可以包含一些類別,不同的類別中可以包含更深入的QDisc(排隊規則),通過這些細分的QDisc還可以為進入的隊列的數據包排隊。通過設置各種類別數據包的離隊次序,QDisc可以為設置網絡數據流量的優先級。

FILTER(過濾器)
Filter(過濾器)用于為數據包分類,決定它們按照何種QDisc進入隊列。無論何時數據包進入一個劃分子類的類別中,都需要進行分類。分類的方法可以有多種,使用fileter(過濾器)就是其中之一。使用filter(過濾器)分類時,內核會調用附屬于這個類(class)的所有過濾器,直到返回一個判決。如果沒有判決返回,就作進一步的處理,而處理方式和QDISC有關。需要注意的是,filter(過濾器)是在QDisc內部,它們不能作為主體。

3、操作原理

類(Class)組成一個樹,每個類都只有一個父類,而一個類可以有多個子類。某些QDisc(例如:CBQ和HTB)允許在運行時動態添加類,而其它的QDisc(例如:PRIO)不允許動態建立類。允許動態添加類的QDisc可以有零個或者多個子類,由它們為數據包排隊。此外,每個類都有一個葉子QDisc,默認情況下,這個葉子QDisc使用pfifo的方式排隊,我們也可以使用其它類型的QDisc代替這個默認的QDisc。而且,這個葉子葉子QDisc有可以分類,不過每個子類只能有一個葉子QDisc。
當一個數據包進入一個分類QDisc,它會被歸入某個子類。我們可以使用以下三種方式為數據包歸類,不過不是所有的QDisc都能夠使用這三種方式。

tc過濾器(tc filter)

如果過濾器附屬于一個類,相關的指令就會對它們進行查詢。過濾器能夠匹配數據包頭所有的域,也可以匹配由ipchains或者iptables做的標記。

服務類型(Type of Service)

某些QDisc有基于服務類型(Type of Service,ToS)的內置的規則為數據包分類。

skb->priority

用戶空間的應用程序可以使用SO_PRIORITY選項在skb->priority域設置一個類的ID。

樹的每個節點都可以有自己的過濾器,但是高層的過濾器也可以直接用于其子類。

如果數據包沒有被成功歸類,就會被排到這個類的葉子QDisc的隊中。相關細節在各個QDisc的手冊頁中。

4、命名規則

所有的QDisc、類和過濾器都有ID。ID可以手工設置,也可以有內核自動分配。ID由一個主序列號和一個從序列號組成,兩個數字用一個冒號分開。

QDISC

一個QDisc會被分配一個主序列號,叫做句柄(handle),然后把從序列號作為類的命名空間。句柄采用象10:一樣的表達方式。習慣上,需要為有子類的QDisc顯式地分配一個句柄。

類(CLASS)

在同一個QDisc里面的類分享這個QDisc的主序列號,但是每個類都有自己的從序列號,叫做類識別符(classid)。類識別符只與父QDisc有關,和父類無關。類的命名習慣和QDisc的相同。

過濾器(FILTER)

過濾器的ID有三部分,只有在對過濾器進行散列組織才會用到。詳情請參考tc-filters手冊頁。

5、單位

tc命令的所有參數都可以使用浮點數,可能會涉及到以下計數單位。

1》帶寬或者流速單位:

kbps 千字節/秒

mbps 兆字節/秒

kbit KBits/秒

mbit MBits/秒

bps或者一個無單位數字 字節數/秒

2》數據的數量單位:

kb或者k 千字節

mb或者m 兆字節

mbit 兆bit

kbit 千bit

b或者一個無單位數字 字節數

3》時間的計量單位:

s、sec或者secs 秒

ms、msec或者msecs 分鐘

us、usec、usecs或者一個無單位數字 微秒

三、TC命令

tc可以使用以下命令對QDisc、類和過濾器進行操作:

add

在一個節點里加入一個QDisc、類或者過濾器。添加時,需要傳遞一個祖先作為參數,傳遞參數時既可以使用ID也可以直接傳遞設備的根。如果要建立一個QDisc或者過濾器,可以使用句柄(handle)來命名;如果要建立一個類,可以使用類識別符(classid)來命名。

remove

刪除有某個句柄(handle)指定的QDisc,根QDisc(root)也可以刪除。被刪除QDisc上的所有子類以及附屬于各個類的過濾器都會被自動刪除。

change

以替代的方式修改某些條目。除了句柄(handle)和祖先不能修改以外,change命令的語法和add命令相同。換句話說,change命令不能一定節點的位置。

replace

對一個現有節點進行近于原子操作的刪除/添加。如果節點不存在,這個命令就會建立節點。

link

只適用于DQisc,替代一個現有的節點。

例:

tc qdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ]

tc class [ add | change | replace ] dev DEV parent qdisc-id [ classid class-id ] qdisc [ qdisc specific parameters ]

tc filter [ add | change | replace ] dev DEV [ parent qdisc-id | root ] protocol protocol prio priority filtertype [ filtertype specific parameters ] flowid flow-id

tc [-s | -d ] qdisc show [ dev DEV ]

tc [-s | -d ] class show dev DEV tc filter show dev DEV

四、具體操作

Linux流量控制主要分為建立隊列、建立分類和建立過濾器三個方面。

1、基本實現步驟為:

(1) 針對網絡物理設備(如以太網卡eth0)綁定一個隊列QDisc;

(2) 在該隊列上建立分類class;

(3) 為每一分類建立一個基于路由的過濾器filter;

(4) 最后與過濾器相配合,建立特定的路由表。

2、環境模擬實例:

流量控制器上的以太網卡(eth0) 的IP地址為192.168.1.66,在其上建立一個CBQ隊列。假設包的平均大小為1000字節,包間隔發送單元的大小為8字節,可接收沖突的發送最長包數目為20字節。

假如有三種類型的流量需要控制:
  1) 是發往主機1的,其IP地址為192.168.1.24。其流量帶寬控制在8Mbit,優先級為2;
  2) 是發往主機2的,其IP地址為192.168.1.30。其流量帶寬控制在1Mbit,優先級為1;
  3) 是發往子網1的,其子網號為192.168.1.0,子網掩碼為255.255.255.0。流量帶寬控制在1Mbit,優先級為6。

1. 建立隊列

一般情況下,針對一個網卡只需建立一個隊列。

將一個cbq隊列綁定到網絡物理設備eth0上,其編號為1:0;網絡物理設備eth0的實際帶寬為10 Mbit,包的平均大小為1000字節;包間隔發送單元的大小為8字節,最小傳輸包大小為64字節。

·tc qdisc add dev eth0 root handle 1: cbq bandwidth 10Mbit avpkt 1000 cell 8 mpu 64

2. 建立分類

分類建立在隊列之上。

一般情況下,針對一個隊列需建立一個根分類,然后再在其上建立子分類。對于分類,按其分類的編號順序起作用,編號小的優先;一旦符合某個分類匹配規則,通過該分類發送數據包,則其后的分類不再起作用。

1) 創建根分類1:1;分配帶寬為10Mbit,優先級別為8。

·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

該隊列的最大可用帶寬為10Mbit,實際分配的帶寬為10Mbit,可接收沖突的發送最長包數目為20字節;最大傳輸單元加MAC頭的大小為1514字節,優先級別為8,包的平均大小為1000字節,包間隔發送單元的大小為8字節,相應于實際帶寬的加權速率為1Mbit。

2)創建分類1:2,其父分類為1:1,分配帶寬為8Mbit,優先級別為2。

·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

該隊列的最大可用帶寬為10Mbit,實際分配的帶寬為 8Mbit,可接收沖突的發送最長包數目為20字節;最大傳輸單元加MAC頭的大小為1514字節,優先級別為1,包的平均大小為1000字節,包間隔發送單元的大小為8字節,相應于實際帶寬的加權速率為800Kbit,分類的分離點為1:0,且不可借用未使用帶寬。

3)創建分類1:3,其父分類為1:1,分配帶寬為1Mbit,優先級別為1。

·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

該隊列的最大可用帶寬為10Mbit,實際分配的帶寬為 1Mbit,可接收沖突的發送最長包數目為20字節;最大傳輸單元加MAC頭的大小為1514字節,優先級別為2,包的平均大小為1000字節,包間隔發送單元的大小為8字節,相應于實際帶寬的加權速率為100Kbit,分類的分離點為1:0。

4)創建分類1:4,其父分類為1:1,分配帶寬為1Mbit,優先級別為6。

·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

該隊列的最大可用帶寬為10Mbit,實際分配的帶寬為1Mbit,可接收沖突的發送最長包數目為20字節;最大傳輸單元加MAC頭的大小為1514字節,優先級別為6,包的平均大小為1000字節,包間隔發送單元的大小為8字節,相應于實際帶寬的加權速率為100Kbit,分類的分離點為1:0。

3. 建立過濾器

過濾器主要服務于分類。

一般只需針對根分類提供一個過濾器,然后為每個子分類提供路由映射。

1) 應用路由分類器到cbq隊列的根,父分類編號為1:0;過濾協議為ip,優先級別為100,過濾器為基于路由表。

·tc filter add dev eth0 parent 1:0 protocol ip prio 100 route

2) 建立路由映射分類1:2, 1:3, 1:4

·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.建立路由

該路由是與前面所建立的路由映射一一對應。

1) 發往主機192.168.1.24的數據包通過分類2轉發(分類2的速率8Mbit)

·ip route add 192.168.1.24 dev eth0 via 192.168.1.66 realm 2

2) 發往主機192.168.1.30的數據包通過分類3轉發(分類3的速率1Mbit)

·ip route add 192.168.1.30 dev eth0 via 192.168.1.66 realm 3

3)發往子網192.168.1.0/24的數據包通過分類4轉發(分類4的速率1Mbit)

·ip route add 192.168.1.0/24 dev eth0 via 192.168.1.66 realm 4

注:一般對于流量控制器所直接連接的網段建議使用IP主機地址流量控制限制,不要使用子網流量控制限制。如一定需要對直連子網使用子網流量控制限制,則在建立該子網的路由映射前,需將原先由系統建立的路由刪除,才可完成相應步驟。

5. 監視

主要包括對現有隊列、分類、過濾器和路由的狀況進行監視。

1)顯示隊列的狀況

簡單顯示指定設備(這里為eth0)的隊列狀況

·tc qdisc ls dev eth0

qdisc cbq 1: rate 10Mbit (bounded,isolated) prio no-transmit

詳細顯示指定設備(這里為eth0)的隊列狀況

·tc -s qdisc ls dev eth0

qdisc cbq 1: rate 10Mbit (bounded,isolated) prio no-transmit
Sent 7646731 bytes 13232 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 31 undertime 0

這里主要顯示了通過該隊列發送了13232個數據包,數據流量為7646731個字節,丟棄的包數目為0,超過速率限制的包數目為0。

2)顯示分類的狀況

簡單顯示指定設備(這里為eth0)的分類狀況

·tc class ls dev eth0

class cbq 1: root rate 10Mbit (bounded,isolated) prio no-transmit
class cbq 1:1 parent 1: rate 10Mbit prio no-transmit #no-transmit表示優先級為8
class cbq 1:2 parent 1:1 rate 8Mbit prio 2
class cbq 1:3 parent 1:1 rate 1Mbit prio 1
class cbq 1:4 parent 1:1 rate 1Mbit prio 6

詳細顯示指定設備(這里為eth0)的分類狀況

·tc -s class ls dev eth0

class cbq 1: root rate 10Mbit (bounded,isolated) prio no-transmit
Sent 17725304 bytes 32088 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 31 undertime 0
class cbq 1:1 parent 1: rate 10Mbit prio no-transmit
Sent 16627774 bytes 28884 pkts (dropped 0, overlimits 0)
borrowed 16163 overactions 0 avgidle 587 undertime 0
class cbq 1:2 parent 1:1 rate 8Mbit prio 2
Sent 628829 bytes 3130 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 4137 undertime 0
class cbq 1:3 parent 1:1 rate 1Mbit prio 1
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
borrowed 0 overactions 0 avgidle 159654 undertime 0
class cbq 1:4 parent 1:1 rate 1Mbit prio 6
Sent 5552879 bytes 8076 pkts (dropped 0, overlimits 0)
borrowed 3797 overactions 0 avgidle 159557 undertime 0

這里主要顯示了通過不同分類發送的數據包,數據流量,丟棄的包數目,超過速率限制的包數目等等。其中根分類(class cbq 1:0)的狀況應與隊列的狀況類似。

例如,分類class cbq 1:4發送了8076個數據包,數據流量為5552879個字節,丟棄的包數目為0,超過速率限制的包數目為0。

顯示過濾器的狀況

·tc -s filter ls dev eth0

filter parent 1: protocol ip pref 100 route
filter parent 1: protocol ip pref 100 route fh 0xffff0002 flowid 1:2 to 2
filter parent 1: protocol ip pref 100 route fh 0xffff0003 flowid 1:3 to 3
filter parent 1: protocol ip pref 100 route fh 0xffff0004 flowid 1:4 to 4

這里flowid 1:2代表分類class cbq 1:2,to 2代表通過路由2發送。

顯示現有路由的狀況

·ip route

192.168.1.66 dev eth0 scope link
192.168.1.24 via 192.168.1.66 dev eth0 realm 2
202.102.24.216 dev ppp0 proto kernel scope link src 202.102.76.5
192.168.1.30 via 192.168.1.66 dev eth0 realm 3
192.168.1.0/24 via 192.168.1.66 dev eth0 realm 4
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.66
172.16.1.0/24 via 192.168.1.66 dev eth0 scope link
127.0.0.0/8 dev lo scope link
default via 202.102.24.216 dev ppp0
default via 192.168.1.254 dev eth0

如上所示,結尾包含有realm的顯示行是起作用的路由過濾器。

6. 維護

主要包括對隊列、分類、過濾器和路由的增添、修改和刪除。

增添動作一般依照"隊列->分類->過濾器->路由"的順序進行;修改動作則沒有什么要求;刪除則依照"路由->過濾器->分類->隊列"的順序進行。

1)隊列的維護

一般對于一臺流量控制器來說,出廠時針對每個以太網卡均已配置好一個隊列了,通常情況下對隊列無需進行增添、修改和刪除動作了。

2)分類的維護

增添

增添動作通過tc class add命令實現,如前面所示。

修改

修改動作通過tc class change命令實現,如下所示:

·tc class change dev eth0 parent 1:1 classid 1:2 cbq bandwidth 10Mbit rate 7Mbit maxburst 20 allot 1514 prio 2 avpkt 1000 cell 8 weight 700Kbit split 1:0 bounded

對于bounded命令應慎用,一旦添加后就進行修改,只可通過刪除后再添加來實現。

刪除

刪除動作只在該分類沒有工作前才可進行,一旦通過該分類發送過數據,則無法刪除它了。因此,需要通過shell文件方式來修改,通過重新啟動來完成刪除動作。

3)過濾器的維護

增添

增添動作通過tc filter add命令實現,如前面所示。

修改

修改動作通過tc filter change命令實現,如下所示:

·tc filter change dev eth0 parent 1:0 protocol ip prio 100 route to 10 flowid 1:8

刪除

刪除動作通過tc filter del命令實現,如下所示:

·tc filter del dev eth0 parent 1:0 protocol ip prio 100 route to 10

4)與過濾器一一映射路由的維護

增添

增添動作通過ip route add命令實現,如前面所示。

修改

修改動作通過ip route change命令實現,如下所示:

·ip route change 192.168.1.30 dev eth0 via 192.168.1.66 realm 8

刪除

刪除動作通過ip route del命令實現,如下所示:

·ip route del 192.168.1.30 dev eth0 via 192.168.1.66 realm 8

·ip route del 192.168.1.0/24 dev eth0 via 192.168.1.66 realm 4

注:部分內容來自互聯網,版權歸原作者所有。

Linux下TC使用說明


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 91中文视频| 国产精品午夜小视频观看 | 国产女人久久精品 | 成人国产精品视频 | 91精品久久久久久久久久入口 | 91精品久久| www色网站 | 国产在线精品一区 | 性夜影院爽黄A爽免费动漫 日韩精品在线一区二区 | 天堂在线观看中文字幕 | 国产免费观看视频 | 国产精品久久久久久亚洲色 | 久久99热只有视精品6国产 | 999热这里只有精品 三级在线网站 | 久青草久青草高清在线播放 | 国内自拍视频在线看免费观看 | 高清国产一区二区三区 | 99热中文 | 黄色资源视频 | jzzjlzz亚洲乱熟在线播放 | 国产香蕉视频在线观看 | 看片地址| 久久精品无码一区二区日韩av | 日韩欧美中文字幕在线播放 | 免费国产精品视频在线 | 四虎影视在线看免费 720p | 嫩草视频在线播放 | 国产精品高清在线 | jiucao在线看片www| av一区二区三区在线观看 | 久久国产精品久久精品国产 | 国产精品视频网站 | 亚洲精品国产第1页 | 亚洲一区电影 | 九九热精品视频在线播放 | 亚洲免费在线观看视频 | 亚洲一区播放 | 久久草视频 | 最新国产视频 | 精品国产乱码久久久久久1区2区 | 九九精品视频在线观看九九 |