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

天天講路由,那 Linux 路由到底咋實現(xiàn)的!?

系統(tǒng) Linux 商務(wù)辦公
容器是一種新的虛擬化技術(shù),每一個容器都是一個邏輯上獨立的網(wǎng)絡(luò)環(huán)境。Linux 上提供了軟件虛擬出來的二層交換機 Bridge 可以解決同一個宿主機上多個容器之間互連的問題,但這是不夠的。二層交換無法解決容器和宿主機外部網(wǎng)絡(luò)的互通。

 

本文轉(zhuǎn)載自微信公眾號「開發(fā)內(nèi)功修煉」,作者張彥飛allen。轉(zhuǎn)載本文請聯(lián)系開發(fā)內(nèi)功修煉公眾號。

大家好,我是飛哥。

容器是一種新的虛擬化技術(shù),每一個容器都是一個邏輯上獨立的網(wǎng)絡(luò)環(huán)境。Linux 上提供了軟件虛擬出來的二層交換機 Bridge 可以解決同一個宿主機上多個容器之間互連的問題,但這是不夠的。二層交換無法解決容器和宿主機外部網(wǎng)絡(luò)的互通。

容器肯定是需要和宿主機以外的外部網(wǎng)絡(luò)互通才具備實用價值的。比如在 Kubernets 中,就要求所有的 pod 之間都可以互通。相當(dāng)于在原先物理機所組成的網(wǎng)絡(luò)之上,要再建一個互通的虛擬網(wǎng)絡(luò)出來。這就是 Overlay 網(wǎng)絡(luò)的概念,用一個簡單的示例圖表示如下。

回想在傳統(tǒng)物理物理網(wǎng)絡(luò)中,不同子網(wǎng)之間的服務(wù)器是如何互聯(lián)起來的呢,沒錯,就是在三層工作的路由器,也叫網(wǎng)關(guān)。路由器使得數(shù)據(jù)包可以從一個子網(wǎng)中傳輸?shù)搅硪粋€子網(wǎng)中,進而實現(xiàn)更大范圍的網(wǎng)絡(luò)互通。如下圖所示,一臺路由器將 192.168.0.x 和 192.168.1.x 兩個子網(wǎng)連接了起來。

在容器虛擬化網(wǎng)絡(luò)中,自然也需要這么一個角色,將容器和宿主機以外的網(wǎng)絡(luò)連接起來。其實 Linux 天生就具備路由的功能,只是在云原生時代,它的路由功能再一次找到了用武之地。在容器和外部網(wǎng)絡(luò)通信的過程中,Linux 就又承擔(dān)起路由器的角色,實現(xiàn)容器數(shù)據(jù)包的正確轉(zhuǎn)發(fā)和投遞。

在各種基于容器的云原生技術(shù)盛行的今天,再次回頭深刻理解路由工作原理顯得非常有必要,而且也非常的有價值。今天,我們就再來強化一下 Linux 上的路由知識!

一、什么時候需要路由

先來聊聊 Linux 在什么情況下需要路由過程。其實在發(fā)送數(shù)據(jù)時和接收數(shù)據(jù)時都會涉及到路由選擇,為什么?我們挨個來看。

1.1 發(fā)送數(shù)據(jù)時選路

Linux 之所以在發(fā)送數(shù)據(jù)包的時候需要進行路由選擇,這是因為服務(wù)器上是可能會有多張網(wǎng)卡設(shè)備存在的。數(shù)據(jù)包在發(fā)送的時候,一路通過用戶態(tài)、TCP 層到了 IP 層的時候,就要進行路由選擇,以決定使用哪張網(wǎng)卡設(shè)備把數(shù)據(jù)包送出去。詳細(xì)過程參見25 張圖,一萬字,拆解 Linux 網(wǎng)絡(luò)包發(fā)送過程

來大致過一下路由相關(guān)源碼源碼。網(wǎng)絡(luò)層發(fā)送的入口函數(shù)是 ip_queue_xmit。

  1. //file: net/ipv4/ip_output.c 
  2. int ip_queue_xmit(struct sk_buff *skb, struct flowi *fl) 
  3.  // 路由選擇過程 
  4.  // 選擇完后記錄路由信息到 skb 上 
  5.  rt = (struct rtable *)__sk_dst_check(sk, 0); 
  6.  if (rt == NULL) { 
  7.   // 沒有緩存則查找路由項 
  8.   rt = ip_route_output_ports(...); 
  9.   sk_setup_caps(sk, &rt->dst); 
  10.  } 
  11.  skb_dst_set_noref(skb, &rt->dst); 
  12.  ... 
  13.  //發(fā)送 
  14.  ip_local_out(skb); 

在 ip_queue_xmit 里我們開頭就看到了路由項查找, ip_route_output_ports 這個函數(shù)中完成路由選擇。路由選擇就是到路由表中進行匹配,然后決定使用哪個網(wǎng)卡發(fā)送出去。

Linux 中最多可以有 255 張路由表,其中默認(rèn)情況下有 local 和 main 兩張。使用 ip 命令可以查看路由表的具體配置。拿 local 路由表來舉例。

  1. #ip route list table local 
  2. local 10.143.x.y dev eth0 proto kernel scope host src 10.143.x.y 
  3. local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1 

1.2 接收數(shù)據(jù)時選路

沒錯,接收數(shù)據(jù)包的時候也需要進行路由選擇。這是因為 Linux 可能會像路由器一樣工作,將收到的數(shù)據(jù)包通過合適的網(wǎng)卡將其轉(zhuǎn)發(fā)出去。

Linux 在 IP 層的接收入口 ip_rcv 執(zhí)行后調(diào)用到 ip_rcv_finish。在這里展開路由選擇。如果發(fā)現(xiàn)確實就是本設(shè)備的網(wǎng)絡(luò)包,那么就通過 ip_local_deliver 送到更上層的 TCP 層進行處理。

如果路由后發(fā)現(xiàn)非本設(shè)備的網(wǎng)絡(luò)包,那就進入到 ip_forward 進行轉(zhuǎn)發(fā),最后通過 ip_output 發(fā)送出去。

具體的代碼如下。

  1. //file: net/ipv4/ip_input.c 
  2. static int ip_rcv_finish(struct sk_buff *skb){ 
  3.     ... 
  4.     if (!skb_dst(skb)) { 
  5.         int err = ip_route_input_noref(skb, iph->daddr, iph->saddr, 
  6.                            iph->tos, skb->dev); 
  7.         ... 
  8.     } 
  9.     ... 
  10.     return dst_input(skb); 

其中 ip_route_input_noref 就是在進行路由查找。

  1. //file: net/ipv4/route.c 
  2. int ip_route_input_noref(struct sk_buff *skb, __be32 daddr, __be32 saddr, 
  3.     u8 tos, struct net_device *dev) 
  4.  ... 
  5.  res = ip_route_input_slow(skb, daddr, saddr, tos, dev); 
  6.  return res; 

這里記著 ip_route_input_slow 就行了,后面我們再看。

1.3 linux 路由小結(jié)

路由在內(nèi)核協(xié)議棧中的位置可以用如下一張圖來表示。

網(wǎng)絡(luò)包在發(fā)送的時候,需要從本機的多個網(wǎng)卡設(shè)備中選擇一個合適的發(fā)送出去。網(wǎng)絡(luò)包在接收的時候,也需要進行路由選擇,如果是屬于本設(shè)備的包就往上層送到網(wǎng)絡(luò)層、傳輸層直到 socket 的接收緩存區(qū)中。如果不是本設(shè)備上的包,就選擇合適的設(shè)備將其轉(zhuǎn)發(fā)出去。

二、Linux 的路由實現(xiàn)

2.1 路由表

路由表(routing table)在內(nèi)核源碼中的另外一個叫法是轉(zhuǎn)發(fā)信息庫(Forwarding Information Base,F(xiàn)IB)。所以你在源碼中看到的 fib 開頭的定義基本上就是和路由表相關(guān)的功能。

其中路由表本身是用 struct fib_table 來表示的。

  1. struct fib_table { 
  2.  struct hlist_node tb_hlist; 
  3.  u32   tb_id; 
  4.  int   tb_default; 
  5.  int   tb_num_default; 
  6.  unsigned long  tb_data[0]; 
  7. }; 

所有的路由表都通過一個 hash - fib_table_hash 來組織和管理。它是放在網(wǎng)絡(luò)命名空間 net 下的。這也就說明每個命名空間都有自己獨立的路由表。

  1. //file:include/net/net_namespace.h 
  2. struct net { 
  3.  struct netns_ipv4 ipv4; 
  4.  ... 
  5.  
  6. //file: include/net/netns/ipv4.h 
  7. struct netns_ipv4 { 
  8.  // 所有路由表  
  9.  struct hlist_head *fib_table_hash; 
  10.  
  11.  // netfilter 
  12.  ... 

在默認(rèn)情況下,Linux 只有 local 和 main 兩個路由表。如果內(nèi)核編譯時支持策略路由,那么管理員最多可以配置 255 個獨立的路由表。

如果你的服務(wù)器上創(chuàng)建了多個網(wǎng)絡(luò)命名空間的話,那么就會存在多套路由表。以除了默認(rèn)命名網(wǎng)絡(luò)空間外,又創(chuàng)了了一個新網(wǎng)絡(luò)命名空間的情況為例,路由表在整個內(nèi)核數(shù)據(jù)結(jié)構(gòu)中的關(guān)聯(lián)關(guān)系總結(jié)如下圖所示。

2.2 路由查找

在上面的小節(jié)中我們看到,發(fā)送過程調(diào)用 ip_route_output_ports 來查找路由,接收過程調(diào)用 ip_route_input_slow 來查找。但其實這兩個函數(shù)都又最終會調(diào)用到 fib_lookup 這個核心函數(shù),源碼如下。

  1. //file: net/ipv4/route.c 
  2. struct rtable *__ip_route_output_key(struct net *net, struct flowi4 *fl4) 
  3.  ... 
  4.  // 進入 fib_lookup 
  5.  if (fib_lookup(net, fl4, &res)) { 
  6.  } 
  7.  
  8. //file: net/ipv4/route.c 
  9. static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr, 
  10.           u8 tos, struct net_device *dev) 
  11.  ... 
  12.  // 進入 fib_lookup 
  13.  err = fib_lookup(net, &fl4, &res); 

我們來看下 fib_loopup 都干了啥。為了容易理解,我們只看一下不支持多路由表版本的 fib_lookup。

  1. //file: include/net/ip_fib.h 
  2. static inline int fib_lookup(struct net *net, const struct flowi4 *flp, 
  3.         struct fib_result *res) 
  4.  struct fib_table *table
  5.  
  6.  table = fib_get_table(net, RT_TABLE_LOCAL); 
  7.  if (!fib_table_lookup(table, flp, res, FIB_LOOKUP_NOREF)) 
  8.   return 0; 
  9.  
  10.  table = fib_get_table(net, RT_TABLE_MAIN); 
  11.  if (!fib_table_lookup(table, flp, res, FIB_LOOKUP_NOREF)) 
  12.   return 0; 
  13.  return -ENETUNREACH; 

這個函數(shù)就是依次到 local 和 main 表中進行匹配,匹配到后就返回,不會繼續(xù)往下匹配。從上面可以看到 local 表的優(yōu)先級要高于 main 表,如果 local 表中找到了規(guī)則,則路由過程就結(jié)束了。

這也就是很多同學(xué)說為什么 ping 本機的時候在 eth0 上抓不到包的根本原因。所有命中 local 表的包都會被送往 loopback 設(shè)置,不會過 eth0。

三、路由的使用方法

3.1 開啟轉(zhuǎn)發(fā)路由

在默認(rèn)情況下,Linux 上的轉(zhuǎn)發(fā)功能是關(guān)閉的,這時候 Linux 發(fā)現(xiàn)收到的網(wǎng)絡(luò)包不屬于自己就會將其丟棄。

但在某些場景下,例如對于容器網(wǎng)絡(luò)來說,Linux 需要轉(zhuǎn)發(fā)本機上其它網(wǎng)絡(luò)命名空間中過來的數(shù)據(jù)包,需要手工開啟轉(zhuǎn)發(fā)。如下這兩種方法都可以。

  1. # sysctl -w net.ipv4.ip_forward=1 
  2. # sysctl net.ipv4.conf.all.forwarding=1 

開啟后,Linux 就能像路由器一樣對不屬于本機(嚴(yán)格地說是本網(wǎng)絡(luò)命名空間)的 IP 數(shù)據(jù)包進行路由轉(zhuǎn)發(fā)了。

3.2 查看路由表

在默認(rèn)情況下,Linux 只有 local 和 main 兩個路由表。如果內(nèi)核編譯時支持策略路由,那么管理員最多可以配置 255 個獨立的路由表。在 centos 上可以通過以下方式查看是否開啟了 CONFIG_IP_MULTIPLE_TABLES 多路由表支持。

  1. # cat /boot/config-3.10.0-693.el7.x86_64  
  2. CONFIG_IP_MULTIPLE_TABLES=y 
  3. ... 

所有的路由表按照從 0 - 255 進行編號,每個編號都有一個別名。編號和別名的對應(yīng)關(guān)系在 /etc/iproute2/rt_tables 這個文件里可以查到。

  1. # cat /etc/iproute2/rt_tables 
  2. 255     local 
  3. 254     main 
  4. 253     default 
  5. 0       unspec 
  6. 200     eth0_table 

查看某個路由表的配置,通過使用 ip route list table {表名} 來查看。

  1. #ip route list table local 
  2. local 10.143.x.y dev eth0 proto kernel scope host src 10.143.x.y 
  3. local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1 

如果是查看 main 路由表,也可以直接使用 route 命令

  1. # route -n 
  2. Kernel IP routing table 
  3. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
  4. 10.0.0.0        10.*.*.254      255.0.0.0       UG    0      0        0 eth0 
  5. 10.*.*.0        0.0.0.0         255.255.248.0   U     0      0        0 eth0 

上面字段中的含義如下

  • Destination:目的地址,可以是一個具體的 IP,也可以是一個網(wǎng)段,和 Genmask 一起表示。
  • Gateway:網(wǎng)關(guān)地址,如果是 0.0.0.0 表示不需要經(jīng)過網(wǎng)關(guān)。
  • Flags: U 表示有效,G 表示連接路由,H 這條規(guī)則是主機路由,而不是網(wǎng)絡(luò)路由。
  • Iface:網(wǎng)卡設(shè)備,使用哪個網(wǎng)卡將包送過去。

上述結(jié)果中輸出的第一條路由規(guī)則表示這臺機器下,確切地說這個網(wǎng)絡(luò)環(huán)境下,所有目標(biāo)為 10.0.0.0/8(Genmask 255.0.0.0 表示前 8 位為子網(wǎng)掩碼) 網(wǎng)段的網(wǎng)絡(luò)包都要通過 eth0 設(shè)備送到 10...254 這個網(wǎng)關(guān),由它再幫助轉(zhuǎn)發(fā)。

第二條路由規(guī)則表示,如果目的地址是 10...0/21(Genmask 255.255.248.0 表示前 21 位為子網(wǎng)掩碼)則直接通過 eth0 發(fā)出即可,不需要經(jīng)過網(wǎng)關(guān)就可通信。

3.3 修改路由表

默認(rèn)的 local 路由表是內(nèi)核根據(jù)當(dāng)前機器的網(wǎng)卡設(shè)備配置自動生成的,不需要手工維護。對于main 的路由表配置我們一般只需要使用 route add 命令就可以了,刪除使用 route del。

修改主機路由

  1. # route add -host 192.168.0.100 dev eth0 //直連不用網(wǎng)關(guān) 
  2. # route add -host 192.168.1.100 dev eth0 gw 192.168.0.254 //下一跳網(wǎng)關(guān) 

修改網(wǎng)絡(luò)路由

  1. # route add -net 192.168.1.0/24 dev eth0 //直連不用網(wǎng)關(guān) 
  2. # route add -net 192.168.1.0/24 dev eth0 gw 10.162.132.110 //下一跳網(wǎng)關(guān) 

也可以指定一條默認(rèn)規(guī)則,不命中其它規(guī)則的時候會執(zhí)行到這條。

  1. # route add default gw 192.168.0.1 eth0 

對于其它編號的路由表想要修改的話,就需要使用 ip route 命令了。這里不過多展開,只用 main 表舉一個例子,有更多使用需求的同學(xué)請自行搜索。

  1. # ip route add 192.168.5.0/24 via 10.*.*.110 dev eth0 table main 

3.4 路由規(guī)則測試

在配置了一系列路由規(guī)則后,為了快速校驗是否符合預(yù)期,可以通過 ip route get 命令來確認(rèn)。

  1. # ip route get 192.168.2.25 
  2. 192.168.2.25 via 10.*.*.110 dev eth0 src 10.*.*.161 
  3.     cache 

本文總結(jié)

在現(xiàn)如今各種網(wǎng)絡(luò)虛擬化技術(shù)里,到處都能看著對路由功能的靈活應(yīng)用。所以我們今天專門深入研究了一下 Linux 路由工作原理。

在 Linux 內(nèi)核中,對于發(fā)送過程和接收過程都會涉及路由選擇,其中接收過程的路由選擇是為了判斷是該本地接收還是將它轉(zhuǎn)發(fā)出去。

 

默認(rèn)有 local 和 main 兩個路由表,不過如果安裝的 linux 開啟了 CONFIG_IP_MULTIPLE_TABLES 選項的話,最多能支持 255 張路由表。

路由選擇過程其實不復(fù)雜,就是根據(jù)各個路由表的配置找到合適的網(wǎng)卡設(shè)備,以及下一跳的地址,然后把包轉(zhuǎn)發(fā)出去就算是完事。

通過合適地配置路由規(guī)則,容器中的網(wǎng)絡(luò)環(huán)境和外部的通信不再是難事。通過大量地干預(yù)路由規(guī)則就可以實現(xiàn)虛擬網(wǎng)絡(luò)互通。

 

好了,今天的分享就到這里了,期待你的點贊、再看和轉(zhuǎn)發(fā)~~

 

責(zé)任編輯:武曉燕 來源: 開發(fā)內(nèi)功修煉
相關(guān)推薦

2025-07-14 07:50:00

2010-08-05 13:11:52

2018-06-04 16:20:56

Linux動態(tài)路由Quagga

2011-09-05 14:07:07

linux系統(tǒng)QOS限速路由

2011-04-01 12:37:19

路由

2011-04-01 13:28:37

2009-12-02 12:52:00

華為路由器命令

2010-06-10 16:20:37

BGP路由協(xié)議

2013-12-16 14:41:45

2011-04-01 13:55:58

路由路由器路由表

2011-04-01 13:32:27

路由路由器

2011-04-01 13:01:57

路由表路由器

2009-11-18 09:22:43

linux路由功能

2014-06-16 16:37:36

linux路由表

2011-04-01 14:15:41

路由路由器路由接口

2019-09-10 13:58:57

動態(tài)路由路由器網(wǎng)絡(luò)

2010-08-13 09:08:11

CISCO配置

2011-08-29 14:45:15

路由器ADSL貓雙路由連接

2009-11-11 16:56:46

VRRP路由技術(shù)

2009-10-27 14:31:57

linux靜態(tài)路由
點贊
收藏

51CTO技術(shù)棧公眾號

老司机成人在线| 最新97超碰在线| 亚洲一区成人| 日韩一区av在线| 在线播放av网址| 日韩在线观看第一页| 成人久久网站| 99精品久久免费看蜜臀剧情介绍 | av免费观看一区二区| 国内精品伊人久久久久av一坑| 欧美第一黄网免费网站| 3d动漫精品啪啪一区二区下载| 日韩护士脚交太爽了| 亚洲二区在线观看| 永久免费精品视频网站| 香蕉av一区二区三区| 久久99国产精品麻豆| 午夜精品一区二区三区av| 奇米网一区二区| 国产欧美一区二区三区米奇| 欧美日本免费一区二区三区| 欧美精品久久久久久久自慰 | 久久久久久久久久久久久女国产乱 | 美洲天堂一区二卡三卡四卡视频 | 久草在线青青草| 国产真实精品久久二三区| 一区二区欧美日韩视频| 特黄特色免费视频| 麻豆久久久久| 在线日韩一区二区| 国产中文字幕视频在线观看| 菠萝蜜视频国产在线播放| 久久久久久亚洲综合| 国产激情一区二区三区在线观看 | 日韩少妇中文字幕| 蜜臀av午夜精品| 国产一区二区精品在线观看| 国产精品视频导航| 一二三区免费视频| 亚洲视频大全| 91禁外国网站| 国产亚洲色婷婷久久99精品| 亚洲视频在线免费| 中文字幕综合一区| 亚洲天堂最新地址| 精品色999| 亚洲视频在线播放| 欧美bbbbb性bbbbb视频| 久久影院资源站| 亚洲精品电影网在线观看| 日本wwwwwww| 中文字幕亚洲在线观看| 91精品国产色综合久久ai换脸| 国产视频在线视频| 日韩一级二级| 欧美网站一区二区| 日本黄xxxxxxxxx100| 日本在线天堂| 国产精品欧美综合在线| 一卡二卡3卡四卡高清精品视频| yourporn在线观看中文站| 国产欧美精品一区aⅴ影院| 日韩av一区二区三区在线观看| 日韩精品系列| 欧美国产精品中文字幕| 亚洲国产精品久久久久久女王| 国产精品九九九九| 久久se精品一区二区| 成人免费看吃奶视频网站| 国产午夜福利精品| aa亚洲婷婷| 欧美又大粗又爽又黄大片视频| www.av天天| 国内不卡的一区二区三区中文字幕 | 亚洲第一综合天堂另类专| 私密视频在线观看| 日本免费在线一区| 91精品国产入口| 制服丝袜av在线| 亚洲小说图片| 日韩精品一区二区在线观看| 制服下的诱惑暮生| 久久精品亚洲成在人线av网址| 亚洲成人免费网站| 国产精品免费无码| 精品一区二区男人吃奶| 亚洲精品视频在线播放| 天堂在线中文视频| 欧美日韩p片| 午夜精品在线视频| 中文字幕+乱码+中文字幕明步| 韩国成人福利片在线播放| 国产aⅴ精品一区二区三区黄| 五月婷婷六月丁香综合| 日本一二三四高清不卡| 大荫蒂性生交片| 亚洲1234区| 精品国一区二区三区| 免费毛片视频网站| 一区二区三区在线电影| 午夜伦理精品一区| 国产尤物视频在线观看| 日韩精品三区四区| 成人免费在线网址| 婷婷丁香一区二区三区| 中文字幕在线不卡一区二区三区| www.日本三级| 日韩欧美精品一区二区综合视频| 日韩视频不卡中文| 五月六月丁香婷婷| 日本欧美三级| 欧美另类极品videosbest最新版本 | 欧美电影免费播放| 57pao成人永久免费视频| 国产精品久久久久久久久毛片 | 欧美狂野激情性xxxx在线观| 高清电影一区| 欧美精品一区二区三区在线| 亚洲精品国产久| 精品影片在线观看的网站| 欧美成人激情视频免费观看| 国产美女www| 9i在线看片成人免费| 超碰97在线看| 久久精品黄色| 一区二区三区四区视频| 日韩精品在线观看免费| 成人性生交大合| 最新av在线免费观看| 成人全视频免费观看在线看| 亚洲国产精久久久久久久| 欧美激情一区二区视频| 蜜臀av一区二区在线免费观看| 欧美日韩一区二区视频在线观看 | 蜜桃视频在线免费| 亚洲v中文字幕| 伊人av在线播放| 亚洲xxx拳头交| 成人激情视频免费在线| 日本在线看片免费人成视1000| 色琪琪一区二区三区亚洲区| 日本一区二区三区网站| 亚洲女同在线| 欧美黑人xxxxx| 欧美国产大片| 亚洲天堂久久av| 欧美一级淫片免费视频黄| 91美女视频网站| 日本久久久精品视频| 秋霞影院一区二区三区| 45www国产精品网站| 色网站在线免费观看| 黑人巨大精品欧美一区免费视频| 男男做爰猛烈叫床爽爽小说| 99精品欧美| 欧美成人综合一区| 日韩一级二级| www.午夜精品| 国产黄色一级大片| 亚洲午夜精品一区二区三区他趣| 熟女人妻一区二区三区免费看| 激情一区二区| 久久免费99精品久久久久久| 中国色在线日|韩| 亚洲欧美日韩精品久久| 国产91av在线播放| 国产精品乱子久久久久| 天堂在线精品视频| 伊人蜜桃色噜噜激情综合| 好看的日韩精品| 日日夜夜天天综合| 久久精品99无色码中文字幕| 久久机热这里只有精品| www.视频一区| 久久国产色av免费观看| 欧美经典影片视频网站| 欧美激情欧美激情| 五月婷婷丁香花| 欧美三区在线观看| 国产亚洲欧美久久久久| 久久蜜桃av一区二区天堂| 久久久久久蜜桃一区二区| 欧美在线精品一区| 国产精品一区二区三区久久 | 国产精品一区一区| 亚洲韩国在线| 亚洲**毛片| 2018国产精品视频| 欧美性天天影视| 亚洲国产精品99久久| av手机天堂网| 一区二区三区精品在线观看| 欧美又黄又嫩大片a级| 欧美视频久久| 神马影院我不卡午夜| 亚洲精品一区| 久久久极品av| 日本成人一区二区三区| 日韩一区二区免费在线电影| 好看的av在线| 国产精品视频线看| 日韩av无码一区二区三区不卡| 日日夜夜一区二区| 日韩精品在线中文字幕| 日韩免费在线| 国产精品中文字幕在线| 波多野结依一区| 亚洲精品在线一区二区| 国产偷人爽久久久久久老妇app | 国产1区2区3区中文字幕| 国产91精品对白在线播放| 草莓视频一区| 黄色欧美视频| 日本国产一区二区三区| 羞羞污视频在线观看| 欧美一区二区三区的| 中文字幕在线观看视频免费| 亚洲成人综合视频| 日韩国产第一页| 日本一区二区三区免费乱视频 | 日本一区免费视频| 波多野结衣影院| 国产乱人伦偷精品视频免下载| caoporn超碰97| 亚洲精品美女| 日本熟妇人妻xxxx| 欧美区日韩区| 中文字幕av久久| 99视频精品全部免费在线视频| 欧美日韩精品不卡| 精品无人区一区二区| 成人免费视频视频在| 国产精品一区免费在线| 国产精品自拍视频| 亚洲国产尤物| 国产精品狠色婷| 欧美aaa大片视频一二区| 国产成人jvid在线播放| 亚洲一二三四| 欧美一级免费视频| 午夜影院在线观看国产主播| 992tv在线成人免费观看| 51av在线| 国内精品久久久久久中文字幕| 国产丝袜在线观看视频| 欧美黄色小视频| 免费网站在线观看人| 欧美激情a在线| 免费影视亚洲| 午夜精品一区二区三区在线| 亚洲精品日产| 国产精品99久久久久久白浆小说| 亚洲日本网址| 国产精品视频99| 国产高清日韩| 国产精品免费在线| aaa国产精品视频| 好吊妞www.84com只有这里才有精品| 国产亚洲成av人片在线观黄桃| 国产亚洲自拍偷拍| 成人黄色图片网站| 国产精品视频午夜| 国产精品视频一区视频二区| 3d精品h动漫啪啪一区二区| 超碰一区二区三区| 欧美精品国产精品久久久| blacked蜜桃精品一区| 性刺激综合网| 欧美在线高清| 人人妻人人添人人爽欧美一区| 久久精品毛片| 最新天堂中文在线| 国产福利一区二区| 国产网站无遮挡| 国产精品情趣视频| 九九免费精品视频| 色94色欧美sute亚洲线路一久 | 欧美精品一区二区久久婷婷| 深夜福利在线观看直播| 337p亚洲精品色噜噜狠狠| 国产高清不卡视频| 亚洲女人被黑人巨大进入| 成人高清在线| 欧美日韩国产成人在线观看| 日本不卡网站| 成人有码在线视频| 精品国产一区二区三区成人影院| 欧洲亚洲一区二区| 欧美成人久久| 欧美在线观看视频网站| 国产一本一道久久香蕉| 极品人妻一区二区三区| 亚洲欧美色图小说| 国产一级一级国产| 日韩一区二区在线观看| 国产人成在线视频| 欧美激情第99页| 欧美黄色a视频| 久久精品国产精品国产精品污 | 亚洲毛片欧洲毛片国产一品色| 日韩精品免费电影| 国产高清免费在线观看| 亚洲香蕉av在线一区二区三区| a篇片在线观看网站| 欧亚精品中文字幕| 成人福利一区| 制服诱惑一区| 日韩主播视频在线| av2014天堂网| 亚洲免费在线观看| 探花国产精品一区二区| 亚洲福利视频二区| bt在线麻豆视频| 国产精品久久久久久亚洲调教| 久久午夜影院| 老子影院午夜伦不卡大全| 精品制服美女丁香| 亚洲天堂岛国片| 欧美特级www| 成人爽a毛片一区二区| 俺去啦;欧美日韩| 91欧美精品| 欧美少妇一区| 亚洲少妇一区| 在线观看亚洲免费视频| 亚洲精品中文在线观看| 在线观看毛片网站| 中文国产成人精品| 日本在线精品| 日本一区二区免费看| 久久久久国产精品午夜一区| 精品熟女一区二区三区| 亚洲一区二区三区视频在线播放| 国产又粗又黄视频| www.精品av.com| 精品176极品一区| 少妇免费毛片久久久久久久久 | 五月婷婷激情综合| 性欧美videos另类hd| 欧美老肥婆性猛交视频| 另类视频一区二区三区| 在线视频精品一区| 国产原创一区二区| 国产又粗又硬又长又爽| 欧美肥妇毛茸茸| 国产一二区在线| 91在线观看免费| 欧美+日本+国产+在线a∨观看| 亚洲自拍第三页| 一区二区三区视频在线观看| 亚洲狼人综合网| 97高清免费视频| 亚洲综合小说图片| www黄色在线| 国产精品萝li| 亚洲精品97久久中文字幕| 欧美国产日韩中文字幕在线| 精品按摩偷拍| 国产综合免费视频| 欧美激情在线一区二区| 91九色蝌蚪91por成人| 欧美成人合集magnet| 国产乱人伦精品一区| 国产女女做受ⅹxx高潮| 国产亚洲欧洲一区高清在线观看| 国产精品51麻豆cm传媒| 久久久999成人| 精品国产乱子伦一区二区| 日韩手机在线观看视频| 国产精品久久久久久久裸模| 国产精品无码久久久久成人app| 欧美富婆性猛交| 亚洲人成网亚洲欧洲无码| mm131亚洲精品| 亚洲一区二区三区精品在线| 激情在线视频| 成人网页在线免费观看| 亚洲一级特黄| 538精品视频| 欧美精品一区二| 国产精品久久久久久久久久齐齐| 大桥未久一区二区三区| 波多野结衣在线一区| 亚洲自拍第二页| 韩国视频理论视频久久| 国产真实有声精品录音| 亚洲高清av一区二区三区| 日韩欧美亚洲成人| www.久久久久.com| 免费久久久一本精品久久区| 国内一区二区在线| 国产无套丰满白嫩对白| 欧美xxxx做受欧美.88| 精品一区欧美| 波多野结衣办公室双飞| 欧美三级一区二区| av在线私库| 中国一级黄色录像| 国产偷国产偷精品高清尤物| 欧美一级特黄aaaaaa|