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

抽絲剝繭:從 Linux 源碼探索 eBPF 的實現

系統 Linux
BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB 是 socket.accept() 接受連接請求并完成連接建立的操作符,也是眾多 `sock_ops` 操作符[40] 中的一個。這些操作符,可以被看作是 事件 Event[41],程序的觸發則是由事件驅動的。

去年學習 eBPF,分享過 幾篇 eBPF 方面的學習筆記[1],都是面向 eBPF 的應用。為了準備下一篇文章,這次決定從 Linux 源碼入手,深入了解 eBPF 的工作原理。因此這篇又是一篇學習筆記,假如你對 eBPF 的工作原理也感興趣,不如跟隨我的腳步一起。文章中若有任何問題,請不吝賜教。

這里不會再對 eBPF 進行過多的介紹,可以參考我的另一篇 使用 eBPF 技術實現更快的網絡數據包傳輸[2],結合 追蹤 Kubernetes 中的數據包[3] 可以了解 eBPF 的基本內容以及其在網絡加速方面的應用。

接下來我們還是使用 eBPF sockops[4] 中的程序 bpf_sockops[5] 為例, 配合 Linux v6.8[6] 源碼探索 eBPF 的工作原理。

注:由于公眾號排版問題閱讀可能不友好,可以點擊閱讀原文跳轉到博客閱讀。

圖片圖片

BPF 程序操作

在 load.sh[7] 腳本中,完成了程序的加載和掛載操作,下面的命令使用 bpftool[8] 分別完成 BPF 程序的加載和掛載。

#load
sudo bpftool prog load bpf_sockops.o "/sys/fs/bpf/bpf_sockop"
#attach
sudo bpftool cgroup attach "/sys/fs/cgroup/unified/" sock_ops pinned "/sys/fs/bpf/bpf_sockop"

這里 bpftool 是對內核函數 bpf() 封裝的命令行工具,用于管理和操作 BPF 程序與 Map。

加載

sudo bpftool prog load bpf_sockops.o "/sys/fs/bpf/bpf_sockop"

命令 bpftool prog load 將 bpf_sockops.o 加載到路徑 /sys/fs/bpf/bpf_sockop 中。

bpftool 對 BPF 程序的加載是由調用 `bpf()`[9] 指定命令 BPF_PROG_LOAD 并傳入 加載選項`bpf_prog_load_opts`[10] 來完成的:

syscall(__NR_bpf, BPF_PROG_LOAD, &attr, sizeof(attr))
  • syscall bpf()[11] bpf 系統函數
  • bpf_prog_load[13] 為程序分配內存、初始化、檢查證書、運行 verifier、創建文件描述符(fd)等
  • \_\_sys_bpf[12] 執行 bpf 命令 BPF_PROG_LOAD

加載成功后的程序,然后就可以進行掛載了。

掛載

sudo bpftool cgroup attach "/sys/fs/cgroup/unified/" sock_ops pinned "/sys/fs/bpf/bpf_sockop"

命令 bpftool cgroup attach 將加載(pin 到文件系統中)的程序 /sys/fs/bpf/bpf_sockop 掛載到 cgroup /sys/fs/cgroup/unified/,掛載的類型為 sock_ops。這個 sock_ops 是 bpftool 所使用的庫 libbpf 定義,也被是 ELF 部件名,對應著 BPF 程序類型[14] BPF_PROG_TYPE_SOCK_OPS,掛載類型[15] 為 BPF_CGROUP_SOCK_OPS。

在 eBPF 編程中,ELF(Executable and Linkable Format)文件用于存儲編譯后的 eBPF 程序和相關數據。ELF 文件由多個部分(sections)組成,每個部分包含不同類型的信息,比如程序代碼、符號表、調試信息等。

libbpf 類型 sock_ops => BPF 程序類型 BPF_PROG_TYPE_SOCK_OPS => 掛載類型 BPF_CGROUP_SOCK_OPS,對應到程序 bpf_sockops.c 中部件名(__section)為 sockops 的代碼塊。

關于 sock_ops 掛載點:

sock_ops 通常指的是在 Linux 內核中處理套接字操作的一系列函數和操作。

sock_ops 具體可以包括一系列的操作,如創建套接字、綁定套接字到特定地址和端口、監聽來自其他套接字的連接請求、接受連接請求、發送和接收數據、以及關閉套接字等。這些操作通常通過一組預定義的 API 來提供,例如 POSIX 套接字 API,它定義了一系列函數,如 socket()、bind()、listen()、accept()、send()、recv() 和 close() 等,供應用程序調用。

這次 bpftool 是通過 bpf() 執行執行 BPF_PROG_ATTACH 并傳入 掛載選項 `bpf_prog_attach_opts`[16] 來完成的。

syscall(__NR_bpf, BPF_PROG_ATTACH, &attr, sizeof(attr))
  • syscall bpf()[17] bpf 系統函數

cgroup_bpf_prog_attach[19]

\_\_cgroup_bpf_attach[21]

bpf_prog_put[22] 檢查 cgroup 上是否存在相同掛載類型的程序,如果存在,則進行替換。

static_branch_inc[23] 如果不存在,則將 cgroup_bpf_enabled_key 計數器中,該掛載類型的計數 +1。

cgroup_bpf_prog_attach[20]

bpf_prog_attach[18]

cgroup_bpf_enabled_key 特定類型 cgroup BPF 程序的計數器。

!!! 在運行時,會用到該計數器。

到此,我們已經成功將程序掛載到 cgroup 的 sock_ops 上。

套接字操作 sock_ops

套接字的操作很多,這里以連接建立過程中服務端 accept 操作為例。

圖片圖片

依然是從系統調用 accept 開始。

  • accept[24]

do_accept[26] 此處 ops->accept() 中的 ops 對應著 proto_ops inet_stream_ops[27] 有狀態的 socket(如 TCP) 的相關操作

inet_accept[29]  sk1->sk_prot->accept() 這里的 sk_prot 提供了 TCP 協議 `proto tcp_prot`[30] 的具體操作

tcp_v4_rcv[34] 此時第一次握手剛開始,sock(套接字在內核協議棧這層的體現) 的狀態還是 TCP_LISTEN

tcp_v4_do_rcv[35] 在連接成功建立前,每次握手都會對狀態進行處理。

tcp_init_transfer[37] sock 的狀態被設置為 BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB,開始進行數據傳輸。

BPF_CGROUP_RUN_PROG_SOCK_OPS[39] 執行掛載類型為 BPF_CGROUP_SOCK_OPS 的 BPF 程序。

bpf_skops_established[38]

tcp_rcv_state_process[36] 我們直接看最后一次握手,也就是收到客戶端的 ACK,完成與客戶端連接的建立。

tcp_prot.accept[31]

inet_csk_accept 開始處理三次握手,調用 TCP 協議的實現來處理。inet_init[32] 注冊了 IPPROTO_TCP 也就是 TCP 協議的實現,也就是 net_protocol tcp_protocol[33],其 handler 為 tcp_v4_rcv。

inet_stream_ops.accept[28]

\_\_sys_accept4_file[25]

BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB 是 socket.accept() 接受連接請求并完成連接建立的操作符,也是眾多 `sock_ops` 操作符[40] 中的一個。這些操作符,可以被看作是 事件 Event[41],程序的觸發則是由事件驅動的。例如:

  • 如果客戶端發起連接請求并完成三次握手后的操作符是 BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB;
  • 套接字進入監聽狀態時的操作符是 BPF_SOCK_OPS_TCP_LISTEN_CB;
  • 數據被確認 BPF_SOCK_OPS_DATA_ACK_CB
  • TCP 狀態改變 BPF_SOCK_OPS_STATE_CB

最后就是 BPF 程序的執行了,不多做贅述,有興趣的看這里的 分析[42]。

參考資料

[1] 幾篇 eBPF 方面的學習筆記: https://atbug.com/search?s=ebpf

[2] 使用 eBPF 技術實現更快的網絡數據包傳輸: https://atbug.com/accelerate-network-packets-transmission/

[3] 追蹤 Kubernetes 中的數據包: https://atbug.com/tracing-network-packets-in-kubernetes/

[4] eBPF sockops: https://github.com/addozhang/ebpf-sockops/

[5] bpf_sockops: https://github.com/addozhang/ebpf-sockops/blob/master/bpf_sockops.c#L28

[6] Linux v6.8: https://github.com/torvalds/linux/tree/v6.8

[7] load.sh: https://github.com/addozhang/ebpf-sockops/blob/master/load.sh

[8] bpftool: https://github.com/libbpf/bpftool

[9] bpf(): https://github.com/torvalds/linux/blob/715d82ba636cb3629a6e18a33bb9dbe53f9936ee/kernel/bpf/syscall.c#L5559

[10] 加載選項bpf_prog_load_opts: https://github.com/torvalds/linux/blob/05c31b4ab20527c4d1695130aaecc54ef59a0e54/tools/lib/bpf/bpf.h#L64

[11] syscall bpf(): https://github.com/torvalds/linux/blob/715d82ba636cb3629a6e18a33bb9dbe53f9936ee/kernel/bpf/syscall.c#L5559

[12] __sys_bpf: https://github.com/torvalds/linux/blob/715d82ba636cb3629a6e18a33bb9dbe53f9936ee/kernel/bpf/syscall.c#L5456

[13] bpf_prog_load: https://github.com/torvalds/linux/blob/715d82ba636cb3629a6e18a33bb9dbe53f9936ee/kernel/bpf/syscall.c#L2595

[14] BPF 程序類型: https://github.com/torvalds/linux/blob/d17aff807f845cf93926c28705216639c7279110/tools/include/uapi/linux/bpf.h#L964

[15] 掛載類型: https://github.com/torvalds/linux/blob/d17aff807f845cf93926c28705216639c7279110/tools/include/uapi/linux/bpf.h#L1000

[16] 掛載選項 bpf_prog_attach_opts: https://github.com/torvalds/linux/blob/05c31b4ab20527c4d1695130aaecc54ef59a0e54/tools/lib/bpf/bpf.h#L321C8-L321C28

[17] syscall bpf(): https://github.com/torvalds/linux/blob/715d82ba636cb3629a6e18a33bb9dbe53f9936ee/kernel/bpf/syscall.c#L5466

[18] bpf_prog_attach: https://github.com/torvalds/linux/blob/715d82ba636cb3629a6e18a33bb9dbe53f9936ee/kernel/bpf/syscall.c#L3936

[19] cgroup_bpf_prog_attach: https://github.com/torvalds/linux/blob/v6.8/kernel/bpf/cgroup.c#L1130

[20] cgroup_bpf_prog_attach: https://github.com/torvalds/linux/blob/v6.8/kernel/bpf/cgroup.c#L733

[21] __cgroup_bpf_attach: https://github.com/torvalds/linux/blob/v6.8/kernel/bpf/cgroup.c#L607

[22] bpf_prog_put: https://github.com/torvalds/linux/blob/v6.8/kernel/bpf/cgroup.c#L700

[23] static_branch_inc: https://github.com/torvalds/linux/blob/v6.8/kernel/bpf/cgroup.c#L702

[24] accept: https://github.com/torvalds/linux/blob/v6.8/net/socket.c#L2016

[25] __sys_accept4_file: https://github.com/torvalds/linux/blob/v6.8/net/socket.c#L1969

[26] do_accept: https://github.com/torvalds/linux/blob/v6.8/net/socket.c#L1929

[27] proto_ops inet_stream_ops: https://github.com/torvalds/linux/blob/eef00a82c568944f113f2de738156ac591bbd5cd/net/ipv4/af_inet.c#L1051

[28] inet_stream_ops.accept: https://github.com/torvalds/linux/blob/eef00a82c568944f113f2de738156ac591bbd5cd/net/ipv4/af_inet.c#L1058

[29] inet_accept: https://github.com/torvalds/linux/blob/eef00a82c568944f113f2de738156ac591bbd5cd/net/ipv4/af_inet.c#L780

[30] proto tcp_prot: https://github.com/torvalds/linux/blob/da7dfaa6d6f731c30eca6ffa808b83634d43e26f/net/ipv4/tcp_ipv4.c#L3314

[31] tcp_prot.accept: https://github.com/torvalds/linux/blob/da7dfaa6d6f731c30eca6ffa808b83634d43e26f/net/ipv4/tcp_ipv4.c#L3314

[32] inet_init: https://github.com/torvalds/linux/blob/eef00a82c568944f113f2de738156ac591bbd5cd/net/ipv4/af_inet.c#L1997

[33] net_protocol tcp_protocol: https://github.com/torvalds/linux/blob/eef00a82c568944f113f2de738156ac591bbd5cd/net/ipv4/af_inet.c#L1754

[34] tcp_v4_rcv: https://github.com/torvalds/linux/blob/da7dfaa6d6f731c30eca6ffa808b83634d43e26f/net/ipv4/tcp_ipv4.c#L2319

[35] tcp_v4_do_rcv: https://github.com/torvalds/linux/blob/da7dfaa6d6f731c30eca6ffa808b83634d43e26f/net/ipv4/tcp_ipv4.c#L1929

[36] tcp_rcv_state_process: https://github.com/torvalds/linux/blob/v6.8/net/ipv4/tcp_input.c#L6724

[37] tcp_init_transfer: https://github.com/torvalds/linux/blob/v6.8/net/ipv4/tcp_input.c#L6208

[38] bpf_skops_established: https://github.com/torvalds/linux/blob/v6.8/net/ipv4/tcp_input.c#L192

[39] BPF_CGROUP_RUN_PROG_SOCK_OPS: https://github.com/torvalds/linux/blob/v6.8/include/linux/bpf-cgroup.h#L350

[40] sock_ops 操作符: sock_ops

[41] 事件 Event: https://atbug.com/accelerate-network-packets-transmission/#事件驅動

[42] 分析: https://atbug.com/accelerate-network-packets-transmission/#實現

責任編輯:武曉燕 來源: 云原生指北
相關推薦

2021-06-11 18:27:10

LinuxLinux內核

2022-01-17 17:55:29

Python變量交換開發

2021-06-16 07:56:21

Redis分布式

2022-07-05 21:31:21

索引SQL分庫分表

2022-07-11 11:28:45

數據分析業務消費

2015-06-09 11:13:18

2020-05-06 08:01:39

黑客惡意攻擊網絡安全

2021-04-19 11:07:13

Windbg程序.NET

2022-04-01 15:18:42

Web 框架網絡通信

2022-09-03 15:12:40

AndroidJDK 11升級

2018-09-13 15:21:36

CTO訓練營

2024-01-03 16:39:07

2019-05-23 11:42:04

Java語法糖編程語言

2019-05-14 14:51:40

Java語法糖用法

2025-05-12 08:27:25

2015-12-28 16:09:20

物聯網市場

2019-12-10 15:30:27

SaaSIaaS云計算

2022-02-22 07:40:10

邊緣計算云原生中心云

2025-07-15 09:58:16

2020-06-09 15:15:31

運維中臺技術
點贊
收藏

51CTO技術棧公眾號

日韩成人一区| 黄色一级大片在线免费看国产| 欧美午夜精彩| 日韩一级黄色片| 国产精品宾馆在线精品酒店| 在线a免费看| 成人午夜电影久久影院| 全球成人中文在线| 国产高潮流白浆| 天天躁日日躁狠狠躁欧美巨大小说 | 国产日韩欧美夫妻视频在线观看| 国产精品 欧美激情| 国产探花一区| 精品国产一二三| 久久99国产精品久久久久久久久| 欧美在线一级视频| 黑人狂躁日本娇小| 欧美成人基地| 91精品国产欧美一区二区| 日韩av在线第一页| 成人短视频在线观看| 国产欧美一区二区三区鸳鸯浴| 91欧美激情另类亚洲| 国产成人一级片| 欧美日本免费| 在线观看国产精品日韩av| 亚洲香蕉中文网| 成人在线视频www| 在线观看视频91| 91九色在线观看视频| 中文字幕有码在线视频| 1区2区3区精品视频| 日韩精品一区二区三区丰满| 先锋av资源站| 成人听书哪个软件好| 91亚洲永久免费精品| 亚洲中文字幕无码爆乳av| 一区二区黄色| 国内精品久久久久影院 日本资源| 26uuu成人网| 色婷婷一区二区三区| 亚洲最新在线视频| 夜夜春很很躁夜夜躁| 国产精品亚洲人成在99www| 日韩高清中文字幕| 一起草在线视频| 秋霞影院一区二区三区| 亚洲国产欧美精品| 熟女人妻在线视频| 亚洲电影男人天堂| 国产亚洲人成a一在线v站| 国产特黄级aaaaa片免| 最近国产精品视频| 亚洲无限av看| 国产精品成人无码免费| 四季av一区二区凹凸精品| 最新中文字幕亚洲| 日本黄色免费片| 欧美一区在线看| 欧美激情按摩在线| 国产精彩视频在线| 午夜一级久久| 国产精品无av码在线观看| 中文天堂在线资源| 久久se精品一区精品二区| 成人网址在线观看| www.色呦呦| av在线一区二区三区| 久久香蕉综合色| av在线之家电影网站| 中文字幕亚洲一区二区av在线 | 久久久久无码国产精品不卡| 91在线直播| 一区在线观看免费| 麻豆传媒网站在线观看| 国产乱码在线| 色婷婷亚洲一区二区三区| 蜜桃免费在线视频| 国产一区二区av在线| 精品日韩99亚洲| 中文字幕丰满乱子伦无码专区| 国产成人精品999在线观看| 日韩在线视频观看| 中文字幕一区二区三区手机版| 亚洲一区黄色| 国产免费一区二区三区在线能观看 | 国产精品视频免费在线观看| 国产ts变态重口人妖hd| 99精品偷自拍| 亚洲欧美久久久久一区二区三区| 国产精品扒开做爽爽爽的视频| 亚洲国产精品久久久男人的天堂| 久草精品在线播放| 欧美成人一级| 亚洲女人天堂视频| 91成人福利视频| 久久亚洲图片| 444亚洲人体| 高清中文字幕一区二区三区| 伊人一区二区三区| 可以免费在线看黄的网站| 成人国产精品久久| 亚洲欧美日韩精品久久奇米色影视| 欧美性生交大片| 午夜一区不卡| 国产精品国产精品国产专区不卡| 二区在线观看| 懂色av影视一区二区三区| 日韩视频在线观看一区二区三区| 亚州综合一区| 久久久久久久久国产| 又色又爽又黄无遮挡的免费视频| 91蝌蚪porny九色| 精品一二三四五区| 亚洲一区导航| 正在播放亚洲1区| 国产美女激情视频| 成人短视频下载| 艳母动漫在线免费观看| 久久91超碰青草在哪里看| 亚洲美女性视频| 精品亚洲永久免费| 国产精品亚洲人在线观看| 欧美一区二区三区在线播放| heyzo高清在线| 精品少妇一区二区三区在线视频| 一级片一级片一级片| 老鸭窝一区二区久久精品| 欧美在线3区| 不卡一二三区| 日韩av一区二区在线观看| 国产一级在线免费观看| 国产成人av电影在线| 色婷婷777777仙踪林| 羞羞视频在线观看一区二区| 色综合伊人色综合网| 国产情侣免费视频| 国产日韩欧美在线一区| 美女福利视频在线| 任你弄精品视频免费观看| 97国产精品视频| 国产高清在线一区| 深夜影院在线观看| 精品日韩视频在线观看| 精品国产av色一区二区深夜久久| 伊人久久成人| 国产美女精品在线观看| 国产精品一品| 亚洲精品v欧美精品v日韩精品| 国产一级一片免费播放| www..com久久爱| 久久久999免费视频| 欧美极品中文字幕| 国产精品久久久久久久久久新婚| 99青草视频在线播放视| 欧美日韩一本到| 日韩成人短视频| 国产乱人伦偷精品视频不卡| 久久综合久久久久| 欧美亚洲色图校园春色| 欧洲精品在线视频| 大地资源中文在线观看免费版| 精品视频在线免费观看| 欧产日产国产v| av在线播放不卡| 国产免费视频传媒| 亚洲精品成人无限看| caoporn国产精品免费公开| 91九色porn在线资源| 精品夜色国产国偷在线| 伊人网站在线观看| 亚洲一区在线观看网站| 亚洲熟女乱综合一区二区三区| 玖玖玖国产精品| 国产a级片免费看| 欧美视频三区| 欧美在线一区二区三区四| 成年人免费在线视频| 日韩一区和二区| 日韩欧美亚洲一区二区三区| 国产精品亲子伦对白| 韩国av中国字幕| 日韩电影在线观看电影| 992tv快乐视频| 精品国产乱码久久久| 亚洲伊人久久大香线蕉av| h片在线观看下载| 亚洲一区二区久久久| 国产黄色一区二区| 91久久精品国产91性色tv| 久草视频手机在线| 久久精品人人做人人爽人人| 波多野结衣在线免费观看| 国产精品一区毛片| 欧美xxxx吸乳| 欧美人与物videos另类xxxxx| 亚洲一区二区三区sesese| 高清不卡av| 欧美国产日韩一区二区三区| 成人亚洲性情网站www在线观看| 日韩欧美你懂的| 看黄色一级大片| 婷婷开心激情综合| 粉嫩av性色av蜜臀av网站| 国产午夜亚洲精品午夜鲁丝片| 黑人无套内谢中国美女| 蜜桃久久久久久| 日韩人妻精品无码一区二区三区| 欧美91精品| 亚洲 国产 欧美一区| 香蕉久久精品日日躁夜夜躁| 91在线免费观看网站| 日韩一级二级| 97婷婷涩涩精品一区| 日本在线视频网址| 久热精品视频在线观看一区| www.在线视频.com| 亚洲美女喷白浆| 四虎在线视频| 亚洲国产精久久久久久久| 国产ts变态重口人妖hd| 91精品国产色综合久久| 亚洲中文字幕一区二区| 欧美探花视频资源| 亚洲av综合一区| 色综合天天性综合| 亚洲午夜18毛片在线看| 午夜欧美大尺度福利影院在线看 | 亚洲精品视频免费观看| 中文字幕精品亚洲| 欧美极品美女视频| www.99热| 久久精品视频在线看| 黄色片视频免费观看| 91丨porny丨蝌蚪视频| 亚洲高清无码久久| www.欧美.com| 一级特级黄色片| 91网站最新网址| 好吊一区二区三区视频| 97精品久久久午夜一区二区三区| 99精品一区二区三区无码吞精| 成人一区在线看| 中文字幕免费高清视频| 91免费版在线看| 91精彩刺激对白露脸偷拍| 久久亚洲综合色| 午夜在线观看一区| 国产精品丝袜一区| 精品国产大片大片大片| 亚洲三级视频在线观看| √天堂中文官网8在线| 亚洲一区二区不卡免费| 日韩高清免费av| 一本大道久久精品懂色aⅴ| 亚洲国产成人精品女人久久| 欧美性色aⅴ视频一区日韩精品| 国产情侣免费视频| 欧美一区二区三区四区五区| 免费av网站观看| 亚洲欧美制服另类日韩| 在线免费观看黄色网址| 萌白酱国产一区二区| av福利在线导航| 国产不卡精品视男人的天堂| av久久网站| 成人午夜电影在线播放| 日韩影视高清在线观看| 亚洲精品一区二区三区樱花| 午夜日本精品| 欧美 激情 在线| 国产尤物一区二区| 青青草视频播放| 国产精品全国免费观看高清| 加勒比av在线播放| 色综合中文字幕| 国产精品视频一区二区三区,| 亚洲精品一区二区三区蜜桃下载 | 另类色图亚洲色图| 男人天堂视频在线观看| 国产精品精品视频| 国产欧美自拍一区| 日韩精彩视频| 亚洲无线视频| 亚洲天堂av线| av激情综合网| 国产性生活大片| 一本久久精品一区二区| 成 人 黄 色 片 在线播放| 亚洲日韩欧美视频| 少女频道在线观看高清 | 日韩视频一二区| 日韩精品一区二区三区丰满| 在线免费观看欧美| 国产成人美女视频| 91视频.com| 青青操国产视频| 欧美日韩免费不卡视频一区二区三区 | 成人一区二区三区视频在线观看 | 天堂在线中文| 欧美成aaa人片免费看| 欧美三级精品| 国产在线一区二| 亚洲乱码精品| 天天干在线影院| 91免费视频大全| 久久久精品国产sm调教网站| 欧美日韩精品欧美日韩精品一| 神宫寺奈绪一区二区三区| 免费91麻豆精品国产自产在线观看 | 亚洲精品伦理在线| 中文字幕 视频一区| 亚洲美女av在线播放| 182在线播放| 97在线中文字幕| 国产精品久久久久无码av| 日本999视频| 久久久久国产成人精品亚洲午夜| 日韩av一二三区| 日韩欧美亚洲国产另类 | 欧美中文字幕视频在线观看| jizz18欧美18| 超薄肉色丝袜足j调教99| 久久草av在线| 亚洲精品国产精品乱码在线观看| 色婷婷激情久久| 青青青草原在线| 欧美中文字幕在线视频| 秋霞影视一区二区三区| 波多野结衣乳巨码无在线| 不卡视频在线看| 日本三级午夜理伦三级三| 欧美大胆人体bbbb| 羞羞视频在线观看不卡| 亚洲伊人久久大香线蕉av| 婷婷六月综合| www.日本久久| 亚洲精品国久久99热| 精品国产无码AV| 欧美另类第一页| 99re热精品视频| 久久亚洲精品无码va白人极品| 成人妖精视频yjsp地址| 久久高清无码视频| 亚洲国产精品资源| 蜜臀久久精品| 日本高清一区| 美女视频黄a大片欧美| 国产探花视频在线| 4hu四虎永久在线影院成人| 搞黄网站在线观看| 成人区精品一区二区| 国产精品久久久久久久免费软件 | 欧美三级三级三级爽爽爽| 免费大片在线观看www| 亚洲va欧美va国产综合剧情| 欧美精品国产一区| xxxx黄色片| 91国产免费看| 麻豆tv在线| 国产伦视频一区二区三区| 国产精品美女久久久| 国产伦精品一区二区三区视频女| 欧美日韩一本到| 日本性爱视频在线观看| 久久久一本精品99久久精品| 免费xxxx性欧美18vr| 欧美成人国产精品高潮| 日韩精品在线免费播放| 欧美亚洲二区| www.xxx麻豆| 国产日本欧美一区二区| 国产suv一区二区| 欧美中文字幕第一页| 午夜av一区| 日韩av手机在线播放| 在线观看中文字幕不卡| 污污的网站在线看| 免费看污久久久| 国产乱子伦视频一区二区三区 | 欧美精选一区二区| 6699嫩草久久久精品影院| 欧美在线视频一区二区三区| 国内成人自拍视频| 欧美成人一区二区三区四区| 久久最新资源网| 久久93精品国产91久久综合| 中文字幕第六页| 欧美在线短视频| 国产白丝在线观看| 亚洲一卡二卡三卡四卡无卡网站在线看| 国产很黄免费观看久久| 中文字幕在线观看视频免费| 色综合久久天天综线观看| 欧美三级伦理在线| 黄色性视频网站| 日韩一区二区高清| 99久久亚洲国产日韩美女| 黄色免费视频大全| 亚洲激情图片qvod|