精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

理解 Net Device Ingress 和 Egress 雙重角色

云計算 云原生
本文我們從一個簡單的物理網卡開始,然后對 Veth、 Bridge 還有 Tc eBPF ,分別展開聊聊。

本文是書稿《圖解 VPC & K8s 網絡模型》其中一篇。書稿還在繼續寫,進度不快也不慢,因為二哥不急也不躁。好肉需要慢燉,好書需要多磨。

為什么要單獨講這個話題呢?因為我在和同事討論 K8s 網絡尤其是網絡數據流向的時候,會反復提及到網絡設備,無論它是物理的還是虛擬的。而網絡設備在我們所討論到的數據流場景里,時而在接收數據,時而在發送數據。也就是說它同時扮演著雙重身份:Ingress 和 Egress。

另外我在整理 eBPF 相關的內容,尤其是 tc eBPF 的時候,再一次發現如果不能準確地在數據流中識別出網絡設備是 Ingress 還是 Egress ,就無法將代碼邏輯和實際運行結果對上號,更勿談能理解tc eBPF 了。

這樣的雙重角色扮演就如同一個調皮的孩子,總是帶上面具在錯綜復雜的網絡里面東躲西藏,肆意玩耍。而當你好不容易抓到它時,卻讓你猜猜此時此刻他是誰。

簡單來說:對于網卡而言,無論它是物理的還是虛擬的,對于 Ingress 角色,它是首先觸碰到數據的人,而對于 Egress 角色,它是最后一個碰到數據的人。

本文我們從一個簡單的物理網卡開始,然后對 veth、 bridge 還有 tc eBPF ,分別展開聊聊:

  • 當網卡扮演 Ingress 角色時,它從哪里接收數據,又將數據遞交給了誰?
  • 當網卡扮演 Egress 角色時,它從哪里接收數據,又將數據遞交給了誰?

1、單個物理網卡

圖片


圖1

這是一個簡單的圖,圖中有一張物理網卡。我們的臺式機通常是這樣的配置。橘色的線代表著輸入流程,而藍色的線表示輸出流程。

(1)輸入流程 Ingress

對于這張網卡而言,輸入過程伴隨著以下幾個重要的事情:物理網卡首先接收到物理信號 -> 物理網卡通過 DMA 機制將數據保存至其專屬的 RingBuffer 里面 -> 向 CPU 發起中斷 -> OS kernel thread ksoftirqd/x 不斷地消費 RingBuffer 里面的數據。

這里的 ksoftirqd 是一個內核線程,每個 CPU 一個,x 為 CPU 編號。如 ksoftirqd/0 為 0 號 CPU 上運行的內核線程。

ksoftirqd/x 將數據以 skb 為處理粒度依次穿過鏈路層、網絡層、TCP/UDP 傳輸層 。不過 skb 在鏈路層和網絡層還可能直接 forward 給其它網卡,那這樣的話傳輸層就不會收到這個 skb 了。

整個過程如圖 2 所示,你可以從整體上感受一下。標號 1 及 1.x 為數據輸入和生產過程,這是本文的重點。而標號 3 為數據消費過程,它帶著 skb 從入口處的 net_rx_action() 沿著協議棧由底向上穿越協議棧,這個過程對本文所述的所有 Ingress 場景都是通用的,故后文不再贅述這部分。

圖片

圖2

總結:當物理網卡扮演 Ingress 角色時,它從主機外接收數據,將數據遞交給了環形隊列,然后由 ksoftirqd/x 進行后續的處理,這個處理過程也稱為網絡棧下半部分。

(2)輸出過程 Egress

從圖 1 中,我們大致可以看出來,對于輸出過程,數據來源有兩種,分別是通過 ip_forward() 過程和通過 ip_local_out() 過程送過來的數據。我們還會發現,在發送數據的路徑上,這兩個過程只是起點有些不同,剩下的路程大家都一樣。

ip_forward() 過程與 skb 在 IP 層路由結果強相關。如圖 3 所示,具體來說經過路由的判定,可能需要把 skb forward 至本機網絡設備或者網絡中的其它主機處理,不過無論是哪種情況,都需要將 skb 送往本機的一個網絡設備。

圖片

圖3

而 ip_local_out() 過程則對應了本機進程通過 socket 發送數據的場景,如圖 4 所示。這張圖最后標注的“觸發 NET_RX 類型軟中斷”是數據已經被網卡發送完后發生的事情,中斷的目的是為了清理 skb ,略過不表。

圖片

圖 4 ,圖片來源:“開發內功修煉”公眾號

總結:當物理網卡扮演 Egress 角色時,它從本機 TCP/IP 協議棧接收數據,將數據通過驅動程序送離本機。

2、veth-pair

是不是覺得單個網卡的場景其實很容易分辨出來 Ingress 和 Egress ?

別得意,我們來加點難度。我們知道 K8s 的默認 CNI flannel 用到了 veth 。veth 是什么以及它的特性二哥就不細說了。我們聊一個話題:圖 5 中,當左側進程向右側進程通信發送數據時, 左端的 veth_left 是 Ingress 還是 Egress ? 右端的 veth_right 呢?

圖片

圖 5

結合圖 5 上的箭頭示意,答案應該不難猜。對 veth_left 來說,它扮演的是 Egress 角色,因為進程需要通過它把數據發送出去。對 veth_right 而言是 Ingress ,因為它需要負責接收數據并把它送給右側的進程。

下一個問題:既然  veth_left 扮演了 Egress 角色,流量從離開 network namespace 1 之后去哪里了?既然 veth_right 是 Ingress ,那它從哪里接收到流量的?

答案都在圖 6 里面。圖中標號 2 及 2.x 在進行數據發送的工作,都屬于 veth_left 的 Egress 的過程,這個過程是發生在 network namespace 1 里面的,函數調用棧和圖 4 一樣。而標號 3 為數據消費也即 veth_right 的 Ingress 過程,這個過程和物理網卡一模一樣。

圖片

圖 6

總結:既然 veth 是一對虛擬網卡,那我們把對它倆的總結放在一起。

當 veth 網卡扮演 Egress 角色時,如圖 7 中的 veth_left,它從其所在的 network namespace TCP/IP 協議棧接收數據,并將數據遞交給了 per CPU input_pkt_queue 隊列,并觸發軟件中斷。

當 veth 網卡扮演 Ingress 角色時,如圖 7 中的 veth_right,它并沒有物理網卡那種環形隊列,而是由 ksoftirqd/x 直接從 per CPU input_pkt_queue 隊列讀取  veth_left 塞進來的數據。

veth_left 和 veth_right 共享了同一個 queue 。典型的生產者 / 消費者設計模式的視感有沒有?

圖片

圖 7

3、bridge

上一節,二哥把 veth pair 單獨拿出來和大家一起觀賞。可它們終究不是花瓶,它們被創造出來是要有實際使用價值的。veth 典型使用場景就是把一端插入到 bridge 里面,如圖 8 所示。

從 veth 的特性來說,流量從下圖 veth1-left 流出后,會進入 veth1-right ,這也就意味著流量進入了網橋。

我想這個時候你可以確定 veth1-left 是 Egress ,而 veth1-right 是 Ingress 。那么對于 bridge 的 Port 1 和 Port 2 呢?再進一步,對于 veth2-left 和 veth2-right 呢 ?

圖片

圖 8

其實對于 bridge 這種虛擬的網橋,它的 port 口也是一個虛擬的概念,說得更直白一點,在內核里它就是一個數據結構:struct net_bridge_port 。這個結構里有 3 個重要的成員:br / port_no / dev 。下面的代碼用于插入網絡設備到 bridge ,這 3 個成員的作用顯而易見。

//file: net/bridge/br_if.c
static struct net_bridge_port *new_nbp(struct net_bridge *br,
struct net_device *dev)
{
//申請插口對象
struct net_bridge_port *p;
p = kzalloc(sizeof(*p), GFP_KERNEL);
//初始化插口
index = find_portno(br);
p->br = br;
p->dev = dev;
p->port_no = index;
...
}

對于圖 8 來說, Port 1 (net_bridge_port) 就是一個粘合劑,左手 bridge ,右手 veth1-right 。理解了這點也就明白了對于 bridge 的 Port 而言,它是沒有所謂的 Ingress 和 Egress 的概念的。

Port 1 接收數據其實是 veth1-right 在 Ingress,而 bridge 把這個流量 forward 給 veth2-right 時,veth2-right 其實在扮演 Egress 角色。那流量從 veth2-right 傳至 veth2-left 的過程和 veth1-left 向 veth1-right 發送數據的過程是完全一樣的。

總結:當 veth 這樣的虛擬網卡插入在 bridge 上時:

圖8 中 veth1-left 扮演 Egress 角色,它從其所在的 network namespace TCP/IP 協議棧接收數據,將數據遞交給了 per CPU input_pkt_queue 隊列,并觸發軟件中斷。

veth1-right 扮演 Ingress 角色,它并沒有物理網卡那種環形隊列,而是由 ksoftirqd/x 直接從 per CPU input_pkt_queue 隊列讀取  veth1-left 塞進來的數據。當 ksoftirqd/x 把流量送至鏈路層時,從 br_forward() 開始進入 forward 流程。這個流程的效果就是流量從 veth1-right 轉至 veth2-right 發送出去了。

那自然 veth2-right 這個時候就扮演了 Egress 角色,veth2-left 扮演了 Ingress 角色。

4、veth-pair plus

如果你沒有暈的話,那抖索一下精神,我們開始 veth-pair 的進階版。

上一節我們看到 veth 和 bridge 搭配使用的場景。veth 另一端一定要插在 bridge 上嗎?從圖 9 你也看到了,答案是:不一定。

圖片

圖 9

現在我們知道,在圖 9 中,從 container-1 發出的流量經過 veth 發出后,veth-p 會以 Ingress 角色開始接收。根據前文的解釋,當網卡進行 Ingress 時,流量會被 ksoftirqd/x 送往協議棧進一步處理。這個處理的過程當然也就包括了圖 9 中的路由過程。

圖 9 這里巧妙的地方是:流量是產生于容器內,但對這份流量的路由卻發生在主機 root(default) network namespance 里面,使用的也是主機的路由表。如果路由結果發現需要把這份流量發往其它主機,那自然流量就從主機的 eth0 這個網卡設備離開了。在這個過程中,主機其實扮演了網關的角色。

說到這里,你能理解圖 10 的工作過程了嗎?它是 K8s host-gateway 網絡模型,顧名思義,這種網絡模型以 host 為 gateway ,更具體地說,host 的 root network namespace 充當了路由的角色。


圖片

圖 10


5、tc eBPF

如果你對 tc 和 eBPF 了解得不多或者不感興趣,可以跳過這部分。

以 Cilium 為代表的 K8s CNI 提供商一直在嘗試使用 eBPF 代替 iptables 以便優化服務網格數據面性能。其中 bpf_redicrect() 函數即為其中一項優化產出。

bpf_redicrect() 函數的特性用一句話就能解釋清楚:當 veth Ingress 時,將流量直接通過 bpf_redirect() 重定向到另一個 veth Ingress。如圖 11 所示。

不過如果你對 veth pair 哪一端在何時會扮演 Ingress 角色了解得不是很清楚的話,上面這句話其實會把你繞暈。

圖片

圖 11

但在看完二哥這篇文章后,希望你不會再暈了。在圖 11 中,從右下 Pod 出來的流量會流到位于 host network ns 這一端的 veth 上,這個 veth 是以 Ingress 角色工作的。

你看到在它身上附上了一個 eBPF 小蜜蜂圖標,表示這個時候 eBPF 程序會介入執行,執行的結果就是流量被直接通過 dev_forward_skb()  forward 給了另外一個同樣位于 host network ns 端的 veth (如圖 11 箭頭所指的那個 veth),當然對這個 veth 而言,它會扮演 Egress 角色。

這個過程也可以用下面這樣的函數調用層次圖來表示。

pkt -> NIC -> TC ingress -> handle_ing()
|-verdict = tc_classify() // exec BPF code
| |-bpf_redirect() // return verdict
|
|-switch (verdict) {
case TC_ACK_REDIRECT:
skb_do_redirect() // to the target net device
|-if ingress:
| dev_forward_skb()
|-else:
dev_queue_xmit()


下面是網易輕舟的一篇文章里面所附的圖。它畫出了網易輕舟基于 Cilium 網絡方案的探索和實踐細節,包括跨節點 Pod 間通信、同節點 Pod 間通信、Pod 訪問外網等各類常見的場景。

圖中  cilium_net/cilium_host? 是一對 veth pair ,它們在 Kernel 4.19? + Cilium ?1.8? 部署中已經沒什么作用了(事實上社區在考慮去掉它們)。

我想有了上面所有的鋪墊和知識,至少對標號 ① ② 所示的流程,你應該能看得懂了。

圖片

圖 12


6、總結

文末,二哥來做個小總結:

  1. 對于網卡而言,無論它是物理的還是虛擬的,對于 Ingress 角色,它是首先觸碰到數據的人,而對于 Egress 角色,它是最后一個碰到數據的人。
  2. 對于 Ingress 過程,無論是物理網卡還是虛擬網卡,在它接收到數據后,總是通過 ksoftirqd/x 進行網絡棧下半部分處理。
  3. 對于 Egress 過程,無論是物理網卡還是虛擬網卡,在它從鏈路層那里拿到數據后,總是通過網卡驅動程序將數據送離本設備。
  4. ?Ingress 過程和 Egress 過程在內核中的處理路徑完全不同,也更無對稱可言。
  5. 對于 veth ,無論是搭配 bridge 還是用于 host-gateway 場景,在數據流經過的關鍵位置區分是 Ingress 還是 Egress ,有助于理解系統對數據流的處理行為。
  6. tc eBPF 強依賴 Ingress 和 Egress,理解了它們也才能更好地理解 bpf_redirect() 。
責任編輯:姜華 來源: 二哥聊云原生
相關推薦

2022-03-03 08:42:10

NodePortServiceKubernetes

2022-03-15 08:36:34

NginxKubernetesIngress

2023-11-20 07:19:33

2022-08-12 09:00:00

網絡安全職業角色

2021-07-11 12:12:49

.NETJWTjson

2009-07-31 18:37:45

ASP.NET MVC

2020-10-08 15:15:45

智能

2021-03-18 09:07:20

Nginx原理實踐

2016-08-05 13:01:41

混合云

2013-03-25 10:37:24

2016-11-11 00:33:25

雙重檢查鎖定延遲初始化線程

2016-08-31 09:56:58

云計算

2009-04-24 09:43:09

.NETASP.NET框架

2009-06-18 09:56:44

ADO.NET對象模型

2009-03-26 10:11:47

2021-06-07 13:53:38

ServiceIngressKubernetes

2009-07-29 17:31:00

2021-10-22 21:39:11

InspectorV8 JS

2009-12-22 13:55:41

ASP.NETWebService

2009-11-10 16:55:05

VB.NET調用API
點贊
收藏

51CTO技術棧公眾號

亚洲性xxxx| 色噜噜狠狠成人网p站| 国产精品乱码视频| 久久久久久在线观看| 日韩在线视屏| 亚洲第一天堂av| 午夜在线观看av| 国内在线视频| 中文无字幕一区二区三区| 99中文字幕| 中文字幕第99页| 亚洲日本欧美| 日韩最新av在线| 噜噜噜在线视频| 久久一级大片| 欧洲一区二区av| 日韩精品在线视频免费观看| aaa在线观看| 99精品桃花视频在线观看| 国产欧美精品一区二区三区介绍| 日韩伦理在线视频| 亚洲精品tv久久久久久久久久| 日韩av在线导航| 九九久久久久久| 中文字幕人妻一区二区三区视频| 久久久久亚洲| 国产亚洲综合久久| 久久人人妻人人人人妻性色av| 成人国产精品久久| 在线视频国内自拍亚洲视频| 精品无码国产一区二区三区av| 日韩免费啪啪| 欧美激情综合在线| 蜜桃视频在线观看91| 亚洲国产精品久久久久久6q| 久草热8精品视频在线观看| 欧美中文字幕在线| 日韩精品久久久久久久| 狠狠干综合网| 欧美成年人视频网站| 国产综合精品久久久久成人av| 青青一区二区| 精品久久人人做人人爰| 四川一级毛毛片| 亚洲精品tv| 欧美日韩精品电影| 视频二区在线播放| 免费在线观看一区| 在线观看成人免费视频| 精品久久久久av| 人人鲁人人莫人人爱精品| 岛国av一区二区三区| 少妇av一区二区三区无码| a'aaa级片在线观看| 亚洲一级片在线观看| 日韩一二区视频| www在线免费观看视频| 日韩一区在线免费观看| 在线观看福利一区| 老司机免费在线视频| 亚洲欧美一区二区三区孕妇| 在线视频欧美一区| 成人免费看片| 一区二区在线观看不卡| 国产精品自拍合集| 国产高清自产拍av在线| 五月天丁香久久| 人妻熟女一二三区夜夜爱| 在线看欧美视频| 欧美日韩国产一二三| 在线观看免费av网址| 精品国产伦一区二区三区观看说明 | 狠狠色狠狠色综合人人| 天天操天天干天天舔| 91在线高清观看| 日韩一区不卡| 巨大荫蒂视频欧美另类大| 亚洲精品少妇30p| 免费一级淫片aaa片毛片a级| 午夜影院一区| 欧美午夜一区二区三区免费大片| 911福利视频| 一区二区三区在线免费看| 亚洲成人黄色在线观看| 一区二区三区四区免费| 婷婷精品进入| 韩国19禁主播vip福利视频| 99re这里只有精品在线| 国内久久精品视频| 狠狠色伊人亚洲综合网站色| 成人精品福利| 亚洲国产精品久久艾草纯爱| 亚洲精品乱码久久久久久自慰| xxxxx.日韩| 欧美精品一区二区三区久久久 | 欧美又大又粗又长| 在线免费看av片| 成人免费黄色在线| 亚洲v欧美v另类v综合v日韩v| 五月花成人网| 欧美色电影在线| 亚洲熟女一区二区| 久久性感美女视频| 91精品91久久久久久| 一级α片免费看刺激高潮视频| 成人免费三级在线| 在线视频欧美一区| 国产伦精品一区二区三区视频金莲| 欧美精品少妇一区二区三区| 国产十八熟妇av成人一区| 91亚洲一区| 欧洲一区二区视频| 亚洲第一天堂影院| 国产精品美女一区二区三区 | 精品国产伦一区二区三区观看体验 | 不卡av中文字幕| 国产日韩亚洲欧美综合| 免费视频爱爱太爽了| 国产一区影院| 亚洲片在线资源| 国产网址在线观看| 国产中文字幕一区| 亚洲精品欧美精品| japanese23hdxxxx日韩| 精品久久一二三区| 青青草在线观看视频| 久久97超碰国产精品超碰| 免费观看国产成人| 川上优av中文字幕一区二区| 欧美一区二区二区| 国内毛片毛片毛片毛片毛片| 日韩avvvv在线播放| 欧美黑人3p| 1区2区在线| 精品日韩99亚洲| 国产精品白嫩白嫩大学美女| 美女网站色91| 一本一道久久久a久久久精品91| 成人免费直播| 亚洲欧美在线免费| 在线观看日本网站| 久久久久久免费毛片精品| 欧美精品99久久| 久久精品国产亚洲blacked| 欧美激情亚洲精品| 亚洲av无码国产精品久久不卡 | 色婷婷av国产精品| 99久久综合国产精品| 国产日本在线播放| 欧美日韩导航| 日本sm极度另类视频| 日本中文字幕一区二区有码在线 | 加勒比视频一区| 欧美激情中文字幕在线| 丰满人妻一区二区| 精品高清一区二区三区| 97人妻天天摸天天爽天天| 亚洲欧美日韩国产一区二区| 欧美精品欧美精品系列c| 周于希免费高清在线观看| 亚洲欧美日韩精品| 中文字幕黄色av| 亚洲图片激情小说| www.四虎精品| 久久激情一区| 一区在线电影| 亚洲天堂中文字幕在线观看| 欧美极品少妇xxxxx| 五十路在线观看| 91福利在线播放| 天天鲁一鲁摸一摸爽一爽| 国产精品主播直播| 午夜精品久久久久久久无码| 亚洲瘦老头同性70tv| 国产精品精品视频| 日本三级在线观看网站| 日韩电影免费观看中文字幕| 手机看片久久久| 亚洲欧洲一区二区三区| 成年女人免费视频| 日韩国产欧美一区二区三区| 中文字幕精品—区二区日日骚| 欧美成人精品午夜一区二区| 欧美一级视频在线观看| 自拍视频在线免费观看| 精品人在线二区三区| 精品人妻一区二区三区潮喷在线 | 国产一级黄色av| 91网站在线观看视频| 日韩一级理论片| 欧美一区免费| 欧美中文字幕一区| 99久久国产综合精品女不卡| 久久精品人人做人人爽电影| 午夜精品成人av| 久久久99免费视频| 天堂av在线播放| 欧美日韩高清一区二区| 国产在线视频第一页| 国产欧美日韩在线观看| 伊人五月天婷婷| 久久精品女人| 性欧美videos| 国产一区 二区| 久久久久久国产精品三级玉女聊斋| 日本黄色一区二区三区| 欧美日韩一区二区三区视频| 久久黄色免费视频| 国产欧美一区二区三区网站 | 韩国女同性做爰三级| 国产一区二区导航在线播放| 欧美日韩一区二区在线免费观看| 亚洲欧美综合久久久| 日韩国产欧美一区| 精品国产乱子伦| baoyu135国产精品免费| 日韩av不卡在线| 欧美性猛片xxxxx免费中国| 夜夜躁日日躁狠狠久久88av| 污污视频在线免费看| 日韩欧美一区中文| 一区二区视频免费| 一本大道久久a久久综合婷婷| 欧美黄色免费观看| 亚洲三级视频在线观看| 精品手机在线视频| 久久影院电视剧免费观看| 亚洲最大视频网| 国产一区视频在线看| 色综合天天色综合| 日韩在线观看一区二区| 亚洲不卡中文字幕无码| 国产精品mm| 日本xxx免费| 888久久久| 亚洲免费av网| 99精品在线| 一区二区国产日产| 欧美成人直播| 亚洲午夜久久久影院伊人| 欧美日韩伦理| 视频一区不卡| 久久成人综合| 色呦呦网站入口| 国产精品久久久乱弄 | 91亚洲国产成人久久精品网站 | 久久精品一区二区国产| 日韩黄色片视频| 久久中文在线| 欧美精品aaaa| 美女在线视频一区| 在线播放免费视频| 国产91精品在线观看| 乱码一区二区三区| 91在线视频网址| 瑟瑟视频在线观看| 欧美国产日韩a欧美在线观看 | 天天操天天操天天操| 亚洲国产精品va在线看黑人| 无码国产伦一区二区三区视频 | 精品国产凹凸成av人导航| 亚洲免费视频网| 日韩av网址在线观看| 国产区在线视频| 精品激情国产视频| 曰本三级在线| 欧美一级视频在线观看| 久久99国产精品二区高清软件| 成人性生交xxxxx网站| 久久人妻无码一区二区| 欧美偷拍自拍| 熟女熟妇伦久久影院毛片一区二区| 一区二区不卡| 亚洲人成无码网站久久99热国产| 国产伦理一区| 亚洲最大成人在线观看| 国产精品1024| 黄瓜视频污在线观看| 国产精品久久精品日日| h色网站在线观看| 亚洲成人动漫av| 艳妇乳肉豪妇荡乳av无码福利| 91精品国产乱| 三区在线视频| 久久国产精品久久精品| 天堂av中文在线观看| 国产一区香蕉久久| 加勒比色综合久久久久久久久| 视频一区视频二区视频三区高| 亚洲大全视频| 精品国产成人av在线免| 国产精品123| 日本黄色小视频在线观看| 一区二区三区日韩精品视频| 国产又大又黄又粗| 91精品国产品国语在线不卡| 瑟瑟在线观看| 九九热这里只有精品6| 伊人久久高清| 国产一区二区精品在线| 欧美韩日一区| 免费在线a视频| 国产精品一二三四| 在线观看国产精品一区| 亚洲福利视频三区| 一级黄色片免费| 亚洲女人天堂成人av在线| 午夜小视频福利在线观看| 国产精品久久久久高潮| 色橹橹欧美在线观看视频高清| 黄色录像特级片| 免费成人美女在线观看| 丰满少妇一区二区三区| 一区二区三区欧美亚洲| 亚洲图片中文字幕| 日韩精品欧美国产精品忘忧草 | 欧美网站在线| 一区二区免费av| 国产婷婷色一区二区三区四区| 日韩免费一二三区| 欧美一区二区三区公司| 91caoporm在线视频| 国产ts人妖一区二区三区| 精品国产影院| 精品无码国产一区二区三区av| 国产精选一区二区三区| 四虎地址8848| 欧美日韩一二三区| 阿v免费在线观看| 国产成人亚洲综合| 美日韩中文字幕| 成人免费在线小视频| 成人av在线观| 国产精品18p| 亚洲成人网在线观看| 黄色小说在线播放| 国产视频99| 国产精品久久久亚洲一区| 国产精品无码在线| 五月天欧美精品| 天天影院图片亚洲| 秋霞午夜一区二区| 精品一区av| 久久精品影视大全| 国产精品免费久久| 国产区精品在线| 欧美高清自拍一区| 国产精品白丝av嫩草影院| 精品国偷自产一区二区三区| jiyouzz国产精品久久| 好看的av在线| 亚洲社区在线观看| 国产综合色激情| 18视频在线观看娇喘| 国产激情精品久久久第一区二区 | 噜噜爱69成人精品| 黄色片在线观看免费| 欧美日韩一区二区三区免费看| 国产日产一区二区三区| 成人毛片网站| 国产精品久久久免费| 黄色三级生活片| 91精品一区二区三区久久久久久| 啪啪免费视频一区| 韩国成人一区| 秋霞电影网一区二区| 欧美色图17p| 日韩一区二区在线观看视频| 99爱在线视频| 日韩精品一区二区三区丰满 | 色婷婷免费视频| 色婷婷国产精品久久包臀| 91xxx在线观看| 成人区精品一区二区| 麻豆成人精品| 情侣偷拍对白清晰饥渴难耐| 日韩三级在线免费观看| 日韩伦理精品| 一区二区三区四区五区视频| 国产成人精品免费网站| 国产免费av一区| 一区二区三区 在线观看视| 精品国模一区二区三区欧美 | 在线观看成人一级片| 成人高清在线视频| 国产情侣呻吟对白高潮| 久久91精品国产91久久跳| 亚洲精品国模| 亚洲自拍第三页| 色先锋aa成人| 日韩经典av| 日韩久久精品一区二区三区| 国产精品1区二区.| 成人黄色免费网| 午夜精品一区二区三区视频免费看| 精品久久综合| 免费的av网站| 欧美一卡二卡在线观看| 色天使综合视频| 国产av麻豆mag剧集|