一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - NMState:一個聲明式網絡配置工具

NMState:一個聲明式網絡配置工具

2021-10-08 23:18Linux中國Maurizio Garcia 服務器知識

這篇文章描述并演示了 NMState,這是一個使用聲明式方法配置主機的網絡管理器。這意味著你可以通過 API 定義所需的配置狀態,而工具則通過提供者來應用配置。

NMState:一個聲明式網絡配置工具

這篇文章描述并演示了 NMState,這是一個使用聲明式方法配置主機的網絡管理器。這意味著你可以通過 API 定義所需的配置狀態,而工具則通過提供者provider來應用配置。

配置方法:命令式與聲明式

網絡管理有時候是一項非常復雜的任務,這取決于環境的規模和多樣性。在 IT 的早期,網絡管理依賴于網絡管理員在網絡設備上手動執行命令。如今,基礎設施即代碼Infrastructure as Code(IaC)允許以不同的方式將這些任務自動化。z這基本上有兩種方法:命令式或聲明式。

在命令式方法中,你會定義“如何”達到所需的配置狀態。而在聲明式范式里則定義了“什么”是所需的配置狀態,所以它不確定哪些步驟是必需的,也不確定它們必須以何種順序執行。這種方法目前正在聚集更多的人員參與,你可以在目前使用的大多數管理和編排工具上找到它。

NMState:一個聲明式的工具

NMState 是一個網絡管理器,允許你按照聲明式方法配置主機。這意味著你通過一個北向的聲明式 API 定義所需的配置狀態,這個工具通過南向的提供者provider應用配置。

目前 NMState 支持的唯一的提供者是 NetworkManager,它是為 Fedora Linux 提供網絡功能的主要服務。不過,NMState 的開發計劃中將逐漸增加其他提供者。

關于 NMState 的進一步信息,請訪問其項目 站點 或 GitHub 倉庫。

安裝

NMState 在 Fedora Linux 29+ 上可用,需要在系統上安裝并運行 NetworkManager 1.26 或更高版本。下面是在 Fedora Linux 34 上的安裝情況:

  1. $ sudo dnf -y install nmstate
  2. ...
  3. 輸出節略
  4. ...
  5. Installed:
  6. NetworkManager-config-server-1:1.30.4-1.fc34.noarch gobject-introspection-1.68.0-3.fc34.x86_64 nispor-1.0.1-2.fc34.x86_64 nmstate-1.0.3-2.fc34.noarch
  7. python3-gobject-base-3.40.1-1.fc34.x86_64 python3-libnmstate-1.0.3-2.fc34.noarch python3-nispor-1.0.1-2.fc34.noarch python3-varlink-30.3.1-2.fc34.noarch
  8.  
  9. Complete!

這樣,你可以使用 nmstatectl 作為 NMState 的命令行工具。請參考 nmstatectl -help 或 man nmstatectl 以了解關于這個工具的進一步信息。

使用 NMstate

首先要檢查系統中安裝的 NMState 版本:

  1. $ nmstatectl version
  2. 1.0.3

檢查一個網絡接口的當前配置,例如 eth0 的配置:

  1. $ nmstatectl show eth0
  2. 2021-06-29 10:28:21,530 root DEBUG NetworkManager version 1.30.4
  3. 2021-06-29 10:28:21,531 root DEBUG Async action: Retrieve applied config: ethernet eth0 started
  4. 2021-06-29 10:28:21,531 root DEBUG Async action: Retrieve applied config: ethernet eth1 started
  5. 2021-06-29 10:28:21,532 root DEBUG Async action: Retrieve applied config: ethernet eth0 finished
  6. 2021-06-29 10:28:21,533 root DEBUG Async action: Retrieve applied config: ethernet eth1 finished
  7. ---
  8. dns-resolver:
  9. config: {}
  10. running:
  11. search: []
  12. server:
  13. - 192.168.122.1
  14. route-rules:
  15. config: []
  16. routes:
  17. config: []
  18. running:
  19. - destination: fe80::/64
  20. metric: 100
  21. next-hop-address: ''
  22. next-hop-interface: eth0
  23. table-id: 254
  24. - destination: 0.0.0.0/0
  25. metric: 100
  26. next-hop-address: 192.168.122.1
  27. next-hop-interface: eth0
  28. table-id: 254
  29. - destination: 192.168.122.0/24
  30. metric: 100
  31. next-hop-address: ''
  32. next-hop-interface: eth0
  33. table-id: 254
  34. interfaces:
  35. - name: eth0
  36. type: ethernet
  37. state: up
  38. ipv4:
  39. enabled: true
  40. address:
  41. - ip: 192.168.122.238
  42. prefix-length: 24
  43. auto-dns: true
  44. auto-gateway: true
  45. auto-route-table-id: 0
  46. auto-routes: true
  47. dhcp: true
  48. ipv6:
  49. enabled: true
  50. address:
  51. - ip: fe80::c3c9:c4f9:75b1:a570
  52. prefix-length: 64
  53. auto-dns: true
  54. auto-gateway: true
  55. auto-route-table-id: 0
  56. auto-routes: true
  57. autoconf: true
  58. dhcp: true
  59. lldp:
  60. enabled: false
  61. mac-address: 52:54:00:91:E4:4E
  62. mtu: 1500

正如你在上面看到的,這個網絡配置顯示了四個主要部分:

  • dns-resolver:這部分是這個接口的名字服務器配置。
  • route-rules:它說明了路由規則。
  • routes:它包括動態和靜態路由。
  • interfaces:這部分描述了 ipv4 和 ipv6 設置。

修改配置

你可以在兩種模式下修改所需的配置狀態:

  • 交互式:通過 nmstatectl edit 編輯接口配置。這個命令調用環境變量 EDITOR 定義的文本編輯器,因此可以用 yaml 格式編輯網絡狀態。完成編輯后,NMState 將應用新的網絡配置,除非有語法錯誤。
  • 基于文件的:使用 nmstatectl apply 應用接口配置,它從先前創建的 yaml 或 json 文件中導入一個所需的配置狀態。

下面幾節告訴你如何使用 NMState 來改變網絡配置。這些改變可能會對系統造成破壞,所以建議在測試系統或客戶虛擬機上執行這些任務,直到你對 NMState 有更好的理解。

這里使用的測試系統有兩個以太網接口,eth0 和 eth1

  1. $ ip -br -4 a
  2. lo UNKNOWN 127.0.0.1/8
  3. eth0 UP 192.168.122.238/24
  4. eth1 UP 192.168.122.108/24

互動配置模式的例子

使用 nmstatectl edit 命令將 eth0 接口的 MTU 改為 9000 字節,如下所示:

  1. $ sudo nmstatectl edit eth0
  2.  
  3. ---
  4. dns-resolver:
  5. config: {}
  6. running:
  7. search: []
  8. server:
  9. - 192.168.122.1
  10. route-rules:
  11. config: []
  12. routes:
  13. config: []
  14. running:
  15. - destination: fe80::/64
  16. metric: 100
  17. next-hop-address: ''
  18. next-hop-interface: eth0
  19. table-id: 254
  20. - destination: 0.0.0.0/0
  21. metric: 100
  22. next-hop-address: 192.168.122.1
  23. next-hop-interface: eth0
  24. table-id: 254
  25. - destination: 192.168.122.0/24
  26. metric: 100
  27. next-hop-address: ''
  28. next-hop-interface: eth0
  29. table-id: 254
  30. interfaces:
  31. - name: eth0
  32. type: ethernet
  33. state: up
  34. ipv4:
  35. enabled: true
  36. address:
  37. - ip: 192.168.122.123
  38. prefix-length: 24
  39. auto-dns: true
  40. auto-gateway: true
  41. auto-route-table-id: 0
  42. auto-routes: true
  43. dhcp: true
  44. ipv6:
  45. enabled: true
  46. address:
  47. - ip: fe80::c3c9:c4f9:75b1:a570
  48. prefix-length: 64
  49. auto-dns: true
  50. auto-gateway: true
  51. auto-route-table-id: 0
  52. auto-routes: true
  53. autoconf: true
  54. dhcp: true
  55. lldp:
  56. enabled: false
  57. mac-address: 52:54:00:91:E4:4E
  58. mtu: 9000

在保存并退出編輯器后,NMState 應用新的網絡期望狀態:

  1. 2021-06-29 11:29:05,726 root DEBUG Nmstate version: 1.0.3
  2. 2021-06-29 11:29:05,726 root DEBUG Applying desire state: {'dns-resolver': {'config': {}, 'running': {'search': [], 'server': ['192.168.122.1']}}, 'route-rules': {'config': []}, 'routes': {'config': [], 'running': [{'destination': 'fe80::/64', 'metric': 102, 'next-hop-address': '', 'next-hop-interface': 'eth0', 'table-id': 254}, {'destination': '0.0.0.0/0', 'metric': 102, 'next-hop-address': '192.168.122.1', 'next-hop-interface': 'eth0', 'table-id': 254}, {'destination': '192.168.122.0/24', 'metric': 102, 'next-hop-address': '', 'next-hop-interface': 'eth0', 'table-id': 254}]}, 'interfaces': [{'name': 'eth0', 'type': 'ethernet', 'state': 'up', 'ipv4': {'enabled': True, 'address': [{'ip': '192.168.122.238', 'prefix-length': 24}], 'auto-dns': True, 'auto-gateway': True, 'auto-route-table-id': 0, 'auto-routes': True, 'dhcp': True}, 'ipv6': {'enabled': True, 'address': [{'ip': 'fe80::5054:ff:fe91:e44e', 'prefix-length': 64}], 'auto-dns': True, 'auto-gateway': True, 'auto-route-table-id': 0, 'auto-routes': True, 'autoconf': True, 'dhcp': True}, 'lldp': {'enabled': False}, 'mac-address': '52:54:00:91:E4:4E', 'mtu': 9000}]}
  3. --- output omitted ---
  4. 2021-06-29 11:29:05,760 root DEBUG Async action: Update profile uuid:2bdee700-f62b-365a-bd1d-69d9c31a9f0c iface:eth0 type:ethernet started
  5. 2021-06-29 11:29:05,792 root DEBUG Async action: Update profile uuid:2bdee700-f62b-365a-bd1d-69d9c31a9f0c iface:eth0 type:ethernet finished

現在,使用 ip 命令和 eth0 的配置文件來檢查 eth0 的 MTU 是不是 9000 字節。

  1. $ ip link show eth0
  2. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
  3. link/ether 52:54:00:91:e4:4e brd ff:ff:ff:ff:ff:ff
  4. altname enp1s0
  5.  
  6. $ sudo cat /etc/NetworkManager/system-connections/eth0.nmconnection
  7. [sudo] password for admin:
  8. [connection]
  9. id=eth0
  10. uuid=2bdee700-f62b-365a-bd1d-69d9c31a9f0c
  11. type=ethernet
  12. interface-name=eth0
  13. lldp=0
  14. permissions=
  15.  
  16. [ethernet]
  17. cloned-mac-address=52:54:00:91:E4:4E
  18. mac-address-blacklist=
  19. mtu=9000
  20.  
  21. [ipv4]
  22. dhcp-client-id=mac
  23. dhcp-timeout=2147483647
  24. dns-search=
  25. method=auto
  26.  
  27. [ipv6]
  28. addr-gen-mode=eui64
  29. dhcp-duid=ll
  30. dhcp-iaid=mac
  31. dhcp-timeout=2147483647
  32. dns-search=
  33. method=auto
  34. ra-timeout=2147483647
  35.  
  36. [proxy]

基于文件的配置模式的例子

讓我們使用基于文件的方法來設置一個新的配置狀態。這里我們禁用 eth1 接口的 IPv6 配置。

首先,創建一個 yaml 文件來定義 eth1 接口的期望狀態。使用 nmstatectl show 來保存當前設置,然后使用 nmstatectl edit 來禁用 IPv6。

  1. $ nmstatectl show eth1 > eth1.yaml
  2.  
  3. $ vi eth1.yaml
  4. ---
  5. dns-resolver:
  6. config: {}
  7. running:
  8. search: []
  9. server:
  10. - 192.168.122.1
  11. route-rules:
  12. config: []
  13. routes:
  14. config: []
  15. running:
  16. - destination: fe80::/64
  17. metric: 101
  18. next-hop-address: ''
  19. next-hop-interface: eth1
  20. table-id: 254
  21. - destination: 0.0.0.0/0
  22. metric: 101
  23. next-hop-address: 192.168.122.1
  24. next-hop-interface: eth1
  25. table-id: 254
  26. - destination: 192.168.122.0/24
  27. metric: 101
  28. next-hop-address: ''
  29. next-hop-interface: eth1
  30. table-id: 254
  31. interfaces:
  32. - name: eth1
  33. type: ethernet
  34. state: up
  35. ipv4:
  36. enabled: true
  37. address:
  38. - ip: 192.168.122.108
  39. prefix-length: 24
  40. auto-dns: true
  41. auto-gateway: true
  42. auto-route-table-id: 0
  43. auto-routes: true
  44. dhcp: true
  45. ipv6:
  46. enabled: false
  47. address:
  48. - ip: fe80::5054:ff:fe3c:9b04
  49. prefix-length: 64
  50. auto-dns: true
  51. auto-gateway: true
  52. auto-route-table-id: 0
  53. auto-routes: true
  54. autoconf: true
  55. dhcp: true
  56. lldp:
  57. enabled: false
  58. mac-address: 52:54:00:3C:9B:04
  59. mtu: 1500

保存新的配置后,用它來應用新的狀態:

  1. $ sudo nmstatectl apply eth1.yaml
  2.  
  3. 2021-06-29 12:17:21,531 root DEBUG Nmstate version: 1.0.3
  4. 2021-06-29 12:17:21,531 root DEBUG Applying desire state: {'dns-resolver': {'config': {}, 'running': {'search': [], 'server': ['192.168.122.1']}}, 'route-rules': {'config': []}, 'routes': {'config': [], 'running': [{'destination': 'fe80::/64', 'metric': 101, 'next-hop-address': '', 'next-hop-interface': 'eth1', 'table-id': 254}, {'destination': '0.0.0.0/0', 'metric': 101, 'next-hop-address': '192.168.122.1', 'next-hop-interface': 'eth1', 'table-id': 254}, {'destination': '192.168.122.0/24', 'metric': 101, 'next-hop-address': '', 'next-hop-interface': 'eth1', 'table-id': 254}]}, 'interfaces': [{'name': 'eth1', 'type': 'ethernet', 'state': 'up', 'ipv4': {'enabled': True, 'address': [{'ip': '192.168.122.108', 'prefix-length': 24}], 'auto-dns': True, 'auto-gateway': True, 'auto-route-table-id': 0, 'auto-routes': True, 'dhcp': True}, 'ipv6': {'enabled': False}, 'lldp': {'enabled': False}, 'mac-address': '52:54:00:3C:9B:04', 'mtu': 1500}]}
  5. --- output omitted ---
  6. 2021-06-29 12:17:21,582 root DEBUG Async action: Update profile uuid:5d7244cb-673d-3b88-a675-32e31fad4347 iface:eth1 type:ethernet started
  7. 2021-06-29 12:17:21,587 root DEBUG Async action: Update profile uuid:5d7244cb-673d-3b88-a675-32e31fad4347 iface:eth1 type:ethernet finished
  8. --- output omitted ---
  9. Desired state applied:
  10. ---
  11. dns-resolver:
  12. config: {}
  13. running:
  14. search: []
  15. server:
  16. - 192.168.122.1
  17. route-rules:
  18. config: []
  19. routes:
  20. config: []
  21. running:
  22. - destination: fe80::/64
  23. metric: 101
  24. next-hop-address: ''
  25. next-hop-interface: eth1
  26. table-id: 254
  27. - destination: 0.0.0.0/0
  28. metric: 101
  29. next-hop-address: 192.168.122.1
  30. next-hop-interface: eth1
  31. table-id: 254
  32. - destination: 192.168.122.0/24
  33. metric: 101
  34. next-hop-address: ''
  35. next-hop-interface: eth1
  36. table-id: 254
  37. interfaces:
  38. - name: eth1
  39. type: ethernet
  40. state: up
  41. ipv4:
  42. enabled: true
  43. address:
  44. - ip: 192.168.122.108
  45. prefix-length: 24
  46. auto-dns: true
  47. auto-gateway: true
  48. auto-route-table-id: 0
  49. auto-routes: true
  50. dhcp: true
  51. ipv6:
  52. enabled: false
  53. lldp:
  54. enabled: false
  55. mac-address: 52:54:00:3C:9B:04
  56. mtu: 1500

你可以檢查看到 eth1 接口沒有配置任何 IPv6:

  1. $ ip -br a
  2. lo UNKNOWN 127.0.0.1/8 ::1/128
  3. eth0 UP 192.168.122.238/24 fe80::5054:ff:fe91:e44e/64
  4. eth1 UP 192.168.122.108/24
  5.  
  6. $ sudo cat /etc/NetworkManager/system-connections/eth1.nmconnection
  7. [connection]
  8. id=eth1
  9. uuid=5d7244cb-673d-3b88-a675-32e31fad4347
  10. type=ethernet
  11. interface-name=eth1
  12. lldp=0
  13. permissions=
  14.  
  15. [ethernet]
  16. cloned-mac-address=52:54:00:3C:9B:04
  17. mac-address-blacklist=
  18. mtu=1500
  19.  
  20. [ipv4]
  21. dhcp-client-id=mac
  22. dhcp-timeout=2147483647
  23. dns-search=
  24. method=auto
  25.  
  26. [ipv6]
  27. addr-gen-mode=eui64
  28. dhcp-duid=ll
  29. dhcp-iaid=mac
  30. dns-search=
  31. method=disabled
  32.  
  33. [proxy]

臨時應用改變

NMState 的一個有趣的功能允許你臨時配置一個期望的網絡狀態。如果你對這個配置感到滿意,你可以事后提交。否則,當超時(默認為 60 秒)過后,它將回滾。

修改前面例子中的 eth1 配置,使它有一個 IPv4 靜態地址,而不是通過 DHCP 動態獲得。

  1. $ vi eth1.yaml
  2.  
  3. ---
  4. dns-resolver:
  5. config: {}
  6. running:
  7. search: []
  8. server:
  9. - 192.168.122.1
  10. route-rules:
  11. config: []
  12. routes:
  13. config: []
  14. running:
  15. - destination: fe80::/64
  16. metric: 101
  17. next-hop-address: ''
  18. next-hop-interface: eth1
  19. table-id: 254
  20. - destination: 0.0.0.0/0
  21. metric: 101
  22. next-hop-address: 192.168.122.1
  23. next-hop-interface: eth1
  24. table-id: 254
  25. - destination: 192.168.122.0/24
  26. metric: 101
  27. next-hop-address: ''
  28. next-hop-interface: eth1
  29. table-id: 254
  30. interfaces:
  31. - name: eth1
  32. type: ethernet
  33. state: up
  34. ipv4:
  35. enabled: true
  36. address:
  37. - ip: 192.168.122.110
  38. prefix-length: 24
  39. auto-dns: true
  40. auto-gateway: true
  41. auto-route-table-id: 0
  42. auto-routes: true
  43. dhcp: false
  44. ipv6:
  45. enabled: false
  46. lldp:
  47. enabled: false
  48. mac-address: 52:54:00:3C:9B:04
  49. mtu: 1500

現在,使用選項 no-commit 臨時應用這個配置,讓它只在 30 秒內有效。這可以通過添加選項 timeout 來完成。同時,我們將運行 ip -br a 命令三次,看看配置在 eth1 接口的 IPv4 地址是如何變化的,然后配置就會回滾。

  1. $ ip -br a && sudo nmstatectl apply --no-commit --timeout 30 eth1.yaml && sleep 10 && ip -br a && sleep 25 && ip -br a
  2. lo UNKNOWN 127.0.0.1/8 ::1/128
  3. eth0 UP 192.168.122.238/24 fe80::5054:ff:fe91:e44e/64
  4. eth1 UP 192.168.122.108/24
  5. 2021-06-29 17:29:18,266 root DEBUG Nmstate version: 1.0.3
  6. 2021-06-29 17:29:18,267 root DEBUG Applying desire state: {'dns-resolver': {'config': {}, 'running': {'search': [], 'server': ['192.168.122.1']}}, 'route-rules': {'config': []}, 'routes': {'config': [], 'running': [{'destination': 'fe80::/64', 'metric': 101, 'next-hop-address': '', 'next-hop-interface': 'eth1', 'table-id': 254}, {'destination': '0.0.0.0/0', 'metric': 101, 'next-hop-address': '192.168.122.1', 'next-hop-interface': 'eth1', 'table-id': 254}, {'destination': '192.168.122.0/24', 'metric': 101, 'next-hop-address': '', 'next-hop-interface': 'eth1', 'table-id': 254}]}, 'interfaces': [{'name': 'eth1', 'type': 'ethernet', 'state': 'up', 'ipv4': {'enabled': True, 'address': [{'ip': '192.168.122.110', 'prefix-length': 24}], 'dhcp': False}, 'ipv6': {'enabled': False}, 'lldp': {'enabled': False}, 'mac-address': '52:54:00:3C:9B:04', 'mtu': 1500}]}
  7. --- output omitted ---
  8. Desired state applied:
  9. ---
  10. dns-resolver:
  11. config: {}
  12. running:
  13. search: []
  14. server:
  15. - 192.168.122.1
  16. route-rules:
  17. config: []
  18. routes:
  19. config: []
  20. running:
  21. - destination: fe80::/64
  22. metric: 101
  23. next-hop-address: ''
  24. next-hop-interface: eth1
  25. table-id: 254
  26. - destination: 0.0.0.0/0
  27. metric: 101
  28. next-hop-address: 192.168.122.1
  29. next-hop-interface: eth1
  30. table-id: 254
  31. - destination: 192.168.122.0/24
  32. metric: 101
  33. next-hop-address: ''
  34. next-hop-interface: eth1
  35. table-id: 254
  36. interfaces:
  37. - name: eth1
  38. type: ethernet
  39. state: up
  40. ipv4:
  41. enabled: true
  42. address:
  43. - ip: 192.168.122.110
  44. prefix-length: 24
  45. dhcp: false
  46. ipv6:
  47. enabled: false
  48. lldp:
  49. enabled: false
  50. mac-address: 52:54:00:3C:9B:04
  51. mtu: 1500
  52. Checkpoint: NetworkManager|/org/freedesktop/NetworkManager/Checkpoint/7
  53. lo UNKNOWN 127.0.0.1/8 ::1/128
  54. eth0 UP 192.168.122.238/24 fe80::5054:ff:fe91:e44e/64
  55. eth1 UP 192.168.122.110/24
  56. lo UNKNOWN 127.0.0.1/8 ::1/128
  57. eth0 UP 192.168.122.238/24 fe80::5054:ff:fe91:e44e/64
  58. eth1 UP 192.168.122.108/24

從上面可以看到,eth1 的 IP 地址從 192.168.122.108 暫時變成了 192.168.122.110,然后在超時結束后又回到了 192.168.122.108

總結

NMState 是一個聲明式的網絡配置工具,目前可以通過 NetworkManager API 在主機中應用所需的網絡配置狀態。這種狀態既可以用文本編輯器交互式地定義,也可以用基于文件的方法創建一個 yaml 或 json 文件。

這種工具提供了“基礎設施即代碼”,它可以自動化網絡任務,也減少了使用傳統配置方法可能出現的潛在錯誤配置或不穩定的網絡情況。

原文鏈接:https://linux.cn/article-13861-1.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: kuaibo成人播放器 | 亚洲mv国产精品mv日本mv | 久久夜色噜噜噜亚洲AV0000 | 日本玖玖视频 | 国产精品特黄毛片 | 全日爱韩国视频在线观看 | 国产成人精品一区二三区2022 | 扒开老师挠尿口到崩溃刑罚 | 久久r视频 | 2012中文字幕中字视频 | 亚洲视频男人的天堂 | 亚洲图片综合网 | 国产高清ujzzujzz| 91精品手机国产露脸 | 91色视 | 男人午夜剧场 | 国产激情在线 | 大肥女zzz00o| 午夜欧美精品久久久久久久久 | 我的美女奴隶 | 国产男女爱视频在线观看 | 精品免费国产一区二区三区 | 亚洲国产福利精品一区二区 | 欧洲vodafonewifi日本 | 国产亚洲成归v人片在线观看 | 99午夜高清在线视频在观看 | 欧美久久天天综合香蕉伊 | 毛片在线免费视频 | 午夜国产在线视频 | 91极品国产| 2020年新四虎免费 | 91久久99热青草国产 | 亚洲AV无码国产精品午夜久久 | 免费观看俄罗斯特黄特色 | 久久久91精品国产一区二区 | 秋霞黄色大片 | futa百合文| 91在线视频播放 | 国产精品国产三级国产专区不 | 韩国黄色网址 | 亚洲午夜精品久久久久 |