日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

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

编程问答

那些你不知道的 LVS 秘密!

發布時間:2024/8/23 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 那些你不知道的 LVS 秘密! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者 | 故事凌

責編?| 郭芮

近來在群里,看到大家說對lvs+keepalived不太了解,我想我應該是有發言權的。自己本身就是運維出身,原來在京東物流的時候,lvs+keepalived就是倉庫物流在用的,踩了很多坑,只不過后來都上云了,但是這個經驗還是可以跟大家叨叨一會的——下面我們進入主題吧。

LVS簡介

1. 什么是LVS?

LVSLinux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統。本項目在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。目前LVS已經被集成到Linux內核模塊中。

2. LVS能做什么?

LVS主要用于多服務器的負載均衡:

  • 它工作在網絡層,可以實現高性能,高可用的服務器集群技術。

  • 它廉價,可把許多低性能的服務器組合在一起形成一個超級服務器。

  • 它易用,配置非常簡單,且有多種負載均衡的方法。

  • 它穩定可靠,即使在集群的服務器中某臺服務器無法正常工作,也不影響整體效果。

  • 可擴展性也非常好。

  • 性能幾乎可以和F5相媲美(個人意見)

3. LVS的負載均衡結構圖

lvs的負載均衡結構圖,大概的使用場景是這樣的,關于高可用的地方,我們后面會進行介紹,別著急哦!

LVS的核心組件和專業術語

1. 核心組件

LVS的管理工具和內核模塊 ipvsadm/ipvs:

  • ipvsadm:用于空間的命令行工具, 用于管理集群服務及集群服務上的RS等;

  • ipvs:工作于內核上的程序, 可根據用戶定義的集群實現請求轉發。

2. 專業術語

  • VS:Virtual Server,虛擬服務

  • Director:負載均衡器,圖1的lvs調度器

  • Balancer:分發器,圖1的lvs調度器

  • RS:Real Server,后端請求處理服務器,圖1的web服務

  • CIP:client ip,客戶單ip

  • VIP:Director Virtural IP,負載均衡虛擬IP,應該出現在圖1的lvs調度器上

  • DIP:Director IP 負載均衡器ip

  • RIP:Real Server IP,后端請求處理服務器IP

LVS的常用幾種模式

1、LVS的DR模式(最常用)

lvs的DR模式最最穩定, 是使用最多的一種模式。

1. 什么是arp廣播?

在了解LVS的DR模式之前, 我們需要先了解一下arp廣播, 要不然我在講后面內容的時候會用到這個, 已經是大佬的同學跳過吧。小白請認真讀完。

arp廣播:根據ip地址找mac地址。

  • 主機A的IP地址為192.168.1.1,MAC地址為0A-11-22-33-44-01;

  • 主機B的IP地址為192.168.1.2,MAC地址為0A-11-22-33-44-02;

當主機A要與主機B通信時:

  • 第1步:根據主機A上的路由表內容,IP確定用于訪問主機B的轉發IP地址是192.168.1.2。然后A主機在自己的本地ARP緩存中檢查主機B的匹配MAC地址。

  • 第2步:如果主機A在ARP緩存中沒有找到映射,它將詢問192.168.1.2的硬件地址,從而將ARP請求幀廣播到本地網絡上的所有主機。源主機A的IP地址和MAC地址都包括在ARP請求中。本地網絡上的每臺主機都接收到ARP請求并且檢查是否與自己的IP地址匹配。如果主機發現請求的IP地址與自己的IP地址不匹配,它將丟棄ARP請求。

  • 第3步:主機B確定ARP請求中的IP地址與自己的IP地址匹配,則將主機A的IP地址和MAC地址映射添加到本地ARP緩存中。

  • 第4步:主機B將包含其MAC地址的ARP回復消息直接發送回主機A。

  • 第5步:當主機A收到從主機B發來的ARP回復消息時,會用主機B的IP和MAC地址映射更新ARP緩存。本機緩存是有生存期的,生存期結束后,將再次重復上面的過程。主機B的MAC地址一旦確定,主機A就能向主機B發送IP通信了。

2. LVS的DR模式的請求流程圖

申明:?首先我們先來申明一下, 舉個例子: 我們在請求一個域名如: https://www.naixuejiaoyu.com/, 我們首先會訪問的是DNS, DNS會根據我們的域名給我們解析VIP地址(一般情況是一個vip, 也有一種情況是一個域名對應對個vip或者ip), 我們為了簡單, 下圖就是畫的一般情況。

注意:前提是我們的VIP地址都是配置在LO上的。

3. 提問一: 三個vip, 為什么dns會把請求打到LVS上, 而沒有打到RS上呢?

帶著這個問題我們來思考, 可能才更好的幫助我們來理解LVS的DR模式, 要解決這個問題, 我們就需要提到我們剛開始提到的ARP請求了, 我們需要在LVS, RS1, RS2上都需要綁定三個VIP, 但是需要在RS1和RS2上需要額外的做一些工作, 那就是禁止ARP請求。

我們在RS上需要執行以下的操作, 更改linux的內核參數, 如下:

echo?"1"?>/proc/sys/net/ipv4/conf/lo/arp_ignore echo?"2"?>/proc/sys/net/ipv4/conf/lo/arp_announce echo?"1"?>/proc/sys/net/ipv4/conf/all/arp_ignore echo?"2"?>/proc/sys/net/ipv4/conf/all/arp_announce

為了幫助大家更好的理解三個vip之間的關系, 我們舉個例子來說: LVS服務器是正常的, 當DNS在請求的時候會解析出來VIP的地址, 但是并不知道, 具體的mac地址是哪一個, 那LVS服務器會通過ARP請求, 告知別人自己的mac地址, 別人就緩存下來了, 反之, 我們的RS是禁止ARP請求的, 其實他就是一個啞巴, 讓他不能說話的, 別人就不知道他的mac地址, 即使他有VIP地址, 所以DNS只會把請求轉發到LVS上, 而不能轉發到RS上。

4. 既然RS禁止了ARP請求, 那LVS如何把請求轉發給RS呢?

解決了上面的問題, 那新的問題又來了, 既然我們說RS禁止了ARP請求, 那LVS是如何把請求轉發給RS的呢?其實我告訴你,?是通過修改mac地址, 進行轉發的,?這個是DR模式的核心, 那LVS又是如何知道RS的mac地址呢, 其實是通過ARP請求獲知的, 那有些人就會問我, 你這個不是自相矛盾嗎?別擔心, 接著看。

首先我們看一下, 我們的vip都是綁定在lo上的, 我們要理解上面我提出的這個問題, 就要深入的了解一下linux內核參數的配置信息了。

有關arp_ignore的相關介紹:

arp_ignore - INTEGER Define different modes for sending replies in response to received ARP requests that resolve local target IP addresses:

0 - (default): reply for any local target IP address, configured on any interface

1 - reply only if the target IP address is local address configured on the incoming interface

2 - reply only if the target IP address is local address configured on the incoming interface and both with the sender's IP address are part from same subnet on this interface

3 - do not reply for local addresses configured with scope host, only resolutions for global and link addresses are replied

4-7 - reserved

8 - do not reply for all local addresses

The max value from conf/{all,interface}/arp_ignore is used when ARP request is received on the {interface}

看不懂沒關系, 既然要解決, 我們肯定是要深入剖析的, 下面我們來簡單的翻譯一下:

arp_ignore:定義對目標地址為本地IP的ARP詢問不同的應答模式

0 - (默認值): 回應任何網絡接口上對任何本地IP地址的arp查詢請求

1 - 只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求

2 -只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求,且來訪IP必須在該網絡接口的子網段內

3 - 不回應該網絡界面的arp請求,而只對設置的唯一和連接地址做出回應

4-7 - 保留未使用

8 -不回應所有(本地地址)的arp查詢

好了我們設置的arp_ignore內核參數是1, 就是只回答目標IP地址是來訪網絡接口本地地址的ARP查詢請求,即:?只回答本地網卡eth0上的ARP請求。

我們就拿上面的圖舉例:

  • LVS服務器:

  • DIP: 綁定的網卡eth0: 192.168.1.110

  • VIP: 綁定的網卡是lo:0: 192.168.147.150

  • RS服務器:

  • RIP: 綁定的網卡是eth0: 192.168.1.111

  • VIP: 綁定的網卡lo:0: 192.168.147.150

其實客戶端在發送ARP請求的時候, 詢問的是VIP的mac地址, LVS服務器進行了正確的ARP請求回應, 而當循環RS服務器的mac地址的時候, 這個時候, 我們網卡的IP地址是: 192.168.1.111/112, RS是做過閹割的, 所以不給與回應。

當LVS服務器發起ARP請求的時候, 循環192.168.1.111或者192.168.1.112的mac地址, 這個時候, RS本地的網卡地址, 就是LVS需要訪問的ip地址, 就進行ARP請求的回應. 所有LVS服務器就緩存了RS服務器的mac地址。

上面的問題是不是都迎刃而解了,快來給我瘋狂打call吧!

5. RS是如何做到, 直接返回給客戶端的呢?

這個問題太好, 我們一般接收的請求, 應該都是哪里來, 哪里回, 那RS是如何做到直接返回個客戶端的呢?

好的, 既然我們前面提到了在RS上進行設計linux內核參數的更改, 分別是arp_ignore和arp_announce兩個內核參數, 既然arp_ignore是禁止arp請求的,我們上面已經介紹過了, ?arp_announce內核參數是做什么的嗯? 我們下面就來講解一下這個參數的作用吧。

既然存在, 那就是有意義的, arp_announce這個內核參數, 其實就是讓RS可直接返回給客戶端。

有關arp_announce的相關介紹:

arp_announce - INTEGER Define different restriction levels for announcing the local source IP address from IP packets in ARP requests sent on interface: 0 - (default) Use any local address, configured on any interface 1 - Try to avoid local addresses that are not in the target's subnet for this interface. This mode is useful when target hosts reachable via this interface require the source IP address in ARP requests to be part of their logical network configured on the receiving interface. When we generate the request we will check all our subnets that include the target IP and will preserve the source address if it is from such subnet. If there is no such subnet we select source address according to the rules for level 2.

2 - Always use the best local address for this target. In this mode we ignore the source address in the IP packet and try to select local address that we prefer for talks with the target host. Such local address is selected by looking for primary IP addresses on all our subnets on the outgoing interface that include the target IP address. If no suitable local address is found we select the first local address we have on the outgoing interface or on all other interfaces, with the hope we will receive reply for our request and even sometimes no matter the source IP address we announce.

The max value from conf/{all,interface}/arp_announce is used.

Increasing the restriction level gives more chance for receiving answer from the resolved target while decreasing the level announces more valid sender's information.

arp_announce:對網絡接口上,本地IP地址的發出的,ARP回應,作出相應級別的限制: 確定不同程度的限制,宣布對來自本地源IP地址發出Arp請求的接口。

0 - (默認) 在任意網絡接口上的任何本地地址

1 -盡量避免不在該網絡接口子網段的本地地址做出arp回應. 當發起ARP請求的源IP地址是被設置應該經由路由達到此網絡接口的時候很有用.此時會檢查來訪IP是否為所有接口上的子網段內ip之一.如果改來訪IP不屬于各個網絡接口上的子網段內,那將采用級別2的方式來進行處理.

2 - 對查詢目標使用最適當的本地地址.在此模式下將忽略這個IP數據包的源地址并嘗試選擇與能與該地址通信的本地地址.首要是選擇所有的網絡接口的子網中外出訪問子網中包含該目標IP地址的本地地址. 如果沒有合適的地址被發現,將選擇當前的發送網絡接口或其他的有可能接受到該ARP回應的網絡接口來進行發送.

其實我們RS可以直接返回給客戶端, 就是arp_announce設置為2起到的作用, 他會自主的選擇一個地址, 即VIP地址, 返回給我們的客戶端, 其實就是利用了一個欺騙的技術, 讓客戶端不會把我們返回的請求丟棄掉, 讓他以為RS返回的請求是正常的。

6. LVS的DR模式請求IP地址追蹤

client在發起請求之前,會發一個ARP廣播的包,在網絡中找“誰是vip”,由于所有的服務器,lvs和res都有vip,為了讓client的請求送到lvs上,所以必須讓RS不能響應client發出的ARP請求,(這也是為什么要禁止res上arp的請求和響應)下面就是lvs轉發的事情了:

  • client向目標vip發送請求,lvs接收;此時ip包和數據信息如下:

  • src?mac?---->???????a1:b2:c3:d4:e5:f6(client的mac地址(我假設的))dst?mac?---->?????????????1a:2b:3c:4d:5e:6f(lvs的mac地址(我假設的))src_ip?---->????????????192.168.147.1dst_ip?---->??????????????192.168.147.150
  • lvs根據負載均衡的算法,選擇一臺RS,然后把RS1的mac地址作為目的mac地址,發送到局域網中:

  • src?mac?---->???????1a:2b:3c:4d:5e:6f(lvs的mac地址(我假設的))dst?mac?---->?????????????11:22:33:44:55:66(RS1的mac地址(我假設的))src_ip?---->????????????192.168.147.1dst_ip?---->??????????????192.168.147.150是的,?你沒有看錯,?src_ip地址和dst_ip是不發生變化的,?我們前面說到,?DR模式是通過修改mac地址進行轉發的,?IP地址的請求是不發生變化的,?這個和后面的nat模式有很大的區別
  • RS1在局域網中收到這個請求以后,發現目的ip和本地匹配,于是進行處理,處理完成以后,直接把源ip和目的ip直接對調,然后經過網關直接返回給用戶;

  • src?mac?---->???????11:22:33:44:55:66(RS1的mac地址(我假設的))dst?mac?---->?????????????a1:b2:c3:d4:e5:f6(client的mac地址(我假設的))src_ip?---->????????????192.168.147.150dst_ip?---->??????????????192.168.147.1在RS上,?是可以直接返回給客戶端的,

    LVS的NAT模式

    LVS的NAT模式, 類似于iptables的DNAT, 但是支持多目標的轉發。

    注意:自己在本機做實驗的時候, 客戶端不能和RS在同一網段, 不然直接響應, 不走官關。

    1. 優點

    • 配置簡單,通用性強

    • 支持映射(NAT映射表)

    • RIP可以是私網IP,用于LVS與RS之間通訊

    2. 缺點

    • LVS和RS必須在一個VLAN中(RS將LVS配置為網關,如果不在一個子網回包會經過路由器網關直接路由走,LVS沒機會修改數據包)

    • 進出流量都需要LVS進行處理,LVS容易成為集群瓶頸

    • 需要將LVS配置為RS的網關

    3. LVS的NAT模式的請求流程圖

    4. LVS的NAT模式請求流程圖

    • 客戶端發起請求到LVS機器上。

    • LVS服務器根據lvs的算法,轉發給RS服務器(改變目的ip為RS1或者RS2),并記錄連接信息,只改變目的ip,源ip不變。

    • RS收到request請求包之后,發現目的ip是自己的ip,處理請求,然后走網關,經過LVS, RS設置的官網為LVS的eth0。

    • LVS收到reply包后,修改reply包的源ip地址為vip,發給客戶端。

    • 客戶端接收到請求, 校驗ip請求的包是否符合要求, 符合, 接收, 不符合, 丟棄。

    5. 抓包分析包請求流程如下:

  • 客戶端發起請求:

  • source??????????192.168.147.1??????????? dest????????????????192.168.147.150:80

    在LVS服務器上, eth0網卡抓取的包如下:

  • LVS處理請求:

  • 在LVS服務器上抓包, 在eth0網卡抓包

    source????????192.168.147.1:59334????? dst????????????????192.168.1.112/111:80

  • LVS的eth0作為RS的網關地址, 需要經過LVS周轉

  • source?????????????192.168.1.112?????????????? dst?????????????????????????????192.168.147.1
  • 返回客戶端

  • 包經過eth0返回vip服務器,然后經過VIP返回給客戶端,源ip改成vip,目的ip不變

    source????????192.168.147.150??????????? dst???????192.168.147.1

    3、LVS的TUN模式(隧道模式)不常用

    什么IP隧道技術?

    簡單來說IP隧道技術就是將 【IP數據包】 的上面再封裝一層【IP數據包】, 然后路由器根據最外層的IP地址路由到目的地服務器,目的地服務器拆掉最外層的IP數據包,拿到里面的IP數據包進行處理。

    原理

    用戶請求負載均衡服務器,當IP數據包到達負載均衡服務器后,根據算法選擇一臺真實的服務器,然后通過IP隧道技術將數據包原封不動再次封裝,并發送給真實服務器,當這個數據包到達真實服務器以后,真實服務器進行拆包(拆掉第一層的IP包)拿到里面的IP數據包進行處理,然后將結果直接返回給客戶端。

    Tunnel原理流程圖

    4、LVS的FULLNAT模式

    fullnat模式聽名字也是nat模式的一種, 那full是什么意思呢? 就是全部的nat模式, nat模式中, 我們是需要設置RS的網關地址為LVS的內網服務器地址, 那fullnat模式, 就是我們最通常容易理解的類型, 我們通過下面的圖來了解吧,, 主要是就包的請求地址改變有不同。

    nat模式:

    fullnat模式:

    lvs負載均衡調度算法

    根據前面的介紹,我們了解了LVS的三種工作模式,但不管實際環境中采用的是哪種模式,調度算法進行調度的策略與算法都是LVS的核心技術,LVS在內核中主要實現了一下十種調度算法。

    1.輪詢調度

    輪詢調度(Round Robin 簡稱'RR')算法就是按依次循環的方式將請求調度到不同的服務器上,該算法最大的特點就是實現簡單。輪詢算法假設所有的服務器處理請求的能力都一樣的,調度器會將所有的請求平均分配給每個真實服務器。

    2.加權輪詢調度

    加權輪詢(Weight Round Robin 簡稱'WRR')算法主要是對輪詢算法的一種優化與補充,LVS會考慮每臺服務器的性能,并給每臺服務器添加一個權值,如果服務器A的權值為1,服務器B的權值為2,則調度器調度到服務器B的請求會是服務器A的兩倍。權值越高的服務器,處理的請求越多。

    3.最小連接調度

    最小連接調度(Least Connections 簡稱'LC')算法是把新的連接請求分配到當前連接數最小的服務器。最小連接調度是一種動態的調度算法,它通過服務器當前活躍的連接數來估計服務器的情況。調度器需要記錄各個服務器已建立連接的數目,當一個請求被調度到某臺服務器,其連接數加1;當連接中斷或者超時,其連接數減1。

    (集群系統的真實服務器具有相近的系統性能,采用最小連接調度算法可以比較好地均衡負載。)

    4.加權最小連接調度

    加權最少連接(Weight Least Connections 簡稱'WLC')算法是最小連接調度的超集,各個服務器相應的權值表示其處理性能。服務器的缺省權值為1,系統管理員可以動態地設置服務器的權值。加權最小連接調度在調度新連接時盡可能使服務器的已建立連接數和其權值成比例。調度器可以自動問詢真實服務器的負載情況,并動態地調整其權值。

    5.基于局部的最少連接

    基于局部的最少連接調度(Locality-Based Least Connections 簡稱'LBLC')算法是針對請求報文的目標IP地址的 負載均衡調度,目前主要用于Cache集群系統,因為在Cache集群客戶請求報文的目標IP地址是變化的。這里假設任何后端服務器都可以處理任一請求,算法的設計目標是在服務器的負載基本平衡情況下,將相同目標IP地址的請求調度到同一臺服務器,來提高各臺服務器的訪問局部性和Cache命中率,從而提升整個集群系統的處理能力。LBLC調度算法先根據請求的目標IP地址找出該目標IP地址最近使用的服務器,若該服務器是可用的且沒有超載,將請求發送到該服務器;若服務器不存在,或者該服務器超載且有服務器處于一半的工作負載,則使用'最少連接'的原則選出一個可用的服務器,將請求發送到服務器。

    6.帶復制的基于局部性的最少連接

    帶復制的基于局部性的最少連接(Locality-Based Least Connections with Replication ?簡稱'LBLCR')算法也是針對目標IP地址的負載均衡,目前主要用于Cache集群系統,它與LBLC算法不同之處是它要維護從一個目標IP地址到一組服務器的映射,而LBLC算法維護從一個目標IP地址到一臺服務器的映射。按'最小連接'原則從該服務器組中選出一一臺服務器,若服務器沒有超載,將請求發送到該服務器;若服務器超載,則按'最小連接'原則從整個集群中選出一臺服務器,將該服務器加入到這個服務器組中,將請求發送到該服務器。同時,當該服務器組有一段時間沒有被修改,將最忙的服務器從服務器組中刪除,以降低復制的程度。

    7.目標地址散列調度

    目標地址散列調度(Destination Hashing 簡稱'DH')算法先根據請求的目標IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且并未超載,將請求發送到該服務器,否則返回空。

    8.源地址散列調度U

    源地址散列調度(Source Hashing ?簡稱'SH')算法先根據請求的源IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且并未超載,將請求發送到該服務器,否則返回空。它采用的散列函數與目標地址散列調度算法的相同,它的算法流程與目標地址散列調度算法的基本相似。

    9.最短的期望的延遲

    最短的期望的延遲調度(Shortest Expected Delay 簡稱'SED')算法基于WLC算法。舉個例子吧,ABC三臺服務器的權重分別為1、2、3 。那么如果使用WLC算法的話一個新請求進入時它可能會分給ABC中的任意一個。使用SED算法后會進行一個運算

    A:(1+1)/1=2 ? B:(1+2)/2=3/2 ? C:(1+3)/3=4/3 ? 就把請求交給得出運算結果最小的服務器。

    10.最少隊列調度

    最少隊列調度(Never Queue 簡稱'NQ')算法,無需隊列。如果有realserver的連接數等于0就直接分配過去,不需要在進行SED運算。

    作者:凌晶,生活中的段子手,目前就職于一家地產公司做 DevOPS 相關工作, 曾在大型互聯網公司做高級運維工程師,熟悉 Linux 運維,Python 運維開發,Java 開發,DevOPS 常用開發組件等。

    聲明:本文為作者投稿,首發于個人公眾號:stormling,版權歸其所有。


    推薦閱讀

    • 大促下的智能運維挑戰:阿里如何抗住“雙11貓晚”?

    • 20萬個法人、百萬條銀行賬戶信息,正在暗網兜售

    • 當莎士比亞遇見Google Flax:教你用字符級語言模型和歸遞神經網絡寫“莎士比亞”式句子

    • Hyperledger Fabric 和企業級以太坊,誰才是企業首選?

    • 面試時遇到「看門狗」脖子上掛著「時間輪」,我就問你怕不怕?

    • 同期兩篇 Nature:運行溫度高于 1K 的量子計算平臺問世!

    • GitHub 標星 10,000+,Apache 頂級項目 ShardingSphere 的開源之路

      真香,朕在看了!

    總結

    以上是生活随笔為你收集整理的那些你不知道的 LVS 秘密!的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 91美女免费看 | 国产成人综合网 | 狠狠干免费视频 | 亚洲三级在线免费观看 | 亚洲成人伦理 | 热久久久| 爱操视频| 日本一区免费 | 国产美女无遮挡免费视频 | 色多多在线视频 | 亚洲精品国产无码 | 五月婷婷丁香 | 红桃av在线 | 91av免费在线观看 | 欧美色一区二区三区在线观看 | 国产一二三区av | 一区二区三区啪啪啪 | 久久免费一级片 | 91麻豆国产 | 九九99久久 | 少妇又白又嫩又色又粗 | 九色蝌蚪91 | 人人爽夜夜爽 | 美女激情av| 一区不卡av | 国产美女网 | 国产嘿咻视频 | 国产福利一区二区三区视频 | 免费一区二区三区视频在线 | 中文字幕一区二区三区乱码在线 | 50部乳奶水在线播放 | 天堂在线观看 | 亚洲一区精品视频 | 宿舍女女闺蜜调教羞辱 | 黄色aa大片 | 无码人妻av免费一区二区三区 | 亚洲最大网站 | 成人av福利 | 葵司有码中文字幕二三区 | 久久精品在线播放 | 奇米影视亚洲 | 久草视频在线免费播放 | 日韩在线免费观看视频 | 欧美日韩影院 | 日本一区精品视频 | 玉女心经在线看 | 美女十八毛片 | 国产精品无码一区二区三区三 | 国产做爰免费观看 | 懂色视频在线观看 | 日韩成人在线观看视频 | 五级 黄 色 片 | 国产精品久久不卡 | 久草视频在线资源 | 超碰99在线 | 国产二级一片内射视频播放 | 国产精品色在线网站 | 91成人天堂久久成人 | 国产伦精品一区二区三区精品 | 黄色录像一级大片 | 日韩精品免费电影 | 性感美女福利视频 | 午夜丁香婷婷 | 免费色片网站 | 色中色综合 | 91原创国产 | 18深夜在线观看免费视频 | 成年人免费视频观看 | 午夜久久精品 | 国产精品日韩欧美大师 | www久久| 欧美成人国产va精品日本一级 | 久久这里只有精品久久 | 欧美日韩综合在线 | 久久精品国产亚洲av麻豆色欲 | 久久久夜 | 熊猫av | 国产又粗又长又黄视频 | 粉嫩av懂色av蜜臀av分享 | 9i看片成人免费高清 | 亚洲天堂久久 | 久久久久久久综合色一本 | 91蜜桃| 91免费网址 | 日本69少妇 | 国产一二三精品 | 欧亚一区二区 | 苍井空亚洲精品aa片在线播放 | 男男受被啪到高潮自述 | 精品国产乱码久久 | www.精品| 在线免费观看视频网站 | 欧美精产国品一二三区 | 4438亚洲最大 | 欧美tickle狂笑裸体vk | 99久久婷婷国产精品综合 | 日韩免费av网站 | 国产视频一区二区不卡 | 91看片网 |