0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用Python腳本登錄到交換機并創(chuàng)建VLAN

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來源:網(wǎng)絡(luò)技術(shù)干貨圈 ? 2024-08-12 17:59 ? 次閱讀

轉(zhuǎn)載請注明以下內(nèi)容:

來源:公眾號【網(wǎng)絡(luò)技術(shù)干貨圈】

作者:圈圈

ID:wljsghq

本文將詳細介紹如何利用Python腳本登錄到交換機并創(chuàng)建VLAN

環(huán)境準備

硬件與軟件要求

硬件要求:一臺支持SSH的網(wǎng)絡(luò)交換機

軟件要求

Python 3.x

相關(guān)Python庫:paramiko、netmiko

Python庫安裝

在開始編寫腳本之前,需要安裝必要的Python庫。使用以下命令安裝:

pipinstallparamikonetmiko

了解交換機的基本操作

在登錄到交換機并創(chuàng)建VLAN之前,我們需要了解一些基本的交換機操作命令。這些命令通常通過SSH(Secure Shell)發(fā)送到交換機上執(zhí)行。以下是一些常見的交換機命令:

登錄交換機:通過SSH使用用戶名和密碼登錄到交換機。

進入全局配置模式:configure terminal

創(chuàng)建VLAN:vlan

命名VLAN:name

保存配置:write memory 或 copy running-config startup-config

使用Python腳本登錄交換機

使用Paramiko庫登錄交換機

paramiko是一個用于實現(xiàn)SSH協(xié)議的Python庫,可以用來遠程連接交換機。以下是一個簡單的示例,展示如何使用paramiko登錄到交換機:

importparamiko

defssh_connect(hostname,username,password):
#創(chuàng)建SSH客戶端對象
ssh=paramiko.SSHClient()
#自動添加主機密鑰
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#連接到交換機
ssh.connect(hostname,username=username,password=password)
returnssh

#示例用法
hostname='192.168.1.1'
username='admin'
password='password'

ssh=ssh_connect(hostname,username,password)
print("成功登錄到交換機")

使用Netmiko庫登錄交換機

netmiko是基于paramiko封裝的一個庫,專為網(wǎng)絡(luò)設(shè)備自動化管理設(shè)計,使用起來更為方便。以下是使用netmiko登錄到交換機的示例:

fromnetmikoimportConnectHandler

defnetmiko_connect(hostname,username,password,device_type='cisco_ios'):
#設(shè)備信息
device={
'device_type':device_type,
'host':hostname,
'username':username,
'password':password,
}
#連接到交換機
net_connect=ConnectHandler(**device)
returnnet_connect

#示例用法
hostname='192.168.1.1'
username='admin'
password='password'

net_connect=netmiko_connect(hostname,username,password)
print("成功登錄到交換機")

使用Python腳本創(chuàng)建VLAN

使用Paramiko創(chuàng)建VLAN

在成功登錄交換機后,可以使用paramiko發(fā)送命令創(chuàng)建VLAN。以下是一個完整的示例:

importparamiko
importtime

defssh_connect(hostname,username,password):
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname,username=username,password=password)
returnssh

defcreate_vlan(ssh,vlan_id,vlan_name):
#打開一個交互式Shell會話
remote_conn=ssh.invoke_shell()
#進入全局配置模式
remote_conn.send("configureterminal
")
time.sleep(1)
#創(chuàng)建VLAN
remote_conn.send(f"vlan{vlan_id}
")
time.sleep(1)
#命名VLAN
remote_conn.send(f"name{vlan_name}
")
time.sleep(1)
#退出配置模式
remote_conn.send("end
")
time.sleep(1)
#保存配置
remote_conn.send("writememory
")
time.sleep(1)
output=remote_conn.recv(65535).decode('utf-8')
returnoutput

#示例用法
hostname='192.168.1.1'
username='admin'
password='password'
vlan_id=10
vlan_name='Test_VLAN'

ssh=ssh_connect(hostname,username,password)
output=create_vlan(ssh,vlan_id,vlan_name)
print("VLAN創(chuàng)建成功")
print(output)

使用Netmiko創(chuàng)建VLAN

使用netmiko庫創(chuàng)建VLAN的代碼更為簡潔。以下是一個完整的示例:

fromnetmikoimportConnectHandler

defnetmiko_connect(hostname,username,password,device_type='cisco_ios'):
device={
'device_type':device_type,
'host':hostname,
'username':username,
'password':password,
}
net_connect=ConnectHandler(**device)
returnnet_connect

defcreate_vlan(net_connect,vlan_id,vlan_name):
commands=[
'configureterminal',
f'vlan{vlan_id}',
f'name{vlan_name}',
'end',
'writememory'
]
output=net_connect.send_config_set(commands)
returnoutput

#示例用法
hostname='192.168.1.1'
username='admin'
password='password'
vlan_id=10
vlan_name='Test_VLAN'

net_connect=netmiko_connect(hostname,username,password)
output=create_vlan(net_connect,vlan_id,vlan_name)
print("VLAN創(chuàng)建成功")
print(output)

腳本優(yōu)化與錯誤處理

在實際應(yīng)用中,我們可能會遇到各種錯誤和異常情況,例如登錄失敗、命令執(zhí)行失敗等。為了使腳本更加健壯,我們需要加入錯誤處理機制。

使用Paramiko的錯誤處理

以下是加入錯誤處理后的paramiko腳本:

importparamiko
importtime

defssh_connect(hostname,username,password):
try:
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname,username=username,password=password)
returnssh
exceptparamiko.AuthenticationException:
print("認證失敗,請檢查用戶名和密碼。")
exceptparamiko.SSHExceptionassshException:
print(f"無法建立SSH連接:{sshException}")
exceptExceptionase:
print(f"出現(xiàn)錯誤:{e}")

defcreate_vlan(ssh,vlan_id,vlan_name):
try:
remote_conn=ssh.invoke_shell()
remote_conn.send("configureterminal
")
time.sleep(1)
remote_conn.send(f"vlan{vlan_id}
")
time.sleep(1)
remote_conn.send(f"name{vlan_name}
")
time.sleep(1)
remote_conn.send("end
")
time.sleep(1)
remote_conn.send("writememory
")
time.sleep(1)
output=remote_conn.recv(65535).decode('utf-8')
returnoutput
exceptExceptionase:
print(f"創(chuàng)建VLAN時出錯:{e}")

#示例用法
hostname='192.168.1.1'
username='admin'
password='password'
vlan_id=10
vlan_name='Test_VLAN'

ssh=ssh_connect(hostname,username,password)
ifssh:
output=create_vlan(ssh,vlan_id,vlan_name)
ifoutput:
print("VLAN創(chuàng)建成功")
print(output)
ssh.close()

使用Netmiko的錯誤處理

以下是加入錯誤處理后的netmiko腳本:

fromnetmikoimportConnectHandler,NetMikoAuthenticationException,NetMikoTimeoutException

defnetmiko_connect(hostname,username,password,device_type='cisco_ios'):
device={
'device_type':device_type,
'host':hostname,
'username':username,
'password':password,
}
try:
net_connect=ConnectHandler(**device)
returnnet_connect
exceptNetMikoAuthenticationException:
print("認證失敗,請檢查用戶名和密碼。")
exceptNetMikoTimeoutException:
print("連接超時,請檢查交換機的網(wǎng)絡(luò)連接。")
exceptExceptionase:
print(f"出現(xiàn)錯誤:{e}")

defcreate_vlan(net_connect,vlan_id,vlan_name):
try:
commands=[
'configureterminal',
f'vlan{vlan_id}',
f'name{vlan_name}',
'end',
'writememory'
]
output=net_connect.send_config_set(commands)
returnoutput
exceptExceptionase:
print(f"創(chuàng)建VLAN時出錯:{e}")

#示例用法
hostname='192.168.1.1'
username='admin'
password='password'
vlan_id=10
vlan_name='Test_V

LAN'

net_connect=netmiko_connect(hostname,username,password)
ifnet_connect:
output=create_vlan(net_connect,vlan_id,vlan_name)
ifoutput:
print("VLAN創(chuàng)建成功")
print(output)
net_connect.disconnect()

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 交換機
    +關(guān)注

    關(guān)注

    21

    文章

    2640

    瀏覽量

    99637
  • VLAN
    +關(guān)注

    關(guān)注

    1

    文章

    278

    瀏覽量

    35656
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84682
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    389

    瀏覽量

    14864

原文標題:利用Python腳本怎么登錄到交換機并且創(chuàng)建VLAN?

文章出處:【微信號:網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號:網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    三層交換機VLAN路由的配置方法

    掌握vlan路由技術(shù)之三層交換機vlan路由的配置方法和結(jié)果驗證。
    的頭像 發(fā)表于 12-15 11:11 ?3221次閱讀
    三層<b class='flag-5'>交換機</b><b class='flag-5'>VLAN</b>路由的配置方法

    使用paramiko在eNSP的交換機中批量創(chuàng)建VLAN

    cloud連接本機,ip地址為192.168.56.1,五臺交換機的配置的地址為192.168.1.11~55。現(xiàn)在通過paramiko,ssh進入五臺設(shè)備,并且在五臺設(shè)備上分別創(chuàng)建vlan10-vlan20這11個
    的頭像 發(fā)表于 01-20 17:52 ?1662次閱讀
    使用paramiko在eNSP的<b class='flag-5'>交換機</b>中批量<b class='flag-5'>創(chuàng)建</b><b class='flag-5'>VLAN</b>

    ISM交換機如何添加VLAN呢?

    兩臺交換機額直接,PC連接F1/1 VLAN100 。 兩臺交換機設(shè)置是一樣的,登錄交換機192.168.2.2 用戶名 adm 密碼 1
    發(fā)表于 07-25 07:55

    [分享]常見網(wǎng)絡(luò)交換機故障及應(yīng)用問答

    。通常,在VLAN結(jié)構(gòu)發(fā)生變化的交換機上才采用服務(wù)器方式傳輸信息。一般地,分配級或訪問級交換機都設(shè)置為“vtp client”,這樣它們便可以接收傳送這些信息,但并不主動發(fā)送信息。如
    發(fā)表于 06-02 11:31

    華為路由器交換機VLAN配置實例

    華為路由器交換機VLAN配置實例[hide]華為路由器交換機VLAN配置實例使用4臺PC(pc多和少,原理是一樣的,所以這里我只用了4臺pc),華為路由器(R2621)、
    發(fā)表于 05-25 00:21

    交換機VLAN是如何實現(xiàn)的

    自動設(shè)置對應(yīng)的VLAN ID。  5、基于用戶的VLAN  根據(jù)操作系統(tǒng)的登錄用戶決定VLAN?! ?、Access接口和Trunk接口  交換機
    發(fā)表于 01-12 16:16

    交換機VLAN配置

    交換機VLAN配置
    發(fā)表于 12-27 16:49 ?0次下載

    二層交換機web配置教程

    啟動WEB服務(wù) 配置交換機VLAN接口的IP地址,交換機與WEB網(wǎng)管終端間路由可達。配置欲登錄的WEB網(wǎng)管用戶名和認證口令第一步:通過 Console口正確配置以太網(wǎng)
    發(fā)表于 03-06 11:06 ?2.6w次閱讀

    聊聊科地網(wǎng)管PoE交換機VLAN如何配置

    VLAN就是我們常說的虛擬局域網(wǎng)。VLAN是一種將局域網(wǎng)設(shè)備從邏輯上劃分成多個網(wǎng)段,從而實現(xiàn)虛擬工作組的數(shù)據(jù)交換技術(shù)。這一技術(shù)主要應(yīng)用于交換機和路由器中,但主流應(yīng)用還是在
    的頭像 發(fā)表于 12-11 16:29 ?9450次閱讀

    交換機劃分vlan的原因是什么

    有很多朋友就問到老胡vlan如何分配,這個是交換機在劃分網(wǎng)絡(luò)的時候會常用到,這里面我們就以最直接了解下,單獨對vlan基本操作,方便我們?nèi)粘L幚?b class='flag-5'>交換機配置,本期我們從
    發(fā)表于 08-18 15:44 ?2067次閱讀

    登錄網(wǎng)絡(luò)交換機的三種方法

    一般網(wǎng)絡(luò)交換機購買后就可以直接使用。那么,如果要配置VLAN或關(guān)閉端口,首先應(yīng)該知道如何訪問交換機。下面以FS 3900-24F4S交換機為例詳細說明三種常見的
    發(fā)表于 10-29 17:24 ?1.1w次閱讀
    <b class='flag-5'>登錄</b>網(wǎng)絡(luò)<b class='flag-5'>交換機</b>的三種方法

    python巡檢華為交換機

    SSH登錄到各個交換機收集軟件版本、CPU、內(nèi)存利用率和硬件狀態(tài)信息。
    的頭像 發(fā)表于 12-30 09:13 ?1331次閱讀

    如何配置交換機SSH遠程登錄?

    如何配置交換機SSH遠程登錄,本期我們就來了解下ssh遠程登陸的方式,以銳捷交換機為例。
    的頭像 發(fā)表于 08-02 09:35 ?3809次閱讀
    如何配置<b class='flag-5'>交換機</b>SSH遠程<b class='flag-5'>登錄</b>?

    使用Python腳本備份華為交換機的配置信息

    在現(xiàn)代網(wǎng)絡(luò)管理中,備份交換機的配置信息是一項至關(guān)重要的任務(wù)。備份可以確保在交換機發(fā)生故障或配置錯誤時,能夠迅速恢復(fù)到之前的工作狀態(tài)。本文將詳細介紹如何使用Python腳本備份華為
    的頭像 發(fā)表于 08-12 17:50 ?573次閱讀
    使用<b class='flag-5'>Python</b><b class='flag-5'>腳本</b>備份華為<b class='flag-5'>交換機</b>的配置信息

    VLAN 交換機與路由器的區(qū)別

    在現(xiàn)代網(wǎng)絡(luò)架構(gòu)中,VLAN交換機和路由器是構(gòu)建高效、安全網(wǎng)絡(luò)的基石。 VLAN交換機 VLAN交換機
    的頭像 發(fā)表于 11-19 09:36 ?311次閱讀