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

用戶態(tài) tcpdump 如何實現(xiàn)抓到內(nèi)核網(wǎng)絡包的?

系統(tǒng) Linux
按照小編的風格,不搞到最底層的原理咱是不會罷休的。所以我對相關(guān)的源碼進行了深入分析。通過本文,你將徹底搞清楚了以下這幾個問題。

 今天聊聊大家工作中經(jīng)常用到的 tcpdump。

在網(wǎng)絡包的發(fā)送和接收過程中,絕大部分的工作都是在內(nèi)核態(tài)完成的。那么問題來了,我們常用的運行在用戶態(tài)的程序 tcpdump 是那如何實現(xiàn)抓到內(nèi)核態(tài)的包的呢?有的同學知道 tcpdump 是基于 libpcap 的,那么 libpcap 的工作原理又是啥樣的呢。如果讓你裸寫一個抓包程序,你有沒有思路?

按照小編的風格,不搞到最底層的原理咱是不會罷休的。所以我對相關(guān)的源碼進行了深入分析。通過本文,你將徹底搞清楚了以下這幾個問題。

  •  tcpdump 是如何工作的?
  •  netfilter 過濾的包 tcpdump 是否可以抓的到?
  •  讓你自己寫一個抓包程序的話該如何下手?

借助這幾個問題,我們來展開今天的探索之旅!

一、網(wǎng)絡包接收過程

在之前的文中我們詳細介紹了網(wǎng)絡包是如何從網(wǎng)卡到達用戶進程中的。這個過程我們可以簡單用如下這個圖來表示。

找到 tcpdump 抓包點

我們在網(wǎng)絡設(shè)備層的代碼里找到了 tcpdump 的抓包入口。在 __netif_receive_skb_core 這個函數(shù)里會遍歷 ptype_all 上的協(xié)議。還記得上文中我們提到 tcpdump 在 ptype_all 上注冊了虛擬協(xié)議。這時就能執(zhí)行的到了。來看函數(shù): 

  1. //file: net/core/dev.c  
  2. static int __netif_receive_skb_core(struct sk_buff *skb, bool pfmemalloc)  
  3.  
  4.     ......  
  5.     //遍歷 ptype_all (tcpdump 在這里掛了虛擬協(xié)議)  
  6.     list_for_each_entry_rcu(ptype, &ptype_all, list) {  
  7.         if (!ptype->dev || ptype->dev == skb->dev) {  
  8.             if (pt_prev) 
  9.                 ret = deliver_skb(skb, pt_prev, orig_dev);  
  10.             pt_prev = ptype 
  11.         }  
  12.     }  

在上面函數(shù)中遍歷 ptype_all,并使用 deliver_skb 來調(diào)用協(xié)議中的回調(diào)函數(shù)。 

  1. //file: net/core/dev.c   
  2. static inline int deliver_skb(...)  
  3.  
  4.  return pt_prev->func(skb, skb->dev, pt_prev, orig_dev);  

對于 tcpdump 來說,就會進入 packet_rcv 了(后面我們再說為啥是進入這個函數(shù))。這個函數(shù)在 net/packet/af_packet.c 文件中。 

  1. //file: net/packet/af_packet.c  
  2. static int packet_rcv(struct sk_buff *skb, ...)  
  3.  
  4.  __skb_queue_tail(&sk->sk_receive_queue, skb);  
  5.  ...... 

可見 packet_rcv 把收到的 skb 放到了當前 packet socket 的接收隊列里了。這樣后面調(diào)用 recvfrom 的時候就可以獲取到所抓到的包??!

再找 netfilter 過濾點

為了解釋我們開篇中提到的問題,這里我們再稍微到協(xié)議層中多看一些。在 ip_rcv 中我們找到了一個 netfilter 相關(guān)的執(zhí)行邏輯。 

  1. //file: net/ipv4/ip_input.c  
  2. int ip_rcv(...)  
  3.  
  4.  ......  
  5.  return NF_HOOK(NFPROTO_IPV4, NF_INET_PRE_ROUTING, skb, dev, NULL,  
  6.          ip_rcv_finish); 

如果你用 NF_HOOK 作為關(guān)鍵詞來搜索,還能搜到不少 netfilter 的過濾點。不過所有的過濾點都是位于 IP 協(xié)議層的。

在接收包的過程中,數(shù)據(jù)包是先經(jīng)過網(wǎng)絡設(shè)備層然后才到協(xié)議層的。

那么我們開篇中的一個問題就有了答案了。假如我們設(shè)置了 netfilter 規(guī)則,在接收包的過程中,工作在網(wǎng)絡設(shè)備層的 tcpdump 先開始工作。還沒等 netfilter 過濾,tcpdump 就抓到包了!

所以,在接收包的過程中,netfilter 過濾并不會影響 tcpdump 的抓包!

二、網(wǎng)絡包發(fā)送過程

我們接著再來看網(wǎng)絡包發(fā)送過程。發(fā)送過程可以匯總成簡單的一張圖。

找到 netfilter 過濾點

在發(fā)送的過程中,同樣是在 IP 層進入各種 netfilter 規(guī)則的過濾。 

  1. //file: net/ipv4/ip_output.c    
  2. int ip_local_out(struct sk_buff *skb)  
  3.  
  4.  //執(zhí)行 netfilter 過濾  
  5.  err = __ip_local_out(skb);  
  6.  
  7. int __ip_local_out(struct sk_buff *skb)  
  8.  
  9.  ......  
  10.  return nf_hook(NFPROTO_IPV4, NF_INET_LOCAL_OUT, skb, NULL,  
  11.          skb_dst(skb)->dev, dst_output);  

在這個文件中,還能看到若干處 netfilter 過濾邏輯。

找到 tcpdump 抓包點

發(fā)送過程在協(xié)議層處理完畢到達網(wǎng)絡設(shè)備層的時候,也有 tcpdump 的抓包點。 

  1. //file: net/core/dev.c  
  2. int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev,  
  3.    struct netdev_queue *txq)  
  4.  
  5.  ...  
  6.  if (!list_empty(&ptype_all))  
  7.   dev_queue_xmit_nit(skb, dev);  
  8.  
  9. static void dev_queue_xmit_nit(struct sk_buff *skb, struct net_device *dev)  
  10.   list_for_each_entry_rcu(ptype, &ptype_all, list) {  
  11.   if ((ptype->dev == dev || !ptype->dev) &&  
  12.       (!skb_loop_sk(ptype, skb))) {  
  13.    if (pt_prev) {  
  14.     deliver_skb(skb2, pt_prev, skb->dev);  
  15.     pt_prev = ptype 
  16.     continue;  
  17.    }  
  18.   ......  
  19.   }  
  20.  }   

在上述代碼中我們看到,在 dev_queue_xmit_nit 中遍歷 ptype_all 中的協(xié)議,并依次調(diào)用 deliver_skb。這就會執(zhí)行到 tcpdump 掛在上面的虛擬協(xié)議。

在網(wǎng)絡包的發(fā)送過程中,和接收過程恰好相反,是協(xié)議層先處理、網(wǎng)絡設(shè)備層后處理。

如果 netfilter 設(shè)置了過濾規(guī)則,那么在協(xié)議層就直接過濾掉了。在下層網(wǎng)絡設(shè)備層工作的 tcpdump 將無法再捕獲到該網(wǎng)絡包。

三、TCPDUMP 啟動

前面兩小節(jié)我們說到了內(nèi)核收發(fā)包都通過遍歷 ptype_all 來執(zhí)行抓包的。那么我們現(xiàn)在來看看用戶態(tài)的 tcpdump 是如何掛載協(xié)議到內(nèi) ptype_all 上的。

我們通過 strace 命令我們抓一下 tcpdump 命令的系統(tǒng)調(diào)用,顯示結(jié)果中有一行 socket 系統(tǒng)調(diào)用。Tcpdump 秘密的源頭就藏在這行對 socket 函數(shù)的調(diào)用里。 

  1. # strace tcpdump -i eth0  
  2. socket(AF_PACKET, SOCK_RAW, 768)  
  3. ...... 

socket 系統(tǒng)調(diào)用的第一個參數(shù)表示創(chuàng)建的 socket 所屬的地址簇或者協(xié)議簇,取值以 AF 或者 PF 開頭。在 Linux 里,支持很多種協(xié)議族,在 include/linux/socket.h 中可以找到所有的定義。這里創(chuàng)建的是 packet 類型的 socket。

協(xié)議族和地址族:每一種協(xié)議族都有其對應的地址族。比如 IPV4 的協(xié)議族定義叫 PF_INET,其地址族的定義是 AF_INET。它們是一一對應的,而且值也完全一樣,所以經(jīng)?;煊?。 

  1. //file: include/linux/socket.h  
  2. #define AF_UNSPEC 0  
  3. #define AF_UNIX  1 /* Unix domain sockets   */  
  4. #define AF_LOCAL 1 /* POSIX name for AF_UNIX */  
  5. #define AF_INET  2 /* Internet IP Protocol  */  
  6. #define AF_INET6 10 /* IP version 6   */  
  7. #define AF_PACKET 17 /* Packet family  */  
  8. ...... 

另外上面第三個參數(shù) 768 代表的是 ETH_P_ALL,socket.htons(ETH_P_ALL) = 768。

我們來展開看這個 packet 類型的 socket 創(chuàng)建的過程中都干了啥,找到 socket 創(chuàng)建源碼。 

  1. //file: net/socket.c  
  2. SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)   
  3.  
  4.  ......  
  5.  retval = sock_create(family, type, protocol, &sock);   
  6.  
  7. int __sock_create(struct net *net, int family, int type, ...)  
  8.  
  9.  ......  
  10.  pf = rcu_dereference(net_families[family]);  
  11.  err = pf->create(net, sock, protocol, kern);  

在 __sock_create 中,從 net_families 中獲取了指定協(xié)議。并調(diào)用了它的 create 方法來完成創(chuàng)建。

net_families 是一個數(shù)組,除了我們常用的 PF_INET( ipv4 ) 外,還支持很多種協(xié)議族。比如 PF_UNIX、PF_INET6(ipv6)、PF_PACKET等等。每一種協(xié)議族在 net_families 數(shù)組的特定位置都可以找到其 family 類型。在這個 family 類型里,成員函數(shù) create 指向該協(xié)議族的對應創(chuàng)建函數(shù)。

根據(jù)上圖,我們看到對于 packet 類型的 socket,pf->create 實際調(diào)用到的是 packet_create 函數(shù)。我們進入到這個函數(shù)中來一探究竟,這是理解 tcpdump 工作原理的關(guān)鍵! 

  1. //file: packet/af_packet.c  
  2. static int packet_create(struct net *net, struct socket *sock, int protocol,  
  3.     int kern)  
  4.  
  5.  ...  
  6.  po = pkt_sk(sk);  
  7.  po->prot_hook.func = packet_rcv 
  8.  //注冊鉤子  
  9.  if (proto) {  
  10.   po->prot_hook.type = proto 
  11.   register_prot_hook(sk);  
  12.  }  
  13.  
  14. static void register_prot_hook(struct sock *sk) 
  15.  
  16.  struct packet_sock *po = pkt_sk(sk);  
  17.  dev_add_pack(&po->prot_hook);  

在 packet_create 中設(shè)置回調(diào)函數(shù)為 packet_rcv,再通過 register_prot_hook => dev_add_pack 完成注冊。注冊完后,是在全局協(xié)議 ptype_all 鏈表中添加了一個虛擬的協(xié)議進來。

我們再來看下 dev_add_pack 是如何注冊協(xié)議到 ptype_all 中的?;仡櫸覀冮_頭看到的 socket 函數(shù)調(diào)用,第三個參數(shù) proto 傳入的是 ETH_P_ALL。那 dev_add_pack 其實最后是把 hook 函數(shù)添加到了 ptype_all 里了,代碼如下。 

  1. //file: net/core/dev.c  
  2. void dev_add_pack(struct packet_type *pt)  
  3.  struct list_head *head = ptype_head(pt);  
  4.  list_add_rcu(&pt->list, head);  
  5.  
  6. static inline struct list_head *ptype_head(const struct packet_type *pt)  
  7.  
  8.  if (pt->type == htons(ETH_P_ALL))  
  9.   return &ptype_all;  
  10.  else  
  11.   return &ptype_base[ntohs(pt->type) & PTYPE_HASH_MASK];  

我們整篇文章都以 ETH_P_ALL 為例,但其實有的時候也會有其它情況。在別的情況下可能會注冊協(xié)議到 ptype_base 里了,而不是 ptype_all。同樣, ptype_base 中的協(xié)議也會在發(fā)送和接收的過程中被執(zhí)行到。

總結(jié):tcpdump 啟動的時候內(nèi)部邏輯其實很簡單,就是在 ptype_all 中注冊了一個虛擬協(xié)議而已。

四、總結(jié)

現(xiàn)在我們再回頭看開篇提到的幾個問題。

1. tcpdump是如何工作的

用戶態(tài) tcpdump 命令是通過 socket 系統(tǒng)調(diào)用,在內(nèi)核源碼中用到的 ptype_all 中掛載了函數(shù)鉤子上去。無論是在網(wǎng)絡包接收過程中,還是在發(fā)送過程中,都會在網(wǎng)絡設(shè)備層遍歷 ptype_all 中的協(xié)議,并執(zhí)行其中的回調(diào)。tcpdump 命令就是基于這個底層原理來工作的。

2. netfilter 過濾的包 tcpdump是否可以抓的到

關(guān)于這個問題,得分接收和發(fā)送過程分別來看。在網(wǎng)絡包接收的過程中,由于 tcpdump 近水樓臺先得月,所以完全可以捕獲到命中 netfilter 過濾規(guī)則的包。

但是在發(fā)送的過程中,恰恰相反。網(wǎng)絡包先經(jīng)過協(xié)議層,這時候被 netfilter 過濾掉的話,底層工作的 tcpdump 還沒等看見就啥也沒了。

3. 讓你自己寫一個抓包程序的話該如何下手

如果你想自己寫一段類似 tcpdump 的抓包程序的話,使用 packet socket 就可以了。我用 c 寫了一段抓包,并且解析源 IP 和目的 IP 的簡單 demo。

源碼地址:https://github.com/yanfeizhang/coder-kung-fu/blob/main/tests/network/test04/main.c

編譯一下,注意運行需要 root 權(quán)限。 

  1. # gcc -o main main.c  
  2. # ./main  

運行結(jié)果預覽如下。

 

 

責任編輯:龐桂玉 來源: 良許Linux
相關(guān)推薦

2021-09-08 10:21:33

內(nèi)核網(wǎng)絡包Tcpdump

2023-03-01 23:56:11

2023-03-10 14:56:37

Linuxconnect系統(tǒng)

2023-03-01 23:53:30

Linuxshutdown進程

2021-12-20 09:53:51

用戶態(tài)內(nèi)核態(tài)應用程序

2023-10-26 11:39:54

Linux系統(tǒng)CPU

2025-03-07 08:30:00

pwruLinux網(wǎng)絡包追蹤

2025-10-13 02:11:00

2025-09-26 02:22:00

2023-03-28 15:51:20

2023-03-06 15:43:56

2022-03-25 12:31:49

Linux根文件內(nèi)核

2024-08-22 14:47:50

開源Linux網(wǎng)絡抓包工具

2009-07-16 09:02:38

LINUX 2.4.x網(wǎng)絡安全LINUX開發(fā)

2021-08-31 07:54:24

TCPIP協(xié)議

2023-01-06 08:04:10

GPU容器虛擬化

2021-08-10 16:50:37

內(nèi)核內(nèi)存管理

2025-10-31 01:22:00

2017-08-16 16:20:01

Linux內(nèi)核態(tài)搶占用戶態(tài)搶占

2023-05-12 07:27:24

Linux內(nèi)核網(wǎng)絡設(shè)備驅(qū)動
點贊
收藏

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

日本丰满大乳奶| 成人h视频在线观看播放| 国产精品边吃奶边做爽| 免费成人动漫| 一区免费观看视频| 国产日韩亚洲精品| 国产一级精品毛片| 欧美视频官网| 国产一区二区三区18| 永久免费黄色片| 丝袜美腿诱惑一区二区三区| 亚洲精品免费在线观看| av电影成人| 中文字幕无码乱码人妻日韩精品| 欧美日韩免费观看一区=区三区| 日韩精品在线看| 高清av免费看| 国产精品探花在线| 日本一区二区免费在线| 国产精品一区二区免费看| 少妇无套内谢久久久久| 亚洲伦理精品| 欧美成人剧情片在线观看| 久久久久久九九九九九| 国产精品极品| 91麻豆精品国产自产在线观看一区 | 日韩在线成人| 欧美综合天天夜夜久久| 国产极品在线视频| av免费在线免费观看| 亚洲国产成人在线| 久久综合中文色婷婷| 亚洲AV无码国产精品午夜字幕 | 日本视频在线观看一区二区三区| 国产一区欧美一区| 国产裸体写真av一区二区| 99热在线观看免费精品| 欧美私人啪啪vps| 久久资源免费视频| 日本 欧美 国产| heyzo久久| 亚洲日本欧美中文幕| 久久久久国产精品区片区无码| 亚洲三区欧美一区国产二区| 欧美男人的天堂一二区| 最新天堂在线视频| 成人在线视频免费| 欧美日韩一区不卡| 超碰超碰在线观看| 91麻豆精品| 制服丝袜日韩国产| 精品国产午夜福利在线观看| 国模大尺度视频一区二区| 在线91免费看| 在线观看免费看片| 视频在线亚洲| 亚洲а∨天堂久久精品9966| 第一页在线视频| 伊人久久大香线蕉综合影院首页| 制服丝袜亚洲网站| 中文字幕乱妇无码av在线| 视频亚洲一区二区| 亚洲精品一线二线三线| 99久久人妻无码中文字幕系列| 欧美美女黄色| 国产一级揄自揄精品视频| 黄免费在线观看| 久久福利影院| 欧美日本中文字幕| 中文字幕在线观看免费视频| 久久不射2019中文字幕| 国产精品99久久久久久人| 中文字幕 亚洲视频| 狠狠色丁香婷综合久久| 999在线观看免费大全电视剧| 亚洲精品人妻无码| 91在线丨porny丨国产| 日韩中文字幕av在线| 九七电影韩国女主播在线观看| 亚洲激情综合网| 女性女同性aⅴ免费观女性恋| 亚洲深夜视频| 欧美日韩国产成人在线免费| 亚洲v在线观看| 亚洲 激情 在线| 亚洲女同志亚洲女同女播放| 成人丝袜视频网| 欧美激情国产日韩| 黄网站在线播放| 午夜国产不卡在线观看视频| 久久午夜夜伦鲁鲁一区二区| 久久久久久爱| 日韩的一区二区| 亚洲黄色网址大全| 激情综合网址| 国产精品久久久久影院日本 | 欧美一区二区三区影视| 久久性爱视频网站| 色一区二区三区四区| 欧美日韩999| 国产女主播喷水视频在线观看 | 欧美69xxx| 精品福利在线观看| 99sesese| 色哟哟精品丝袜一区二区| 色妞一区二区三区| 日韩三级视频在线播放| 精品一区二区成人精品| 国产精选在线观看91| av在线首页| 亚洲五码中文字幕| 午夜天堂在线视频| 精品av一区二区| 午夜精品久久久久久久久久久久| 91国产免费视频| 国产亚洲一区二区三区四区| 久久久久久久9| 日韩国产91| 亚洲天堂av在线免费| 免费人成视频在线| 无码人妻一区二区三区线| 99久久国产综合精品成人影院| 久久久久久亚洲精品不卡| 一区二区三区黄| 久久久久久黄色| 97视频久久久| 亚洲91网站| 久久精品久久久久久国产 免费| 中文字幕在线看人| 91麻豆国产在线观看| 野外做受又硬又粗又大视频√| 成人噜噜噜噜| 最近2019年好看中文字幕视频| 中文在线第一页| av中文字幕不卡| av在线播放亚洲| 伊人久久大香线蕉av超碰| 久久精品国产一区二区三区| 国产情侣小视频| 久久久国产精品午夜一区ai换脸| 国产免费裸体视频| 欧美视频精品全部免费观看| 日韩在线免费高清视频| 夜夜躁很很躁日日躁麻豆| 国产亚洲精品资源在线26u| 六月丁香婷婷在线| 五月天亚洲色图| 69**夜色精品国产69乱| 蜜臀av在线观看| 亚洲国产精品久久艾草纯爱| 潘金莲一级淫片aaaaaaa| 欧美福利视频| 99在线视频首页| 丁香花在线影院| 亚洲成人av在线| 午夜精品久久久久久久久久久久久蜜桃 | 国产日韩欧美综合在线| 亚洲乱码国产一区三区| sdde在线播放一区二区| 国产精品亚洲一区二区三区| 在线观看免费黄色| 欧美精品日韩一区| 欧美黑人性猛交xxx| 国产传媒日韩欧美成人| 久久久午夜视频| 动漫av网站免费观看| 国产一区 二区| 欧美日韩成人在线视频| 女人18毛片一区二区三区| 午夜精品久久久久久久99水蜜桃 | 国产精品蜜臀在线观看| 狠狠干狠狠操视频| 欧美另类专区| 蜜桃成人免费视频| 成人在线视频免费| 欧美激情一二三| 色资源在线观看| 欧美午夜精品久久久久久孕妇| 国产黄a三级三级| 国产成人精品亚洲日本在线桃色| cao在线观看| 国产综合久久久| 91色精品视频在线| 国产中文在线播放| 色噜噜狠狠色综合网图区| www.好吊色| 91福利在线导航| 欧美成欧美va| 91麻豆精品在线观看| 中文字幕一区久久| 亚洲韩日在线| 亚洲精品第一区二区三区| 亚洲综合网狠久久| 国产精品99久久久久久白浆小说 | 亚洲精品中文在线| 插吧插吧综合网| 国产一区二区在线免费观看| 国产日产欧美视频| 亚洲一区二区三区无吗| 久久精品国产精品国产精品污| 日韩黄色三级在线观看| 91国内揄拍国内精品对白| 欧美精品电影| 亚洲女成人图区| 亚洲天堂中文字幕在线| 午夜精品aaa| 182在线观看视频| 久久在线观看免费| 国产又粗又猛又爽又黄| 日韩电影在线免费| av在线播放天堂| 天天射天天综合网| 亚洲欧美高清| 日韩av电影免费观看| 7777精品| 91精品啪在线观看麻豆免费| 丝袜美腿诱惑一区二区三区| 久久青草精品视频免费观看| 成码无人av片在线观看网站| 亚洲精品自产拍| 可以免费观看的毛片| 91精品国产一区二区三区蜜臀| 日韩电影在线观看一区二区| 亚洲宅男天堂在线观看无病毒| 国产成人免费在线观看视频| 久久夜色精品国产噜噜av| 久久av一区二区三| 国产专区欧美精品| 国产精品一区二区小说| 国产精品老牛| 青青青国产在线观看| 欧美精品一级| 青青草影院在线观看| 日韩久久精品| 日韩久久精品一区二区三区| 亚洲永久精品唐人导航网址| 国产青春久久久国产毛片| 日韩欧美中文在线观看| 亚洲va久久久噜噜噜久久天堂| av成人在线看| 国产精品久久久久免费a∨大胸| 国产精品久久久久av电视剧| 人妖精品videosex性欧美| 国产精品迅雷| 国产成人亚洲综合91| 芒果视频成人app| 青青青国产精品一区二区| a天堂资源在线| 欧美一区二区三区……| sese综合| 国产精品第二页| 国产伊人久久| 成人xxxx视频| 亚洲一区二区电影| 国产成人精品福利一区二区三区 | 久热re这里精品视频在线6| 免费在线激情视频| 久久久久久黄| 天天干天天干天天干天天干天天干| 日本人妖一区二区| 中文字幕22页| 国产精品夜夜嗨| 欧美双性人妖o0| 91看片淫黄大片一级在线观看| 日韩中文字幕电影| 777电影在线观看| 精品久久久久99| 无码国产色欲xxxx视频| 亚洲精品视频网上网址在线观看| 国产在线小视频| 日韩在线欧美在线| 色呦呦在线观看视频| 久久人人97超碰精品888| 超碰超碰人人人人精品| 国产精品久久久久久av福利| 成人日韩视频| 精品日韩电影| 日韩欧美大片| 精品少妇人欧美激情在线观看| 国产欧美亚洲一区| 中文字幕一区二区三区四区在线视频| 久久97超碰国产精品超碰| 李丽珍裸体午夜理伦片| 久久久久久久综合日本| 久久久久久久久久97| 午夜精品一区二区三区三上悠亚| 欧美人一级淫片a免费播放| 91麻豆精品国产91久久久久久| 可以免费看毛片的网站| 一区二区三区黄色| 激情网站在线| 国产精品女主播| japanese色系久久精品| 日韩福利影院| 亚洲国产专区校园欧美| 国产色视频在线播放| 成人黄色网址在线观看| 蜜桃av.com| 色哟哟一区二区三区| 亚洲成人777777| 日韩中文第一页| 亚洲插插视频| 91成人免费看| 欧美在线电影| 国产毛片视频网站| 国产精品自拍av| 1024在线看片| 欧美色xxxx| 人妻一区二区三区| 久久视频在线播放| 播放一区二区| 久久超碰亚洲| 红桃视频国产一区| 91精产国品一二三产区别沈先生| 国产亚洲视频系列| 日韩欧美一区二区一幕| 日韩欧美国产三级| 欧美激情免费| 国产精品视频久久久久| 亚洲第一福利社区| 青青草成人免费在线视频| 经典三级在线一区| 日韩精品电影一区二区三区| 午夜精品福利一区二区三区av | 中文字幕成人在线| 污视频网站免费在线观看| 国产精品视频免费在线| 亚洲激情77| a√天堂在线观看| 东方aⅴ免费观看久久av| 波多野结衣家庭教师| 欧美精品第1页| 在线免费观看黄| 国产精品流白浆视频| 教室别恋欧美无删减版| 97视频久久久| 不卡av在线免费观看| 久久久精品视频在线| 欧美一区二区性放荡片| 色开心亚洲综合| 国产精品中文在线| 大片网站久久| 欧美第一页浮力影院| 国产欧美日韩综合| 国产精品无码一区| 日韩小视频在线| 日韩护士脚交太爽了| 正在播放亚洲| 国产在线播放一区| 欧美三级日本三级| 日韩欧美的一区二区| 欧美人与牲禽动交com| 国产欧美日韩一区| 亚洲视频大全| 亚洲一区视频在线播放| 欧美午夜精品久久久久久超碰| 99riav在线| 91九色单男在线观看| 综合天天久久| 秘密基地免费观看完整版中文| 亚洲成人午夜电影| 四虎影视在线播放| 国产精品视频精品| 99久久www免费| 337p日本欧洲亚洲大胆张筱雨 | 国产亚洲欧洲一区高清在线观看| 欧美一区免费看| www日韩欧美| 亚洲专区**| 国产美女三级视频| 亚洲欧洲日韩综合一区二区| 国产a级免费视频| 91高清在线免费观看| 欧美手机视频| 国产成人av免费观看| 欧美日韩国产丝袜另类| 福利片在线观看| 亚洲综合社区网| 久久国产精品毛片| 999精品视频在线观看播放| 日韩久久精品一区| 国产精品粉嫩| 8x8x华人在线| 久久久亚洲精品石原莉奈| 国产乱码久久久| 亚州精品天堂中文字幕| 欧美日韩激情| 亚洲婷婷在线观看| 欧美在线观看视频一区二区| 疯狂揉花蒂控制高潮h| 韩日欧美一区二区三区| 中文字幕在线观看免费视频| 中文字幕亚洲综合久久筱田步美| 涩涩屋成人免费视频软件| 88av.com| 亚洲国产视频在线| av中文字幕一区二区三区| 国产尤物99| 国模少妇一区二区三区| 无码人妻丰满熟妇精品|