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

對云原生集群網絡流量可觀測性的一點思考

云計算 云原生
那么容器網絡的復雜度到底在哪里?如何更好的去適配容器網絡?這里筆者結合在工作實踐中的一些積累,在本文中給出一些關于云原生集群網絡流量可觀測性的一點思考,希望能起到拋磚引玉的效果。

問題背景

在云原生技術的廣泛普及和實施過程中,筆者接觸到的很多用戶需求里都涉及到對云原生集群的可觀測性要求。實現集群的可觀測性,是進行集群安全防護的前提條件。而在可觀測性的需求中,集群中容器和容器之間網絡流量的可觀測性需求是其中一個比較重要的部分。對于容器網絡的流量采集,其實施難度是大于傳統主機網絡的流量采集的。

那么容器網絡的復雜度到底在哪里?如何更好的去適配容器網絡?這里筆者結合在工作實踐中的一些積累,在本文中給出一些關于云原生集群網絡流量可觀測性的一點思考,希望能起到拋磚引玉的效果。

CNI 插件

目前在云隙(自適應微隔離)產品云原生場景適配的過程中,已經遇到過如下的一些 CNI 插件:

Flannel—— 默認為 Vxlan 的分布式網關模式,可選擇 host-gw 模式,也可以選擇 udp 模式(早已被淘汰的一種模式)

Calico—— 默認的 BGP 模式,使用 IPIP 隧道進行跨節點容器間數據的轉發,當然也可以不用 IPIP 隧道模式(類似于 Flannel 的 host-gw 模式)

Openshift-SDN—— 基于 Openvswitch 技術,是一套基于 SDN 技術的網絡方案

OVN-Kubernetes—— 基于 Openvswitch 中的 OVN 方案,其實和 Openshift-SDN 是差不多類似的體系,只是在架構和細節上做了更多的云原生優化

現有問題

上述幾類插件是大多數云原生環境中常見的 CNI 插件,并且它們本身也涵蓋了容器間網絡所使用的大部分技術。而在對以這幾類 CNI 插件基礎的容器網絡進行流量信息采集的過程中,筆者發現并不能用一種模式完成所有的采集功能。例如在有的 CNI 插件中,我們需要把宿主機當作一個網絡中轉設備,在主機上利用旁路的方式檢測容器網絡流量的變化情況;而在有的 CNI 插件中,我們沒法在宿主機上直接觀察到任何容器網絡的流量信息,需要進入到容器的網絡命名空間中去完成采集工作;甚至在有的 CNI 插件中,我們無法抓到兩個容器之間的直接訪問關系,必須要配合這個 CNI 插件本身實現的技術原理,通過更多的分析來完成對訪問關系的確定。

所以,在進行容器網絡流量的可觀測性方案實施之前,需要對相關 CNI 插件做進一步的分析,來幫助理解為什么不同的 CNI 插件兼容適配的要求會有不同。

插件分析

Flannel 插件的原理

Flannel 是 CoreOS 團隊針對 Kubernetes 設計的一個覆蓋網絡(Overlay Network)CNI 插件。它可以配置為很多種工作模式,目前默認的工作模式是 Vxlan,是一個虛擬的二層網絡。

組件概述

npHfHJch_5RUn.png

圖1

Flannel 是以 DaemonSet 的方式部署在 Kubernetes 集群中。一個完整的 Flannel 架構中包含了如下的一些組件:

etcd—— 這是 Flannel 所依賴的配置中心,每個節點上的 flanneld 都會依賴這個 etcd 組件來實現協調和同步。在一般的部署方案中,這個 etcd 是直接復用的 Kubernetes 控制層平面的 etcd 組件,所以一般也沒有單獨部署。

flanneld—— 每一個宿主機節點之上都會啟動一個 flanneld 服務,目前默認是基于 Vxlan 的配置工作模式,在這種模式和 host-gw 模式下,flanneld 都主要承擔了一個旁路配置管理的工作。而在 UDP 模式下,flanneld 還要承擔數據的轉發工作,由于該方案本身有嚴重的性能問題。所以早已被放棄不用。

網絡模式概述

總的來說,Flannel 是一個二層的網絡解決方案。就其默認的 Vxlan 工作模式來說,可以看作是應用 Vxlan 的分布式網關架構組建了一個二層的通信網絡。在這種架構下,宿主機中的虛擬網卡 flannel.1 可以看作是一個作為 Vxlan 二層網關和三層網關的 leaf 節點,而宿主機本身的網卡則可以看作是用于轉發的 spine 節點。

runJZtQZ_JwAx.png

圖2

在這種網絡環境下,跨界點的容器通信在接收端其實是無法直接抓到來自于發送端的 IP 地址的,因為在三層轉發的時候,發送端的 IP 就已經被替換為了網關的地址。如果從旁路的角度來看,宿主機上也無法直接觀察到容器間流量。如果能觀察到,一般都是節點自身兩個容器之間的連接,因為它們本身處于一個二層網絡中。同時,在這種環境中,如果使用 SideCar 模式去容器網絡命名空間下進行觀測,也會發現由于這個虛擬二層網絡本身存在三層轉發的網關,我們依然無法直接采集到兩個容器之間的連接關系。

如果是 host-gw 模式,那么宿主機就會被純粹配置一個三層轉發的網關,雖然不走 Vxlan 這樣的隧道了,但是由于三層轉發的存在,我們依然無法直接觀測到跨節點容器通信的網絡關系。

綜上所述,在觀測基于 Flannel 的網絡流量之時,一定要結合 Flannel 的架構本身,將三層網關的轉發特性考慮到網絡連接關系的梳理過程之中,才能真正地梳理出實際的連接關系。這樣的網絡架構,也是網絡流量觀察的一個難點。

Calico 插件的原理

Calico 是一套開源的網絡和網絡安全方案,用于容器、虛擬機、宿主機之間的網絡連接,可以用在kubernetes、OpenShift、DockerEE、OpenStrack 等 PaaS 或 IaaS 平臺上

組件概述

XcFxV5Nn_Rxqe.png

圖3

Felix—— Calico 的核心組件,運行在每個節點上。主要的功能有接口管理、路由規則、ACL 規則和狀態報告

ETCD—— 保證數據一致性的數據庫,存儲集群中節點的所有路由信息。為保證數據的可靠和容錯建議至少三個以上 ETCD 節點

Orchestrator Plugin—— 協調器插件負責允許 Kubernetes 或 OpenStack 等原生云平臺方便管理 Calico,可以通過各自的 API 來配置 Calico 網絡實現無縫集成。如 Kubernetes 的 CNI 網絡插件

Bird—— BGP 客戶端,Calico 在每個節點上的都會部署一個 BGP 客戶端,它的作用是將 Felix 的路由信息讀入內核,并通過 BGP 協議在集群中分發。當 Felix 將路由插入到 Linux 內核 FIB 中時,BGP 客戶端將獲取這些路由并將它們分發到部署中的其他節點。這可以確保在部署時有效地路由流量

BGP Router Reflector—— 大型網絡僅僅使用 BGP Client 形成 Mesh 全網互聯的方案就會導致規模限制,所有節點需要“N的平方”個連接,為了解決這個規模問題,可以采用 BGP 的 Router Reflector 的方法,使所有 BGP Client 僅與特定 RR 節點互聯并做路由同步,從而大大減少連接數

Calicoctl—— Calico 命令行管理工具

網絡模式概述

Calico 使用的是 BGP 協議來構建容器間網絡,簡單來理解就是將集群間的節點當作邊界路由來實現整個網絡的互通。BGP 協議之下,每一個節點上的所有容器被當作了一個 AS(自治系統),而不同的節點之間,則通過 BGP 服務來進行路由轉發實現連通。實際上,Calico 項目提供的 BGP 網絡解決方案,與 Flannel 的 Host-GW 模式幾乎一樣。不同之處在于 Calico 基于路由表實現容器數據包轉發,而 Flannel 則使用 flanneld 進程維護路由信息。這里區別在于 flanneld 會介入到路由的轉發過程中,導致實際的容器之間通信看起來如同中間會有一個 NAT 服務器的轉換(這樣的情況下,旁路模式無法直接獲取兩個容器之間的流量連接關系,需要做一定的推導)。Calico 則是基于內核自己的 BGP 路由轉發,本質上還是容器之間原始數據包的投遞,所以在宿主機節點上,可以旁路采集到整個容器之間的流量關系。

Calico 為了適配三層網絡上運行容器間網絡,還增加了對 IPIP 隧道模式的支持。這種模式下,BGP 協議轉發的容器網絡數據包,會通過內核的 IPIP 模塊進行封裝然后進行宿主機網絡的傳送。但是本質上,還是容器和容器 之間的原始通信數據包的傳遞,沒有像 Flannel 那樣在跨界點的時候會使用節點 IP 來替換數據包本身發送端的 IP 地址。

Calico 為了靈活適配不同的集群網絡規模,提供了全互聯模式(Node-to-Node Mesh)和路由反射模式(Router Reflection 簡稱 RR)。其中全互聯模式適用于小規模集群節點,其本身結構簡單,易于實現。但是缺點在于 BGP 的連接總數是 “N的平方” ,其中 N 是節點數,在節點增長的情況下,連接數增長會極快帶來巨大的網絡損耗。而路由反射模式則指定一個或多個 BGP Speaker 為 RouterReflection,這樣就減少了連接總數。不過這種架構實現起來更加的復雜,同時對于作為 BGP Speaker 的節點也有更高的要求,適合大型集群的網絡規劃。

Openshift-SDN 插件的原理

Openshift-SDN 是紅帽推出的一款容器集群網絡方案,是部署 Openshift 時默認使用的網絡方案??梢酝ㄟ^ oc get Network.config.openshift.io cluster -o yaml 命令來查看當前環境使用 CNI 插件。

組件概述

TNwVIV6D_FcHq.png

圖4

一套 Openshift-SDN 包含了管控面和數據面:

CTRL—— 管控面,是一套 Deployment,用于自動化地給每個節點分配網段,并記錄到 CRD 中

Node—— 數據面,是一套 DaemonSet,用于根據 CRD 變化,構建節點網絡數據面。包括路由、網卡、流表、IPTABLES 規則

就具體組件來說,主要由 Controller、Agent 以及 CNI 的幾個部分構成,它們各自負責的主要內容包括:

1. Controller

負責配置集群級別的容器 CIDR,對應 Openshift-SDN 的 CRD :clusterNetwork

給新加入的 Node 分配子段,對應 Openshift-SDN 的 CRD :hostSubnet

觀察k8s集群中 namespace、networkpolicy 等對象的變更,同步地更新 Openshift-SDN 的 CRD :netnamespaces、egressnetworkpolicies(專門針對出站的networkpolicy)

2. Agent

每次啟動時獲取集群 clusterNetwork,與本地流表做對比,當發現有出入,就會重新配置本地的集群網絡流表、節點上的路由、以及 IPTABLES 規則

觀察集群中 Openshift-SDN 的 CRD :hostSubnet 的變化,配置到達其他 Node 的流表

觀察集群中 Openshift-SDN 的 CRD :netnamespaces、egressnetworkpolicies 的變化,配置相應的租戶隔離和出站限制的流表

生成節點上的 CNI 二進制文件,并提供 IP 分配功能

針對本節點的每個容器,配置對應的流表

3. CNI

負責被 kubelet 調用,以進行容器網絡的配置和解除

會向 Agent 申請和釋放 IP

會配置容器內部的IP和路由

網絡模式概述

一言蔽之,Openshift-SDN 就是構建了一套容器間的大二層網絡(虛擬二層中沒有三層轉發)。所有容器的 IP 都屬于一個虛擬的 L2 中,他們彼此可以互相通過 ARP 請求確認對方物理地址,并進行正常的網絡發包。不管是 ARP 包還是普通的 IP 包,都會被 ovs 流處理并進行必要的封裝。

就實際的鏈路來看,在使用 Openshift-SDN 的時候,主要會有如下幾種情況:

  • 同節點的容器與容器訪問 :包從客戶端容器的 Veth,到宿主機的 ovs 網橋,直接到達對端容器的 Veth
  • 跨節點的容器與容器訪問 :包從客戶端容器的 Veth,到宿主機的 ovs 網橋,走 vxlan0 端口封裝后,經過宿主機的協議棧,從宿主機的物理網卡發出,到對端容器所在宿主機的物理網卡,被識別為 Vxlan,進入對端機器的 ovs 網橋,然后到對端容器的 Veth
  • 容器訪問 Node :包從客戶端容器的 Veth,到宿主機 ovs 網橋,因為 Node 的物理網卡 IP 與容器的網絡不在一個平面,所以直接走內部流表 Table100,然后從 tun0 口發出,經過宿主機的協議棧,進行路由轉發,最后走宿主機所在的網絡到達某個 Node 的物理網卡
  • Node 訪問本節點的容器 :根據宿主機的路由,包從 tun0 發出,進入宿主機的 ovs 網橋,送達對端容器的Veth
  • 容器訪問 Service :包從客戶端容器的 Veth,到宿主機 ovs 網橋,從 tun0 發出,經過宿主機協議棧,受 IPTABLES 規則做了 DNAT 和 MASQUERADE,至此變成了 Node 訪問其他節點的容器
  • Service 的后端回包給容器:因為上一步,容器訪問 Service 時,做了 MASQUERADE,所以 Service 后端會認為是某個 Node 訪問了自己,回包給客戶端容器所在的 Node,Node 上收到后對照 Conntrack 表,確認是之前連接的響應包,于是對包的源地址和目的地址做了修改(對應之前做的 DNAT 和 MASQUERADE),變成了 ServiceIP 訪問客戶端容器的包。根據 Node 上的路由,走 tun0,進入 ovs 網橋后,直接送到容器的 Veth

這里可以看到,Openshift-SDN 設計是實現了純虛擬二層網絡,這個和 Flannel 使用 Vxlan 來實現容器間網絡有一些不一樣。Openshift-SDN 實現的純虛擬二層網絡是一個完整的二層網絡,相對于 flanneld 還要維護一個自定義的路由表帶來的容器之間無法捕獲到完整的連接關系不同,在 Openshift-SDN 中容器之間的通信是完整的原始數據包流轉。

但是由于使用隧道網絡協議,在宿主機上無法通過旁路的方式直接看到隧道內的網絡拓撲關系。所以,這里需要在同步到容器的內部網絡命名空間中進行采集,才能夠有效的完成集群網絡的可觀測性功能的實現。

OVN-Kubernetes 插件的原理

OVN 是基于 OVS 實現到一套網絡方案,可以虛擬出二層和三層網絡。本質來說和 Openshift-SDN 的技術原理是一致的。但是這是 OVS 提供的原生虛擬化網絡方案,旨在解決傳統 SDN 架構(比如 Neutron DVR)的性能問題。對于 Openshift 本身來說,也解決了 Openshift-SDN 對 NetworkPolicy 支持不完整的問題。

組件概述

bmOPZDOQ_SH2a.png

圖5

  • northbound database —— 存儲邏輯交換機、路由器、ACL、端口等的信息,目前基于 ovsdb-server,未來可能會支持 etcd v3
  • ovn-northd —— 集中式控制器,負責把 northbound database 數據分發到各個 ovn-controller
  • ovn-controller —— 運行在每臺機器上的本地 SDN 控制器
  • southbound database —— 基于ovsdb-server(未來可能會支持etcd v3),包含三類數據:物理網絡數據,比如 VM 的 IP 地址和隧道封裝格式;邏輯網絡數據,比如報文轉發方式;物理網絡和邏輯網絡的綁定關系

如果以 Kubernetes 中的部署形式來看,它主要分為如下幾個組件:

  • ovnkube-db deployment(包含 nb-ovsdb, sb-ovsdb 兩個容器) —— 顧名思義,部署的是ovn 的兩個 db
  • ovnkube-master deployment(包含 ovn-northd, nbctl-daemon, ovnkube-master 三個容器) —— 用來初始化 master 節點,并監聽集群中對象的變化對 ovn 網絡進行相應的配置;運行一個 cni 二進制的 http 服務器,相應 cmdAdd 和 cmdDel
  • ovnkube daemonset for nodes(ovs-daemons,ovn-controller,ovnkube-node) —— 每臺 node 上的守護進程,初始化 node
  • ovn-k8s-overlay —— CNI plugin 二進制,當 POD 創建/銷毀的時候,會被 kubelet 調用

網絡模式概述

OVN-Kubernetes 主要使用的是 overlay 模式,這種模式下 OVN 通過 logical overlay network 連接所有節點的容器。

rbnUEJLy_8MaW.png

圖6

從本質來說,OVN-Kubernetes 和 Openshift-SDN 的運行原理都是一致的,都是基于 OVS 構建的一個容器的大二層網絡。OVN-Kubernetes 重要的改進點在于其本身對于云原生場景的適配上。重點在于兼容 Kubernetes 以及將容器、Service 網絡全部替換為基于 OVN 體系之上的實現。

  • OVN-Kubernetes 使用 Geneve 協議來作為隧道網絡的通信協議,這點不同于 Openshift-SDN 使用 VXlan 來在節點間創建網絡。所以,在使用上還需要注意一些限制:
  • OVN-Kubernetes 不支持設置一個 Kubernetes service 為 local 的外部流量策略或內部流量策略。默認值是 cluster。這個限制能影響你當添加一個 LoadBalancer、NodePort 或一個帶有 external IP 的 service
  • sessionAffinityConfig.clientIP.timeoutSeconds service 在一個 OVN-Kuberntes 環境中沒有作用,但是在 Openshift-SDN 中有用。這個是兩個插件之間不兼容的一個地方。
  • 對于雙棧網絡的集群,IPV4 和 IPV6 流量必須使用同樣的網絡接口作為默認網關。如果達不到這個要求,ovnkube-node DaemonSet 中的 POD 在這個主機上會進入 CrashLoopBackOff 狀態。所以必須要配置主機支持雙棧網絡的配置。

總的來說,就流量觀測上 OVN-Kubernetes 和 Openshift-SDN 的方案都是類似的,要直接同步到容器的網絡命名空間中進行觀測,這里也要肯定 SDN 架構確實相對于傳統的虛擬局域網架構進一步簡化虛擬網絡層本身的復雜度,為容器網絡流量的可觀測性掃清了三層轉發這一攔路虎,有助簡化流量可觀測性的設計思路。

總結

目前,在云原生的場景下,非軟件行業大型企業用戶多傾向于選擇功能豐富、有完善技術支持的商業產品 Openshift 來實現自己的云原生數據中心的搭建。這樣的環境中,容器網絡流量觀測工具要想做到功能的適配,要么是深度對接 OVS 的技術架構,通過其本身的底層實現原理來做數據分析,得到網絡拓撲。要么就是拋開宿主機層面的網絡架構復雜性,直接進入到容器的二層網絡中做數據的搜集。

在一些偏軟件行業的企業用戶中,自研云原生環境也是有很多的。這類環境中,大多采用開源的軟件組件構建自己的基礎設施。而在這些環境中,大多數企業會選擇 Calico 來實現自己的容器間網絡。相對于復雜的 OVS 等虛擬化網絡解決方案,Calico 提供的 BGP + IPIP 方案也滿足了 Kubernetes 本身對于容器間網絡的基本連接要求。在夠用的情況下,這類用戶會采用更加簡單的架構來實現自己的環境,所以 Calico 這類方案也得到了廣泛的應用。類似 Calico 的網絡方案,更多的考慮的是利用主機本身提供的網絡能力,所以在主機上往往可以直接捕獲到容器間的通信流量??梢栽谥鳈C網絡流量搜集工具的基礎上稍加改造來支持對容器間網絡拓撲關系的采集。

理論來說,類 SideCar 的模式來采集容器網絡幾乎可以適配大部分的網絡插件下容器與容器之間的網絡拓撲采集。但是依然會有一些特例,比如在容器網絡中實現了三層轉發方案的插件(比如 Flannel,通過配置 Vxlan 的二層轉發和三層轉發來實現了一個二層網絡;或者類似于 Calico 不帶 IPIP 隧道模式以及 Flannel 的 host-gw 模式,本質也是類似于將主機直接當作三層轉發網關實現的二層網絡)。這樣的容器網絡,無論是旁路模式還是 SideCar 模式,都無法直接搜集到兩個容器之間的連接關系,所以在這個基礎上通過合理的適配網絡架構的特點進行相應的網絡流量關系二次分析是可觀測性在這些架構上正確工作的一個重要思路。

當然,隨著 Linux 內核自身可觀測性功能的不斷發展。相信未來會有更多優秀的方案,甚至可能會出現一種更加通用的方案來實現對不同網絡架構下的容器間網絡的流量觀測。

責任編輯:武曉燕 來源: FreeBuf.COM
相關推薦

2023-10-26 08:47:30

云原生數據采集

2023-09-20 16:11:32

云原生分布式系統

2023-11-27 10:18:05

工業4.0物聯網

2022-05-24 13:47:11

云原生數據分辨率

2023-08-07 08:48:13

2022-09-08 10:08:31

阿里云可觀測云原生

2014-09-17 10:30:25

代碼

2021-06-23 10:00:46

eBPFKubernetesLinux

2024-01-15 05:55:33

2023-05-18 22:44:09

2021-05-17 11:47:41

多租戶系統私有化

2023-10-13 13:40:29

2022-03-24 17:56:51

數據平臺觀測

2024-05-28 09:37:48

2023-08-21 09:37:57

MySQL工具MariaDB

2023-03-09 08:00:22

點贊
收藏

51CTO技術棧公眾號

哺乳一区二区三区中文视频| 黄网站在线免费看| 久久蜜桃精品| 日韩有码片在线观看| avtt中文字幕| 中文字幕av一区二区三区佐山爱| 中文字幕精品一区二区三区精品| 91亚洲va在线va天堂va国| 九九热国产视频| 日韩久久精品| 亚洲第一视频网站| 在线观看国产中文字幕| 宅男66日本亚洲欧美视频| 师生出轨h灌满了1v1| 日本综合字幕| 夜夜嗨av一区二区三区| 亚洲bbw性色大片| 高清一区二区三区四区| 蜜臀久久99精品久久久画质超高清| 欧美精品免费看| 特级西西www444人体聚色| 亚洲精品a区| 欧美日韩一区二区三区在线看| 国产一级不卡视频| 精精国产xxxx视频在线| 国产女主播一区| 国产免费高清一区| 国产熟女一区二区丰满| 视频一区视频二区在线观看| 久久久久久久久电影| 日本高清不卡免费| 精品久久美女| 亚洲精品一区二区三区婷婷月| av在线网站免费观看| 亚洲日本网址| 色天天综合久久久久综合片| 亚洲人成无码网站久久99热国产 | www.日韩系列| 一级黄色性视频| 色狠狠久久av综合| 精品99久久久久久| 色诱av手机版| 亚洲码欧美码一区二区三区| 欧美日韩激情一区二区| 欧美日韩亚洲第一| 在线高清av| 欧美日韩免费一区| 1024av视频| 2019中文字幕在线电影免费| 亚洲久草在线视频| 亚洲国产精品女人| 精品自拍一区| 亚洲卡通动漫在线| 欧美大黑帍在线播放| 欧美理论片在线播放| 亚洲最色的网站| 黄色成人在线免费观看| 日本三级韩国三级欧美三级| 一区二区三区中文在线| 99久久久精品视频| 678在线观看视频| 亚洲一级电影视频| 伊人成色综合网| 26uuu亚洲电影| 91福利小视频| 天天影视色综合| 国产精品一站二站| 精品国产伦一区二区三区观看方式 | 国产在线观看www| 黄色成人在线免费| 播放灌醉水嫩大学生国内精品| 中文在线8资源库| 91成人在线免费观看| 手机在线看福利| 国产一区二区三区黄网站| 日韩精品影音先锋| 亚洲一区二区在线免费| 香蕉久久夜色精品国产使用方法 | 懂色一区二区三区av片| 亚洲欧美激情在线观看| 91视频国产资源| 日韩免费电影一区二区三区| 欧洲日本在线| 亚洲最色的网站| 国产成人无码av在线播放dvd| 国产精品伊人| 精品国产网站在线观看| 丰满少妇一区二区| 羞羞色午夜精品一区二区三区| 久久亚洲国产精品| 免费观看一区二区三区毛片| 久久中文在线| 亚洲xxxx做受欧美| 国产中文在线| 一区二区三区在线视频观看| 欧美成人xxxxx| 亚洲精品aaa| 日韩电影免费观看在线观看| 国产三级短视频| 亚洲精品偷拍| 国产区精品视频| 日韩在线视频第一页| 国产精品网曝门| 999一区二区三区| 欧美三级精品| 亚洲精品在线电影| 亚洲人与黑人屁股眼交| 99在线|亚洲一区二区| 成人亚洲激情网| 青青草免费在线| 一区二区三区四区在线| 亚洲人成无码www久久久| 一区二区三区四区高清视频| 国产午夜精品视频| 亚洲另类欧美日韩| 国产成人免费视频网站| 亚洲二区自拍| 天堂а√在线最新版中文在线| 欧美日韩国产综合一区二区三区| 国产 xxxx| 午夜日韩av| 国产欧美久久一区二区| 三级国产在线观看| 亚洲高清久久久| 伊人av在线播放| 天天揉久久久久亚洲精品| 国产成人久久精品| 香蕉久久国产av一区二区| 亚洲美女区一区| 一路向西2在线观看| 欧美人妖在线| 欧美性视频精品| 乱色精品无码一区二区国产盗| 国产精品美女久久久久久久网站| av片中文字幕| 亚洲人和日本人hd| 97av在线视频| 亚州精品国产精品乱码不99按摩| 亚洲综合精品久久| 国产91在线免费观看| 午夜欧美在线| 成人黄色免费片| 最新国产在线观看| 欧美在线看片a免费观看| 特大黑人巨人吊xxxx| 99热这里只有成人精品国产| 痴汉一区二区三区| 啊啊啊久久久| 日韩精品极品视频免费观看| 男人天堂中文字幕| 91丨porny丨中文| 日韩精品 欧美| 欧美一性一交| 日本精品性网站在线观看| 日本一卡二卡四卡精品| 欧美视频在线视频| 色哟哟精品观看| 日韩电影在线看| 亚洲欧美国产精品桃花| 欧美成人高清视频在线观看| 日韩一中文字幕| 精品国自产拍在线观看| 亚洲中国最大av网站| 国产伦精品一区二区免费| 日韩视频在线一区二区三区| 蜜桃狠狠色伊人亚洲综合网站| 老司机2019福利精品视频导航| 亚洲精品一区中文| 伊人久久中文字幕| 中文字幕综合网| 白丝校花扒腿让我c| 伊人精品成人久久综合软件| 久久国产精品一区二区三区| 美女网站视频一区| 久久亚洲影音av资源网| 亚洲精品一区二区三区四区| 欧美日韩国产一中文字不卡| xxxx日本黄色| 国产成人综合在线播放| 国产原创popny丨九色 | 亚洲欧美在线x视频| 波多野结衣高清在线| 国产精品黄色在线观看| 中文字幕制服丝袜| 日韩av一区二区三区四区| 亚洲国产一区二区三区在线 | 日韩1区2区日韩1区2区| 一区二区三区av| 国产精品任我爽爆在线播放| 国产精品∨欧美精品v日韩精品| 免费黄色在线看| 亚洲精品98久久久久久中文字幕| 中文字幕a级片| 夜夜揉揉日日人人青青一国产精品| 国产特黄级aaaaa片免| 国产一区二区美女诱惑| 凹凸国产熟女精品视频| 99久久精品网站| 久久久99国产精品免费| 9999精品免费视频| 136fldh精品导航福利| 欧美成人hd| 精品视频一区在线视频| 国产男女无套免费网站| 日韩欧美在线国产| 精品国产乱码久久久久久鸭王1| 久久综合久久鬼色| 任你躁av一区二区三区| 美女在线视频一区| 免费在线激情视频| 国产字幕视频一区二区| 亚洲激情电影在线| 中日韩免视频上线全都免费| 69堂成人精品视频免费| jizz亚洲女人高潮大叫| 91成人在线观看国产| 久草在线视频福利| 精品国产一区二区在线| 欧美挠脚心网站| 欧美精品一区二| 国产三级漂亮女教师| 在线观看一区不卡| 成人在线免费看视频| 亚洲资源中文字幕| 51精品免费网站| 国产精品欧美精品| 亚洲av熟女国产一区二区性色| fc2成人免费人成在线观看播放 | 99麻豆久久久国产精品免费优播| 久久精品国产露脸对白| 日韩专区欧美专区| 成人免费观看视频在线观看| 在线国产精品一区| 喜爱夜蒲2在线| 欧美影院一区| 特级西西444| 欧美在线网站| 激情六月天婷婷| 欧美xxx在线观看| 日本一级淫片演员| 五月综合激情| 国产盗摄视频在线观看| 99久久99久久精品国产片果冰| 日韩高清国产精品| 精品一区电影| 亚洲精品乱码久久久久久蜜桃91| 国产精品一区2区3区| 欧美精品一区二区视频| 日韩成人一级| 欧美亚洲另类久久综合| 久久91麻豆精品一区| 欧美大陆一区二区| 国产午夜一区| 亚洲春色在线| 亚洲欧美日韩高清在线| 久久免费一级片| 亚洲五月婷婷| 日韩欧美视频网站| 久久久夜精品| 青青青在线视频免费观看| 男男成人高潮片免费网站| 国内国产精品天干天干| 国产精品资源网站| 亚洲av成人精品一区二区三区| 成人成人成人在线视频| www.自拍偷拍| 中文字幕第一区二区| 永久av免费网站| 亚洲成人资源在线| 狠狠人妻久久久久久综合| 在线视频你懂得一区| 夜夜躁狠狠躁日日躁av| 欧美成人精品二区三区99精品| 婷婷视频在线观看| 亚洲天堂av高清| h片在线播放| 668精品在线视频| 久久人体av| 18+激情视频在线| www.色综合.com| 中文字幕一区二区人妻电影丶| 99久久久国产精品| 蜜桃av乱码一区二区三区| 亚洲欧美综合另类在线卡通| 免费一级全黄少妇性色生活片| 香蕉成人伊视频在线观看| 国产日韩欧美亚洲一区| 亚洲视频自拍| 成人精品一二区| 亚州精品视频| 中文字幕99| 一本久久综合| 日本高清久久久| 成人高清视频在线| 一级特黄a大片免费| 国产精品丝袜91| 激情五月色婷婷| 欧美肥妇毛茸茸| 色视频在线观看福利| 精品国产视频在线| 制服丝袜专区在线| 亚洲一区二区免费在线| 偷拍自拍一区| 成人国产在线看| 日本网站在线观看一区二区三区| 亚洲av无一区二区三区久久| 久久综合九色综合欧美98| 欧美性猛交xxxxx少妇| 色婷婷香蕉在线一区二区| 国产福利小视频| 中文字幕亚洲综合| 国产免费不卡| 国产经典一区二区三区| 99国产**精品****| 欧美韩国日本在线| 99热这里都是精品| 欧美做爰爽爽爽爽爽爽| 欧美性猛片xxxx免费看久爱| 日本高清视频免费看| 久久av红桃一区二区小说| 成人在线爆射| 欧美成人一区二区在线| 亚洲三级国产| 激情av中文字幕| 自拍偷拍国产精品| 亚洲视频在线观看一区二区 | 羞羞色国产精品| 精品视频一二| 亚洲综合网中心| 麻豆精品久久久| 无码少妇精品一区二区免费动态| 精品久久久久久久久久久久| 性少妇videosexfreexxx片| 久久久精品一区二区| 草民电影神马电影一区二区| 欧美精品一区在线| 香蕉久久a毛片| 国产精品无码永久免费不卡| 亚洲va欧美va天堂v国产综合| 精品人妻伦一区二区三区久久| 久久精品免费播放| 四虎国产精品免费久久| 亚洲永久激情精品| 麻豆久久久久久久| 亚洲一区电影在线观看| 欧美精品日日鲁夜夜添| a级影片在线| 91深夜福利视频| 欧美日韩国产一区精品一区| 制服下的诱惑暮生| 亚洲无人区一区| 天堂在线资源库| 国产成人av网址| 青青草成人影院| 欧美性猛交xxxx乱大交91| 亚洲免费在线看| 欧美一级在线免费观看| 68精品国产免费久久久久久婷婷| 欧美性生活一级片| 成人精品视频一区二区| 中文字幕欧美区| 国产男男gay网站| 久久久久久一区二区三区| 青青草原在线亚洲| 午夜视频在线瓜伦| 国产精品久久久久久久久久免费看| 国产又黄又猛又爽| 久久久久久九九九| 国产欧美一区二区三区精品观看| 男人插女人下面免费视频| 亚洲色图视频网| 日日夜夜精品免费| 国产成人高潮免费观看精品| 99久久99热这里只有精品| 人妻换人妻a片爽麻豆| 色综合久久综合网| 成人在线影视| 久久精品日韩| 韩国欧美国产1区| 日韩三级一区二区三区| 国产一区二区日韩| 欧美日韩午夜电影网| av黄色在线网站| 中文字幕字幕中文在线中不卡视频| 肥臀熟女一区二区三区| 国产精品久久97| 亚洲高清久久| 女人裸体性做爰全过| 精品久久久三级丝袜| 成人免费av电影| 国产情侣第一页| 国产欧美精品一区aⅴ影院| 国产综合视频在线| 国产精品视频在线播放| 亚洲国产一区二区三区a毛片 | 天堂av手机版| 成人国产精品一区| 性娇小13――14欧美| 欧美成人777| 亚洲系列中文字幕|