亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Linux服務器 > 正文

詳解Docker使用Linux iptables 和 Interfaces管理容器網絡

2024-09-05 23:04:12
字體:
來源:轉載
供稿:網友

我使用docker至今已有一段時間了,與絕大部分的人一樣,我被docker強大的功能和易用性深深的折服。簡單方便是docker的核心之一,它強大的功能被抽象成了非常簡單的命令。當我在使用和學習docker的時候,我很想知道docker在后臺都做了一些什么事情,特別是在網絡這一塊(我最感興趣的一塊)

我找到了很多關于創建和操作容器網絡的文檔,但是關于docker如何使網絡工作的卻沒有那么多。 Docker廣泛使用linux iptables和網橋接口,這篇文章是我如何用于創建容器網絡的總結,大部分信息來自github上的討論,演示文稿,以及我自己的測試。文章結尾我會給出我認為非常有用的資料鏈接。

我寫這篇文章使用的是docker 1.12.3,但這不是作為對docker網絡的全面描述,也不作為docker網絡的介紹。我只希望這篇文章能給大家開拓視野,也非常感謝所有對文章錯誤,缺失的反饋和批評。

Docker網絡概覽

Docker的網絡建立在允許任何一方編寫自己的網絡驅動程序的容器網絡模型(CNM)之上。這允許不同的網絡類型可用于在docker引擎上運行的容器,并且容器可以同時連接到多個網絡。除了各種第三方網絡驅動程序可用,docker自帶四個內置網絡

驅動程序:

Bridge: 這是啟動容器的默認網絡。通過docker主機上的網橋接口實現連接。 使用相同網橋的容器有自己的子網,并且可以相互通信(默認情況下)。

Host:這個驅動程序允許容器訪問docker主機自己的網絡空間(容器將看到和使用與docker主機相同的接口)。

Macvlan:此驅動程序允許容器直接訪問主機的接口或子接口(vlan)。 它還允許中繼鏈接。

Overlay:此驅動程序允許在運行docker的多個主機(通常是docker群集群)上構建網絡。 容器還具有自己的子網和網絡地址,并且可以直接相互通信,即使它們在不同的物理主機上運行。

Bridge和Overlay可能是最常用的網絡驅動程序,在本文和下一篇文章中我將主要關注這兩個驅動程序。

Docker Bridge 網絡

在docker主機上運行的容器的默認網絡是。 Docker在首次安裝時創建一個名為“bridge”的默認網絡。 我們可以列出所有docker網絡來查看此網絡 docker network ls:

$ docker network lsNETWORK ID     NAME        DRIVER       SCOPE3e8110efa04a    bridge       bridge       localbb3cd79b9236    docker_gwbridge   bridge       local22849c4d1c3a    host        host        local3kuba8yq3c27    ingress       overlay       swarmecbd1c6c193a    none        null        local

要檢查其屬性,運行docker network inspect bridge 

$ docker network inspect bridge[  {    "Name": "bridge",    "Id": "3e8110efa04a1eb0923d863af719abf5eac871dbac4ae74f133894b8df4b9f5f",    "Scope": "local",    "Driver": "bridge",    "EnableIPv6": false,    "IPAM": {      "Driver": "default",      "Options": null,      "Config": [        {          "Subnet": "172.18.0.0/16",          "Gateway": "172.18.0.1"        }      ]    },    "Internal": false,    "Containers": {},    "Options": {      "com.docker.network.bridge.default_bridge": "true",      "com.docker.network.bridge.enable_icc": "true",      "com.docker.network.bridge.enable_ip_masquerade": "true",      "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",      "com.docker.network.bridge.name": "docker0",      "com.docker.network.driver.mtu": "1500"    },    "Labels": {}  }]

 

你還可以使用docker network create命令并指定選項--driver bridge創建自己的網絡,例如

docker network create --driver bridge --subnet 192.168.100.0/24 --ip-range 192.168.100.0/ 24 my-bridge-network創建另一個網橋網絡,名稱為“my-bridge-network”,子網為192.168.100.0/24。

Linux 網橋接口

docker創建的每個網橋網絡由docker主機上的網橋接口呈現。、 默認橋網絡“bridge”通常具有與其相關聯的接口docker0,并且使用docker network create命令創建的每個后續網橋網絡將具有與其相關聯的新接口。

$ ifconfig docker0docker0  Link encap:Ethernet HWaddr 02:42:44:88:bd:75     inet addr:172.18.0.1 Bcast:0.0.0.0 Mask:255.255.0.0     UP BROADCAST MULTICAST MTU:1500 Metric:1     RX packets:0 errors:0 dropped:0 overruns:0 frame:0     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0     collisions:0 txqueuelen:0     RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

要找到與你創建的docker網絡關聯的linux接口,可以使用ifconfig列出所有接口,然后找到你指定了子網的接口,例如,我們想查看我們之前創建的網橋接口my-bridge-network 我們可以這樣:

$ ifconfig | grep 192.168.100. -B 1br-e6bc7d6b75f3 Link encap:Ethernet HWaddr 02:42:bc:f1:91:09     inet addr:192.168.100.1 Bcast:0.0.0.0 Mask:255.255.255.0

 

linux橋接接口與交換機的功能類似,因為它們將不同的接口連接到同一子網,并根據MAC地址轉發流量。 我們將在下面看到,連接到網橋網絡的每個容器將在docker主機上創建自己的虛擬接口,并且docker引擎將同一網絡中的所有容器連接到同一個網橋接口,這將允許它們與彼此進行通信。 您可以使用brctl獲取有關網橋狀態的更多詳細信息。

$ brctl show docker0bridge name   bridge id        STP enabled   interfacesdocker0     8000.02424488bd75    no

一旦我們有容器運行并連接到這個網絡,我們將看到interfaces列下面列出的每個容器的接口。 并且在橋接器接口上運行流量捕獲將允許我們看到同一子網上的容器之間的相互通信。

Linux 虛擬網絡接口(veth)

容器網絡模型(CNM)允許每個容器具有其自己的網絡空間。 從容器內部運行ifconfig將顯示容器內部的網絡接口:

$ docker run -ti ubuntu:14.04 /bin/bashroot@6622112b507c:/#root@6622112b507c:/# ifconfigeth0   Link encap:Ethernet HWaddr 02:42:ac:12:00:02     inet addr:172.18.0.2 Bcast:0.0.0.0 Mask:255.255.0.0     inet6 addr: fe80::42:acff:fe12:2/64 Scope:Link     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1     RX packets:9 errors:0 dropped:0 overruns:0 frame:0     TX packets:6 errors:0 dropped:0 overruns:0 carrier:0     collisions:0 txqueuelen:0     RX bytes:766 (766.0 B) TX bytes:508 (508.0 B)lo    Link encap:Local Loopback     inet addr:127.0.0.1 Mask:255.0.0.0     inet6 addr: ::1/128 Scope:Host     UP LOOPBACK RUNNING MTU:65536 Metric:1     RX packets:0 errors:0 dropped:0 overruns:0 frame:0     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0     collisions:0 txqueuelen:0     RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

然而,上面看到的eth0只能從那個容器中可用,而在Docker主機的外部,docker會創建一個與其對應的雙虛擬接口,并作為到容器外的鏈接。 這些虛擬接口連接到上面討論的橋接器接口,以便于在同一子網上的不同容器之間的連接。

我們可以通過啟動連接到默認網橋的兩個容器來查看此過程,然后查看docker主機上的接口配置。

在運行啟動任何容器之前,docker0 橋接接口沒有連接的接口:

然后我從ubuntu:14.04 鏡像啟動2個容器

$ docker psCONTAINER ID    IMAGE        COMMAND       CREATED       STATUS       PORTS        NAMESa754719db594    ubuntu:14.04    "/bin/bash"     5 seconds ago    Up 4 seconds              zen_kalam976041ec420f    ubuntu:14.04    "/bin/bash"     7 seconds ago    Up 5 seconds              stupefied_easley

您能馬上看到現在有兩個接口連接到docker0網橋接口(每個容器一個)

$ sudo brctl show docker0bridge name   bridge id        STP enabled   interfacesdocker0     8000.02424488bd75    no       veth2177159                            vethd8e05dd

從其中一個容器ping到google,然后從docker主機對容器的虛擬接口進行流量捕獲,將顯示容器流量

$ docker exec a754719db594 ping google.comPING google.com (216.58.217.110) 56(84) bytes of data.64 bytes from iad23s42-in-f110.1e100.net (216.58.217.110): icmp_seq=1 ttl=48 time=0.849 ms64 bytes from iad23s42-in-f110.1e100.net (216.58.217.110): icmp_seq=2 ttl=48 time=0.965 msubuntu@swarm02:~$ sudo tcpdump -i veth2177159 icmptcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on veth2177159, link-type EN10MB (Ethernet), capture size 262144 bytes20:47:12.170815 IP 172.18.0.3 > iad23s42-in-f14.1e100.net: ICMP echo request, id 14, seq 55, length 6420:47:12.171654 IP iad23s42-in-f14.1e100.net > 172.18.0.3: ICMP echo reply, id 14, seq 55, length 6420:47:13.170821 IP 172.18.0.3 > iad23s42-in-f14.1e100.net: ICMP echo request, id 14, seq 56, length 6420:47:13.171694 IP iad23s42-in-f14.1e100.net > 172.18.0.3: ICMP echo reply, id 14, seq 56, length 64

同樣,我們可以從一個容器平到另一個容器。

首先,我們需要獲取容器的IP地址,這可以通過在容器中運行ifconfig或使用docker inspect命令檢查容器來完成:

$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' a754719db594 172.18.0.3 

然后我們從一個容器ping另一個容器

$ docker exec 976041ec420f ping 172.18.0.3PING 172.18.0.3 (172.18.0.3) 56(84) bytes of data.64 bytes from 172.18.0.3: icmp_seq=1 ttl=64 time=0.070 ms64 bytes from 172.18.0.3: icmp_seq=2 ttl=64 time=0.053 ms

要從docker主機看到這個流量,我們可以在對應于容器的任何一個虛擬接口上捕獲,或者我們可以在橋接口(在這個實例中為docker0)上捕獲,顯示所有的容器間通信子網:

$ sudo tcpdump -ni docker0 host 172.18.0.2 and host 172.18.0.3tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on docker0, link-type EN10MB (Ethernet), capture size 262144 bytes20:55:37.990831 IP 172.18.0.2 > 172.18.0.3: ICMP echo request, id 14, seq 200, length 6420:55:37.990865 IP 172.18.0.3 > 172.18.0.2: ICMP echo reply, id 14, seq 200, length 6420:55:38.990828 IP 172.18.0.2 > 172.18.0.3: ICMP echo request, id 14, seq 201, length 6420:55:38.990866 IP 172.18.0.3 > 172.18.0.2: ICMP echo reply, id 14, seq 201, length 64

定位一個容器的vet接口

沒有直接的方法來找到docker主機上的哪個veth接口鏈接到容器內的接口,但是在各種docker論壇和github中討論了幾種方法。在我看來最簡單的是以下(基于這個解決方案做了稍微的修改),這也取決于ethtool在容器中可訪問

例如:我的系統上運行了3個容器

MAGE        COMMAND       CREATED       STATUS       PORTS        NAMESccbf97c72bf5    ubuntu:14.04    "/bin/bash"     3 seconds ago    Up 3 seconds              admiring_torvalds77d9f02d61f2    ubuntu:14.04    "/bin/bash"     4 seconds ago    Up 4 seconds              goofy_borg19743c0ddf24    ubuntu:14.04    "/bin/sh"      8 minutes ago    Up 8 minutes              high_engelbart

首先我運行如下命令來獲得peer_ifindex 號

$ docker exec 77d9f02d61f2 sudo ethtool -S eth0NIC statistics:   peer_ifindex: 16

 

然后在docker主機上,通過peer_ifindex 找到接口名稱

$ sudo ip link | grep 1616: veth7bd3604@if15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default

所以,在目前的情況下,接口名稱是:veth7bd3604

iptables

Docker使用linux iptables來控制與它創建的接口和網絡之間的通信。 Linux iptables由不同的表組成,但我們主要關注兩個:filternat。過濾器是網絡或接口的流量的安全規則表,用于允許或拒絕IP地址,而nat包含負責屏蔽IP地址或端口的規則。Docker使用nat允許橋接網絡上的容器與docker主機之外的目的地進行通信(否則指向容器網絡的路由必須在docker主機的網絡中添加)

iptables:filter

iptables中的表由對應于處理docker主機上的數據包的不同條件或階段的不同鏈組成。默認情況下,過濾器表具有3個鏈:用于處理到達主機并且去往同一主機的分組的輸入鏈,用于發送到外部目的地的主機的分組的輸出鏈,以及用于進入主機但具有目的地外部主機。每個鏈由一些規則組成,這些規則規定對分組采取一些措施(例如拒絕或接受分組)以及匹配規則的條件。 順序處理規則,直到找到匹配項,否則應用鏈的默認策略。 也可以在表中定義自定義鏈。

要查看過濾器表中鏈的當前配置的規則和默認策略,可以運行iptables -t filter -L(或iptables -L,如果未指定表,則默認使用過濾器表)

$ sudo iptables -t filter -LChain INPUT (policy ACCEPT)target   prot opt source        destinationACCEPT   tcp -- anywhere       anywhere       tcp dpt:domainACCEPT   udp -- anywhere       anywhere       udp dpt:domainACCEPT   tcp -- anywhere       anywhere       tcp dpt:bootpsACCEPT   udp -- anywhere       anywhere       udp dpt:bootpsChain FORWARD (policy ACCEPT)target   prot opt source        destinationDOCKER-ISOLATION all -- anywhere       anywhereDOCKER   all -- anywhere       anywhereACCEPT   all -- anywhere       anywhere       ctstate RELATED,ESTABLISHEDACCEPT   all -- anywhere       anywhereACCEPT   all -- anywhere       anywhereDOCKER   all -- anywhere       anywhereACCEPT   all -- anywhere       anywhere       ctstate RELATED,ESTABLISHEDACCEPT   all -- anywhere       anywhereACCEPT   all -- anywhere       anywhereDOCKER   all -- anywhere       anywhereACCEPT   all -- anywhere       anywhere       ctstate RELATED,ESTABLISHEDACCEPT   all -- anywhere       anywhereACCEPT   all -- anywhere       anywhereACCEPT   all -- anywhere       anywhereDROP    all -- anywhere       anywhereChain OUTPUT (policy ACCEPT)target   prot opt source        destinationChain DOCKER (3 references)target   prot opt source        destinationChain DOCKER-ISOLATION (1 references)target   prot opt source        destinationDROP    all -- anywhere       anywhereDROP    all -- anywhere       anywhereDROP    all -- anywhere       anywhereDROP    all -- anywhere       anywhereDROP    all -- anywhere       anywhereDROP    all -- anywhere       anywhereRETURN   all -- anywhere       anywhere

 

突出顯示的是不同的鏈,以及每個鏈的默認策略(沒有自定義鏈的默認策略)。 我們還可以看到Docker已經添加了兩個自定義鏈:Docker和Docker-Isolation,并且在Forward鏈中插入了以這兩個新鏈作為目標的規則。

Docker-isolation chain

Docker-isolation包含限制不同容器網絡之間的訪問的規則。 要查看更多詳細信息,請在運行iptables時使用-v選項

$ sudo iptables -t filter -L -v….Chain DOCKER-ISOLATION (1 references) pkts bytes target   prot opt in   out   source        destination  0   0 DROP    all -- br-e6bc7d6b75f3 docker0 anywhere       anywhere  0   0 DROP    all -- docker0 br-e6bc7d6b75f3 anywhere       anywhere  0   0 DROP    all -- docker_gwbridge docker0 anywhere       anywhere  0   0 DROP    all -- docker0 docker_gwbridge anywhere       anywhere  0   0 DROP    all -- docker_gwbridge br-e6bc7d6b75f3 anywhere       anywhere  0   0 DROP    all -- br-e6bc7d6b75f3 docker_gwbridge anywhere       anywhere36991 3107K RETURN   all -- any  any   anywhere       anywhere

 

您可以在上面看到一些刪除規則,阻止任何由docker創建的橋接接口之間的流量,從而確保容器網絡不能通信。

icc=false

可以傳遞到docker network create命令的選項之一是com.docker.network.bridge.enable_icc,它代表容器間通信。 將此選項設置為false會阻止同一網絡上的容器彼此通信。 這是通過在前向鏈中添加一個丟棄規則來實現的,該丟棄規則匹配來自與去往同一接口的網絡相關聯的橋接器接口的分組。

舉個例子,我們用以下命令創建一個新的網絡

docker network create --driver bridge --subnet 192.168.200.0/24 --ip-range 192.168.200.0/24 -o "com.docker.network.bridge.enable_icc"="false" no-icc-network

 

$ ifconfig | grep 192.168.200 -B 1br-8e3f0d353353 Link encap:Ethernet HWaddr 02:42:c4:6b:f1:40     inet addr:192.168.200.1 Bcast:0.0.0.0 Mask:255.255.255.0$ sudo iptables -t filter -S FORWARD-P FORWARD ACCEPT-A FORWARD -j DOCKER-ISOLATION-A FORWARD -o br-8e3f0d353353 -j DOCKER-A FORWARD -o br-8e3f0d353353 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT-A FORWARD -i br-8e3f0d353353 ! -o br-8e3f0d353353 -j ACCEPT-A FORWARD -o docker0 -j DOCKER-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT-A FORWARD -i docker0 ! -o docker0 -j ACCEPT-A FORWARD -i docker0 -o docker0 -j ACCEPT-A FORWARD -o br-e6bc7d6b75f3 -j DOCKER-A FORWARD -o br-e6bc7d6b75f3 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT-A FORWARD -i br-e6bc7d6b75f3 ! -o br-e6bc7d6b75f3 -j ACCEPT-A FORWARD -i br-e6bc7d6b75f3 -o br-e6bc7d6b75f3 -j ACCEPT-A FORWARD -o docker_gwbridge -j DOCKER-A FORWARD -o docker_gwbridge -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT-A FORWARD -i docker_gwbridge ! -o docker_gwbridge -j ACCEPT-A FORWARD -o lxcbr0 -j ACCEPT-A FORWARD -i lxcbr0 -j ACCEPT-A FORWARD -i docker_gwbridge -o docker_gwbridge -j DROP-A FORWARD -i br-8e3f0d353353 -o br-8e3f0d353353 -j DROP

iptables:nat

NAT允許主機更改數據包的IP地址或端口。在這種情況下,它用于屏蔽源IP地址來自docker網絡(例如172.18.0.0/24子網中的主機),目的地為容器外,位于docker主機的IP地址之后的數據包。此功能由com.docker.network.bridge.enable_ip_masquerade選項控制,可以在docker network create(如果未指定,則默認為true)命令中使用。

你可以在iptables的nat表中看到此命令的效果

$ sudo iptables -t nat -LChain PREROUTING (policy ACCEPT)target   prot opt source        destinationDOCKER   all -- anywhere       anywhere       ADDRTYPE match dst-type LOCALChain INPUT (policy ACCEPT)target   prot opt source        destinationChain OUTPUT (policy ACCEPT)target   prot opt source        destinationDOCKER   all -- anywhere      !127.0.0.0/8     ADDRTYPE match dst-type LOCALChain POSTROUTING (policy ACCEPT)target   prot opt source        destinationMASQUERADE all -- 172.18.0.0/16    anywhereMASQUERADE all -- 192.168.100.0/24   anywhereMASQUERADE all -- 172.19.0.0/16    anywhereMASQUERADE all -- 10.0.3.0/24     !10.0.3.0/24Chain DOCKER (2 references)target   prot opt source        destinationRETURN   all -- anywhere       anywhereRETURN   all -- anywhere       anywhereRETURN   all -- anywhere       anywhere

 

在postrouting鏈中,您可以看到在與自己網絡外部的任何主機通信時,通過應用偽裝操作創建的所有docker網絡。

總結

網橋網絡在docker主機上具有對應的linux網橋接口,其作為layer2交換機,并且連接在同一子網上的不同容器。
容器中的每個網絡接口在Docker主機上具有在容器運行時創建的對應虛擬接口。

橋接接口上來自Docker主機的流量捕獲等效于在交換機上配置SPAN端口,可以在該網絡上查看所有集群間通信。
在虛擬接口(veth- *)上來自docker主機的流量捕獲將顯示容器在特定子網上發送的所有流量

Linux iptables規則用于阻止不同的網絡(有時網絡中的主機)使用過濾器表進行通信。 這些規則通常添加在DOCKER-ISOLATION鏈中。

容器通過橋接接口與外部通信,其IP被隱藏在docker主機的IP地址后面。 這是通過向iptables中的nat表添加規則來實現的。

結束語

以上就是本文關于詳解Docker使用Linux iptables 和 Interfaces管理容器網絡的全部內容,希望對大家有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲九九九在线观看| 国产成人精品一区二区在线| 91在线观看免费高清完整版在线观看| 欧美日韩国产va另类| 国产成人精品在线播放| 亚洲三级 欧美三级| 国产精品久久久久久久久久久新郎| 中文字幕久热精品视频在线| 成人精品久久一区二区三区| 欧美另类在线观看| 欧美一区二区三区精品电影| 欧美激情va永久在线播放| 91色在线视频| 在线日韩精品视频| 国产精品日韩专区| 欧美资源在线观看| 成人激情视频在线观看| 亚洲电影免费观看高清| 国产精品福利在线观看| 亚洲福利视频免费观看| 亚洲欧洲xxxx| 成人信息集中地欧美| 国产精品视频一区二区高潮| 欧洲精品久久久| 日本久久久久久| 一区二区福利视频| 国产成人精品视| 最近2019中文字幕在线高清| 欧美性受xxxx白人性爽| 亚洲成人激情在线| 精品久久久视频| 亚洲国内高清视频| 国产精品久久久久av免费| 91精品视频在线播放| 超薄丝袜一区二区| 久久精品久久精品亚洲人| 日韩激情av在线免费观看| 久久伊人91精品综合网站| 久久天堂av综合合色| 亚洲国产高清自拍| 久久全国免费视频| 久久久精品久久久| 亚洲欧美另类在线观看| 亚洲美女视频网站| 97在线视频免费| 午夜精品久久久久久久久久久久| 亚洲欧美另类中文字幕| 亚洲欧美日韩高清| 国产欧美精品在线| 欧美香蕉大胸在线视频观看| 国产精品一区二区久久精品| 欧美性猛交xxxx富婆弯腰| 国产综合香蕉五月婷在线| 最好看的2019的中文字幕视频| 亚洲国产精品成人va在线观看| 成人情趣片在线观看免费| 国产精品久久激情| 成人h片在线播放免费网站| 精品久久中文字幕久久av| 国产欧美日韩专区发布| 日韩一区二区福利| 亚洲另类欧美自拍| 日韩毛片中文字幕| 国产一区二区三区四区福利| 日韩av理论片| 欧美影院久久久| 欧美大片免费观看在线观看网站推荐| 欧美性受xxxx黑人猛交| 日韩av黄色在线观看| 亚洲剧情一区二区| 欧美—级a级欧美特级ar全黄| 日韩网站免费观看| 精品久久久久久久久久久| 国产欧美欧洲在线观看| 欧美裸体xxxxx| 精品少妇一区二区30p| 日韩av影片在线观看| 亚洲色图校园春色| 国产精品热视频| 欧美一级淫片丝袜脚交| 日韩精品久久久久久福利| 久久免费少妇高潮久久精品99| 成人在线视频福利| 国产精品一区二区三区久久久| 国产日产欧美a一级在线| 欧美肥婆姓交大片| 亚洲欧美日本精品| 国产日本欧美视频| 91精品久久久久久久久久入口| 欧美黑人性视频| 欧美人在线视频| 免费成人高清视频| 国产精品毛片a∨一区二区三区|国| 欧美精品18videosex性欧美| 欧美日韩国产丝袜另类| 中文字幕在线国产精品| 久久久av亚洲男天堂| 亚洲深夜福利在线| 亚洲aⅴ日韩av电影在线观看| 亚洲欧美激情另类校园| 成人激情视频小说免费下载| 成人激情视频在线观看| 欧美日本啪啪无遮挡网站| 欧美日韩国产中字| 欧美精品18videosex性欧美| 在线看片第一页欧美| 亚洲精品国精品久久99热一| 久久人人爽人人| 中文字幕亚洲无线码a| 中文字幕亚洲第一| 亚洲第一色中文字幕| 亚洲国产中文字幕在线观看| 日韩不卡中文字幕| 国产69精品99久久久久久宅男| 欧美激情免费观看| 欧美激情va永久在线播放| 欧美又大粗又爽又黄大片视频| 奇米影视亚洲狠狠色| 国产精品第3页| 欧美视频在线观看 亚洲欧| 久久久久久久久久久91| 亚洲国模精品私拍| 亚洲国产精品字幕| 免费不卡在线观看av| 精品国内亚洲在观看18黄| 日韩精品免费在线视频| 国产精品免费观看在线| 正在播放国产一区| 久久男人的天堂| 国产成人精品综合久久久| 国产精品久久久999| 欧美肥老太性生活视频| 欧美一二三视频| 久久夜色撩人精品| 国产成人精品久久二区二区| 亚洲第一区第二区| 欧美一区二区影院| 黑人极品videos精品欧美裸| 九九久久久久99精品| 亚洲国产精品高清久久久| 欧美中在线观看| 色综合色综合久久综合频道88| 日韩在线免费视频| 亚洲国产成人一区| 91久久综合亚洲鲁鲁五月天| 在线看国产精品| 97在线观看视频国产| 国产精品午夜国产小视频| 亚洲国产美女久久久久| 欧美精品在线免费播放| 亚洲午夜av电影| 欧美xxxx做受欧美| 欧美日韩电影在线观看| 2019中文字幕全在线观看| 亚洲精品久久久久中文字幕欢迎你| 亚洲第一精品福利| 精品亚洲男同gayvideo网站| 琪琪第一精品导航| 欧美国产精品人人做人人爱| 一本色道久久综合狠狠躁篇的优点| 亚洲国产天堂网精品网站| 亚洲精品国产美女| 欧美成人手机在线| 亚洲欧洲一区二区三区久久|