3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Networking】容器网络大观 SDN 资料汇总

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Networking】容器网络大观 SDN 资料汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

SDNLAB技術分享(十五):容器網絡大觀 SDNLAB君 ??16-06-17 ?2957 人圍觀

?

編者按:本文系SDNLAB技術分享系列,本次分享來自SDN撕X群(群主:大貓貓)群直播,我們希望通過SDNLAB提供的平臺傳播知識,傳遞價值,歡迎加入我們的行列。

分享嘉賓
--------------------------------------------------------------------------------------------------
分享介紹:張晨:目前就讀于北京郵電大學FNL實驗室,網絡與交換國家重點實驗室。目前主要研究方向:軟件定義網絡,網絡虛擬化,云數據中心網絡。目前任職于Brocade。
--------------------------------------------------------------------------------------------------

一、容器網絡概述

容器這一兩年火的不行,可以說是獨領IT風騷,一時風光無二。相比于虛擬機來說,容器更輕,一臺服務器上可以運行成百上千的容器,這意味著更為密集的計算資源,因此基于容器運行工作負載的模式深受云服務提供商們的青睞。

然而對于云管理員來說,管理容器確是一件相當頭疼的事情,容器的生命周期更短了,容器的數量更多了,容器間的關系更復雜了。為了簡化大規模容器集群的運維,各路容器管理與編排平臺應運而生,Docker社區開發了Swarm+Machine+Compose的集群管理套件,Twitter主推Apache的Mesos,Google則開源了自己的Kubernetes。這些平臺為大規模的容器集群提供了資源調度、服務發現、擴容縮容等功能,然而這些功能都是策略向的,真正要實現大規模的容器集群,網絡才是最基礎的一環。

相比于虛擬機網絡,容器網絡主要具有以下特點,以及相應的技術挑戰:

  • 虛擬機擁有完善的隔離機制,虛擬網卡與硬件網卡在使用上沒有什么區別,而容器則使用network namespace提供網絡在內核中的隔離,因此為了保障容器的安全性,容器網絡的設計需要更為慎重的考慮。
  • 出于安全考慮,很多情況下容器會被部署在虛擬機內部,這種嵌套部署(nested deployment)需要設計新的網絡模型。
  • 容器的分布不同于虛擬機,一個虛擬機的運行的業務可能要被拆分到多個容器上運行,根據業務不同的需要,這些容器有時候必須放在一臺服務器中,有時候可以分布在網絡的各個位置,兩種情況對應的網絡模型也很可能不盡相同。
  • 容器的遷移速度更快,網絡策略的更新要能夠跟得上速度。
  • 容器數量更多了,多主機間的ARP Flooding會造成大量的資源浪費。
  • 容器生命周期短,重啟非常頻繁,網絡地址的有效管理(IPAM)將變得非常關鍵。

不過,由于容器自身的特征使得它與應用的綁定更為緊密,從交付模式來看更傾向于PaaS而非IaaS,因此容器網絡并沒有成為業界關注的焦點。起步較晚,再加上上述諸多的技術挑戰,使得容器網絡相比于OpenStack Neutron來說發展的情況要落后不少。Docker在開始的很長一段時間內只支持使用linux bridge+iptables進行single-host的部署,自動化方面也只有pipework這類shell腳本。

幸運的是,目前業界已經意識到了可擴展、自動化的網絡對于大規模容器環境的重要性:docker收購了容器

?

網絡的創業公司socketplane,隨即將網絡管理從docker daemon中獨立出來形成libnetwork,并在docker 1.9中提供了多種network driver,并支持了multi-host;一些專業的容器網絡(如flannel、weave、calico等)也開始與各個容器編排平臺進行集成;OpenStack社區也成立了專門的子項目Kuryr提供Neutron network driver(如DragonFlow、OVN、Midolnet等)與容器的對接。

二、容器網絡模型

這一節我們來介紹容器網絡的基礎,包括容器的接入,容器間的組網,以及幾種容器網絡的通用模型。

(一)容器的接入

1.和host共享network namespace

這種接入模式下,不會為容器創建網絡協議棧,即容器沒有獨立于host的network namespace,但是容器的其他namespace(如IPC、PID、Mount等)還是和host的namespace獨立的。容器中的進程處于host的網絡環境中,與host共用L2-L4的網絡資源。該方式的優點是,容器能夠直接使用host的網絡資源與外界進行通信,沒有額外的開銷(如NAT),缺點是網絡的隔離性差,容器和host所使用的端口號經常會發生沖突。

2.和host共享物理網卡

2與1的區別在于,容器和host共享物理網卡,但容器擁有獨立于host的network namespace,容器有自己的MAC地址、IP地址、端口號。這種接入方式主要使用SR-IOV技術,每個容器被分配一個VF,直接通過PCIe網卡與外界通信,優點是旁路了host kernel不占任何計算資源,而且IO速度較快,缺點是VF數量有限且對容器遷移的支持不足。

3.和另外一個容器共享network namespace

與1類似,容器沒有獨立的network namespace,但是以該方式新創建的容器將與一個已經存在的容器共享其network namespace(包括MAC、IP以及端口號等),網絡角度上兩者將作為一個整體對外提供服務,不過兩個容器的其他namespace(如IPC、PID、Mount等)是彼此獨立的。這種方式的優點是,network namespace相聯系的容器間的通信高效便利,缺點是由于其他的namespace仍然是彼此獨立的,因此容器間無法形成一個業務邏輯上的整體。

4.Behind the POD

這種方式是Google在Kubernetes中的設計中提出來的。Kubernetes中,POD是指一個可以被創建、銷毀、調度、管理的最小的部署單元,一個POD有一個基礎容器以及一個或一組應用容器,基礎容器對應一個獨立的network namespace并擁有一個其它POD可見的IP地址(以IP A.B.C.D指代),應用容器間則共享基礎容器的network namespace(包括MAC、IP以及端口號等),還可以共享基礎容器的其它的namespace(如IPC、PID、Mount等)。POD作為一個整體連接在host的vbridge/vswitch上,使用IP地址A.B.C.D與其它POD進行通信,不同host中的POD處于不同的subnet中,同一host中的不同POD處于同一subnet中。這種方式的優點是一些業務上密切相關的容器可以共享POD的全部資源(它們一般不會產生資源上的沖突),而這些容器間的通信高效便利,缺點是同一POD下的容器必須位于同一host中,從而限制了位置的靈活性。

5.連接在的vbridge/vswitch上

這種方式是最為常見的,容器擁有獨立的network namespace,通過veth-pair連接到vswitch上。這種方式對于網絡來說是最為直接的,在vswitch看來,通過這種方式連接的容器與虛擬機并沒有任何區別。vbridge/vswitch的實現有很多,包括linux bridge,Open vSwitch,macvlan等。這種方式的優點是vbridge/vswitch可實現的功能比較豐富,尤其是Open vSwitch可以支持VLAN、Tunnel、SDN Controller等,缺點是可能會造成很多額外的開銷。

6.嵌套部署在VM中

這種方式在生產環境也比較常見,由于一臺host中往往部署著多方的容器,存在安全隱患,因此許多用戶會選擇先啟動自己的虛擬機,然后在自己的虛擬機上運行容器。這種方式其實是一種嵌套虛擬化,因此本質上來說,這種方式下容器的接入對于host可以是完全透明的,容器在虛擬機內部的接入可以采用上述1-5中任意的方法。不過這對于云平臺來說就意味著失去了對容器接入的管理能力,為了保留這一能力,往往需要在虛擬機內部和host中分別部署vswitch并實現級聯,由虛擬機內部的vswitch用來接入容器并對其進行特定的標記(云平臺分配),以便host中的vswitch進行識別。一種常見的方式是使用Open vSwitch對容器標記vlan id。

(二)MultiHost組網

1.Flat

Flat主要可分為L2 Flat和L3 Flat。L2 Flat指各個host中所有的容器都在virtual+physical網絡形成的VLAN大二層中,容器可以在任意host間進行遷移而不用改變其IP地址。L3 Flat指各個host中所有的容器都在virtual+physical網絡中可路由,且路由以/32位的形式存在,使得容器在host間遷移時不需要改變IP地址。L2/L3 Flat下,不同租戶的IP地址不可以Overlap,L3 Flat下容器的IP編址也不可與physical網絡Overlap。L3 Flat簡單示意如下。

2.L3 Hierarchy

L3 Hierarchy中各個host中所有的容器都在virtual+physical網絡中可路由,且路由在不同層次上(VM/Host/Leaf/Spine)以聚合路由的形式存在,即處于相同CIDR的容器需要在物理位置上被組織在一起,因此容器在host間遷移時需要改變IP地址。L3 Hierarchy下,不同租戶的IP地址不可以Overlap,容器的IP編址也不可與physical網絡Overlap。下圖是L3 Hierarchy中的IP地址規劃示例。

3.Overlay

Overlay主要可分為L2 over L3和L3 over L3,少部分實現L2/L3 over UDP。L2 over L3中,容器可以跨越L3 Underlay進行L2通信,容器可以在任意host間進行遷移而不用改變其IP地址。L3 over L3中,容器可以跨越L3 Underlay進行L3通信,容器在host間進行遷移時可能需要改變IP地址(取決于Overlay是L3 Flat還是L3 Hierarchy)。L2/L3 Overlay下,不同租戶的IP地址也可以Overlap,容器的IP編址也可以與Underlay網絡Overlap。L2 over L3(VxLAN實現)如下圖所示。

(三)容器網絡的兩種通用設計

1.CNM

CNM(Container Network Model)是Cisco的一位工程師提出的一個容器網絡模型(https://github.com/docker/docker/issues/9983),docker 1.9在libnetwork中實現了CNM(https://github.com/docker/libnetwork/blob/master/docs/design.md#the-container-network-model)。CNM的示意如下,主要建立在三類組件上Sandbox、Endpoint和Network。

  • Sandbox:一個Sandbox對應一個容器的網絡棧,能夠對該容器的interface、route、dns等參數進行管理。一個Sandbox中可以有多個Endpoint,這些Endpoint可以屬于不同的Network。Sandbox的實現可以為linux network namespace、FreeBSD Jail或其他類似的機制。
  • Endpoint: Sandbox通過Endpoint接入Network,一個Endpoint只能屬于一個Network,but may only belong to one Sandbox(這句翻譯不好)。Endpoint的實現可以是veth pair、Open vSwitch internal port或者其他類似的設備。
  • Network:一個Network由一組Endpoint組成,這些Endpoint彼此間可以直接進行通信,不同的Network間Endpoint的通信彼此隔離。Network的實現可以是linux bridge、Open vSwitch等。

Libnetwork對于CNM的實現包括以下5類對象:

  • NetworkController:每創建一個Network對象時,就會相應地生成一個NetworkController對象,NetworkController對象將Network對象的API暴露給用戶,以便用戶對libnetwork進行調用,然后驅動特定的Driver對象實現Network對象的功能。NetworkController允許用戶綁定Network對象所使用的Driver對象。NetworkController對象可以看做是Network對象的分布式SDN控制器。
  • Network:Network對象是CNM Network的一種實現。NetworkController對象通過提供API對Network對象進行創建和管理。NetworkController對象需要操作Network對象的時候,Network對象所對應的Driver對象會得到通知。一個Network對象能夠包含多個Endpoint對象,一個Network對象中包含的各個Endpoint對象間可以通過Driver完成通信,這種通信支持可以是同一主機的,也可以是跨主機的。不同Network對象中的Endpoint對象間彼此隔離。
  • Driver:Driver對象真正實現Network功能(包括通信和管理),它并不直接暴露API給用戶。Libnetwork支持多種Driver,其中包括內置的bridge,host,container和overlay,也對remote driver(即第三方,或用戶自定義的網絡驅動)進行了支持。
  • Endpoint:Endpoint對象是CNM Endpoint的一種實現。容器通過Endpoint對象接入Network,并通過Endpoint對象與其它容器進行通信。一個Endpoint對象只能屬于一個Network對象,Network對象的API提供了對于Endpoint對象的創建與管理。
  • Sandbox:Sandbox對象是CNM Sandbox的一種實現。Sandbox對象代表了一個容器的網絡棧,擁有IP地址,MAC地址,routes,DNS等網絡資源。一個Sandbox對象中可以有多個Endpoint對象,這些Endpoint對象可以屬于不同的Network對象,Endpoint對象使用Sandbox對象中的網絡資源與外界進行通信。Sandbox對象的創建發生在Endpoint對象的創建后,(Endpoint對象所屬的)Network對象所綁定的Driver對象為該Sandbox對象分配網絡資源并返回給libnetwork,然后libnetwork使用特定的機制(如linux netns)去配置Sandbox對象中對應的網絡資源。

2.CNI

CNI(Container Networking Interface)是CoreOS為Rocket(docker之外的另一種容器引擎)提出的一種plugin-based的容器網絡接口規范(https://github.com/containernetworking/cni/blob/master/SPEC.md),CNI十分符合Kubernetes中的網絡規劃思想,Kubernetes采用了CNI作為默認的網絡接口規范,目前CNI的實現有Weave、Calico、Romana、Contiv等。

CNI沒有像CNM一樣規定模型的術語,CNI的實現依賴于兩種plugin:CNI Plugin負責將容器connect/disconnect到host中的vbridge/vswitch,IPAM Plugin負責配置容器namespace中的網絡參數。

CNI要求CNI Plugin支持容器的Add/Delete操作,操作所需的參數規范如下:

  • Version:使用的CNI Spec的版本。
  • Container ID:容器在全局(管理域內)唯一的標識,容器被刪除后可以重用。Container ID是可選參數,CNI建議使用。
  • Network namespace path:netns要被添加到的路徑,如/proc/[pid]/ns/net。
  • Network configuration:一個JSON文件,描述了容器要加入的網絡的參數。
  • Extra arguments:針對特定容器要做的細粒度的配置。
  • Name of the interface inside the container:容器interface在容器namespace內部的名稱。

其中,Network configuration的schema如下:

  • cniVersion:使用的CNI Spec的版本。
  • name:網絡在全局(管理域內)唯一的標識。
  • type:CNI Plugin的類型,如bridge/OVS/macvlan等。
  • ipMasq:boolean類型,host是否需要對外隱藏容器的IP地址。CNI Plugin可選地支持。
  • ipam:網絡參數信息
  • type:分為host-local和dhcp兩種
  • routes:一個route列表,每一個route entry包含dst和gw兩個參數。
    • dns:nameservers+domain+search domains+options

    為了減輕CNI Plugin的負擔,ipam由CNI Plugin調用IPAM Plugin來實現,IPAM Plugin負責配置容器namespace中的網絡參數。IPAM的實施分為兩種,一種是host-local,在subnet CIDR中選擇一個可用的IP地址作為容器的IP,route entry(可選)在host本地配置完成。另一種是dhcp,容器發送dhcp消息請求網絡參數。

    Add操作后,會返回以下兩個結果:

    ?IPs assigned to the interface:IPv4地址/IPv6地址/同時返回IPv4和IPv6地址
    ?DNS information:nameservers+domain+search domains+options

    三、Docker網絡

    Docker是當下最為火熱的容器引擎,為實現大規模集群,docker推出了Swarm+Machine+Compose的集群管理套件。然而,docker的原生網絡在很長一段時間內都是基于linux bridge+iptables實現的,這種方式下容器的可見性只存在于主機內部,這嚴重地限制了容器集群的規模以及可用性。其實,社區很早就意識到了這個問題,不過由于缺乏專業的網絡團隊支持,因此docker的跨主機通信問題始終沒有得到很好的解決。另外,手動配置docker網絡是一件很麻煩的事情,盡管有pipework這樣的shell腳本工具,但是以腳本的自動化程度而言,用來運維大規模的docker網絡還是too na?ve。

    2015年3月,docker收購了一家 SDN初創公司socketplane,隨即于5月宣布將網絡管理功能從libcontainer和docker daemon中抽離出來作為一個單獨的項目libnetwork,由原socketplane團隊成員接手,基于GO語言進行開發。2015年11月發布的docker 1.9中libnetwork架構初步形成,支持多種nework driver并提供跨主機通信,并在后續的1.10、1.11兩個版本中修復了大量bug。目前,libnetwork處于0.6版本。

    (1)Docker0
    Docker 1.9之前,網絡的實現主要由docker daemon來完成,當docker daemon啟動時默認情況下會創建docker0,為docker0分配IP地址,并設置一些iptables規則。然后通過docker run命令啟動容器,該命令可以通過—net選項來選擇容器的接入方式(參見“容器的網絡模型”),docker 1.9之前的版本支持如下4種接入方式。

    • bridge:新建容器有獨立的network namespace,并通過以下步驟將容器接入docker0
  • 創建veth pair
  • 將veth pair的一端置于host的root network namespace中,并將其關聯docker0
  • 將veth pair的另一端置于新建容器的network namespace中
  • 從docker0所在的subnet中選一個可用的IP地址賦予veth pair在容器的一端
    • host:新建容器與host共享network namespace,該容器不會連接到docker0中,直接使用host的網絡資源進行通信
    • container:新建容器與一個已有的容器共享network namespace,該容器不會連接到docker0中,直接使用host的網絡資源進行通信
    • none:新建容器有獨立的network namespace,但是不會配置任何網絡參數,也不會接入docker0中,用戶可對其進行任意的手動配置

    后3種沒什么好說的,下面介紹一下bridge方式。Docker0由linux bridge實現,容器通過veth設備接入docker0,本地容器都處于同一subnet中,彼此間通信通過docker0交換,與外界通信以docker0的IP地址作為網關。Docker0的IP地址可以看做是內置連接在linux bridge上的設備(類似于ovs br上的同名internal port),位于host的root namespace中,容器與外界的通信要依賴于host中的Iptables MASQUERADE規則來做SNAT,容器對外提供服務要依賴于host中的Iptables dnat規則來暴露端口。因此這種方案下,容器間的跨主機通信其實用的都是host的socket,容器本身的IP地址和端口號對其它host上的容器來說都是不可見的。

    這個方案非常原始,除了不能支持直接可見的跨主機通信以外,NAT還會導致很多其它不合意的結果,如端口沖突等。另外,對于一些復雜的需求,如IPAM、多租戶、SDN等均無法提供支持。

    (2)Pipework

    容器就是namespace,docker0就是linux bridge,再加上一些iptables規則,實際上容器組網就是調用一些已有的命令行而已。不過,當容器數量很多,或者是頻繁地啟動、關閉時,一條條命令行去配就顯得不是很合意了。于是,Docker公司的工程師Jerome Patazzoni就寫了一個shell腳本來簡化容器網絡的配置,主要就是對docker/ip nets/ip link/brctl這些命令行的二次封裝。Jerome Patazzoni自己認為pipework是SDN tools for container,雖然有點too na?ve了,但是從實用性的角度來看,確實倒也可以滿足一些自動化運維的需要。

    當然pipework相比于docker0,除了提供了命令行的封裝以外,還是具備一些其他的優勢的,比如支持多樣的network driver如OVS和macvlan,支持在host上開dhcp-server為容器自動分配IP地址,支持免費ARP,等等。

    具體的實現這里就不講了,因為這東西其實完全說不上高深,總共加起來也就400多行代碼,鏈接在這里(https://github.com/jpetazzo/pipework/blob/master/pipework)。

    (3)Libnetwork

    Socketplane是一家做容器網絡的startup,2014年4季度創建,2015年3月份就被docker收購了,可以看到當時docker對于原生的網絡管理組件的需求是有多么迫切,而且socketplane團隊的這幫子人是SDN科班出身的,docker也總算有了搞網絡的正規軍。不過,socketplane和libnetwork的設計在架構上還是有很大不同的,我們先來看看socketplane的設計。

    架構上,數據平面是OVS VxLAN,南向協議是OVSDB,控制平面是基于consul的分布式k/v store,北向是socketplane CLI。控制平面的部署細節上,consul是放在一個socketplane容器中的,該容器通過host模式與host共享network namespace,consul通過eth0去做服務發現和狀態同步,狀態主要就是指容器與host IP的映射關系了。數據平面的流表情況,就是match MAC+IP,actions就是送到本地的容器或者遠端的tunnel peer上,有點奇怪的是socketplane沒有使用tunnel_id,而是用了vlan_id標識vnet,這與RFC 7348是有沖突的。另外,根據為數不多的資料來看,socketplane在被收購前只完成了L2的east-west,還沒有考慮routing和south-north。

    可以看到,socketplane的設計并不復雜。但是被收購進docker后,麻煩事可就多了——首先,數據平面決計不能演化為ovs monopolic,linux bridge要有,第三方driver也得玩得轉;其次,控制平面k/v store也要可插拔,起碼要支持zookeeper和etcd,最好還要把自家的集群工具swarm集成進來;另外,要考慮老用戶的習慣,原有的網絡設計該保留還要保留;最后,還要遵循社區提出的容器網絡模型CNM(https://github.com/docker/docker/issues/9983)。

    于是,docker網絡在1.9變成了下面這個樣子(圖中只畫了一個host),libkv提供swarm的服務發現,以及overlay network的k/v store,每個host上開啟docker daemon并加入swarm cluster,libcontainer負責管理容器,libnetwork負責管理網絡。libnetwork支持5種網絡模式,none/host/bridge/overlay/remote,圖中從左到右依次顯示了后4種,其中overlay和一些remote可以支持multi-host。

    Overlay是libnetwork默認的multi-host網絡模式,通過VxLAN完成跨主機。Libnetwork會把overlay driver放在單獨的network namespace中,默認的overlay driver為linux bridge。當容器(Sandbox)接入overlay(Network)時,會被分到兩個網卡(Endpoint),eth0連在vxlan_driver上,eth1連在docker_gwbridge上。Vxlan_driver主要負責L2的通信,包括本地流量和跨主機流量,docker_gwbridge的實現原理和docker0一樣,負責處理Service的通信,包括不同網絡容器間,以及容器與Internet間兩類流量。Eth0和eth1各有一個IP地址,分屬于不同網段,eth0默認以10開頭,eth1默認以172開頭,L2和L3的通信直接通過容器內部的路由表分流,送到不同的設備上處理。

    Remote是libnetwork為了支持其它的Driver而設計的一種pluggble框架,這些Driver不要求一定支持multi-host。除了一些第三方的Driver外(如weave、calico等),目前libnetwork還原生提供了對macvlan driver和ipvlan driver的支持。當然,就像Neutron的ML2一樣,為了打造生態,plugin driver的接口還是要libnetwork自己來規范的,具體請參考https://github.com/docker/libnetwork/blob/master/docs/remote.md。

    既然說是引入SDN,那么API的規范對于libnetwork來說就十分重要了,不過目前libnetwork的接口封裝還處于相當初級的階段,基本上就是對Network和Endpoint的創建、刪除以及連接(https://github.com/docker/libnetwork/blob/master/docs/design.md), 并沒有提供很友好的業務API。

    對于libnetwork的介紹就是這些了。盡管libnetwork實現了千呼萬喚的multi-host,也為docker網絡帶來了一定的靈活性與自動化,但就目前來說,它的API尚不夠友好,Driver的生態還不夠成熟,而且并不具備任何高級的網絡服務。因此,libnetwork相比于老大哥neutron來說,仍然存在著較大的差距。

    其他網絡容器選手速覽

    其實,早在docker社區將libnetwork提上日程之前,就已經有不少人在為容器的multi-host操心了。除了socketplane以外,如CoreOS為k8s的網絡模型設計的flannel,通過P2P的控制平面構建overlay的weave net,通過BGP RR構建Flat L3的Calico,等等。最近,又有兩個開源項目開始琢磨新的容器組網辦法,一個是通過優化IPAM邏輯來構建Hierarchy L3的Romana,另一個是Cisco ACI派系的Contiv。當然,網絡規模不大時,直接手配OVS也是個可行的方案。
    這一節我們就來對上述容器網絡選手來一個閱兵,先來介紹它們的架構,再來對它們做一個簡單的對比。

    1.Flannel

    在k8s的網絡設計中,服務以POD為單位,每個POD的IP地址,容器通過Behind the POD方式接入網絡(見“容器的網絡模型”),一個POD中可包含多個容器,這些容器共享該POD的IP地址。另外,k8s要求容器的IP地址都是全網可路由的,那么顯然docker0+iptables的NAT方案是不可行的。

    實現上述要求其實有很多種組網方法,Flat L3是一種(如Calico),Hierarchy L3(如Romana)是一種,另外L3 Overlay也是可以的,CoreOS就采用L3 Overlay的方式設計了flannel, 并規定每個host下各個POD屬于同一個subnet,不同的host/VM下的POD屬于不同subnet。我們來看flannel的架構,控制平面上host本地的flanneld負責從遠端的ETCD集群同步本地和其它host上的subnet信息,并為POD分配IP地址。數據平面flannel通過UDP封裝來實現L3 Overlay,既可以選擇一般的TUN設備又可以選擇VxLAN設備(注意,由于圖來源不同,請忽略具體的IP地址)。


    Flannel可說的不多,做得比較早,技術選型也十分成熟,已經可以用于大規模部署。下面是控制信道上通信內容的一個實例。

    2.Weave
    Weave是Weaveworks公司的容器網絡產品,大家都叫慣了weave,實際上目前該產品的名字叫做Weave Nets,因為Weaveworks現在并不是一家只做網絡的公司,最近它又做了兩款其它的容器管理產品,GUI+集群。不過,為大家所熟悉的還是它網絡口的產品。
    不同于其它的multi-host方案,Weave可以支持去中心化的控制平面,各個host上的wRouter間通過建立Full Mesh的TCP鏈接,并通過Gossip來同步控制信息。這種方式省去了集中式的K/V Store,能夠在一定程度上減低部署的復雜性,Weave將其稱為“data centric”,而非RAFT或者Paxos的“algorithm centric”。

    不過,考慮到docker libnetwork是集中式的K/V Store作為控制平面,因此Weave為了集成docker,它也提供了對集中式控制平面的支持,能夠作為docker remote driver與libkv通信。

    數據平面上,Weave通過UDP封裝實現L2 Overlay,封裝支持兩種模式,一種是運行在user space的sleeve mode,另一種是運行在kernal space的 fastpath mode。Sleeve mode通過pcap設備在Linux bridge上截獲數據包并由wRouter完成UDP封裝,支持對L2 traffic進行加密,還支持Partial Connection,但是性能損失明顯。Fastpath mode即通過OVS的odp封裝VxLAN并完成轉發,wRouter不直接參與轉發,而是通過下發odp 流表的方式控制轉發,這種方式可以明顯地提升吞吐量,但是不支持加密等高級功能。


    這里要說一下Partial Connection的組網。在多DC的場景下一些DC Sites無法直連,比如Peer 1與Peer 5間的隧道通信,中間勢必要經過Peer 3,那么Peer 3就必須要支持做隧道的中間轉發。目前sleeve mode的實現是通過多級封裝來完成的,目前fastpath上還沒有實現。

    上面主要介紹的是weave對multi-host L2的實現。關于Service的發布,weave做的也比較完整。首先,wRouter集成了DNS功能,能夠動態地進行服務發現和負載均衡,另外,與libnetwork 的overlay driver類似,weave要求每個POD有兩個網卡,一個就連在lb/ovs上處理L2 流量,另一個則連在docker0上處理Service流量,docker0后面仍然是iptables作NAT。

    3.Calico
    Calico是一個專門做DC網絡的開源項目。當業界都癡迷于Overlay的時候,Calico實現multi-host容器網絡的思路確可以說是返璞歸真——pure L3,pure L3是指容器間的組網都是通過IP來完成的。這是因為,Calico認為L3更為健壯,且對于網絡人員更為熟悉,而L2網絡由于控制平面太弱會導致太多問題,排錯起來也更加困難。那么,如果能夠利用好L3去設計DC的話就完全沒有必要用L2。

    不過對于應用來說,L2無疑是更好的網絡,尤其是容器網絡對二層的需求則更是強烈。業界普遍給出的答案是L2 over L3,而Calico認為Overlay技術帶來的開銷(CPU、吞吐量)太大,如果能用L3去模擬L2是最好的,這樣既能保證性能、又能讓應用滿意、還能給網絡人員省事,看上去是件一舉多得的事。用L3去模擬L2的關鍵就在于打破傳統的Hierarchy L3概念,IP不再以前綴收斂,大家干脆都把32位的主機路由發布到網絡上,那么Flat L3的網絡對于應用來說即和L2一模一樣。

    這個思路不簡單,刨了L3存在必要性的老底兒,實際上如果不用考慮可擴展性、也不考慮private和public,IP地址和MAC地址標識endpoint的功能上確實是完全冗余的,即使考慮可擴展性,一個用L3技術形成的大二層和一個用L2技術形成的大二層并沒有本質上的差距。而且,L3有成熟的、完善的、被普遍認可接受的控制平面,以及豐富的管理工具,運維起來要容易的多。

    于是,Calico給出了下面的設計。L3選擇的是BGP,控制平面是開源的Bird做BGP RR,etcd集群+Felix做業務數據同步,數據平面直接是Linux kernel做vRouter,FIB全是/32的v4或者/128的v6。具體來說,etcd接受業務數據,Felix向etcd同步后向host本地的路由表注入32/128位的主機路由,以及iptables的安全規則,然后Bird BGP Client將host的本地路由發送給Bird BGP RR,然后再由RR發布到其它host。


    這個架構沒什么好說的,技術成熟、高性能、易維護,看起來是生產級別的容器網絡環境最好的選擇。但是,也有不如意的地方:

    • 沒有了外面的封裝,就談不上VRF,多租戶的話地址沒法Overlap
    • L2和L3的概念模糊了,那么network級別的安全就搞不了,port級別的安全難搞因為需要的規則都是1:1的,數量上實在是太多了

    不過,這都不是什么嚴重的問題。但有一點嚴重的是,Calico控制平面的上述設計中,物理網絡最好是L2 Fabric,這樣vRouter間都是直接可達的,路由不需要把物理設備當做下一跳。如果是L3 Fabric,控制平面的問題馬上就來了:下一跳是物理設備,那么它的IP是多少?物理設備如果要存32位的路由,能存多少?

    這絕對是個難題。因此,為了解決以上問題,Calico不得不采取了妥協,為了支持L3 Fabric,Calico推出了IPinIP的選項,但是這明顯屬于自己打自己的臉,這么玩的話還不如用VxLAN來的實在呢。不過,對于使用L2 Fabric、沒有多租戶需求的企業來說,用Calico上生產環境應該是不錯的選擇。
    4.Romana
    說完了Calico的Flat L3,再來看看Romana給出的Hierarchy L3的方案。Romana是Panic Networks在2016年新提出的開源項目,旨在解決Overlay方案給網絡帶來的開銷,雖然目標和Calico基本一致,但是采取的思路卻截然不同,Romana希望用Hierarchy L3來組織DC的網絡——沒有大二層什么事兒了。

    當然,Romana想要的是SDN的Hierarchy L3,因此控制平面的路由比較好控制了,不用搞RR這種東西了,不過IPAM的問題就比較關鍵了。IP地址有32位,哪些用來規劃leaf-spine?哪些用來規劃host?哪些用來規劃VM?哪些用來規劃POD?如果要多租戶,哪些用來規劃Tenant/Segment?可以說,這些如果有規劃好的可能,而且都可以動態調整,那么Romana會是個“很SDN”的方案。

    不過,這可不是說笑的,想要規劃好談何容易啊?問題歸根結底我認為有如下幾點:

    • 要表示好DC中那么復雜的網絡資源,32的地址空間捉襟見肘,無論你系統設計的多么精妙,巧婦難為無米之炊
    • 如果不用Overlay,想要IPAM能夠SDN化,邊緣的host沒問題,物理設備怎么辦?一旦規模擴大了,或者組網有了新的需求,造成原有的地址規劃不合適了,host說改也就改了,物理網絡誰來搞動態調整?
    • 另外,關鍵的關鍵是,大二層不要了,遷移怎么弄?

    可以看一看Romana的slides里面給的IPAM實例,255 hosts、255 tenants、255 endpoints,對于對于IDC、云服務提供商、容器用戶,是不是都顯得局促了一些呢?

    因此從網絡設計的角度來說,個人目前還沒有想到Romana能夠支持大規模容器網絡的理由,至于項目具體會發展成什么樣子,仍需觀察。
    下面來看一看它的架構。倒也畫的比較簡單,managers是控制端,agent在設備端。控制端幾個組件的功能,看了名字也就知道了,這里不再解釋。設備端接受調度,給容器配IP,在host上配路由,也沒什么好說的了。

    5.Contiv
    Cisco在2015年搞的開源項目,準備把ACI那一套EPG的東西用到容器網絡中來,號稱要做容器的micro-segment。具體的沒什么能講的,因為Github上確實也還沒有什么東西,而且Cisco做開源向來是奔著讓人捉摸不透去的。Cisco的人說會集成到docker libnetwork中去,但項目的模樣能不能出來,還得看未來的進展。項目鏈接在這:https://github.com/contiv/netplugin。

    Neutron對容器網絡的集成

    眼看著容器一步一步火起來,幾乎搶走了虛擬機的所有風頭,OpenStack也按耐不住要做集成了。有Magnum做Swarm、K8S這些COE(Container Orchestration Engine)的前端,OpenStack就有了編排大規模容器集群的入口,而除了編排以外,網絡側的集成也是一個大頭。其實從network driver的角度來看,容器和虛擬機倒也沒什么特別大的差別,那么再搞一套Neutron for Container顯然是沒有必要(也不現實)的了。于是,Kuryr項目應運而生,旨在將現有Neutron的network driver銜接到容器網絡中。

    Kuryr是捷克語“信使”的意思,顧名思義,就是要把容器網絡的API轉化成Neutron API傳遞給Neutron,然后仍然由Neutron來調度后端的network driver來為容器組網。要做成這件事情,主要得解決三個問題:

    • 建立容器網絡模型,如CNM和CNI,和Neutron網絡模型的映射關系
    • 處理容器和Neutron network driver的端口綁定
    • 容器不同于虛擬機的特征,可能會對現有Neutron network造成影響

    第一個問題,通俗點說就是要做好翻譯工作。以docker libnetwork舉例,用戶調了libnetwork的API要新建一個(CNM模型中的)Network對象,那Kuryr就得翻譯成Neutron能聽得懂的API——幫我起一個(Neutron)Subnet。這要求Kuryr作為remote driver,于是Neutron和Neutron driver對于libnetwork就是完全透明的了。


    上面舉了一個好理解的例子,不好辦的是當兩側的模型不一致,尤其是左邊有新概念的時候。比如,現在要為部署在VM中的Nested Container搞一個Security Group,但是Neutron目前只能管到host上,是看不見這個藏起來的家伙的,那這時就要對Neutron做擴展了,思路就是為Neutron Port新擴展一個屬性來標記VM中這個Nested Container,這樣做識別的時候帶上這個標記就行了。

    從實現上來講,Kuryr要負責管理兩側的資源實例的ID的映射關系,以保證操作的一致性,否則會直接帶來用戶間的網絡入侵。另外,IPAM現在在兩側都被獨立出來了,IPAM的API也要能銜接的上。

    至于第二個問題,拍腦袋想似乎是不應該存在的。但是,目前絕大多數Neutron network driver在綁定端口時的動作只有更新數據庫,并不會為容器做plug。這個做法的原因在于,之前在處理虛擬機的時候,plug被看作是虛擬機啟動時自帶的動作,因此plug就放在了Nova的poweron函數里面。改network driver自然是不好的,于是Kuryr就得負責起處理這個歷史遺留問題的任務了。

    第三個問題可就是學問了。講道理的話,業務的API沒問題了,容器也都接入網絡了,而轉發的邏輯都是network driver寫好的,跟接的是容器還是虛擬機也沒有一毛錢關系,那不就應該萬事大吉了嗎?可是現實確很有可能不是這樣的,比如:由于容器作為工作負載,其特征與虛擬機完全不同,因此業務對二者需求也是大相徑庭。容器都是批量批量的起,而且它們的生命周期可能很短——需要來回來去的起,而Neutron的API都是走軟件的消息總線的,而過于密集的API操作很有可能會造成消息總線崩潰掉。一個新建容器的API等了1分鐘失敗了,那么可能業務的需求就過去了(比如搶票),這個損失自然是不可接受的。

    類似的問題可能都在潛伏著,如果Kuryr要走上生產環境,可就需要Gal Sagie多動腦筋了。

    雖然Kuryr是OpenStack中比較新的項目,但目前Kuryr進展的還不錯,對libnetwork和k8S的集成都有demo出來了。一旦Kuryr成熟后,這意味著Neutron下面的各路vendor們都可以不費吹灰之力直接上容器了,這對于Weave、Calico這些靠容器起家的vendor不可算是個好消息。

    看來,云網絡vendor間的競爭最后也都將演變為OpenStack、K8S、Mesos這些大部頭對于DCOS的爭奪了,畢竟胳膊擰不過大腿啊。
    -------------------------------------------------------------------------------------------------
    SDN撕X群(微信群),主要就是曝SDN真相的,感興趣的就加微信wx928579866 ,或者微信tangahr , 暗號是:SDN撕X群。 要想圍觀SDNers V.S. Networkers請一定加此群。

    ?

    • 本站聲明本站原創文章僅代表作者觀點,不代表SDNLAB立場。轉載須注明來自?SDNLAB并附上本文鏈接。
    • 本文鏈接http://www.sdnlab.com/17141.html
    • 本文標簽技術/tech

    ?

    ?

    ?

    docker的四種網絡模式 - Frankiee - 博客園SDNLAB技術分享(十五):容器網絡大觀 | SDNLAB | 專注網絡創新技術Search Results for 張晨 | SDNLAB | 專注網絡創新技術 - Page 3新聞 | SDNLAB | 專注網絡創新技術云數據中心網絡虛擬化——大二層技術巡禮之大二層技術小結 | SDNLAB | 專注網絡創新技術wp-content/uploads/2016/06/Docker-figure-12.png (475×365)Calico + Flannel = Tigera, a New Container Networking StartupPipework、Weave、Flannel各自的優勢和區別 - DockOne.ioflannel以及calico,時速云選其一還是兩個方案都在用?有測試報告嗎?_百度知道容器周邊開源工具新秀:Sysdig和Calico-CSDN.NETBattlefield: Calico, Flannel, Weave and Docker Overlay Network | Arthur Chunqi Li's BlogCalico在Docker中的搭建 - tingfengainiaini - 博客園Calico在Kubernetes中的搭建 - tingfengainiaini - 博客園calico for kubernetes - tingfengainiaini - 博客園時速云Pod 之間通信是不是也是用的flannel?_百度知道Calico首頁、文檔和下載 - 虛擬機和容器網絡 - 開源中國社區BGP協議的作用是_百度知道SDNLAB技術分享(十五):容器網絡大觀 SDNLAB君 ??16-06-17 ?2957 人圍觀

    ?

    編者按:本文系SDNLAB技術分享系列,本次分享來自SDN撕X群(群主:大貓貓)群直播,我們希望通過SDNLAB提供的平臺傳播知識,傳遞價值,歡迎加入我們的行列。

    分享嘉賓
    --------------------------------------------------------------------------------------------------
    分享介紹:張晨:目前就讀于北京郵電大學FNL實驗室,網絡與交換國家重點實驗室。目前主要研究方向:軟件定義網絡,網絡虛擬化,云數據中心網絡。目前任職于Brocade。
    --------------------------------------------------------------------------------------------------

    一、容器網絡概述

    容器這一兩年火的不行,可以說是獨領IT風騷,一時風光無二。相比于虛擬機來說,容器更輕,一臺服務器上可以運行成百上千的容器,這意味著更為密集的計算資源,因此基于容器運行工作負載的模式深受云服務提供商們的青睞。

    然而對于云管理員來說,管理容器確是一件相當頭疼的事情,容器的生命周期更短了,容器的數量更多了,容器間的關系更復雜了。為了簡化大規模容器集群的運維,各路容器管理與編排平臺應運而生,Docker社區開發了Swarm+Machine+Compose的集群管理套件,Twitter主推Apache的Mesos,Google則開源了自己的Kubernetes。這些平臺為大規模的容器集群提供了資源調度、服務發現、擴容縮容等功能,然而這些功能都是策略向的,真正要實現大規模的容器集群,網絡才是最基礎的一環。

    相比于虛擬機網絡,容器網絡主要具有以下特點,以及相應的技術挑戰:

    • 虛擬機擁有完善的隔離機制,虛擬網卡與硬件網卡在使用上沒有什么區別,而容器則使用network namespace提供網絡在內核中的隔離,因此為了保障容器的安全性,容器網絡的設計需要更為慎重的考慮。
    • 出于安全考慮,很多情況下容器會被部署在虛擬機內部,這種嵌套部署(nested deployment)需要設計新的網絡模型。
    • 容器的分布不同于虛擬機,一個虛擬機的運行的業務可能要被拆分到多個容器上運行,根據業務不同的需要,這些容器有時候必須放在一臺服務器中,有時候可以分布在網絡的各個位置,兩種情況對應的網絡模型也很可能不盡相同。
    • 容器的遷移速度更快,網絡策略的更新要能夠跟得上速度。
    • 容器數量更多了,多主機間的ARP Flooding會造成大量的資源浪費。
    • 容器生命周期短,重啟非常頻繁,網絡地址的有效管理(IPAM)將變得非常關鍵。

    不過,由于容器自身的特征使得它與應用的綁定更為緊密,從交付模式來看更傾向于PaaS而非IaaS,因此容器網絡并沒有成為業界關注的焦點。起步較晚,再加上上述諸多的技術挑戰,使得容器網絡相比于OpenStack Neutron來說發展的情況要落后不少。Docker在開始的很長一段時間內只支持使用linux bridge+iptables進行single-host的部署,自動化方面也只有pipework這類shell腳本。

    幸運的是,目前業界已經意識到了可擴展、自動化的網絡對于大規模容器環境的重要性:docker收購了容器網絡的創業公司socketplane,隨即將網絡管理從docker daemon中獨立出來形成libnetwork,并在docker 1.9中提供了多種network driver,并支持了multi-host;一些專業的容器網絡(如flannel、weave、calico等)也開始與各個容器編排平臺進行集成;OpenStack社區也成立了專門的子項目Kuryr提供Neutron network driver(如DragonFlow、OVN、Midolnet等)與容器的對接。

    二、容器網絡模型

    這一節我們來介紹容器網絡的基礎,包括容器的接入,容器間的組網,以及幾種容器網絡的通用模型。

    (一)容器的接入

    1.和host共享network namespace

    這種接入模式下,不會為容器創建網絡協議棧,即容器沒有獨立于host的network namespace,但是容器的其他namespace(如IPC、PID、Mount等)還是和host的namespace獨立的。容器中的進程處于host的網絡環境中,與host共用L2-L4的網絡資源。該方式的優點是,容器能夠直接使用host的網絡資源與外界進行通信,沒有額外的開銷(如NAT),缺點是網絡的隔離性差,容器和host所使用的端口號經常會發生沖突。

    2.和host共享物理網卡

    2與1的區別在于,容器和host共享物理網卡,但容器擁有獨立于host的network namespace,容器有自己的MAC地址、IP地址、端口號。這種接入方式主要使用SR-IOV技術,每個容器被分配一個VF,直接通過PCIe網卡與外界通信,優點是旁路了host kernel不占任何計算資源,而且IO速度較快,缺點是VF數量有限且對容器遷移的支持不足。

    3.和另外一個容器共享network namespace

    與1類似,容器沒有獨立的network namespace,但是以該方式新創建的容器將與一個已經存在的容器共享其network namespace(包括MAC、IP以及端口號等),網絡角度上兩者將作為一個整體對外提供服務,不過兩個容器的其他namespace(如IPC、PID、Mount等)是彼此獨立的。這種方式的優點是,network namespace相聯系的容器間的通信高效便利,缺點是由于其他的namespace仍然是彼此獨立的,因此容器間無法形成一個業務邏輯上的整體。

    4.Behind the POD

    這種方式是Google在Kubernetes中的設計中提出來的。Kubernetes中,POD是指一個可以被創建、銷毀、調度、管理的最小的部署單元,一個POD有一個基礎容器以及一個或一組應用容器,基礎容器對應一個獨立的network namespace并擁有一個其它POD可見的IP地址(以IP A.B.C.D指代),應用容器間則共享基礎容器的network namespace(包括MAC、IP以及端口號等),還可以共享基礎容器的其它的namespace(如IPC、PID、Mount等)。POD作為一個整體連接在host的vbridge/vswitch上,使用IP地址A.B.C.D與其它POD進行通信,不同host中的POD處于不同的subnet中,同一host中的不同POD處于同一subnet中。這種方式的優點是一些業務上密切相關的容器可以共享POD的全部資源(它們一般不會產生資源上的沖突),而這些容器間的通信高效便利,缺點是同一POD下的容器必須位于同一host中,從而限制了位置的靈活性。

    5.連接在的vbridge/vswitch上

    這種方式是最為常見的,容器擁有獨立的network namespace,通過veth-pair連接到vswitch上。這種方式對于網絡來說是最為直接的,在vswitch看來,通過這種方式連接的容器與虛擬機并沒有任何區別。vbridge/vswitch的實現有很多,包括linux bridge,Open vSwitch,macvlan等。這種方式的優點是vbridge/vswitch可實現的功能比較豐富,尤其是Open vSwitch可以支持VLAN、Tunnel、SDN Controller等,缺點是可能會造成很多額外的開銷。

    6.嵌套部署在VM中

    這種方式在生產環境也比較常見,由于一臺host中往往部署著多方的容器,存在安全隱患,因此許多用戶會選擇先啟動自己的虛擬機,然后在自己的虛擬機上運行容器。這種方式其實是一種嵌套虛擬化,因此本質上來說,這種方式下容器的接入對于host可以是完全透明的,容器在虛擬機內部的接入可以采用上述1-5中任意的方法。不過這對于云平臺來說就意味著失去了對容器接入的管理能力,為了保留這一能力,往往需要在虛擬機內部和host中分別部署vswitch并實現級聯,由虛擬機內部的vswitch用來接入容器并對其進行特定的標記(云平臺分配),以便host中的vswitch進行識別。一種常見的方式是使用Open vSwitch對容器標記vlan id。

    (二)MultiHost組網

    1.Flat

    Flat主要可分為L2 Flat和L3 Flat。L2 Flat指各個host中所有的容器都在virtual+physical網絡形成的VLAN大二層中,容器可以在任意host間進行遷移而不用改變其IP地址。L3 Flat指各個host中所有的容器都在virtual+physical網絡中可路由,且路由以/32位的形式存在,使得容器在host間遷移時不需要改變IP地址。L2/L3 Flat下,不同租戶的IP地址不可以Overlap,L3 Flat下容器的IP編址也不可與physical網絡Overlap。L3 Flat簡單示意如下。

    2.L3 Hierarchy

    L3 Hierarchy中各個host中所有的容器都在virtual+physical網絡中可路由,且路由在不同層次上(VM/Host/Leaf/Spine)以聚合路由的形式存在,即處于相同CIDR的容器需要在物理位置上被組織在一起,因此容器在host間遷移時需要改變IP地址。L3 Hierarchy下,不同租戶的IP地址不可以Overlap,容器的IP編址也不可與physical網絡Overlap。下圖是L3 Hierarchy中的IP地址規劃示例。

    3.Overlay

    Overlay主要可分為L2 over L3和L3 over L3,少部分實現L2/L3 over UDP。L2 over L3中,容器可以跨越L3 Underlay進行L2通信,容器可以在任意host間進行遷移而不用改變其IP地址。L3 over L3中,容器可以跨越L3 Underlay進行L3通信,容器在host間進行遷移時可能需要改變IP地址(取決于Overlay是L3 Flat還是L3 Hierarchy)。L2/L3 Overlay下,不同租戶的IP地址也可以Overlap,容器的IP編址也可以與Underlay網絡Overlap。L2 over L3(VxLAN實現)如下圖所示。

    (三)容器網絡的兩種通用設計

    1.CNM

    CNM(Container Network Model)是Cisco的一位工程師提出的一個容器網絡模型(https://github.com/docker/docker/issues/9983),docker 1.9在libnetwork中實現了CNM(https://github.com/docker/libnetwork/blob/master/docs/design.md#the-container-network-model)。CNM的示意如下,主要建立在三類組件上Sandbox、Endpoint和Network。

    • Sandbox:一個Sandbox對應一個容器的網絡棧,能夠對該容器的interface、route、dns等參數進行管理。一個Sandbox中可以有多個Endpoint,這些Endpoint可以屬于不同的Network。Sandbox的實現可以為linux network namespace、FreeBSD Jail或其他類似的機制。
    • Endpoint: Sandbox通過Endpoint接入Network,一個Endpoint只能屬于一個Network,but may only belong to one Sandbox(這句翻譯不好)。Endpoint的實現可以是veth pair、Open vSwitch internal port或者其他類似的設備。
    • Network:一個Network由一組Endpoint組成,這些Endpoint彼此間可以直接進行通信,不同的Network間Endpoint的通信彼此隔離。Network的實現可以是linux bridge、Open vSwitch等。

    Libnetwork對于CNM的實現包括以下5類對象:

    • NetworkController:每創建一個Network對象時,就會相應地生成一個NetworkController對象,NetworkController對象將Network對象的API暴露給用戶,以便用戶對libnetwork進行調用,然后驅動特定的Driver對象實現Network對象的功能。NetworkController允許用戶綁定Network對象所使用的Driver對象。NetworkController對象可以看做是Network對象的分布式SDN控制器。
    • Network:Network對象是CNM Network的一種實現。NetworkController對象通過提供API對Network對象進行創建和管理。NetworkController對象需要操作Network對象的時候,Network對象所對應的Driver對象會得到通知。一個Network對象能夠包含多個Endpoint對象,一個Network對象中包含的各個Endpoint對象間可以通過Driver完成通信,這種通信支持可以是同一主機的,也可以是跨主機的。不同Network對象中的Endpoint對象間彼此隔離。
    • Driver:Driver對象真正實現Network功能(包括通信和管理),它并不直接暴露API給用戶。Libnetwork支持多種Driver,其中包括內置的bridge,host,container和overlay,也對remote driver(即第三方,或用戶自定義的網絡驅動)進行了支持。
    • Endpoint:Endpoint對象是CNM Endpoint的一種實現。容器通過Endpoint對象接入Network,并通過Endpoint對象與其它容器進行通信。一個Endpoint對象只能屬于一個Network對象,Network對象的API提供了對于Endpoint對象的創建與管理。
    • Sandbox:Sandbox對象是CNM Sandbox的一種實現。Sandbox對象代表了一個容器的網絡棧,擁有IP地址,MAC地址,routes,DNS等網絡資源。一個Sandbox對象中可以有多個Endpoint對象,這些Endpoint對象可以屬于不同的Network對象,Endpoint對象使用Sandbox對象中的網絡資源與外界進行通信。Sandbox對象的創建發生在Endpoint對象的創建后,(Endpoint對象所屬的)Network對象所綁定的Driver對象為該Sandbox對象分配網絡資源并返回給libnetwork,然后libnetwork使用特定的機制(如linux netns)去配置Sandbox對象中對應的網絡資源。

    2.CNI

    CNI(Container Networking Interface)是CoreOS為Rocket(docker之外的另一種容器引擎)提出的一種plugin-based的容器網絡接口規范(https://github.com/containernetworking/cni/blob/master/SPEC.md),CNI十分符合Kubernetes中的網絡規劃思想,Kubernetes采用了CNI作為默認的網絡接口規范,目前CNI的實現有Weave、Calico、Romana、Contiv等。

    CNI沒有像CNM一樣規定模型的術語,CNI的實現依賴于兩種plugin:CNI Plugin負責將容器connect/disconnect到host中的vbridge/vswitch,IPAM Plugin負責配置容器namespace中的網絡參數。

    CNI要求CNI Plugin支持容器的Add/Delete操作,操作所需的參數規范如下:

    • Version:使用的CNI Spec的版本。
    • Container ID:容器在全局(管理域內)唯一的標識,容器被刪除后可以重用。Container ID是可選參數,CNI建議使用。
    • Network namespace path:netns要被添加到的路徑,如/proc/[pid]/ns/net。
    • Network configuration:一個JSON文件,描述了容器要加入的網絡的參數。
    • Extra arguments:針對特定容器要做的細粒度的配置。
    • Name of the interface inside the container:容器interface在容器namespace內部的名稱。

    其中,Network configuration的schema如下:

    • cniVersion:使用的CNI Spec的版本。
    • name:網絡在全局(管理域內)唯一的標識。
    • type:CNI Plugin的類型,如bridge/OVS/macvlan等。
    • ipMasq:boolean類型,host是否需要對外隱藏容器的IP地址。CNI Plugin可選地支持。
    • ipam:網絡參數信息
  • type:分為host-local和dhcp兩種
  • routes:一個route列表,每一個route entry包含dst和gw兩個參數。
    • dns:nameservers+domain+search domains+options

    為了減輕CNI Plugin的負擔,ipam由CNI Plugin調用IPAM Plugin來實現,IPAM Plugin負責配置容器namespace中的網絡參數。IPAM的實施分為兩種,一種是host-local,在subnet CIDR中選擇一個可用的IP地址作為容器的IP,route entry(可選)在host本地配置完成。另一種是dhcp,容器發送dhcp消息請求網絡參數。

    Add操作后,會返回以下兩個結果:

    ?IPs assigned to the interface:IPv4地址/IPv6地址/同時返回IPv4和IPv6地址
    ?DNS information:nameservers+domain+search domains+options

    三、Docker網絡

    Docker是當下最為火熱的容器引擎,為實現大規模集群,docker推出了Swarm+Machine+Compose的集群管理套件。然而,docker的原生網絡在很長一段時間內都是基于linux bridge+iptables實現的,這種方式下容器的可見性只存在于主機內部,這嚴重地限制了容器集群的規模以及可用性。其實,社區很早就意識到了這個問題,不過由于缺乏專業的網絡團隊支持,因此docker的跨主機通信問題始終沒有得到很好的解決。另外,手動配置docker網絡是一件很麻煩的事情,盡管有pipework這樣的shell腳本工具,但是以腳本的自動化程度而言,用來運維大規模的docker網絡還是too na?ve。

    2015年3月,docker收購了一家 SDN初創公司socketplane,隨即于5月宣布將網絡管理功能從libcontainer和docker daemon中抽離出來作為一個單獨的項目libnetwork,由原socketplane團隊成員接手,基于GO語言進行開發。2015年11月發布的docker 1.9中libnetwork架構初步形成,支持多種nework driver并提供跨主機通信,并在后續的1.10、1.11兩個版本中修復了大量bug。目前,libnetwork處于0.6版本。

    (1)Docker0
    Docker 1.9之前,網絡的實現主要由docker daemon來完成,當docker daemon啟動時默認情況下會創建docker0,為docker0分配IP地址,并設置一些iptables規則。然后通過docker run命令啟動容器,該命令可以通過—net選項來選擇容器的接入方式(參見“容器的網絡模型”),docker 1.9之前的版本支持如下4種接入方式。

    • bridge:新建容器有獨立的network namespace,并通過以下步驟將容器接入docker0
  • 創建veth pair
  • 將veth pair的一端置于host的root network namespace中,并將其關聯docker0
  • 將veth pair的另一端置于新建容器的network namespace中
  • 從docker0所在的subnet中選一個可用的IP地址賦予veth pair在容器的一端
    • host:新建容器與host共享network namespace,該容器不會連接到docker0中,直接使用host的網絡資源進行通信
    • container:新建容器與一個已有的容器共享network namespace,該容器不會連接到docker0中,直接使用host的網絡資源進行通信
    • none:新建容器有獨立的network namespace,但是不會配置任何網絡參數,也不會接入docker0中,用戶可對其進行任意的手動配置

    后3種沒什么好說的,下面介紹一下bridge方式。Docker0由linux bridge實現,容器通過veth設備接入docker0,本地容器都處于同一subnet中,彼此間通信通過docker0交換,與外界通信以docker0的IP地址作為網關。Docker0的IP地址可以看做是內置連接在linux bridge上的設備(類似于ovs br上的同名internal port),位于host的root namespace中,容器與外界的通信要依賴于host中的Iptables MASQUERADE規則來做SNAT,容器對外提供服務要依賴于host中的Iptables dnat規則來暴露端口。因此這種方案下,容器間的跨主機通信其實用的都是host的socket,容器本身的IP地址和端口號對其它host上的容器來說都是不可見的。

    這個方案非常原始,除了不能支持直接可見的跨主機通信以外,NAT還會導致很多其它不合意的結果,如端口沖突等。另外,對于一些復雜的需求,如IPAM、多租戶、SDN等均無法提供支持。

    (2)Pipework

    容器就是namespace,docker0就是linux bridge,再加上一些iptables規則,實際上容器組網就是調用一些已有的命令行而已。不過,當容器數量很多,或者是頻繁地啟動、關閉時,一條條命令行去配就顯得不是很合意了。于是,Docker公司的工程師Jerome Patazzoni就寫了一個shell腳本來簡化容器網絡的配置,主要就是對docker/ip nets/ip link/brctl這些命令行的二次封裝。Jerome Patazzoni自己認為pipework是SDN tools for container,雖然有點too na?ve了,但是從實用性的角度來看,確實倒也可以滿足一些自動化運維的需要。

    當然pipework相比于docker0,除了提供了命令行的封裝以外,還是具備一些其他的優勢的,比如支持多樣的network driver如OVS和macvlan,支持在host上開dhcp-server為容器自動分配IP地址,支持免費ARP,等等。

    具體的實現這里就不講了,因為這東西其實完全說不上高深,總共加起來也就400多行代碼,鏈接在這里(https://github.com/jpetazzo/pipework/blob/master/pipework)。

    (3)Libnetwork

    Socketplane是一家做容器網絡的startup,2014年4季度創建,2015年3月份就被docker收購了,可以看到當時docker對于原生的網絡管理組件的需求是有多么迫切,而且socketplane團隊的這幫子人是SDN科班出身的,docker也總算有了搞網絡的正規軍。不過,socketplane和libnetwork的設計在架構上還是有很大不同的,我們先來看看socketplane的設計。

    架構上,數據平面是OVS VxLAN,南向協議是OVSDB,控制平面是基于consul的分布式k/v store,北向是socketplane CLI。控制平面的部署細節上,consul是放在一個socketplane容器中的,該容器通過host模式與host共享network namespace,consul通過eth0去做服務發現和狀態同步,狀態主要就是指容器與host IP的映射關系了。數據平面的流表情況,就是match MAC+IP,actions就是送到本地的容器或者遠端的tunnel peer上,有點奇怪的是socketplane沒有使用tunnel_id,而是用了vlan_id標識vnet,這與RFC 7348是有沖突的。另外,根據為數不多的資料來看,socketplane在被收購前只完成了L2的east-west,還沒有考慮routing和south-north。

    可以看到,socketplane的設計并不復雜。但是被收購進docker后,麻煩事可就多了——首先,數據平面決計不能演化為ovs monopolic,linux bridge要有,第三方driver也得玩得轉;其次,控制平面k/v store也要可插拔,起碼要支持zookeeper和etcd,最好還要把自家的集群工具swarm集成進來;另外,要考慮老用戶的習慣,原有的網絡設計該保留還要保留;最后,還要遵循社區提出的容器網絡模型CNM(https://github.com/docker/docker/issues/9983)。

    于是,docker網絡在1.9變成了下面這個樣子(圖中只畫了一個host),libkv提供swarm的服務發現,以及overlay network的k/v store,每個host上開啟docker daemon并加入swarm cluster,libcontainer負責管理容器,libnetwork負責管理網絡。libnetwork支持5種網絡模式,none/host/bridge/overlay/remote,圖中從左到右依次顯示了后4種,其中overlay和一些remote可以支持multi-host。

    Overlay是libnetwork默認的multi-host網絡模式,通過VxLAN完成跨主機。Libnetwork會把overlay driver放在單獨的network namespace中,默認的overlay driver為linux bridge。當容器(Sandbox)接入overlay(Network)時,會被分到兩個網卡(Endpoint),eth0連在vxlan_driver上,eth1連在docker_gwbridge上。Vxlan_driver主要負責L2的通信,包括本地流量和跨主機流量,docker_gwbridge的實現原理和docker0一樣,負責處理Service的通信,包括不同網絡容器間,以及容器與Internet間兩類流量。Eth0和eth1各有一個IP地址,分屬于不同網段,eth0默認以10開頭,eth1默認以172開頭,L2和L3的通信直接通過容器內部的路由表分流,送到不同的設備上處理。

    Remote是libnetwork為了支持其它的Driver而設計的一種pluggble框架,這些Driver不要求一定支持multi-host。除了一些第三方的Driver外(如weave、calico等),目前libnetwork還原生提供了對macvlan driver和ipvlan driver的支持。當然,就像Neutron的ML2一樣,為了打造生態,plugin driver的接口還是要libnetwork自己來規范的,具體請參考https://github.com/docker/libnetwork/blob/master/docs/remote.md。

    既然說是引入SDN,那么API的規范對于libnetwork來說就十分重要了,不過目前libnetwork的接口封裝還處于相當初級的階段,基本上就是對Network和Endpoint的創建、刪除以及連接(https://github.com/docker/libnetwork/blob/master/docs/design.md), 并沒有提供很友好的業務API。

    對于libnetwork的介紹就是這些了。盡管libnetwork實現了千呼萬喚的multi-host,也為docker網絡帶來了一定的靈活性與自動化,但就目前來說,它的API尚不夠友好,Driver的生態還不夠成熟,而且并不具備任何高級的網絡服務。因此,libnetwork相比于老大哥neutron來說,仍然存在著較大的差距。

    其他網絡容器選手速覽

    其實,早在docker社區將libnetwork提上日程之前,就已經有不少人在為容器的multi-host操心了。除了socketplane以外,如CoreOS為k8s的網絡模型設計的flannel,通過P2P的控制平面構建overlay的weave net,通過BGP RR構建Flat L3的Calico,等等。最近,又有兩個開源項目開始琢磨新的容器組網辦法,一個是通過優化IPAM邏輯來構建Hierarchy L3的Romana,另一個是Cisco ACI派系的Contiv。當然,網絡規模不大時,直接手配OVS也是個可行的方案。
    這一節我們就來對上述容器網絡選手來一個閱兵,先來介紹它們的架構,再來對它們做一個簡單的對比。

    1.Flannel

    在k8s的網絡設計中,服務以POD為單位,每個POD的IP地址,容器通過Behind the POD方式接入網絡(見“容器的網絡模型”),一個POD中可包含多個容器,這些容器共享該POD的IP地址。另外,k8s要求容器的IP地址都是全網可路由的,那么顯然docker0+iptables的NAT方案是不可行的。

    實現上述要求其實有很多種組網方法,Flat L3是一種(如Calico),Hierarchy L3(如Romana)是一種,另外L3 Overlay也是可以的,CoreOS就采用L3 Overlay的方式設計了flannel, 并規定每個host下各個POD屬于同一個subnet,不同的host/VM下的POD屬于不同subnet。我們來看flannel的架構,控制平面上host本地的flanneld負責從遠端的ETCD集群同步本地和其它host上的subnet信息,并為POD分配IP地址。數據平面flannel通過UDP封裝來實現L3 Overlay,既可以選擇一般的TUN設備又可以選擇VxLAN設備(注意,由于圖來源不同,請忽略具體的IP地址)。


    Flannel可說的不多,做得比較早,技術選型也十分成熟,已經可以用于大規模部署。下面是控制信道上通信內容的一個實例。

    2.Weave
    Weave是Weaveworks公司的容器網絡產品,大家都叫慣了weave,實際上目前該產品的名字叫做Weave Nets,因為Weaveworks現在并不是一家只做網絡的公司,最近它又做了兩款其它的容器管理產品,GUI+集群。不過,為大家所熟悉的還是它網絡口的產品。
    不同于其它的multi-host方案,Weave可以支持去中心化的控制平面,各個host上的wRouter間通過建立Full Mesh的TCP鏈接,并通過Gossip來同步控制信息。這種方式省去了集中式的K/V Store,能夠在一定程度上減低部署的復雜性,Weave將其稱為“data centric”,而非RAFT或者Paxos的“algorithm centric”。

    不過,考慮到docker libnetwork是集中式的K/V Store作為控制平面,因此Weave為了集成docker,它也提供了對集中式控制平面的支持,能夠作為docker remote driver與libkv通信。

    數據平面上,Weave通過UDP封裝實現L2 Overlay,封裝支持兩種模式,一種是運行在user space的sleeve mode,另一種是運行在kernal space的 fastpath mode。Sleeve mode通過pcap設備在Linux bridge上截獲數據包并由wRouter完成UDP封裝,支持對L2 traffic進行加密,還支持Partial Connection,但是性能損失明顯。Fastpath mode即通過OVS的odp封裝VxLAN并完成轉發,wRouter不直接參與轉發,而是通過下發odp 流表的方式控制轉發,這種方式可以明顯地提升吞吐量,但是不支持加密等高級功能。


    這里要說一下Partial Connection的組網。在多DC的場景下一些DC Sites無法直連,比如Peer 1與Peer 5間的隧道通信,中間勢必要經過Peer 3,那么Peer 3就必須要支持做隧道的中間轉發。目前sleeve mode的實現是通過多級封裝來完成的,目前fastpath上還沒有實現。

    上面主要介紹的是weave對multi-host L2的實現。關于Service的發布,weave做的也比較完整。首先,wRouter集成了DNS功能,能夠動態地進行服務發現和負載均衡,另外,與libnetwork 的overlay driver類似,weave要求每個POD有兩個網卡,一個就連在lb/ovs上處理L2 流量,另一個則連在docker0上處理Service流量,docker0后面仍然是iptables作NAT。

    3.Calico
    Calico是一個專門做DC網絡的開源項目。當業界都癡迷于Overlay的時候,Calico實現multi-host容器網絡的思路確可以說是返璞歸真——pure L3,pure L3是指容器間的組網都是通過IP來完成的。這是因為,Calico認為L3更為健壯,且對于網絡人員更為熟悉,而L2網絡由于控制平面太弱會導致太多問題,排錯起來也更加困難。那么,如果能夠利用好L3去設計DC的話就完全沒有必要用L2。

    不過對于應用來說,L2無疑是更好的網絡,尤其是容器網絡對二層的需求則更是強烈。業界普遍給出的答案是L2 over L3,而Calico認為Overlay技術帶來的開銷(CPU、吞吐量)太大,如果能用L3去模擬L2是最好的,這樣既能保證性能、又能讓應用滿意、還能給網絡人員省事,看上去是件一舉多得的事。用L3去模擬L2的關鍵就在于打破傳統的Hierarchy L3概念,IP不再以前綴收斂,大家干脆都把32位的主機路由發布到網絡上,那么Flat L3的網絡對于應用來說即和L2一模一樣。

    這個思路不簡單,刨了L3存在必要性的老底兒,實際上如果不用考慮可擴展性、也不考慮private和public,IP地址和MAC地址標識endpoint的功能上確實是完全冗余的,即使考慮可擴展性,一個用L3技術形成的大二層和一個用L2技術形成的大二層并沒有本質上的差距。而且,L3有成熟的、完善的、被普遍認可接受的控制平面,以及豐富的管理工具,運維起來要容易的多。

    于是,Calico給出了下面的設計。L3選擇的是BGP,控制平面是開源的Bird做BGP RR,etcd集群+Felix做業務數據同步,數據平面直接是Linux kernel做vRouter,FIB全是/32的v4或者/128的v6。具體來說,etcd接受業務數據,Felix向etcd同步后向host本地的路由表注入32/128位的主機路由,以及iptables的安全規則,然后Bird BGP Client將host的本地路由發送給Bird BGP RR,然后再由RR發布到其它host。


    這個架構沒什么好說的,技術成熟、高性能、易維護,看起來是生產級別的容器網絡環境最好的選擇。但是,也有不如意的地方:

    • 沒有了外面的封裝,就談不上VRF,多租戶的話地址沒法Overlap
    • L2和L3的概念模糊了,那么network級別的安全就搞不了,port級別的安全難搞因為需要的規則都是1:1的,數量上實在是太多了

    不過,這都不是什么嚴重的問題。但有一點嚴重的是,Calico控制平面的上述設計中,物理網絡最好是L2 Fabric,這樣vRouter間都是直接可達的,路由不需要把物理設備當做下一跳。如果是L3 Fabric,控制平面的問題馬上就來了:下一跳是物理設備,那么它的IP是多少?物理設備如果要存32位的路由,能存多少?

    這絕對是個難題。因此,為了解決以上問題,Calico不得不采取了妥協,為了支持L3 Fabric,Calico推出了IPinIP的選項,但是這明顯屬于自己打自己的臉,這么玩的話還不如用VxLAN來的實在呢。不過,對于使用L2 Fabric、沒有多租戶需求的企業來說,用Calico上生產環境應該是不錯的選擇。
    4.Romana
    說完了Calico的Flat L3,再來看看Romana給出的Hierarchy L3的方案。Romana是Panic Networks在2016年新提出的開源項目,旨在解決Overlay方案給網絡帶來的開銷,雖然目標和Calico基本一致,但是采取的思路卻截然不同,Romana希望用Hierarchy L3來組織DC的網絡——沒有大二層什么事兒了。

    當然,Romana想要的是SDN的Hierarchy L3,因此控制平面的路由比較好控制了,不用搞RR這種東西了,不過IPAM的問題就比較關鍵了。IP地址有32位,哪些用來規劃leaf-spine?哪些用來規劃host?哪些用來規劃VM?哪些用來規劃POD?如果要多租戶,哪些用來規劃Tenant/Segment?可以說,這些如果有規劃好的可能,而且都可以動態調整,那么Romana會是個“很SDN”的方案。

    不過,這可不是說笑的,想要規劃好談何容易啊?問題歸根結底我認為有如下幾點:

    • 要表示好DC中那么復雜的網絡資源,32的地址空間捉襟見肘,無論你系統設計的多么精妙,巧婦難為無米之炊
    • 如果不用Overlay,想要IPAM能夠SDN化,邊緣的host沒問題,物理設備怎么辦?一旦規模擴大了,或者組網有了新的需求,造成原有的地址規劃不合適了,host說改也就改了,物理網絡誰來搞動態調整?
    • 另外,關鍵的關鍵是,大二層不要了,遷移怎么弄?

    可以看一看Romana的slides里面給的IPAM實例,255 hosts、255 tenants、255 endpoints,對于對于IDC、云服務提供商、容器用戶,是不是都顯得局促了一些呢?

    因此從網絡設計的角度來說,個人目前還沒有想到Romana能夠支持大規模容器網絡的理由,至于項目具體會發展成什么樣子,仍需觀察。
    下面來看一看它的架構。倒也畫的比較簡單,managers是控制端,agent在設備端。控制端幾個組件的功能,看了名字也就知道了,這里不再解釋。設備端接受調度,給容器配IP,在host上配路由,也沒什么好說的了。

    5.Contiv
    Cisco在2015年搞的開源項目,準備把ACI那一套EPG的東西用到容器網絡中來,號稱要做容器的micro-segment。具體的沒什么能講的,因為Github上確實也還沒有什么東西,而且Cisco做開源向來是奔著讓人捉摸不透去的。Cisco的人說會集成到docker libnetwork中去,但項目的模樣能不能出來,還得看未來的進展。項目鏈接在這:https://github.com/contiv/netplugin。

    Neutron對容器網絡的集成

    眼看著容器一步一步火起來,幾乎搶走了虛擬機的所有風頭,OpenStack也按耐不住要做集成了。有Magnum做Swarm、K8S這些COE(Container Orchestration Engine)的前端,OpenStack就有了編排大規模容器集群的入口,而除了編排以外,網絡側的集成也是一個大頭。其實從network driver的角度來看,容器和虛擬機倒也沒什么特別大的差別,那么再搞一套Neutron for Container顯然是沒有必要(也不現實)的了。于是,Kuryr項目應運而生,旨在將現有Neutron的network driver銜接到容器網絡中。

    Kuryr是捷克語“信使”的意思,顧名思義,就是要把容器網絡的API轉化成Neutron API傳遞給Neutron,然后仍然由Neutron來調度后端的network driver來為容器組網。要做成這件事情,主要得解決三個問題:

    • 建立容器網絡模型,如CNM和CNI,和Neutron網絡模型的映射關系
    • 處理容器和Neutron network driver的端口綁定
    • 容器不同于虛擬機的特征,可能會對現有Neutron network造成影響

    第一個問題,通俗點說就是要做好翻譯工作。以docker libnetwork舉例,用戶調了libnetwork的API要新建一個(CNM模型中的)Network對象,那Kuryr就得翻譯成Neutron能聽得懂的API——幫我起一個(Neutron)Subnet。這要求Kuryr作為remote driver,于是Neutron和Neutron driver對于libnetwork就是完全透明的了。


    上面舉了一個好理解的例子,不好辦的是當兩側的模型不一致,尤其是左邊有新概念的時候。比如,現在要為部署在VM中的Nested Container搞一個Security Group,但是Neutron目前只能管到host上,是看不見這個藏起來的家伙的,那這時就要對Neutron做擴展了,思路就是為Neutron Port新擴展一個屬性來標記VM中這個Nested Container,這樣做識別的時候帶上這個標記就行了。

    從實現上來講,Kuryr要負責管理兩側的資源實例的ID的映射關系,以保證操作的一致性,否則會直接帶來用戶間的網絡入侵。另外,IPAM現在在兩側都被獨立出來了,IPAM的API也要能銜接的上。

    至于第二個問題,拍腦袋想似乎是不應該存在的。但是,目前絕大多數Neutron network driver在綁定端口時的動作只有更新數據庫,并不會為容器做plug。這個做法的原因在于,之前在處理虛擬機的時候,plug被看作是虛擬機啟動時自帶的動作,因此plug就放在了Nova的poweron函數里面。改network driver自然是不好的,于是Kuryr就得負責起處理這個歷史遺留問題的任務了。

    第三個問題可就是學問了。講道理的話,業務的API沒問題了,容器也都接入網絡了,而轉發的邏輯都是network driver寫好的,跟接的是容器還是虛擬機也沒有一毛錢關系,那不就應該萬事大吉了嗎?可是現實確很有可能不是這樣的,比如:由于容器作為工作負載,其特征與虛擬機完全不同,因此業務對二者需求也是大相徑庭。容器都是批量批量的起,而且它們的生命周期可能很短——需要來回來去的起,而Neutron的API都是走軟件的消息總線的,而過于密集的API操作很有可能會造成消息總線崩潰掉。一個新建容器的API等了1分鐘失敗了,那么可能業務的需求就過去了(比如搶票),這個損失自然是不可接受的。

    類似的問題可能都在潛伏著,如果Kuryr要走上生產環境,可就需要Gal Sagie多動腦筋了。

    雖然Kuryr是OpenStack中比較新的項目,但目前Kuryr進展的還不錯,對libnetwork和k8S的集成都有demo出來了。一旦Kuryr成熟后,這意味著Neutron下面的各路vendor們都可以不費吹灰之力直接上容器了,這對于Weave、Calico這些靠容器起家的vendor不可算是個好消息。

    看來,云網絡vendor間的競爭最后也都將演變為OpenStack、K8S、Mesos這些大部頭對于DCOS的爭奪了,畢竟胳膊擰不過大腿啊。

    參考資料:

    docker的四種網絡模式 - Frankiee - 博客園SDNLAB技術分享(十五):容器網絡大觀 | SDNLAB | 專注網絡創新技術Search Results for 張晨 | SDNLAB | 專注網絡創新技術 - Page 3新聞 | SDNLAB | 專注網絡創新技術云數據中心網絡虛擬化——大二層技術巡禮之大二層技術小結 | SDNLAB | 專注網絡創新技術wp-content/uploads/2016/06/Docker-figure-12.png (475×365)Calico + Flannel = Tigera, a New Container Networking StartupPipework、Weave、Flannel各自的優勢和區別 - DockOne.ioflannel以及calico,時速云選其一還是兩個方案都在用?有測試報告嗎?_百度知道容器周邊開源工具新秀:Sysdig和Calico-CSDN.NETBattlefield: Calico, Flannel, Weave and Docker Overlay Network | Arthur Chunqi Li's BlogCalico在Docker中的搭建 - tingfengainiaini - 博客園Calico在Kubernetes中的搭建 - tingfengainiaini - 博客園calico for kubernetes - tingfengainiaini - 博客園時速云Pod 之間通信是不是也是用的flannel?_百度知道Calico首頁、文檔和下載 - 虛擬機和容器網絡 - 開源中國社區BGP協議的作用是_百度知道

    ?

    ?

    ?

    轉載于:https://www.cnblogs.com/junneyang/p/6197854.html

    總結

    以上是生活随笔為你收集整理的【Networking】容器网络大观 SDN 资料汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产精品内射视频免费 | 久久综合色之久久综合 | 麻豆国产丝袜白领秘书在线观看 | 久久综合色之久久综合 | 2020久久香蕉国产线看观看 | 无码人妻精品一区二区三区不卡 | 欧美变态另类xxxx | 国产成人无码区免费内射一片色欲 | 麻豆成人精品国产免费 | 无码人妻丰满熟妇区毛片18 | 波多野结衣乳巨码无在线观看 | 国产真实夫妇视频 | 欧美35页视频在线观看 | 综合激情五月综合激情五月激情1 | 中文字幕+乱码+中文字幕一区 | 日本免费一区二区三区最新 | 99久久亚洲精品无码毛片 | 亚洲精品www久久久 | 国产成人精品必看 | 久久国产36精品色熟妇 | 精品国产一区二区三区四区 | av香港经典三级级 在线 | 图片区 小说区 区 亚洲五月 | 2019nv天堂香蕉在线观看 | 亚洲色无码一区二区三区 | 任你躁国产自任一区二区三区 | 大肉大捧一进一出视频出来呀 | 午夜福利一区二区三区在线观看 | 久久久久久av无码免费看大片 | 国产亚洲精品久久久久久 | 国产成人综合在线女婷五月99播放 | 亚洲欧美色中文字幕在线 | 搡女人真爽免费视频大全 | 国内精品人妻无码久久久影院 | 东京热无码av男人的天堂 | 亚欧洲精品在线视频免费观看 | 久久国产精品萌白酱免费 | 亚洲欧美中文字幕5发布 | 中文字幕无码热在线视频 | 牲欲强的熟妇农村老妇女 | 亚洲毛片av日韩av无码 | 日韩在线不卡免费视频一区 | 又大又硬又爽免费视频 | 四十如虎的丰满熟妇啪啪 | 日韩无套无码精品 | 在线 国产 欧美 亚洲 天堂 | 男女猛烈xx00免费视频试看 | 亚洲国产精品久久久天堂 | 国产综合色产在线精品 | 无套内谢的新婚少妇国语播放 | 水蜜桃亚洲一二三四在线 | 亚洲精品久久久久avwww潮水 | 精品国产一区二区三区av 性色 | a在线亚洲男人的天堂 | 免费无码午夜福利片69 | 人妻尝试又大又粗久久 | 亚洲色偷偷偷综合网 | 久久伊人色av天堂九九小黄鸭 | 免费网站看v片在线18禁无码 | 极品嫩模高潮叫床 | 亚洲自偷精品视频自拍 | 亚洲人成网站免费播放 | 日韩欧美中文字幕公布 | 蜜桃视频韩日免费播放 | 久久久久人妻一区精品色欧美 | 午夜精品久久久久久久久 | 国产又爽又猛又粗的视频a片 | 日日麻批免费40分钟无码 | 国产福利视频一区二区 | 久久国产劲爆∧v内射 | 国产精品人人爽人人做我的可爱 | 大肉大捧一进一出好爽视频 | 小鲜肉自慰网站xnxx | 粗大的内捧猛烈进出视频 | 夜夜夜高潮夜夜爽夜夜爰爰 | 国产人妻久久精品二区三区老狼 | 亚洲成a人片在线观看无码3d | 国产亚洲精品久久久久久久久动漫 | 中文字幕人妻无码一区二区三区 | 精品人人妻人人澡人人爽人人 | 亚洲国产精品美女久久久久 | 无码人妻av免费一区二区三区 | 久久久久久亚洲精品a片成人 | 在线看片无码永久免费视频 | 青春草在线视频免费观看 | 又大又黄又粗又爽的免费视频 | 一本无码人妻在中文字幕免费 | √天堂资源地址中文在线 | 性欧美大战久久久久久久 | 亚洲中文字幕无码一久久区 | 亚洲一区二区三区播放 | 久久久亚洲欧洲日产国码αv | 动漫av一区二区在线观看 | 亚洲 a v无 码免 费 成 人 a v | 丝袜足控一区二区三区 | 无码国产色欲xxxxx视频 | 色婷婷综合激情综在线播放 | 美女黄网站人色视频免费国产 | 精品一区二区三区波多野结衣 | 亚洲中文字幕在线观看 | 久激情内射婷内射蜜桃人妖 | 少妇人妻大乳在线视频 | 伊人色综合久久天天小片 | 九九在线中文字幕无码 | 丰满岳乱妇在线观看中字无码 | 日韩精品久久久肉伦网站 | 亚洲爆乳精品无码一区二区三区 | 无人区乱码一区二区三区 | 亚洲爆乳精品无码一区二区三区 | 亚洲欧洲日本综合aⅴ在线 | 日韩人妻系列无码专区 | 撕开奶罩揉吮奶头视频 | 毛片内射-百度 | 亚洲无人区午夜福利码高清完整版 | 无码任你躁久久久久久久 | 精品久久综合1区2区3区激情 | 亚洲一区二区三区国产精华液 | 亚洲人成无码网www | 中文字幕无码热在线视频 | 亚洲色大成网站www | 无码任你躁久久久久久久 | 爱做久久久久久 | 丰满人妻翻云覆雨呻吟视频 | 四虎影视成人永久免费观看视频 | 国产 精品 自在自线 | 色欲久久久天天天综合网精品 | 国产手机在线αⅴ片无码观看 | 久久久久久a亚洲欧洲av冫 | 成人aaa片一区国产精品 | 色婷婷香蕉在线一区二区 | 亚洲综合久久一区二区 | 天干天干啦夜天干天2017 | 国产偷抇久久精品a片69 | 97久久国产亚洲精品超碰热 | 成熟妇人a片免费看网站 | 成人免费视频在线观看 | 日日碰狠狠丁香久燥 | 国产内射老熟女aaaa | 色老头在线一区二区三区 | 熟妇人妻无乱码中文字幕 | 免费网站看v片在线18禁无码 | 丰满岳乱妇在线观看中字无码 | 久久综合狠狠综合久久综合88 | 中文无码成人免费视频在线观看 | 亚洲精品久久久久久一区二区 | 少妇高潮一区二区三区99 | 欧美 日韩 人妻 高清 中文 | 久久久无码中文字幕久... | 国产欧美精品一区二区三区 | 男人和女人高潮免费网站 | 久久亚洲精品成人无码 | 亚洲自偷自拍另类第1页 | 久久久精品人妻久久影视 | 樱花草在线播放免费中文 | 波多野结衣一区二区三区av免费 | 日日天干夜夜狠狠爱 | 国内精品久久毛片一区二区 | 国产精品美女久久久久av爽李琼 | 国产情侣作爱视频免费观看 | 色情久久久av熟女人妻网站 | 成人欧美一区二区三区黑人免费 | 人妻插b视频一区二区三区 | 欧美亚洲国产一区二区三区 | 中文字幕乱码人妻二区三区 | 好爽又高潮了毛片免费下载 | 日韩精品乱码av一区二区 | 亚洲大尺度无码无码专区 | 国产亚洲人成在线播放 | 亚洲成av人影院在线观看 | 熟女少妇人妻中文字幕 | 成人免费视频视频在线观看 免费 | 亚洲成色在线综合网站 | 无码精品人妻一区二区三区av | 天堂久久天堂av色综合 | 清纯唯美经典一区二区 | 大地资源网第二页免费观看 | 无码乱肉视频免费大全合集 | 成人欧美一区二区三区黑人 | 无码中文字幕色专区 | 大胆欧美熟妇xx | 婷婷六月久久综合丁香 | 久久精品国产大片免费观看 | 97久久国产亚洲精品超碰热 | 精品国产精品久久一区免费式 | 少女韩国电视剧在线观看完整 | 88国产精品欧美一区二区三区 | 97色伦图片97综合影院 | 扒开双腿疯狂进出爽爽爽视频 | 亚洲人成人无码网www国产 | 午夜肉伦伦影院 | 中文字幕乱码人妻无码久久 | 久久久久成人片免费观看蜜芽 | 99国产精品白浆在线观看免费 | 久久久婷婷五月亚洲97号色 | 亚洲综合另类小说色区 | 真人与拘做受免费视频 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 粗大的内捧猛烈进出视频 | 国产内射老熟女aaaa | 亚洲 日韩 欧美 成人 在线观看 | 国产成人一区二区三区在线观看 | 131美女爱做视频 | 欧美人与物videos另类 | 97久久国产亚洲精品超碰热 | 99久久人妻精品免费一区 | 色综合久久中文娱乐网 | 精品国产一区二区三区av 性色 | 天干天干啦夜天干天2017 | 欧美成人高清在线播放 | 亚洲aⅴ无码成人网站国产app | 97久久精品无码一区二区 | 日日天日日夜日日摸 | 中文字幕色婷婷在线视频 | 国産精品久久久久久久 | av无码不卡在线观看免费 | 综合激情五月综合激情五月激情1 | 久久精品中文字幕大胸 | 国产乱码精品一品二品 | 国产激情精品一区二区三区 | 日日天日日夜日日摸 | 色爱情人网站 | 老熟女乱子伦 | 国产av久久久久精东av | 精品无码国产一区二区三区av | 婷婷丁香六月激情综合啪 | 精品无人国产偷自产在线 | 红桃av一区二区三区在线无码av | 亚洲色大成网站www国产 | 国产99久久精品一区二区 | 荫蒂添的好舒服视频囗交 | 又黄又爽又色的视频 | 少妇人妻av毛片在线看 | 精品人人妻人人澡人人爽人人 | 白嫩日本少妇做爰 | 激情五月综合色婷婷一区二区 | 欧美日韩视频无码一区二区三 | 欧美阿v高清资源不卡在线播放 | 亚洲欧美国产精品久久 | 一二三四社区在线中文视频 | 特级做a爰片毛片免费69 | 国产精品国产三级国产专播 | 中国女人内谢69xxxxxa片 | 亚洲人成网站免费播放 | 亚洲第一无码av无码专区 | 夜精品a片一区二区三区无码白浆 | 亚洲区欧美区综合区自拍区 | 最近免费中文字幕中文高清百度 | 色综合视频一区二区三区 | 国产69精品久久久久app下载 | 久久国产精品精品国产色婷婷 | 亚洲国产精品一区二区美利坚 | 亚洲の无码国产の无码步美 | 俺去俺来也在线www色官网 | 亚洲a无码综合a国产av中文 | 亚洲欧洲无卡二区视頻 | 国产精品第一区揄拍无码 | 欧美freesex黑人又粗又大 | av香港经典三级级 在线 | 国产手机在线αⅴ片无码观看 | 高清无码午夜福利视频 | 中文字幕人成乱码熟女app | 亚洲狠狠婷婷综合久久 | 成在人线av无码免费 | 麻豆成人精品国产免费 | 亚洲精品www久久久 | 国产成人无码区免费内射一片色欲 | 无码人妻精品一区二区三区不卡 | 四虎永久在线精品免费网址 | 日韩精品a片一区二区三区妖精 | 人妻体内射精一区二区三四 | 牲欲强的熟妇农村老妇女视频 | 精品一区二区三区无码免费视频 | 亚洲精品一区二区三区大桥未久 | 成人试看120秒体验区 | 欧美人与禽猛交狂配 | 成年美女黄网站色大免费视频 | 国产精品久久久久久亚洲影视内衣 | 亚洲精品午夜无码电影网 | 玩弄人妻少妇500系列视频 | 亚洲s码欧洲m码国产av | 在线亚洲高清揄拍自拍一品区 | 亚洲精品国产第一综合99久久 | 成年女人永久免费看片 | 成人无码影片精品久久久 | 狠狠色色综合网站 | 日日摸夜夜摸狠狠摸婷婷 | 久久久精品国产sm最大网站 | 一二三四在线观看免费视频 | 无码人妻精品一区二区三区下载 | 国产又粗又硬又大爽黄老大爷视 | 日本精品人妻无码77777 天堂一区人妻无码 | 美女极度色诱视频国产 | 福利一区二区三区视频在线观看 | 天堂亚洲免费视频 | 国产人妻精品一区二区三区 | 亚洲 a v无 码免 费 成 人 a v | 天堂亚洲2017在线观看 | 久久久久久久人妻无码中文字幕爆 | 日日天日日夜日日摸 | 99riav国产精品视频 | 久久久www成人免费毛片 | 亚洲s色大片在线观看 | 1000部啪啪未满十八勿入下载 | 国产精品a成v人在线播放 | 国产手机在线αⅴ片无码观看 | 国产av一区二区精品久久凹凸 | 国产人妖乱国产精品人妖 | 亚洲日本va中文字幕 | 国产精品无码一区二区桃花视频 | 久久久久se色偷偷亚洲精品av | 亚洲七七久久桃花影院 | 国产女主播喷水视频在线观看 | 最近免费中文字幕中文高清百度 | 又色又爽又黄的美女裸体网站 | 漂亮人妻洗澡被公强 日日躁 | 欧美日本日韩 | 色综合久久88色综合天天 | 曰韩少妇内射免费播放 | 亚洲欧美日韩成人高清在线一区 | 国产色精品久久人妻 | 中国大陆精品视频xxxx | 丰满少妇熟乱xxxxx视频 | 亚洲午夜无码久久 | 四十如虎的丰满熟妇啪啪 | 日产精品99久久久久久 | 波多野结衣 黑人 | 2019午夜福利不卡片在线 | 狠狠综合久久久久综合网 | 超碰97人人做人人爱少妇 | 国产精品久免费的黄网站 | 人人爽人人澡人人人妻 | 成人精品一区二区三区中文字幕 | 少妇愉情理伦片bd | 波多野结衣乳巨码无在线观看 | 东京无码熟妇人妻av在线网址 | 久久久久亚洲精品中文字幕 | 国产精品久久久久无码av色戒 | 99精品国产综合久久久久五月天 | 荫蒂添的好舒服视频囗交 | 精品人妻中文字幕有码在线 | 久久zyz资源站无码中文动漫 | 娇妻被黑人粗大高潮白浆 | 国产熟妇另类久久久久 | 欧美真人作爱免费视频 | 天天拍夜夜添久久精品 | 在线看片无码永久免费视频 | 色诱久久久久综合网ywww | 夫妻免费无码v看片 | 露脸叫床粗话东北少妇 | 99国产欧美久久久精品 | 国产成人亚洲综合无码 | 国产真实乱对白精彩久久 | 精品日本一区二区三区在线观看 | 黑人大群体交免费视频 | 在线播放无码字幕亚洲 | 黑人粗大猛烈进出高潮视频 | 无码任你躁久久久久久久 | 久久综合网欧美色妞网 | a片免费视频在线观看 | 国产无套粉嫩白浆在线 | 国产乱人无码伦av在线a | 欧美猛少妇色xxxxx | 最近中文2019字幕第二页 | 午夜精品久久久久久久久 | 亚欧洲精品在线视频免费观看 | 国产午夜精品一区二区三区嫩草 | 国产又爽又黄又刺激的视频 | 国产麻豆精品一区二区三区v视界 | 蜜臀av在线播放 久久综合激激的五月天 | 欧美刺激性大交 | 免费人成在线视频无码 | 在线播放无码字幕亚洲 | 中文无码精品a∨在线观看不卡 | 欧美 丝袜 自拍 制服 另类 | 国产综合色产在线精品 | 性色av无码免费一区二区三区 | 国产亚洲人成在线播放 | 国产精品无码一区二区桃花视频 | 动漫av网站免费观看 | 欧美黑人乱大交 | 亚洲 高清 成人 动漫 | 99久久亚洲精品无码毛片 | 亚洲一区av无码专区在线观看 | 欧美日韩久久久精品a片 | 4hu四虎永久在线观看 | 国产suv精品一区二区五 | 中文字幕无码视频专区 | 蜜臀av在线播放 久久综合激激的五月天 | 国产美女精品一区二区三区 | 牛和人交xxxx欧美 | 色一情一乱一伦一视频免费看 | 狂野欧美性猛交免费视频 | 午夜福利一区二区三区在线观看 | 无码人妻少妇伦在线电影 | 人妻无码αv中文字幕久久琪琪布 | 亚洲国产精品无码一区二区三区 | 国产成人一区二区三区在线观看 | 蜜臀av无码人妻精品 | 麻豆人妻少妇精品无码专区 | 国产精品久久国产三级国 | 性史性农村dvd毛片 | 无码av免费一区二区三区试看 | 国产内射爽爽大片视频社区在线 | 久久国产精品萌白酱免费 | 国产精品国产三级国产专播 | 日韩视频 中文字幕 视频一区 | 任你躁国产自任一区二区三区 | 精品aⅴ一区二区三区 | 亚洲va中文字幕无码久久不卡 | 精品人妻人人做人人爽 | 成人亚洲精品久久久久 | 波多野结衣av一区二区全免费观看 | 亚洲一区二区三区 | 亚洲一区二区三区四区 | 大色综合色综合网站 | 国产精品多人p群无码 | 国产精品久免费的黄网站 | 成人欧美一区二区三区 | 日本一本二本三区免费 | 免费播放一区二区三区 | 丰满少妇弄高潮了www | 久久久久免费精品国产 | 日韩少妇内射免费播放 | 色情久久久av熟女人妻网站 | 午夜嘿嘿嘿影院 | 精品久久久久久亚洲精品 | 国産精品久久久久久久 | 国产精品资源一区二区 | 亚洲国产午夜精品理论片 | 国产精品久久久av久久久 | 国产超级va在线观看视频 | 无人区乱码一区二区三区 | 荡女精品导航 | 亚洲精品综合五月久久小说 | 国产精品美女久久久久av爽李琼 | 成年女人永久免费看片 | 亚洲欧美日韩成人高清在线一区 | √天堂资源地址中文在线 | 奇米影视888欧美在线观看 | 欧美xxxx黑人又粗又长 | 少妇久久久久久人妻无码 | 亚洲日本va午夜在线电影 | 久久精品国产大片免费观看 | 青青青手机频在线观看 | 久久综合九色综合欧美狠狠 | 在线成人www免费观看视频 | 国产成人无码av片在线观看不卡 | 99久久精品日本一区二区免费 | 蜜桃av抽搐高潮一区二区 | 亚洲人成网站在线播放942 | 亚洲aⅴ无码成人网站国产app | 精品一区二区不卡无码av | 丰满人妻一区二区三区免费视频 | 粉嫩少妇内射浓精videos | 性欧美大战久久久久久久 | 无遮无挡爽爽免费视频 | 国产成人一区二区三区在线观看 | 少妇久久久久久人妻无码 | 装睡被陌生人摸出水好爽 | 日韩成人一区二区三区在线观看 | 免费观看激色视频网站 | 国产综合在线观看 | 国产三级精品三级男人的天堂 | 国产乱码精品一品二品 | 国产精品毛片一区二区 | 老熟妇乱子伦牲交视频 | 国产精品第一区揄拍无码 | 老司机亚洲精品影院 | 亚洲精品国产a久久久久久 | 亚洲国产精品毛片av不卡在线 | 久在线观看福利视频 | 学生妹亚洲一区二区 | 国产艳妇av在线观看果冻传媒 | 亚洲va欧美va天堂v国产综合 | 内射爽无广熟女亚洲 | 日本丰满护士爆乳xxxx | 天天做天天爱天天爽综合网 | 无码av岛国片在线播放 | 国产午夜手机精彩视频 | 亚洲一区二区三区在线观看网站 | 大乳丰满人妻中文字幕日本 | 精品久久久中文字幕人妻 | 日本va欧美va欧美va精品 | 成年美女黄网站色大免费全看 | 特黄特色大片免费播放器图片 | 亚洲成a人片在线观看无码3d | 在线看片无码永久免费视频 | 妺妺窝人体色www在线小说 | 中文字幕乱码中文乱码51精品 | 一本久久伊人热热精品中文字幕 | 亚洲人交乣女bbw | 成在人线av无码免观看麻豆 | 少妇人妻大乳在线视频 | 性生交大片免费看l | 亚洲aⅴ无码成人网站国产app | 国产午夜手机精彩视频 | 国产av无码专区亚洲awww | 国产成人精品三级麻豆 | 又粗又大又硬毛片免费看 | 18黄暴禁片在线观看 | 亚洲国精产品一二二线 | 少妇无码吹潮 | 久久久精品国产sm最大网站 | 学生妹亚洲一区二区 | 蜜桃av抽搐高潮一区二区 | 国产成人一区二区三区在线观看 | 国产麻豆精品精东影业av网站 | 人人妻人人澡人人爽精品欧美 | 国产人妻久久精品二区三区老狼 | 鲁一鲁av2019在线 | 国产9 9在线 | 中文 | 老头边吃奶边弄进去呻吟 | 欧美人与禽猛交狂配 | 国产成人无码a区在线观看视频app | 亚洲 a v无 码免 费 成 人 a v | 国产极品美女高潮无套在线观看 | 一本色道婷婷久久欧美 | 夜夜高潮次次欢爽av女 | 亚洲国产精品久久人人爱 | 欧美成人免费全部网站 | 国产一区二区三区四区五区加勒比 | 欧美熟妇另类久久久久久多毛 | 色窝窝无码一区二区三区色欲 | 18禁黄网站男男禁片免费观看 | 99久久婷婷国产综合精品青草免费 | 欧美大屁股xxxxhd黑色 | 欧美精品免费观看二区 | 午夜福利一区二区三区在线观看 | 熟妇人妻无乱码中文字幕 | 亚洲精品欧美二区三区中文字幕 | 美女毛片一区二区三区四区 | 国内精品人妻无码久久久影院 | 少妇性l交大片 | 无套内谢老熟女 | а√天堂www在线天堂小说 | www成人国产高清内射 | 国内揄拍国内精品少妇国语 | 亚洲国精产品一二二线 | 亚洲成av人片天堂网无码】 | 伊人久久大香线蕉亚洲 | 亚洲高清偷拍一区二区三区 | 亚洲成色在线综合网站 | 水蜜桃色314在线观看 | 国产极品视觉盛宴 | 精品一二三区久久aaa片 | 久久久久久av无码免费看大片 | 最近免费中文字幕中文高清百度 | 无码人妻精品一区二区三区不卡 | 国产精品-区区久久久狼 | 亚洲国产高清在线观看视频 | 国产无遮挡又黄又爽又色 | 欧美 丝袜 自拍 制服 另类 | 亚洲 日韩 欧美 成人 在线观看 | 国模大胆一区二区三区 | 亚洲色欲久久久综合网东京热 | 夜夜高潮次次欢爽av女 | 亚洲欧美色中文字幕在线 | 亚洲精品国产品国语在线观看 | 2019nv天堂香蕉在线观看 | 激情内射亚州一区二区三区爱妻 | 精品熟女少妇av免费观看 | 中文字幕人妻无码一区二区三区 | 激情五月综合色婷婷一区二区 | 亚洲国产精品一区二区美利坚 | 精品偷自拍另类在线观看 | 兔费看少妇性l交大片免费 | 久久zyz资源站无码中文动漫 | 精品乱子伦一区二区三区 | 久久久久亚洲精品中文字幕 | 最近中文2019字幕第二页 | 欧美日韩久久久精品a片 | 国产精品美女久久久网av | 亚洲国产成人a精品不卡在线 | 日日躁夜夜躁狠狠躁 | 欧美丰满老熟妇xxxxx性 | 中文字幕久久久久人妻 | 亚洲精品久久久久久一区二区 | 国产黑色丝袜在线播放 | 精品久久久久久亚洲精品 | 精品国产麻豆免费人成网站 | 久久久成人毛片无码 | 中文字幕无码免费久久99 | 人人妻人人藻人人爽欧美一区 | 亚洲欧洲日本综合aⅴ在线 | 成人一在线视频日韩国产 | 色情久久久av熟女人妻网站 | 99久久人妻精品免费二区 | 欧美 日韩 人妻 高清 中文 | 麻豆蜜桃av蜜臀av色欲av | 又色又爽又黄的美女裸体网站 | 精品乱码久久久久久久 | 精品国产精品久久一区免费式 | 国产莉萝无码av在线播放 | 亚洲高清偷拍一区二区三区 | √8天堂资源地址中文在线 | www国产亚洲精品久久久日本 | 亚洲毛片av日韩av无码 | 亚洲小说春色综合另类 | 丰满人妻被黑人猛烈进入 | 学生妹亚洲一区二区 | 亚洲 欧美 激情 小说 另类 | 一本久道高清无码视频 | 日韩av无码一区二区三区不卡 | 欧美35页视频在线观看 | 久久综合色之久久综合 | 国产精品99爱免费视频 | 色诱久久久久综合网ywww | 亚洲色欲色欲欲www在线 | 久热国产vs视频在线观看 | 婷婷丁香五月天综合东京热 | 午夜理论片yy44880影院 | 亚洲va欧美va天堂v国产综合 | 理论片87福利理论电影 | 鲁鲁鲁爽爽爽在线视频观看 | 午夜福利不卡在线视频 | 国产在线精品一区二区高清不卡 | 亚洲国产精品无码久久久久高潮 | 无码国产激情在线观看 | 色欲久久久天天天综合网精品 | 亚洲精品无码国产 | 成人影院yy111111在线观看 | 少妇太爽了在线观看 | 国产一区二区不卡老阿姨 | 超碰97人人做人人爱少妇 | 强辱丰满人妻hd中文字幕 | 国产成人精品优优av | 精品人妻中文字幕有码在线 | 国产农村乱对白刺激视频 | 无码人妻精品一区二区三区下载 | 18禁止看的免费污网站 | 国产手机在线αⅴ片无码观看 | 激情爆乳一区二区三区 | 无套内射视频囯产 | 自拍偷自拍亚洲精品10p | 欧美人与禽猛交狂配 | 中文字幕+乱码+中文字幕一区 | 久在线观看福利视频 | 午夜精品一区二区三区的区别 | 亚洲日本一区二区三区在线 | 欧美成人高清在线播放 | 久9re热视频这里只有精品 | 美女极度色诱视频国产 | 色综合天天综合狠狠爱 | 国产激情综合五月久久 | 性色av无码免费一区二区三区 | 日韩无套无码精品 | 日本饥渴人妻欲求不满 | 亚洲乱码国产乱码精品精 | 丰满少妇女裸体bbw | 欧美野外疯狂做受xxxx高潮 | 亚洲国产精品久久人人爱 | 国产亲子乱弄免费视频 | 初尝人妻少妇中文字幕 | 亚洲精品国产a久久久久久 | 无码播放一区二区三区 | 国产综合在线观看 | 中文字幕无码日韩专区 | 精品国产av色一区二区深夜久久 | 国产激情无码一区二区 | 中文精品久久久久人妻不卡 | 日本乱人伦片中文三区 | 国産精品久久久久久久 | 亚洲乱码中文字幕在线 | 少妇被粗大的猛进出69影院 | 大胆欧美熟妇xx | 娇妻被黑人粗大高潮白浆 | www国产亚洲精品久久久日本 | 欧美激情内射喷水高潮 | 少妇性l交大片欧洲热妇乱xxx | 色婷婷久久一区二区三区麻豆 | 欧洲熟妇色 欧美 | 野狼第一精品社区 | 天干天干啦夜天干天2017 | 精品国产精品久久一区免费式 | 任你躁国产自任一区二区三区 | 国産精品久久久久久久 | 午夜丰满少妇性开放视频 | 成人片黄网站色大片免费观看 | 亚洲欧洲中文日韩av乱码 | 妺妺窝人体色www婷婷 | 国产精品久久久av久久久 | 性色av无码免费一区二区三区 | 四虎影视成人永久免费观看视频 | 国产午夜亚洲精品不卡 | 成人影院yy111111在线观看 | 正在播放东北夫妻内射 | 狂野欧美性猛xxxx乱大交 | 国产精品亚洲五月天高清 | 强奷人妻日本中文字幕 | 丰满人妻被黑人猛烈进入 | 丰满肥臀大屁股熟妇激情视频 | 好爽又高潮了毛片免费下载 | 熟妇女人妻丰满少妇中文字幕 | 国产明星裸体无码xxxx视频 | 国内少妇偷人精品视频 | 中文字幕精品av一区二区五区 | 日日摸天天摸爽爽狠狠97 | 澳门永久av免费网站 | 久久久中文久久久无码 | 少妇性俱乐部纵欲狂欢电影 | 久久精品中文字幕一区 | 精品久久8x国产免费观看 | 成年美女黄网站色大免费视频 | 日韩人妻少妇一区二区三区 | 精品国产福利一区二区 | aⅴ在线视频男人的天堂 | 夜精品a片一区二区三区无码白浆 | 妺妺窝人体色www婷婷 | 特大黑人娇小亚洲女 | 成年女人永久免费看片 | 综合人妻久久一区二区精品 | 中文字幕无线码免费人妻 | 亚洲人交乣女bbw | 99久久久国产精品无码免费 | 免费无码肉片在线观看 | 成人av无码一区二区三区 | 成人欧美一区二区三区 | 国产精品久久精品三级 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 男女猛烈xx00免费视频试看 | 午夜福利试看120秒体验区 | 国产凸凹视频一区二区 | 国内精品一区二区三区不卡 | 婷婷色婷婷开心五月四房播播 | 狠狠色欧美亚洲狠狠色www | 99久久亚洲精品无码毛片 | 久久久精品人妻久久影视 | 强辱丰满人妻hd中文字幕 | 两性色午夜视频免费播放 | 日本xxxx色视频在线观看免费 | 131美女爱做视频 | 妺妺窝人体色www在线小说 | 亚洲第一无码av无码专区 | 国产又爽又猛又粗的视频a片 | 精品国产一区二区三区四区在线看 | 丝袜 中出 制服 人妻 美腿 | 中文无码精品a∨在线观看不卡 | 日韩人妻无码一区二区三区久久99 | 亚洲日韩一区二区 | 亚洲国产精品久久久久久 | 中文字幕精品av一区二区五区 | 国产精品18久久久久久麻辣 | 高潮毛片无遮挡高清免费 | 乱码av麻豆丝袜熟女系列 | 无码人妻黑人中文字幕 | 四十如虎的丰满熟妇啪啪 | 在线观看免费人成视频 | 妺妺窝人体色www在线小说 | 女人被男人爽到呻吟的视频 | 人人妻人人澡人人爽欧美一区九九 | 国产精品高潮呻吟av久久4虎 | 午夜熟女插插xx免费视频 | 国产精品人人爽人人做我的可爱 | 在线欧美精品一区二区三区 | 欧美老妇交乱视频在线观看 | 中文字幕人成乱码熟女app | 久久久久亚洲精品男人的天堂 | 精品人妻人人做人人爽 | 国产精品丝袜黑色高跟鞋 | 久久久久99精品国产片 | 国产电影无码午夜在线播放 | 麻豆果冻传媒2021精品传媒一区下载 | 国产av一区二区精品久久凹凸 | 人人妻人人澡人人爽人人精品 | 国产精品怡红院永久免费 | 久久精品国产大片免费观看 | 国产9 9在线 | 中文 | 国产sm调教视频在线观看 | 欧美精品一区二区精品久久 | 国产成人无码av片在线观看不卡 | 人妻熟女一区 | 亚洲小说春色综合另类 | 亚洲中文字幕在线观看 | 蜜桃无码一区二区三区 | 日韩亚洲欧美精品综合 | 亚拍精品一区二区三区探花 | 亚洲国产成人a精品不卡在线 | 精品国精品国产自在久国产87 | 亚洲精品美女久久久久久久 | 亚洲综合无码久久精品综合 | 亚洲人成影院在线观看 | 国产高清av在线播放 | 久青草影院在线观看国产 | 中文精品久久久久人妻不卡 | 久激情内射婷内射蜜桃人妖 | 国产精品va在线播放 | 国产成人综合在线女婷五月99播放 | 亚洲日韩av一区二区三区四区 | 中文字幕无码视频专区 | 377p欧洲日本亚洲大胆 | а√天堂www在线天堂小说 | 妺妺窝人体色www婷婷 | 美女极度色诱视频国产 | 激情爆乳一区二区三区 | 中文字幕久久久久人妻 | 欧美日韩在线亚洲综合国产人 | 67194成是人免费无码 | 亚洲人成网站色7799 | 午夜丰满少妇性开放视频 | 国产一区二区三区影院 | 一本色道久久综合亚洲精品不卡 | 色欲久久久天天天综合网精品 | 99国产精品白浆在线观看免费 | 精品乱码久久久久久久 | 麻豆av传媒蜜桃天美传媒 | 一本色道久久综合狠狠躁 | 成人无码精品1区2区3区免费看 | 亚洲 欧美 激情 小说 另类 | 国产亚洲精品久久久久久久久动漫 | 日韩av无码一区二区三区 | 国产人妻精品一区二区三区 | 一二三四社区在线中文视频 | 久久久久久av无码免费看大片 | 国产精品无码成人午夜电影 | 乱人伦人妻中文字幕无码久久网 | 中文久久乱码一区二区 | 欧美日韩综合一区二区三区 | 国产三级精品三级男人的天堂 | 亚洲精品综合五月久久小说 | 麻豆果冻传媒2021精品传媒一区下载 | 日韩精品久久久肉伦网站 | 亚洲中文字幕成人无码 | 久久这里只有精品视频9 | 性生交大片免费看l | 免费人成网站视频在线观看 | 成人无码精品一区二区三区 | 国产人妖乱国产精品人妖 | www成人国产高清内射 | 国产精品永久免费视频 | 青青草原综合久久大伊人精品 | 国产精品久久国产三级国 | 国产精品无码成人午夜电影 | 天天摸天天透天天添 | 俺去俺来也www色官网 | 无码人妻精品一区二区三区下载 | 色综合视频一区二区三区 | 国产成人无码av在线影院 | 久久国产精品二国产精品 | 亚洲国产精品久久久天堂 | 熟妇激情内射com | 成人无码视频在线观看网站 | 国内揄拍国内精品少妇国语 | 日韩人妻少妇一区二区三区 | 伊人久久大香线蕉亚洲 | 亚洲高清偷拍一区二区三区 | 熟女少妇人妻中文字幕 | 欧美日韩久久久精品a片 | 色老头在线一区二区三区 | 女人色极品影院 | 欧美乱妇无乱码大黄a片 | 免费人成在线视频无码 | yw尤物av无码国产在线观看 | 精品国偷自产在线视频 | 无码帝国www无码专区色综合 | 精品成在人线av无码免费看 | 玩弄人妻少妇500系列视频 | 国产后入清纯学生妹 | 午夜福利一区二区三区在线观看 | 黑人大群体交免费视频 | 无码国产色欲xxxxx视频 | 久久精品中文闷骚内射 | 牲欲强的熟妇农村老妇女 | 国产精品久久久久7777 | 久久精品人人做人人综合 | 无遮无挡爽爽免费视频 | 欧美激情一区二区三区成人 | 亚洲自偷精品视频自拍 | 午夜精品久久久内射近拍高清 | 国产精品亚洲а∨无码播放麻豆 | 欧美一区二区三区视频在线观看 | 97人妻精品一区二区三区 | 久久精品国产精品国产精品污 | 熟女少妇在线视频播放 | 狠狠色欧美亚洲狠狠色www | 亚洲欧洲日本综合aⅴ在线 | 精品 日韩 国产 欧美 视频 | 熟妇激情内射com | 国产婷婷色一区二区三区在线 | 亚洲色欲久久久综合网东京热 | 精品日本一区二区三区在线观看 | 在线观看欧美一区二区三区 | 日韩 欧美 动漫 国产 制服 | 丝袜 中出 制服 人妻 美腿 | aa片在线观看视频在线播放 | 4hu四虎永久在线观看 | 无套内射视频囯产 | 成人精品视频一区二区三区尤物 | 欧美人妻一区二区三区 | 国产亚洲精品精品国产亚洲综合 | 67194成是人免费无码 | 无码精品人妻一区二区三区av | 无遮挡啪啪摇乳动态图 | 午夜精品久久久久久久久 | 成人女人看片免费视频放人 | 国产精品久久久久影院嫩草 | 最新国产乱人伦偷精品免费网站 | 无码人妻久久一区二区三区不卡 | 精品国产成人一区二区三区 | 波多野结衣aⅴ在线 | 欧美成人家庭影院 | 日韩在线不卡免费视频一区 | 中文字幕 人妻熟女 | 亚洲の无码国产の无码步美 | 欧美 丝袜 自拍 制服 另类 | 国产卡一卡二卡三 | 国产色xx群视频射精 | 综合激情五月综合激情五月激情1 | 乌克兰少妇xxxx做受 | 色婷婷久久一区二区三区麻豆 | 久久精品国产一区二区三区肥胖 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 久久精品中文闷骚内射 | 亚洲精品欧美二区三区中文字幕 | 人人妻人人澡人人爽精品欧美 | 美女极度色诱视频国产 | ass日本丰满熟妇pics | 国产尤物精品视频 | 久久久久久av无码免费看大片 | 色妞www精品免费视频 | 久久综合网欧美色妞网 | 国产亚洲人成a在线v网站 | 一本久道高清无码视频 | 四虎影视成人永久免费观看视频 | 亚洲第一网站男人都懂 | 中文字幕乱妇无码av在线 | 玩弄中年熟妇正在播放 | 麻豆蜜桃av蜜臀av色欲av | 日本丰满护士爆乳xxxx | 亚无码乱人伦一区二区 | 一本色道婷婷久久欧美 | 色 综合 欧美 亚洲 国产 | 精品人妻人人做人人爽夜夜爽 | 久久亚洲精品中文字幕无男同 | 国产一区二区不卡老阿姨 | 无码一区二区三区在线 | 麻花豆传媒剧国产免费mv在线 | 国产女主播喷水视频在线观看 | 国产电影无码午夜在线播放 | 日本高清一区免费中文视频 | 性色欲网站人妻丰满中文久久不卡 | 少妇高潮喷潮久久久影院 | 人妻中文无码久热丝袜 | 国产精品久久久久7777 | 国产精品久久国产三级国 | 国产成人无码av在线影院 | 中文字幕无码热在线视频 | 东京热男人av天堂 | 亚洲国产精品无码一区二区三区 | 国产亚洲精品久久久久久大师 | 玩弄少妇高潮ⅹxxxyw | 疯狂三人交性欧美 | 亚洲国产成人av在线观看 | 无码人妻久久一区二区三区不卡 | 国内精品人妻无码久久久影院蜜桃 | 国产av无码专区亚洲awww | 5858s亚洲色大成网站www | 无码吃奶揉捏奶头高潮视频 | 国产成人无码区免费内射一片色欲 | 国产精华av午夜在线观看 | 无人区乱码一区二区三区 | 黑人玩弄人妻中文在线 | 亚洲色偷偷偷综合网 | 人妻插b视频一区二区三区 | 乌克兰少妇性做爰 | 亚洲区欧美区综合区自拍区 | 精品国产麻豆免费人成网站 | 国产精品理论片在线观看 | 日韩精品成人一区二区三区 | 国产成人精品久久亚洲高清不卡 | 特大黑人娇小亚洲女 | www国产精品内射老师 | 久久久久久久人妻无码中文字幕爆 | 熟女体下毛毛黑森林 | 色综合视频一区二区三区 | 国产两女互慰高潮视频在线观看 | 免费国产黄网站在线观看 | 色五月五月丁香亚洲综合网 | 亚洲欧美日韩综合久久久 | 亚洲色www成人永久网址 | 国产人成高清在线视频99最全资源 | 牲交欧美兽交欧美 | 国产黄在线观看免费观看不卡 | 成 人影片 免费观看 | 久久久久国色av免费观看性色 | 人妻无码αv中文字幕久久琪琪布 | 欧美日韩人成综合在线播放 | 国产香蕉尹人综合在线观看 | 狠狠色欧美亚洲狠狠色www | 真人与拘做受免费视频 | 又大又硬又黄的免费视频 | 激情内射日本一区二区三区 | 人妻有码中文字幕在线 | 国产在线aaa片一区二区99 | 九九综合va免费看 | 一本一道久久综合久久 | 精品久久久无码人妻字幂 | 色狠狠av一区二区三区 | 日本一区二区更新不卡 | 久久久久久av无码免费看大片 | 亚洲小说图区综合在线 | 99久久精品无码一区二区毛片 | 熟妇人妻无乱码中文字幕 | 国产成人无码av片在线观看不卡 | 欧美性猛交内射兽交老熟妇 | 牲交欧美兽交欧美 | 婷婷五月综合缴情在线视频 | 又色又爽又黄的美女裸体网站 | 精品久久久久久人妻无码中文字幕 | 麻豆国产丝袜白领秘书在线观看 | 在线观看欧美一区二区三区 | 免费观看的无遮挡av | 精品一区二区不卡无码av | 国产成人精品一区二区在线小狼 | 国产精品手机免费 | 鲁一鲁av2019在线 | 亚洲熟女一区二区三区 | 国产一精品一av一免费 | 少妇久久久久久人妻无码 | 动漫av网站免费观看 | 久久精品成人欧美大片 | 午夜男女很黄的视频 | 国产成人精品久久亚洲高清不卡 | 妺妺窝人体色www婷婷 | 亚无码乱人伦一区二区 | 成人试看120秒体验区 | 丝袜人妻一区二区三区 | 丰满妇女强制高潮18xxxx | 少妇被黑人到高潮喷出白浆 | 国产农村妇女高潮大叫 | 3d动漫精品啪啪一区二区中 | 无码人妻精品一区二区三区下载 | 精品国产麻豆免费人成网站 | 日韩 欧美 动漫 国产 制服 | 未满小14洗澡无码视频网站 | 18精品久久久无码午夜福利 | 国产精品香蕉在线观看 | 亚洲 欧美 激情 小说 另类 | 欧美激情一区二区三区成人 | 福利一区二区三区视频在线观看 | 色婷婷av一区二区三区之红樱桃 | 性欧美videos高清精品 | 国产午夜精品一区二区三区嫩草 | 国产乱码精品一品二品 | 亚洲一区二区观看播放 | 国产亚洲人成在线播放 | 人人妻人人澡人人爽人人精品 | 亚洲人亚洲人成电影网站色 | 日本va欧美va欧美va精品 | 300部国产真实乱 | 99国产精品白浆在线观看免费 | 成人试看120秒体验区 | 真人与拘做受免费视频一 | 欧美黑人巨大xxxxx | 国产综合在线观看 | √天堂中文官网8在线 | 亚洲综合精品香蕉久久网 | 色欲综合久久中文字幕网 | 中文精品久久久久人妻不卡 | 真人与拘做受免费视频 | 国产激情无码一区二区app | 久久国产自偷自偷免费一区调 | 亚洲国产成人av在线观看 | 中文字幕无码av波多野吉衣 | 天天摸天天碰天天添 | 狠狠躁日日躁夜夜躁2020 | 人妻互换免费中文字幕 | 亚洲欧美国产精品专区久久 | 人妻尝试又大又粗久久 | 国产成人综合在线女婷五月99播放 | 日韩精品乱码av一区二区 | 一本久道久久综合婷婷五月 | 真人与拘做受免费视频 | 人人妻人人澡人人爽人人精品 | 国産精品久久久久久久 | 乱人伦中文视频在线观看 | 久久午夜无码鲁丝片 | 亚洲欧美国产精品专区久久 | 娇妻被黑人粗大高潮白浆 | 精品偷拍一区二区三区在线看 | 又湿又紧又大又爽a视频国产 | 无套内谢老熟女 | 捆绑白丝粉色jk震动捧喷白浆 | 黑人大群体交免费视频 | 亚洲码国产精品高潮在线 | 中文字幕av无码一区二区三区电影 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 亚洲熟妇自偷自拍另类 | 中文字幕乱码人妻无码久久 | 天堂在线观看www | 最新国产乱人伦偷精品免费网站 | 国产香蕉尹人视频在线 | 国产猛烈高潮尖叫视频免费 | 成 人影片 免费观看 | 国产在线精品一区二区三区直播 | 色妞www精品免费视频 | 国产又粗又硬又大爽黄老大爷视 | 精品久久久久久亚洲精品 | 熟妇人妻无码xxx视频 | 宝宝好涨水快流出来免费视频 | 无码一区二区三区在线观看 | 啦啦啦www在线观看免费视频 | 一本无码人妻在中文字幕免费 | 大地资源网第二页免费观看 | 成人精品天堂一区二区三区 | 少妇人妻av毛片在线看 | 日本欧美一区二区三区乱码 | 国产成人久久精品流白浆 | 99久久无码一区人妻 | 精品人人妻人人澡人人爽人人 | 国产精品丝袜黑色高跟鞋 | 樱花草在线社区www | 76少妇精品导航 | 国产精品久久国产三级国 | 日日干夜夜干 | av香港经典三级级 在线 | 天堂在线观看www | 亚洲色无码一区二区三区 | 一个人看的视频www在线 | 亚洲精品成a人在线观看 | 无码帝国www无码专区色综合 | 奇米影视888欧美在线观看 | 欧美一区二区三区视频在线观看 | 一个人看的视频www在线 | 无码国模国产在线观看 | 无码精品人妻一区二区三区av | 亚洲精品无码国产 | 久久久久久a亚洲欧洲av冫 | 少妇无码吹潮 | 老子影院午夜精品无码 | 久久aⅴ免费观看 | 99久久99久久免费精品蜜桃 | 一本加勒比波多野结衣 | 亚洲欧美日韩成人高清在线一区 | 婷婷五月综合缴情在线视频 | 丁香花在线影院观看在线播放 | 国产精品多人p群无码 | 极品嫩模高潮叫床 | 亚洲一区二区三区 | 久久99精品久久久久久动态图 | v一区无码内射国产 | 青青青爽视频在线观看 | 国产午夜福利亚洲第一 | 一个人看的视频www在线 | 天堂在线观看www | 在线视频网站www色 | 人人澡人人妻人人爽人人蜜桃 | 波多野结衣一区二区三区av免费 | 免费观看的无遮挡av | 精品久久久无码中文字幕 | 女人被男人躁得好爽免费视频 | 无码中文字幕色专区 | 国产乱人伦av在线无码 | 亚洲精品一区二区三区在线观看 | 亚洲娇小与黑人巨大交 | 大乳丰满人妻中文字幕日本 | 奇米影视7777久久精品人人爽 | 久久综合给合久久狠狠狠97色 | 亚洲精品国产精品乱码不卡 | 色偷偷人人澡人人爽人人模 | 少妇邻居内射在线 | 欧美日韩亚洲国产精品 | 欧美变态另类xxxx | 亚洲va中文字幕无码久久不卡 | 免费无码一区二区三区蜜桃大 | 欧美自拍另类欧美综合图片区 | 成人无码视频免费播放 | 欧美成人家庭影院 | 波多野结衣高清一区二区三区 | 极品嫩模高潮叫床 | 樱花草在线社区www | 国产真实伦对白全集 | 精品欧美一区二区三区久久久 | 国产成人精品一区二区在线小狼 | 六月丁香婷婷色狠狠久久 | 国产卡一卡二卡三 | 乌克兰少妇性做爰 | 欧美人与善在线com | 国产激情综合五月久久 | 成人av无码一区二区三区 | 日本高清一区免费中文视频 | 欧美熟妇另类久久久久久多毛 | 亚洲成a人片在线观看日本 | 三上悠亚人妻中文字幕在线 | 熟妇人妻无码xxx视频 | 亚洲男女内射在线播放 | 欧美熟妇另类久久久久久不卡 | 亚洲国产一区二区三区在线观看 | 成年美女黄网站色大免费全看 | 精品日本一区二区三区在线观看 | 亚洲啪av永久无码精品放毛片 | 伊人久久大香线蕉亚洲 | 欧美日韩色另类综合 | 亚洲码国产精品高潮在线 | 国产激情艳情在线看视频 | 亚洲 日韩 欧美 成人 在线观看 | 欧美丰满老熟妇xxxxx性 | 国产疯狂伦交大片 | 清纯唯美经典一区二区 | 高清国产亚洲精品自在久久 | 国产午夜视频在线观看 | 3d动漫精品啪啪一区二区中 | 国产亚洲人成a在线v网站 | 老熟女乱子伦 | 国产av一区二区精品久久凹凸 | 男女超爽视频免费播放 | 无遮挡啪啪摇乳动态图 | 人妻少妇精品视频专区 | 欧美35页视频在线观看 | 99精品国产综合久久久久五月天 | 香蕉久久久久久av成人 | 樱花草在线播放免费中文 | 中文字幕色婷婷在线视频 | 国产亚洲视频中文字幕97精品 | 国产在线aaa片一区二区99 | 欧美日韩一区二区三区自拍 | 午夜福利不卡在线视频 | 无码av中文字幕免费放 | 无码av岛国片在线播放 | 国产乱人伦av在线无码 | 国产av久久久久精东av | 亚洲色www成人永久网址 | аⅴ资源天堂资源库在线 | 国产一精品一av一免费 | 欧美日韩一区二区三区自拍 | 国产精品国产自线拍免费软件 | 国产做国产爱免费视频 | 色欲久久久天天天综合网精品 | 婷婷丁香五月天综合东京热 | 黄网在线观看免费网站 | 成人欧美一区二区三区黑人 | 色欲人妻aaaaaaa无码 | 久久久av男人的天堂 | av香港经典三级级 在线 | 欧美阿v高清资源不卡在线播放 | 久久久亚洲欧洲日产国码αv | 国内揄拍国内精品人妻 | 波多野结衣一区二区三区av免费 | 人妻与老人中文字幕 | 精品无码av一区二区三区 | 性啪啪chinese东北女人 | 人妻互换免费中文字幕 | 欧美人与善在线com | 日本一区二区三区免费播放 | 撕开奶罩揉吮奶头视频 | 人妻与老人中文字幕 | 欧美激情内射喷水高潮 | 永久免费观看国产裸体美女 | 色五月五月丁香亚洲综合网 | 成年美女黄网站色大免费全看 | 欧美性生交xxxxx久久久 | 亚洲高清偷拍一区二区三区 | 国内精品人妻无码久久久影院蜜桃 | 久久久久av无码免费网 | 国内丰满熟女出轨videos | 九九热爱视频精品 | 欧美性生交活xxxxxdddd | 国产xxx69麻豆国语对白 | 美女毛片一区二区三区四区 | 四虎永久在线精品免费网址 | 荫蒂被男人添的好舒服爽免费视频 | 国产99久久精品一区二区 | 亚洲色欲色欲天天天www | 国产精品香蕉在线观看 | 亚洲人成影院在线无码按摩店 | 亚洲最大成人网站 | 300部国产真实乱 | 亚洲国产精品一区二区美利坚 | 无遮无挡爽爽免费视频 | 国产一区二区三区影院 | 18禁止看的免费污网站 | 国产精品亚洲综合色区韩国 | 精品日本一区二区三区在线观看 | 国产人妖乱国产精品人妖 | 99er热精品视频 | 中文字幕 亚洲精品 第1页 | 国内精品人妻无码久久久影院 | 图片区 小说区 区 亚洲五月 | 精品国产一区二区三区四区 | 无码免费一区二区三区 | 精品国精品国产自在久国产87 | 久久午夜无码鲁丝片午夜精品 | 国产性生交xxxxx无码 | 亚洲一区二区三区偷拍女厕 | 免费播放一区二区三区 | 久久99久久99精品中文字幕 | 国产成人人人97超碰超爽8 | 少妇无套内谢久久久久 | 日本熟妇人妻xxxxx人hd | 亚洲精品无码人妻无码 | 国产做国产爱免费视频 | 色综合久久久久综合一本到桃花网 | 精品国产aⅴ无码一区二区 | 300部国产真实乱 | 久久久精品国产sm最大网站 | 久久久久久a亚洲欧洲av冫 | 红桃av一区二区三区在线无码av | 国产xxx69麻豆国语对白 | 三上悠亚人妻中文字幕在线 | 蜜桃臀无码内射一区二区三区 | 最近中文2019字幕第二页 | 国产熟妇高潮叫床视频播放 | 国产在线aaa片一区二区99 | 久久精品99久久香蕉国产色戒 | 亚洲色成人中文字幕网站 | 伊人久久大香线蕉av一区二区 | 国色天香社区在线视频 | 亚洲人成影院在线观看 | 国产成人亚洲综合无码 | 少妇高潮喷潮久久久影院 | 亚洲精品久久久久久久久久久 | 日韩成人一区二区三区在线观看 | 国产绳艺sm调教室论坛 | 久久视频在线观看精品 | 国产精品高潮呻吟av久久4虎 | 欧美激情综合亚洲一二区 | 欧美日韩人成综合在线播放 | 国产午夜福利100集发布 | 日本xxxx色视频在线观看免费 | 狠狠cao日日穞夜夜穞av | 日产精品高潮呻吟av久久 | 1000部啪啪未满十八勿入下载 | 国产激情无码一区二区 | 欧洲欧美人成视频在线 | 久久精品国产亚洲精品 | 日日摸天天摸爽爽狠狠97 | 午夜不卡av免费 一本久久a久久精品vr综合 | 欧洲熟妇精品视频 | 中文字幕无码乱人伦 | 久久久久久亚洲精品a片成人 | 国产av一区二区三区最新精品 | 亚洲日韩乱码中文无码蜜桃臀网站 | 窝窝午夜理论片影院 | 久久久www成人免费毛片 | 国产精品久久久久影院嫩草 | 97无码免费人妻超级碰碰夜夜 | 亚洲国产成人av在线观看 | 动漫av一区二区在线观看 | 亚洲成色www久久网站 | 中文字幕无码视频专区 | 美女毛片一区二区三区四区 | 亚洲国产精品无码久久久久高潮 | 久久国产精品二国产精品 | 亚洲色在线无码国产精品不卡 | 牲欲强的熟妇农村老妇女视频 | 久久久婷婷五月亚洲97号色 | 国产精品无码一区二区三区不卡 | 久久人妻内射无码一区三区 | 久久久亚洲欧洲日产国码αv | 2020久久超碰国产精品最新 | 国产色在线 | 国产 | 成人精品天堂一区二区三区 | 亚洲精品一区二区三区大桥未久 | 日本乱偷人妻中文字幕 | 亚洲熟妇色xxxxx亚洲 | 亚洲色大成网站www | 伊人色综合久久天天小片 | 久久99精品国产麻豆 | 香港三级日本三级妇三级 | 成人无码视频在线观看网站 | 亚洲成av人在线观看网址 | 丰满人妻一区二区三区免费视频 | 99久久精品无码一区二区毛片 | 国产精品二区一区二区aⅴ污介绍 | 欧美刺激性大交 | 99久久人妻精品免费二区 | 精品亚洲成av人在线观看 | 无码乱肉视频免费大全合集 | 在线观看国产一区二区三区 | 人妻无码αv中文字幕久久琪琪布 | 国产av一区二区精品久久凹凸 | 国产婷婷色一区二区三区在线 | 久久综合激激的五月天 | 高清国产亚洲精品自在久久 | 国产精品久久久一区二区三区 | 中文字幕乱码人妻无码久久 | 最近的中文字幕在线看视频 | 丰满岳乱妇在线观看中字无码 | 成人影院yy111111在线观看 | 少妇的肉体aa片免费 | 国产av一区二区精品久久凹凸 | 亚洲精品国偷拍自产在线观看蜜桃 | 小sao货水好多真紧h无码视频 | 日日鲁鲁鲁夜夜爽爽狠狠 | 亚洲精品国产精品乱码不卡 | 日韩在线不卡免费视频一区 | 国产av剧情md精品麻豆 | 大地资源网第二页免费观看 | 亚洲男女内射在线播放 | 亚洲日本在线电影 | 人妻中文无码久热丝袜 | 无码福利日韩神码福利片 | 亚洲中文字幕无码中字 | 国产亚洲精品久久久ai换 | 国产在线精品一区二区高清不卡 | 午夜免费福利小电影 | 2019午夜福利不卡片在线 | 伊人久久大香线蕉午夜 | 一本色道婷婷久久欧美 | √天堂中文官网8在线 | 国产美女极度色诱视频www | 亚洲色欲久久久综合网东京热 | 亚洲国产精品无码一区二区三区 | 中文字幕人成乱码熟女app | 精品国产一区二区三区四区 | 日本大香伊一区二区三区 | 少妇人妻偷人精品无码视频 | 欧美国产亚洲日韩在线二区 | 色老头在线一区二区三区 | 久久无码专区国产精品s | 未满成年国产在线观看 | 亚洲色欲色欲天天天www | 强伦人妻一区二区三区视频18 | 国产高清不卡无码视频 | 国产香蕉尹人综合在线观看 | 狠狠色欧美亚洲狠狠色www | 久久精品丝袜高跟鞋 | 强辱丰满人妻hd中文字幕 | 国产精品久久久久久久影院 | 亚洲国产精华液网站w | 综合人妻久久一区二区精品 | 亚洲国产成人av在线观看 | 精品国产一区二区三区四区 | 又粗又大又硬又长又爽 | 天天做天天爱天天爽综合网 | 大胆欧美熟妇xx | 中文字幕亚洲情99在线 | 久久精品99久久香蕉国产色戒 | 伊人色综合久久天天小片 | 一本大道久久东京热无码av | www国产亚洲精品久久网站 | 2019nv天堂香蕉在线观看 | 国产一精品一av一免费 | 少妇邻居内射在线 | 成人女人看片免费视频放人 | 无码人妻黑人中文字幕 | 亚洲成av人片天堂网无码】 | 中文无码精品a∨在线观看不卡 | 成人欧美一区二区三区 | 中文无码精品a∨在线观看不卡 | 国产免费观看黄av片 | 丰腴饱满的极品熟妇 | 国产亚洲视频中文字幕97精品 | 国产成人无码av一区二区 | 日本成熟视频免费视频 | 亚洲精品一区二区三区大桥未久 | 曰本女人与公拘交酡免费视频 | 在线精品亚洲一区二区 | 国产精品欧美成人 | 国产特级毛片aaaaaaa高清 | 国产av一区二区精品久久凹凸 | 国产亚洲欧美日韩亚洲中文色 | 精品无人国产偷自产在线 | 精品亚洲成av人在线观看 | 久久熟妇人妻午夜寂寞影院 | 国产成人av免费观看 | 中文字幕乱妇无码av在线 | 爽爽影院免费观看 | 夜夜躁日日躁狠狠久久av | 久久99久久99精品中文字幕 | 久久综合九色综合欧美狠狠 | 精品乱码久久久久久久 | 国产无遮挡又黄又爽免费视频 | 久久伊人色av天堂九九小黄鸭 | 男女猛烈xx00免费视频试看 | 综合激情五月综合激情五月激情1 | 精品偷自拍另类在线观看 | 一本久道高清无码视频 | 日韩 欧美 动漫 国产 制服 | 久久综合九色综合97网 | 奇米影视7777久久精品人人爽 | 国内揄拍国内精品少妇国语 | 人妻天天爽夜夜爽一区二区 | 久久99久久99精品中文字幕 | 无码av岛国片在线播放 | 曰韩无码二三区中文字幕 | 玩弄人妻少妇500系列视频 | 亚洲人成网站免费播放 | 欧美性色19p | 亚洲国产欧美日韩精品一区二区三区 | 精品无码一区二区三区的天堂 | 300部国产真实乱 | 99久久亚洲精品无码毛片 | 国产 浪潮av性色四虎 | 亚洲精品一区二区三区在线 | 3d动漫精品啪啪一区二区中 | 亚洲日韩av一区二区三区四区 | 欧美亚洲日韩国产人成在线播放 | 欧美一区二区三区视频在线观看 | 国产精品久久久av久久久 | 亚洲精品一区二区三区婷婷月 | 免费无码一区二区三区蜜桃大 | 久久午夜夜伦鲁鲁片无码免费 | 天下第一社区视频www日本 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲性无码av中文字幕 | 久久国产精品_国产精品 | 精品一区二区三区无码免费视频 | 无码人妻久久一区二区三区不卡 | a在线观看免费网站大全 | 日本丰满熟妇videos | 欧美阿v高清资源不卡在线播放 | 亚洲aⅴ无码成人网站国产app | 国产艳妇av在线观看果冻传媒 | 免费无码一区二区三区蜜桃大 | 国产午夜亚洲精品不卡下载 | 国产免费无码一区二区视频 | 97精品人妻一区二区三区香蕉 | 国产精品亚洲综合色区韩国 | 国产成人无码av片在线观看不卡 | 国产成人无码区免费内射一片色欲 | 亚洲成熟女人毛毛耸耸多 | 国内精品久久久久久中文字幕 | 夜精品a片一区二区三区无码白浆 | 日韩人妻少妇一区二区三区 | 55夜色66夜色国产精品视频 | 亚洲男人av香蕉爽爽爽爽 | 亚洲一区二区三区偷拍女厕 | 国产午夜精品一区二区三区嫩草 | 久久人人97超碰a片精品 | 女高中生第一次破苞av | 丁香花在线影院观看在线播放 | 久久精品国产一区二区三区肥胖 | 久久99精品久久久久久 | 正在播放老肥熟妇露脸 | 久久人人爽人人爽人人片av高清 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩精品无码一区二区中文字幕 | 成人性做爰aaa片免费看 | 日本va欧美va欧美va精品 | 日本熟妇乱子伦xxxx | 国产亚洲精品久久久久久 | 图片区 小说区 区 亚洲五月 | 亚洲成色在线综合网站 | 特大黑人娇小亚洲女 | 好男人www社区 | 国产特级毛片aaaaaaa高清 | 亚洲综合无码一区二区三区 | 俺去俺来也在线www色官网 | 中文字幕av无码一区二区三区电影 | 亚洲s色大片在线观看 | 131美女爱做视频 | 丰满少妇人妻久久久久久 | 成年美女黄网站色大免费全看 | 国产亚洲tv在线观看 | 国产精品亚洲а∨无码播放麻豆 | 3d动漫精品啪啪一区二区中 | 日韩成人一区二区三区在线观看 | 人妻互换免费中文字幕 | 国产激情艳情在线看视频 | 99久久人妻精品免费一区 | 久久亚洲精品成人无码 | 无码帝国www无码专区色综合 | 麻豆蜜桃av蜜臀av色欲av | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 午夜性刺激在线视频免费 | 久久亚洲日韩精品一区二区三区 | 亚洲va欧美va天堂v国产综合 | 亚洲中文无码av永久不收费 | 欧美人与禽猛交狂配 | 久久久久人妻一区精品色欧美 | 黑人巨大精品欧美一区二区 | 丝袜足控一区二区三区 | 欧美成人午夜精品久久久 | 日韩av无码一区二区三区不卡 | 国产精品va在线播放 | 国产色视频一区二区三区 | 99久久婷婷国产综合精品青草免费 | 午夜时刻免费入口 | 精品国产乱码久久久久乱码 | 欧美 日韩 人妻 高清 中文 | 久久综合九色综合97网 | 青草视频在线播放 | 性生交大片免费看l | 性欧美大战久久久久久久 | 日本精品高清一区二区 | 午夜精品久久久内射近拍高清 | 亚洲精品国产精品乱码视色 | 亚洲精品中文字幕乱码 | 蜜臀aⅴ国产精品久久久国产老师 | 国产精品二区一区二区aⅴ污介绍 | 久久精品国产99精品亚洲 | 中文精品久久久久人妻不卡 | 久久久国产一区二区三区 | 国产午夜手机精彩视频 | 亚洲gv猛男gv无码男同 | 亚洲午夜久久久影院 | 夜精品a片一区二区三区无码白浆 | 少妇的肉体aa片免费 | 小sao货水好多真紧h无码视频 | 中文字幕无码av波多野吉衣 | 精品国产一区二区三区四区在线看 | 国产精品亚洲综合色区韩国 | 亚洲国产综合无码一区 | 国产在线精品一区二区高清不卡 | 天天拍夜夜添久久精品 | 久久综合久久自在自线精品自 | 131美女爱做视频 | 久久熟妇人妻午夜寂寞影院 | 在教室伦流澡到高潮hnp视频 | 欧美丰满少妇xxxx性 | 99国产欧美久久久精品 | 国产精品多人p群无码 | 日本丰满护士爆乳xxxx | 日本熟妇人妻xxxxx人hd | 无码播放一区二区三区 | 欧美三级不卡在线观看 | 亚洲日韩av一区二区三区四区 | 奇米影视7777久久精品 | 欧美日韩一区二区免费视频 | 成人无码精品一区二区三区 | 影音先锋中文字幕无码 | 少妇无套内谢久久久久 | 国产无遮挡又黄又爽免费视频 | 蜜桃无码一区二区三区 | 国产高清av在线播放 | 窝窝午夜理论片影院 | 精品乱码久久久久久久 | 亚洲欧美精品伊人久久 | 国产人妻精品一区二区三区不卡 | 免费看男女做好爽好硬视频 | 色综合天天综合狠狠爱 | 又大又黄又粗又爽的免费视频 | 欧美成人高清在线播放 | 男人的天堂av网站 | 免费男性肉肉影院 | 亚洲a无码综合a国产av中文 | 国产特级毛片aaaaaa高潮流水 | 天天摸天天透天天添 | 扒开双腿疯狂进出爽爽爽视频 | 无码免费一区二区三区 | 日日干夜夜干 | 狂野欧美性猛xxxx乱大交 | 午夜理论片yy44880影院 | 中文字幕无码免费久久99 | 2020久久香蕉国产线看观看 | 久久精品中文闷骚内射 | 国产欧美精品一区二区三区 | 久久精品国产亚洲精品 | 久在线观看福利视频 | 国产一区二区三区四区五区加勒比 | 亚洲大尺度无码无码专区 | 少妇人妻偷人精品无码视频 | 亚洲综合久久一区二区 | 天天做天天爱天天爽综合网 | 亚洲精品欧美二区三区中文字幕 | 久久亚洲国产成人精品性色 | 亚洲色欲色欲欲www在线 | 国产成人一区二区三区在线观看 | 色五月五月丁香亚洲综合网 | 婷婷综合久久中文字幕蜜桃三电影 | 强辱丰满人妻hd中文字幕 | 久久伊人色av天堂九九小黄鸭 | 亚洲日韩一区二区三区 | 亚洲日韩中文字幕在线播放 | 日韩视频 中文字幕 视频一区 | 国产精品亚洲а∨无码播放麻豆 | 国产激情综合五月久久 | 亚洲男人av香蕉爽爽爽爽 | 中文字幕av日韩精品一区二区 | 内射爽无广熟女亚洲 | 无码人妻丰满熟妇区毛片18 | 国产成人综合在线女婷五月99播放 | 国产精品久久国产精品99 | 亚洲日韩av片在线观看 | 国产凸凹视频一区二区 | 欧美xxxxx精品 | 无码一区二区三区在线 | 无码人妻精品一区二区三区下载 | 麻豆精品国产精华精华液好用吗 | 欧美精品免费观看二区 | 久久国产精品偷任你爽任你 | 老司机亚洲精品影院无码 | 日本高清一区免费中文视频 | 欧美刺激性大交 | 正在播放东北夫妻内射 | 一本无码人妻在中文字幕免费 |