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

【分享】網絡自動化的項目實踐:場景、工具和方案

原創
網絡 通信技術 自動化
網絡自動化是針對一組網絡設備批量執行一連串的網絡操作。它可以歸納為三個組件:命令 + 操作 + 目標設備,適用于兩個場景。下面,我們一起來看。

【51CTO.com原創稿件】網絡自動化是針對一組網絡設備批量執行一連串的網絡操作。它可以歸納為三個組件:命令 + 操作 + 目標設備,適用于兩個場景。

場景1:針對既有網絡的操作和/或增量配置,提高重復性任務的效率。它又包括兩個方面(以思科設備為例):

  • 日常的enable mode操作,例如采集一組設備的設備信息,接口狀態和描述檢查,設備版本查驗,配置文件一致性驗證等。
  • 為現有網絡上平穩運行的多個設備提供具備共性的增量配置。例如新增或刪除一個授權登錄的帳號,統一修改AAA認證服務器/日志/Netflow/NTP服務器地址,更新SNMP Community string,統一關閉某個端口等。

場景2:針對新建大規模數據中心,提供快速部署。主要是基于一個基線配置模板,調用特定于設備的Location/Type/Role/Loopback等信息的變量文件,來動態創建完整的配置文件。

[[228164]]

一、流行的網絡自動化工具和手段

根據我個人的工作經驗和負責的項目,總結了如下幾個解決方案,并列舉了一些細節:

1. Cisco Prime Infrastructure,封閉系統,一個運行在虛擬服務器上的OVA文件。

  • 內置專有OS,提供專有的Shell界面,不是工業標準的Linux shell。
  • 無法獲知它的Inventory文件(CVS格式)/配置文件/模板/變量在系統中的保存位置。
  • 無法獲知它的系統采用什么腳本編寫,也無法修改實現個性化。
  • 系統不支持任何版本控制機制,無法將本地的配置文件Push到GitHub。
  • 內置封閉的Web daemon提供用戶GUI接口,采用Oracle DB但是用戶沒有DB root帳號和Prime 用戶帳號,即無法編輯修改數據庫文件。
  • Cicso PI是一個集網絡監測、日志服務、Netflow采集分析、配置備份和網絡自動化為一體的綜合系統,但是每一個單項拿出來都不如專門提供特定功能的系統強大,例如配置備份有RANCID,Syslog有Splunk, Netflow有Scrutinizer, 網絡監測有Observium/Nagios/Check_MK。

2. RANCID, 在我所在公司的部署中,是通過與Observium集成來實現的:

  • 通過RANCID自帶的腳本(generate-rancid.custom.php)讀取Observium inventory文件(和Linux server的/etc/hosts也有關聯)動態生成router.db,但是設備型號的描述粒度不夠細。
  • 版本控制采用CVS或SVN,與Git相比略顯老舊。
  • 通過clogin –c “show clock” “show version” ‘ls *aus*’命令來針對hostname中有‘aus’字符的所有網絡設備按順序執行一組enable模式操作。
  • 通過clogin –x commands.txt ‘ls *sv4*’命令來針對hostname中有‘sv4’字符的所有設備按順序執行一組配置命令。
  • 腳本執行過程中和用戶沒有交互,只能采用rancid自己的帳號登錄設備進行操作,審計功能弱。
  • 不如Python腳本調用command-set和device-group兩個Argument方便靈活。
  • 沒有異常處理機制(例如針對100臺設備進行批量操作,萬一第30臺設備因故障登錄失敗,腳本將停止)。

3. Ansible,發展之初更多地面向服務器進行自動化部署

(1) 實現復雜,引入很多新概念,包括如下:

  • Role/Playbook
  • Jinja2 template
  • Yaml grammar
  • Host Inventory
  • Engine/Modules/Plugins

(2) 一次Ansible操作的流程,可以顯示出完整的Ansible架構,如下圖:

Ansible架構

(3) 看似一條簡單的命令“Ansible-playbook templates.yaml”實際上需要四個input (tasks, hosts, jinja-template, vars),每個input都是特定于設備的,即每臺設備都有專門針對自己的四個參數,如果設備的數量不夠大,很可能維護變量/模板/Inventory等文件的精力要抵消自動化提高的效率。說通俗一點就是,我采用Ansible節省了30分鐘時間,但是我事先需要花2個小時準備相關的、需要被Ansible在執行過程中調用的基礎數據。

(4) 理論上更適合新建大規模數據中心的應用場景,網絡拓撲對稱且層次化,有規律可循。按照固定的Pattern來搭建,容易制定一個具有普適性的基線模板,只需為數不多的變量就可以生成不同site、type和role的設備配置文件。

(5) 由于我現在任職的公司主要是總部和分支機構之間的Corporation網絡,每個Remote site的組網原理類似Campus network,以其中一個分公司的LAN-Switch為例,共有57個個性化元素需要提取出來作為變量,工作量很大。其中的VLAN ID變量雖然只有6個,但是在288個接口上隨機分布,Jinca2模板必須為每個Interface預留VLAN ID變量的輸入;更復雜的是Interface description, 作為LAN-Switch我們需要對連接

WLC/VMW/NetApp/WAP/Zoom/Camera/Monitor系統的Port進行特別描述,但是46個接口描述變量在交換機的288個接口上也是隨機的,和其他分公司的LAN-Switch之間沒有共性,導致Ansible的變量文件幾近不可維護,花在維護變量和模版上的精力,遠遠大于自動化提高的效率。

4. 還有幾個技術方案我沒有深入研究,在NANOG會議資料中看到行業專家進行過權威陳述,摘要如下:

  • Python with NAPALM (Python module): 思科目前只支持IOS-XR,不適合企業網絡。
  • NETCONF/YANG: 12年前的IETF標準(RFC4741),截至目前只有JUNOS支持比較好。
  • XML via CLI: Schema:尚未標準化。
  • RESTful API: 工業標準還在制定中。
  • OpenFlow: 目前最新版本1.6,只有一個技術規范不足以支撐SDN生態(IETF有8000+ RFC)。

二、網絡和網絡之間的差異

上面論述了目前業界比較流行的幾種解決方案。首先我們要有這樣的共識:到目前為止網絡自動化尚沒有完美的解決方案。不同的業務模式和公司規模導致它的組網模式和組網技術差異很大。

另外,同樣是網絡,ISP網絡(以中國電信的ChinaNet為例)主要是覆蓋全國甚至全球的Backbone(由所有POP和傳送網組成),以及提供接入線路可延伸到千家萬戶的城域網組成;云計算提供商(以AWS為例)則主要是在世界各地建立自營的大型互聯網數據中心,利用租用ISP的波分或裸光纖實現所有IDC互聯;企業網絡則主要是由規模相對較小的Production backbone/IDC和用于公司總部、分部之間互聯的Corporation網絡構成。

現階段可行的方案

這三類網絡擁有者對網絡自動化的需求是不一樣的。沒有任何一種網絡自動化方案可以適應、解決所有網絡架構。我這里提出的可行方案,是基于我公司的網絡具體現實而推薦的。

我公司的網絡屬于企業網絡,有如下幾個特點:

  • 網絡結構穩定,變化不頻繁,平均每年新增一個分支機構。
  • 每次網絡的調整內容不復雜,Monitor由Solarwinds改為Observium后需要修改SNMP Community string, Netflow服務器由NFSEN改為Scrutinizer后需要修改Collector服務器地址。
  • 面向公眾的大型數據中心已經遷移到AWS,公司只維護一個用于企業內部服務(人事、法律、財務數據,和源代碼、郵件、AD/LDAP/RSA等)的小型Internal DC,網絡規模24個Rack, 不到40臺交換機。
  • 網絡由多個廠家設備組成,包括Cisco, Juniper, F5, CheckPoint等。

基于上面的分析,我們平時的網絡運營維護最大的特點是依次登錄多臺設備進行重復性的操作,或者是在現有網絡平穩運行的基礎上對部分功能進行增量配置。我們認為采用Python結合Netmiko模塊是切實可行的,滿足現階段我們的需求。

三、Python和Netmiko介紹

這個方案是我公司的Best current practice。

Python是業界很流行的腳本語言,可讀性強,模塊和函數豐富,在網絡自動化方面有很多活躍社區作出貢獻。

Netmiko是一個開源Python模塊,由Kirk Byers(https://pynet.twb-tech.com/) 維護,所有源代碼和腳本、JSON文件、技術文檔和應用范例都在GitHub上供借鑒和下載(https://github.com/ktbyers/netmiko) 。

Netmiko簡化了針對網絡設備的SSH管理功能,例如:

1. 支持不同廠家設備和同廠家不同平臺設備,成功建立SSH連接。

  • 基于Cisco和Juniper CLI的差異性,自動隱性輸入enable, conft。
  • 針對Cisco WLC,自動屏蔽login字符錄入。

2. 針對多廠家環境可順利執行Enable模式的所有操作并將設備的交互信息反饋到執行腳本的機器。

3. 針對多廠家環境可順利執行Configure模式的所有操作并將設備的交互信息反饋到執行腳本的機器。

基于上述特點,和我公司的具體需求,我們重點實現了場景1的網絡自動化,可以將自動化的實現高度提煉為如下的結構:

  1. Python script + command-set + device-group 

編制兩個Python腳本,名字為enable.py和configure.py,分別代表執行enable或configure模式下的腳本文件。每個腳本都可以調用兩個參數,一個是命令集(command-set)要執行的一組操作指令,另一個是設備組(device-group)即腳本要執行的對象。我們還優化了腳本,提供交互式的運行環境,用戶只需要鍵入腳本名稱,Python和Linux shell交互,自動詢問用戶需要執行哪組命令,用戶進行選擇后腳本自動詢問需要執行的目標設備,用戶再次進行選擇后Python按腳本順序執行,并將結果輸出到Linux服務器。

為了配合兩個不同腳本的執行,我們還制定了一些文件名稱約定,命令集本質上是txt文件,為了區分是enable還是configure模式,采用后綴名.enab和.conf來分別代表;Device-group必須采用Python字典數據結構,是JSON格式,可直接采用.json來代表。文件命名約定主要利于在Linux shell下與用戶交互時提供正確的輸出供用戶選擇。

腳本的執行環境是一臺Linux 服務器,安裝PIP和Netmiko, 腳本中調用json, netmiko, sys, signal, os等模塊/函數,實現需要的功能。此外import getpass實現通過用戶的AD帳號進行認證來登錄目標設備,并在Python輸出中隱藏用戶密碼。腳本中利用for loop來實現對命令集的逐行執行和設備集的逐個登錄。

以下是enable.py的源代碼:

  1. #!/usr/bin/env python 
  2.  
  3. from __future__ import absolute_import, division, print_function 
  4. from getpass import getpass 
  5. import json 
  6. import netmiko 
  7. #from netmiko import ConnectHandler 
  8. #from netmiko.cisco import CiscoIosBase (device type: "cisco_ios", "cisco_xe") 
  9. #from netmiko.cisco import CiscoIosBase (device type: "cisco_xe") 
  10. import sys 
  11. import signal 
  12. import os 
  13.  
  14. signal.signal(signal.SIGPIPE, signal.SIG_DFL)  # IOError: Broken pipe 
  15. signal.signal(signal.SIGINT, signal.SIG_DFL)  # KeyboardInterrupt: Ctrl-C 
  16.  
  17. def get_input(prompt=''): 
  18.     try: 
  19.         line = raw_input(prompt) 
  20.     except NameError: 
  21.         line = input(prompt) 
  22.     return line 
  23.  
  24. def get_credentials(): 
  25.     """Prompt for and return a username and password.""" 
  26.     username = get_input('Username(Please input your adm credentials): ') 
  27.     password = getpass() 
  28.     return username, password 
  29.  
  30. netmiko_exceptions = (netmiko.ssh_exception.NetMikoTimeoutException, 
  31.                       netmiko.ssh_exception.NetMikoAuthenticationException) 
  32.  
  33. username, password = get_credentials() 
  34.  
  35. os.system('find *.enab') 
  36. os.system('echo') 
  37. os.system('echo "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"') 
  38. commandfile = raw_input("Please select what command you want to run: \n") 
  39.  
  40. os.system('find *.json') 
  41. os.system('echo') 
  42. os.system('echo "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"') 
  43. devicegroup = raw_input("Please select what device-group you want to apply to: \n") 
  44.  
  45. with open(commandfile) as cmd_file: 
  46.     commands = cmd_file.readlines() 
  47.  
  48. with open(devicegroup) as dev_file: 
  49.     devices = json.load(dev_file) 
  50.  
  51. for device in devices: 
  52.     device['username'] = username 
  53.     device['password'] = password 
  54.     try: 
  55.         print('~' * 80) 
  56.         print('Connecting to device:', device['ip']) 
  57.         connection = netmiko.ConnectHandler(**device) 
  58.         for command in commands: 
  59.             print(connection.send_command(command)) 
  60.             """To keep 2 lines space between 2 devices""" 
  61.             print() 
  62.             print() 
  63.         connection.disconnect() 
  64.     except netmiko_exceptions as e: 
  65.         print('Failed to ', device['ip'], e) 

Python腳本一旦制定就不用頻繁更新,唯一需要維護的是command-set和device-group信息,因為每次的任務是不同的,包括需要批量執行的操作指令不同,每次需要對哪些設備進行操作也是特定于任務的。這就要求腳本的具體執行者需要對自己的操作編寫單獨的命令集和設備組文件。

例如我們要通過enable.py調用一組命令對lab中的所有設備依次執行,device-group的文件如下(Python字典文件,Json格式):

  1.     { 
  2.         "ip": "lab-wan-isr4431-1", 
  3.         "device_type": "cisco_xe" 
  4.     }, 
  5.     { 
  6.         "ip": "lab-wan-isr4431-2", 
  7.         "device_type": "cisco_xe" 
  8.     }, 
  9.     { 
  10.         "ip": "lab-wan-c3650-1", 
  11.         "device_type": "cisco_xe" 
  12.     }, 
  13.     { 
  14.         "ip": "lab-wan-c3650-2", 
  15.         "device_type": "cisco_xe" 
  16.     }, 
  17.     { 
  18.         "ip": "lab-lan-c3850ss-1", 
  19.         "device_type": "cisco_xe" 
  20.     } 

假定要對上面的每臺設備依次執行show clock命令,.enab的內容如下(txt格式):

  1. show clock 

執行結果將在執行此腳本的Linux服務器上,以STD1 方式輸出如下:

  1. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  2. Connecting to device: lab-wan-isr4431-1 
  3. 03:42:24.324 UTC Sat Apr 28 2018 
  4.  
  5. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  6. Connecting to device: lab-wan-isr4431-2 
  7. 03:42:29.472 UTC Sat Apr 28 2018 
  8.  
  9. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  10. Connecting to device: lab-wan-c3650-1 
  11. *03:40:15.780 UTC Sat Apr 28 2018 
  12.  
  13. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  14. Connecting to device: lab-wan-c3650-2 
  15. *03:42:05.544 UTC Sat Apr 28 2018 
  16.  
  17. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  18. Connecting to device: lab-lan-c3850ss-1 
  19. *03:42:45.277 UTC Sat Apr 28 2018 

這里的例子中,command-set只有一條show clock命令,實際上可以由多條CLI命令進行任意組合,非常靈活。我在項目中已經預先定義了一些命令集和設備組,連同Python腳本一并Push到GitHub Repository。同時在自己的Laptop上安裝了Pycharm IDE工具和GNS3網絡設備仿真環境,以及GitHub Desktop客戶端。利用這些工具,用戶可以在本地編輯腳本和配套文件,在虛擬網絡環境中驗證,并實現所有文檔的版本管理。

對于設備組的編寫我們最初希望能通過API或腳本的方式從現有網管系統自動Retrieve, 經過研究個人覺得暫時還不可行。我公司現有RANCID/PI/Observium/IPAM等幾套系統,首先是device-group的數據格式不一致,RANCID是TXT,PI是CVS, Observium是JSON,IPAM是專有格式。除了數據格式不同外,對Netmiko而言,最關鍵的信息是Device-type,這也是Netmiko支持跨平臺多廠家的最大優勢所在,都是通過對設備類型的明確指定來指導SSH登錄設備后的操作細節。

前述的幾個系統要么沒有指定設備類型(例如PI默認就只是Cisco, IPAM對設備類型根本不關注,Observium系統不對設備進行控制無需SSH登錄因此也沒有設備類型信息),要么設備類型信息粒度粗(RANCID對思科設備只有Cisco一類,但實際上思科設備可細分為IOS-XE, NX-OS, IOS-XR和IOS)。基于此,我們目前放棄了自動創建Device-group字典文件的想法。退一步講,即使我們通過腳本來自動創建一個json格式的device-group,我們仍然需要手工指定哪些設備歸屬到哪個組里面,人工參與程度并未降低,提高的效率有限。

四、其他需要考慮的問題

綜上所述,就是我們公司現在已經實現的網絡自動化。由于網絡新增站點不頻繁,一年新增一處,對這種新增網絡的部署,也暫時決定不采用Ansible/Jinca2/Task/Variable來實現,主要是不值得,我們有更簡單快捷的方式:拿一個現有站點的配置文件作為模板,對個性化的元素例如主機名、環回地址、SNMP location, BGP peer, OSPF area, Interface IP等進行修改,灌入設備,運抵現場,上電開通即可,不需要簡單問題復雜化。

另外要認識到,網絡自動化第一宗旨是提高效率,對全網只有有限數量的VPN網關,只設置在數據中心的LB,每個Site安全策略不具備共性的FW,沒有必要實行網絡自動化。

最后一點,我本人對網絡自動化還有些顧慮,就是潛在的風險。畢竟一個腳本是對一組設備執行一系列操作,萬一命令集配置有誤,有可能導致全網癱瘓。目前還沒有很完善的回退機制,一旦發生將是災難性的結果。這也是為什么我在筆記本上安裝GNS3的原因,每次需要進行驗證,確保無誤后才能執行。配套的管理流程也需要跟上,在Change工單上需要提交命令集和設備組的詳細信息,以備萬一需要回退,確定知道在哪些設備上回退哪些操作。

以上是結合我本人的工作實踐和項目研究總結的心得,網絡自動化是網絡行業的趨勢,網絡工程師無論喜歡與否,在大趨勢面前也只能順勢而為,否則就有被淘汰的危險。技術方案還在不斷進步,未來會有新的發展,即使是現有的手段,不同的公司也會有不同的推薦和實現,希望我的文章能起到拋磚引玉的作用,我也非常希望和同行業的專家交流,對文章中內容有不同觀點歡迎提出指正,相互學習,共同提高。

[[228165]]

胡捷,在國內曾經任職中國網通(CNC)、Verizon、Juniper 和中國電信。參與過中國電信 CN2 項目技術方案編寫和城域網優化改造項目,以及中國電信 IPv6 研究和現網試驗。2014 年 6 月至今在舊金山一家互聯網公司從事網絡工程師職業。

【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】

責任編輯:趙寧寧 來源: 51CTO.com
相關推薦

2013-07-02 10:45:38

2013-11-27 11:34:43

自動化部署Python

2021-09-07 09:00:00

開發測試工具

2022-07-22 14:45:46

SDKVolcRTC內存優化

2019-10-28 15:14:53

Python腳本語言Java

2021-09-03 09:56:18

鴻蒙HarmonyOS應用

2012-12-24 22:54:31

2010-12-06 09:35:27

網絡自動化

2010-12-06 09:59:58

2020-03-31 10:58:35

網絡自動化SD-WAN軟件定義網絡

2023-03-29 08:33:03

倉儲自動化系統

2021-08-04 08:27:00

VueReact自動化部署

2022-05-26 10:13:22

C/C++GCC插件單元測試

2014-12-12 14:28:31

網絡掃描AutoScan-Ne

2022-09-12 16:02:32

測試企業工具

2017-10-31 15:19:24

支付通道自動化

2021-04-28 16:49:27

自動化設備制藥

2021-11-29 18:11:33

自動化現代化網絡優化

2014-03-11 11:10:10

PowerShell自動化腳本

2020-11-04 09:00:00

自動化測試回歸測試軟件測試
點贊
收藏

51CTO技術棧公眾號

日韩激情一区二区三区| www.日本在线播放| 成人毛片18女人毛片| ccyy激情综合| 亚洲最色的网站| 亚洲a∨日韩av高清在线观看| www.av成人| 日韩免费成人| 亚洲第一精品在线| 国产专区一区二区| 男人的天堂久久久| 日韩精品一区二区三区免费视频| 亚洲一区在线观看网站| 精选一区二区三区四区五区| www.久久网| 亚洲九九视频| 日韩成人av网| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 伦xxxx在线| 成人免费不卡视频| 欧美一级片在线播放| 精品麻豆av| 国产成人久久久精品一区| 久久久高清视频| xx欧美xxx| 1024精品合集| 国产91一区二区三区| 中国一级免费毛片| 国产欧美高清视频在线| 日韩一区二区三区四区五区六区 | 免费看一级视频| 国产欧美日韩精品一区二区免费| 欧美一区午夜精品| 大胆欧美熟妇xx| 欧美新色视频| 国产精品一二三| 日本免费久久高清视频| 午夜爱爱毛片xxxx视频免费看| 日韩黄色网络| 3atv一区二区三区| 日本欧美黄色片| 91九色在线porn| 不卡的电视剧免费网站有什么| 国产男人精品视频| 神马午夜精品91| 国产91精品对白在线播放| 欧美一级二级三级乱码| 欧洲av无码放荡人妇网站| 麻豆视频网站在线观看| 久久精品视频免费| 91久久久久久久久久| 日本在线播放视频| 亚洲成人av| 精品呦交小u女在线| 日本在线播放一区二区| 在线人成日本视频| 中文字幕五月欧美| 国严精品久久久久久亚洲影视| 国产a级免费视频| 日韩主播视频在线| 国模私拍视频一区| 人妻无码一区二区三区免费| 欧美日韩国产免费观看视频| 精品无人国产偷自产在线| 制服下的诱惑暮生| 韩国精品主播一区二区在线观看| 精品久久久免费| 国产视频在线观看网站| gogo在线高清视频| 国产欧美日韩综合| 国产在线一区二区三区播放| 午夜精品久久久久久久91蜜桃| 国内国产精品久久| 国产盗摄xxxx视频xxx69| 日韩男人的天堂| 影音先锋久久资源网| 欧美久久久精品| 波多野结衣家庭教师| 欧美精美视频| 亚洲日韩第一页| 泷泽萝拉在线播放| 视频一区日韩精品| 欧美精品少妇一区二区三区| 天天摸天天舔天天操| 欧美黄色成人| 欧美日韩一区高清| 天天操天天爽天天射| 日韩久久一区二区三区| 色婷婷国产精品综合在线观看| 国产主播在线看| 欧美人与牲禽动交com| 一区二区三区在线视频免费| 精品视频在线观看一区二区| av电影在线地址| 欧美日韩午夜激情| 久久亚洲中文字幕无码| 美女视频在线免费| 午夜精品一区二区三区免费视频 | 97中文在线观看| 精品国产va久久久久久久| 国产乱码精品一品二品| 91中文字精品一区二区| av中文字幕免费在线观看| 国产成人免费av在线| 99re6热在线精品视频播放速度| 亚洲第一页视频| 99re成人精品视频| 欧美亚洲精品日韩| xxxxx日韩| 国产精品久久久久久久久搜平片| 成年丰满熟妇午夜免费视频| 精精国产xxx在线视频app| 在线观看日韩电影| 最新天堂中文在线| 成人黄色理论片| 欧美精品一区二区三区视频| 亚洲无人区码一码二码三码的含义| 国产精品99一区二区三| 久久久天堂国产精品女人| 可以免费看的av毛片| 美女网站一区二区| 91嫩草在线| 日本一本草久在线中文| 国产精品成人在线观看| av日韩一区二区三区| 欧美人与性动交xxⅹxx| 欧美揉bbbbb揉bbbbb| 国产精品无码自拍| 日韩精品免费一区二区三区竹菊| 中文字幕日韩欧美在线| 久久免费精彩视频| 校园春色综合网| 91在线无精精品一区二区| 欧美色图另类| 亚洲国产综合视频在线观看| 中文字幕中文在线| 欧美调教在线| 欧美大码xxxx| 波多野结衣在线观看视频| 国产69精品久久99不卡| 亚洲在线欧美| 性欧美xxx69hd高清| 欧美一级二级三级乱码| 久久精品国产亚洲av麻豆| 综合天堂av久久久久久久| 日韩免费中文字幕| 国产人妖一区二区三区| 日本一区二区成人在线| 日韩少妇内射免费播放18禁裸乳| 日韩一二三区| 日韩中文字幕国产精品| 六月丁香激情综合| 激情欧美一区二区| 麻豆亚洲一区| xxxx视频在线| 日韩一区国产二区欧美三区| www深夜成人a√在线| 日韩国产欧美视频| 国产精品一区二区在线观看| 中文字幕在线三区| 欧美伊人精品成人久久综合97| 国产美女喷水视频| 欧美日韩亚洲国产精品| 亚洲自拍小视频免费观看| 免费在线观看av片| 91精品办公室少妇高潮对白| 中文字幕免费视频| 99热这里只有精品8| 国产另类第一区| 天堂8中文在线| 日韩一区二区三区四区| 波多野结衣欲乱| 免费一级欧美片在线观看| 麻豆亚洲一区| 深夜成人在线| 亚洲免费人成在线视频观看| aaaaaa毛片| 久久久天堂av| 中文字幕国产传媒| 啄木系列成人av电影| 欧美性资源免费| 人人九九精品| 精品美女国产在线| youjizz.com日本| 亚洲高清av| 久久精品成人一区二区三区蜜臀| 日韩精品av| 亚洲另类图片色| 午夜一区二区三区四区| 欧美国产视频在线| 国产一区视频免费观看| 国产欧美日韩在线一区二区| 国产精品白嫩美女在线观看 | 日韩有码在线观看| 最新中文字幕在线观看视频| 综合亚洲深深色噜噜狠狠网站| 在线观看你懂的视频| 亚洲大片av| 欧美日韩高清在线一区| 日韩不卡视频在线观看| 中文字幕最新精品| 伊人网站在线观看| 国产精品久久久久aaaa| 深夜福利网站在线观看| 欧美精品激情| 久久一区二区三区av| 欧美123区| 久久夜色精品亚洲噜噜国产mv| 熟妇高潮一区二区高潮| 欧美日韩在线视频首页| 91社区视频在线观看| 国产久卡久卡久卡久卡视频精品| 亚洲人精品午夜射精日韩 | 日韩精品电影一区二区| 美女性感视频久久| 路边理发店露脸熟妇泻火| 成人激情自拍| 国产精品久久久久久影视| 成人在线网址| 日韩精品免费看| 国产又爽又黄又嫩又猛又粗| 欧美特级www| 手机av在线不卡| 成人激情午夜影院| 国产在线青青草| 女人香蕉久久**毛片精品| 日韩av高清| 美女一区2区| www.久久艹| 超碰国产精品一区二页| 国产精品久久久久久久7电影| 天堂av中文在线观看| 欧美丰满少妇xxxxx| 日本高清视频在线播放| 亚洲欧美中文字幕| 亚洲国产999| 91精品国产综合久久福利软件| 中文字幕在线观看欧美| 一本久道久久综合中文字幕| 毛片毛片女人毛片毛片| 午夜av电影一区| 豆国产97在线 | 亚洲| 亚洲精品第一国产综合野| 日韩成人短视频| 亚洲欧洲av在线| 欧美性猛交xxxx乱大交少妇| 国产精品天天摸av网| 日本爱爱爱视频| 国产亚洲短视频| 婷婷色一区二区三区| 久久久综合视频| 巨胸大乳www视频免费观看| 9久草视频在线视频精品| 日韩精品视频一区二区| 波多野结衣中文字幕一区 | 久久中文资源| 国产精品高清一区二区三区| 黑色丝袜福利片av久久| 国产精品日韩欧美一区二区三区| 精品三级av| 久久riav| av一区二区在线播放| 亚洲欧美日韩精品综合在线观看| 99精品美女| av中文字幕av| 99国产精品久久久久久久成人热 | 精品一区二区三区在线观看国产| 九九久久久久久| 国产一区二区三区av电影 | 日韩精品―中文字幕| 中文亚洲欧美| 亚洲中文字幕久久精品无码喷水| 美日韩一区二区三区| 一二三av在线| 成a人片国产精品| 一道本在线观看| 国产精品蜜臀av| 九九九在线视频| 午夜成人免费电影| 国产日产精品一区二区三区| 欧美日韩中文一区| 亚洲综合网av| 日韩精品一区二区三区三区免费 | 自拍偷拍亚洲激情| 日本精品人妻无码77777| 亚洲国产人成综合网站| 永久免费看片在线播放| 欧洲日韩一区二区三区| 国产情侣在线播放| 亚洲成人教育av| 国产女主播在线写真| 欧美精品亚州精品| 999精品网| 国产精品高清在线| 99国内精品久久久久| 精品卡一卡二| 99re66热这里只有精品8| 久久99久久99精品| 久久久国产精品一区二区中文| www.国产福利| 99精品黄色片免费大全| 亚洲一二三在线观看| 欧美日韩国产中文字幕| 91亚洲视频在线观看| 日韩黄色高清视频| aaa在线免费观看| 91禁外国网站| 韩国一区二区三区视频| 免费亚洲精品视频| 色综合咪咪久久网| 欧美黄色免费网址| 日韩精品亚洲一区二区三区免费| 老熟女高潮一区二区三区| 欧美激情在线一区二区| 日韩欧美亚洲一区二区三区| 日韩亚洲国产中文字幕欧美| 午夜视频成人| 欧美一级成年大片在线观看 | 欧洲国产精品| 国产精品久久| 一女二男3p波多野结衣| 99久久国产综合精品色伊| 色欲人妻综合网| 欧美日韩一区二区三区四区五区| 欧美日本韩国一区二区| 午夜精品福利电影| 国内自拍亚洲| 欧洲精品久久| 妖精视频成人观看www| xxxx国产视频| 国产精品家庭影院| 久久久精品免费看| 日韩精品一区二区三区四区 | 色综合天天综合狠狠| 亚洲女人18毛片水真多| 久久久成人的性感天堂| 成人影院在线免费观看| 日韩av高清| 水野朝阳av一区二区三区| 亚洲制服丝袜在线播放| 亚洲一区二区三区不卡国产欧美| 国产福利第一视频| 中文字幕在线看视频国产欧美| ww久久综合久中文字幕| 日韩欧美电影一区二区| 日本欧洲一区二区| 精品人妻一区二区免费视频| 午夜欧美视频在线观看| 老熟妇高潮一区二区高清视频| 欧美激情第1页| 亚洲日本va午夜在线电影| 日本道在线视频| 国产麻豆视频精品| 日韩一卡二卡在线观看| 欧美日韩高清影院| 国产视频三级在线观看播放| 国产精品三级美女白浆呻吟| 日韩欧美大片| 超碰成人在线播放| 国产免费成人在线视频| 最近中文字幕av| 北条麻妃久久精品| 日韩黄色三级在线观看| 亚洲国产精品女人| 狠狠色丁香久久婷婷综合_中| 在线观看成人毛片| 欧美一区二区美女| a视频在线观看免费| 国产精品手机在线| 99精品视频免费观看视频| 大又大又粗又硬又爽少妇毛片| 欧美中文字幕不卡| av一本在线| 亚洲影视九九影院在线观看| 在线观看一区| 一级片视频免费看| 欧美亚洲禁片免费| 中文字幕在线免费| 成人精品在线观看| 在线中文字幕亚洲| 台湾佬美性中文| 色综合久久综合中文综合网| 巨大荫蒂视频欧美大片| 国产精品二区二区三区| 欧美一级专区| 糖心vlog免费在线观看| 精品99999| 亚洲电影有码| 麻豆传媒网站在线观看| 久久综合狠狠综合| 国产女优在线播放| 免费不卡欧美自拍视频| 欧美电影免费网站| 欧美在线观看视频网站| 亚洲欧洲日产国码二区| 色网站免费观看| 国产精品稀缺呦系列在线| 激情欧美亚洲| 青青青视频在线免费观看| 亚洲黄色av网站|