日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

網絡工程領域不斷出現新的協議、技術、交付和運維模式。傳統網絡面臨著云計算、人工智能等新連接需求的挑戰。企業也在不斷追求業務的敏捷、靈活和彈性。在這些背景下,網絡自動化變得越來越重要。

網絡編程與自動化旨在簡化工程師網絡配置、管理、監控和操作等相關工作,提高工程師部署和運維效率。本課程定位于指導網絡工程師初步了解Python/ target=_blank class=infotextkey>Python編程實現網絡自動化

背景:傳統網絡運維困境

傳統的網絡運維工作需要網絡工程師手動登錄網絡設備,人工查看和執行配置命令,肉眼篩選配置結果。這種嚴重依賴“人”的工作方式操作流程長,效率低下,而且操作過程不易審計。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

經典運維場景

在工作中你是否遇到過這樣的場景:

1.設備升級:現網有數千臺網絡設備,你需要周期性、批量性地對設備進行升級。

2.配置審計:企業年度需要對設備進行配置審計。例如要求所有設備開啟sTe.NET功能,以太網交換機配置生成樹安全功能。你需要快速地找出不符合要求的設備。

3.配置變更:因為網絡安全要求,需要每三個月修改設備賬號和密碼。你需要在數千臺網絡設備上刪除原有賬號并新建賬號。

網絡自動化

網絡自動化,通過工具實現網絡自動化地部署、運行和運維,逐步減少對“人”的依賴。這能夠很好地解決傳統網絡運維的問題。

業界有很多實現網絡自動化的開源工具,例如Ansible、SaltStack、Puppet、Chef等。從網絡工程能力構建的角度考慮,更推薦工程師具備代碼編程能力。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

基于編程實現的網絡自動化

近幾年隨著網絡自動化技術的興起,以Python為主的編程能力成為了網絡工程師的新技能要求。

Python編寫的自動化腳本能夠很好的執行重復、耗時、有規則的操作。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

舉例:Python實現設備自動化配置

網絡自動化能做什么?最直觀的一個網絡自動化例子就是自動化配置設備。我們可以把這個過程分為兩個步驟:編寫配置文件和編寫Python代碼將配置文件推送到設備上。

首先用命令行方式寫配置腳本,然后通過Telnet/SSH將它傳到設備上運行。這種方式對于初學網絡編程與自動化的網絡工程師來說,比較容易理解。本章節主要介紹這種方式實現網絡自動化。

編程語言

編程語言(Programming Language),是一種用于編寫計算機程序的語言,用于控制計算機的行為。

按照語言在執行之前是否需要編譯區分,可以將編程語言分為需要編譯的編譯型語言(Compiled Language),不需要編譯的解釋型語言(Interpreted Language) 。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

計算技術棧與程序執行過程

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

高級編程語言 - 編譯型語言

編譯型語言:編譯型語言的程序在執行之前有一個編譯過程,把程序編譯成為機器語言的文件。運行時不需要重新翻譯,直接使用編譯的結果。典型的如C/C++/Go語言,都屬于編譯型語言。

從源碼到程序的過程:源碼需要由編譯器、匯編器翻譯成機器指令,再通過鏈接器鏈接庫函數生成機器語言程序。機器語言必須與CPU的指令集匹配,在運行時通過加載器加載到內存,由CPU執行指令。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

高級編程語言 - 解釋型語言

解釋型語言:解釋型語言的程序不需要在運行前編譯,在運行程序的時候才逐行翻譯。典型的如JAVA/Python語言,都屬于解釋型語言。

從源碼到程序的過程:解釋型語言的源代碼由編譯器生成字節碼,然后再由虛擬機(JVM/PVM)解釋執行。虛擬機將不同CPU指令集的差異屏蔽,因此解釋型語言的可移植性相對較好。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

什么是Python?

Python是一門完全開源的高級編程語言。它的作者是Guido Van Rossum。

Python的優點:

•Python擁有優雅的語法、動態類型具有解釋性質。能夠讓學習者從語法細節的學習中抽離,專注于程序邏輯。

•Python同時支持面向過程和面向對象的編程。

•Python擁有豐富的第三方庫。

Python可以調用其他語言所寫的代碼,又被稱為膠水語言。

Python的缺點:

•運行速度慢。Python是解釋型語言,不需要編譯即可運行。代碼在運行時會逐行地翻譯成CPU能理解的機器碼,這個翻譯過程非常耗時。

由于Python具有非常豐富的第三方庫,加上Python語言本身的優點,所以Python可以在非常多的領域內使用:人工智能、數據科學、App、自動化運維腳本等。

Python代碼執行過程

Python網絡編程實現自動化,簡化Telnet網絡配置工作

Python程序編譯運行的過程Python程序編譯運行的過程

操作過程:

1、在操作系統上安裝Python和運行環境。

2、編寫Python源碼。

3、編譯器運行Python源碼,編譯生成pyc文件(字節碼)。

4、Python虛擬機將字節碼轉換為機器語言。

5、硬件執行機器語言。

初識Python代碼 - 交互式運行

Python有兩種運行方式,交互式運行和腳本式運行。

交互式編程不需要創建腳本文件,是通過 Python 解釋器的交互模式編寫代碼。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

代碼塊:

C:UsersRichard>python
Python 3.7.4 (default, Aug  9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print ("hello world")
hello world
>>> a = 1
>>> b = 2
>>> print ( a + b )
3
>>> 

初識Python代碼 - 腳本式運行

腳本模式里的代碼可以在各種Python編譯器或者集成開發環境上運行。例如Python自帶的IDLE、Atom、Visual Studio、Pycharm和Anaconda等。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

Python編碼規范

編碼規范是使用Python編寫代碼時應遵守的命名規則、代碼縮進、代碼和語句分割方式等。良好的編碼規范有助于提高代碼的可讀性,便于代碼的維護和修改。

例如分號、圓括號、空行和空格的使用規范建議如下:

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

Python編碼規范 - 標識符命名

Python標識符用于表示常量、變量、函數以及其他對象的名稱。

標識符通常由字母、數字和下劃線組成,但不能以數字開頭。標識符大小寫敏感,不允許重名。如果標識符不符合規則,編譯器運行代碼時會輸出SyntaxError語法錯誤。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

備注:

•Python最基本的數據類型有布爾型(True/False)、整數、浮點型、字符串型。Python里的所有數據(布爾值、整數、浮點、字符串,甚至大型數據結構、函數以及程序)都是以對象(object)的形式存在的。這使得Python語言有很強的統一性。

•運行結果分別為10,20,Richard,2,SyntaxError(語法錯誤)。

•本文不對Python語法做針對介紹,更多Python語法請參考HCIP課程。

Python編碼規范 - 代碼縮進

在Python程序中,代碼縮進代表代碼塊的作用域。如果一個代碼塊包含兩個或更多的語句,則這些語句必須具有相同的縮進量。對于Python而言代碼縮進是一種語法規則,它使用代碼縮進和冒號來區分代碼之間的層次。

編寫代碼時候,建議使用4個空格來生成縮進。如果程序代碼中使用了錯誤的縮進,則會在運行中發出IndentationError錯誤信息。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

Python編碼規范 - 使用注釋

•注釋就是在程序中添加解釋說明,能夠增強程序的可讀性。在Python程序中,注釋分為單行注釋和多行注釋。

•單行注釋以 # 字符開始直到行尾結束。

•多行注釋內容可以包含多行,這些內容包含在一對三引號內(’’’…’’’或者”””…”””)。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

Python編碼規范 - 源碼文件結構

一個完整的Python源碼文件一般包含幾個組成部分:解釋器和編碼格式聲明、文檔字符串、模塊導入和運行代碼。

如果會在程序中調用標準庫或其他第三方庫的類時,需要先使用import或from… import語句導入相關的模塊。導入語句始終在文件的頂部。在模塊注釋或文檔字符串(docstring)之后。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

Python的函數與模塊

函數(Function)是組織好的、可重復使用的一段代碼。它能夠提高程序的模塊化程度和代碼利用率。函數使用關鍵字 def 定義。

模塊(Module)是一個保存好的Python文件。模塊可以由函數或者類組成。模塊和常規Python程序之間的唯一區別是用途不同:模塊用于被其他程序調用。因此,模塊通常沒有main函數。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

Python的類與方法

類(Class)是用來描述具有一類相同的屬性和方法的集合。類的定義使用關鍵字 class。

被實例化的類的”函數”被稱作方法(Method)。類定義方法時候必須攜帶 self 關鍵字,它表示類的實例本身。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

telnetlib介紹

telnetlib是Python標準庫中的模塊。它提供了實現Telnet功能的類telnetlib.Telnet。

這里通過調用telnetlib.Telnet類里的不同方法實現不同功能。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 


Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

案例:使用telnetlib登陸設備

案例描述:

現有一臺網絡設備作為Telnet服務器,需要實現使用Python telnetlib作為Telnet客戶端登錄此設備。

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

實現過程分為四個步驟:

1、配置設備Telnet服務。

2、手動驗證和查看Telnet登錄步驟,作為代碼實現的參考。

3、編寫和運行Python代碼。

4、驗證結果。

案例:使用telnetlib登陸設備

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

配置設備接口地址:

[Huawei] interface GE 1/0/0
[Huawei -GE1/0/0] ip add 192.168.10.10 24
[Huawei -GE1/0/0] quit 

配置設備Telnet服務:

[Huawei] user-interface vty 0 4
[Huawei-ui-vty0-4] authentication-mode password
[Huawei-ui-vty0-4] set authentication password simple Huawei@123
[Huawei-ui-vty0-4] protocol inbound telnet
[Huawei-ui-vty0-4] user privilege level 15
[Huawei-ui-vty0-4] quit
[Huawei] telnet server enable 

案例:使用telnetlib登陸設備

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 


Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

案例:使用telnetlib登陸設備

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 


Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

案例:運行結果對比

Python網絡編程實現自動化,簡化Telnet網絡配置工作

 

手動Telnet登錄結果:

C:UsersRichard>telnet 192.168.10.10
Login authentication  
                                                                                                                                                                                                                          Password:                                                                       
Info: The max number of VTY users is 5, and the number of current VTY users on line is 1.                                              The current login time is 2020-01-15 21:12:57.                            
<Huawei>

Python代碼運行結果:

#編譯器運行Python代碼
Info: The max number of VTY users is 5, and the number
      of current VTY users on line is 1.
      The current login time is 2020-01-15 22:12:57.
<Huawei>

總結:

網絡自動化是通過工具實現網絡自動化的部署、運行和運維,逐步減少對“人”的依賴。可以通過編程語言或者工具實現。

Python是一門完全開源的高級編程語言,語法簡單,容易學習。擁有豐富的標準庫和第三方庫,適用于網絡工程領域。

Python的telnetlib模塊提供了實現Telnet功能的類telnetlib.Telnet。可以讓您初窺網絡編程與自動化世界!華為更多開放可編程內容請參考HCIP-Datacom!

分享到:
標簽:網絡編程
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定