Trunk概念
- 接入链路 :接入终端 PC access 只能跑对应的VLAN数据
- 中继链路 :接入其他网络设备(交换机,路由器) trunk 可以跑所VLAN数据
实验拓扑
Python脚本
#需要先配置SSH
# ********************************************************************
# Author: LinWeiWei
# Date: 2022-03-01
# Description: paramiko SSH module and provides H3C switch configuration services
# ********************************************************************
# The standard library
import paramiko
import time
# Create input info
def input_select():
print("""------------Life is short,use python------------
1、VLAN Access config
2、pass
3、pass
4、pass
5、pass
6、pass
7、pass
8、pass
9、pass
10、quit
""")
temp = input('Hello world!Please enter 1-10 numbers choice effect : ')
global guess
guess = int(temp)
# Create an SSH class
class MySSH(object):
# Create an SSH info
def __init__(self, ip, username, password):
self._ip = ip
self._username = username
self._password = password
# Create an SSH connection
def connect(self):
global ssh
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # Trusting SSH Connections
ssh.connect(hostname=self._ip, port=22, username=self._username, password=self._password, timeout=3)
print("Successful connection", self._ip)
# Exective command
def exec_command(object,
cd1='', cd2='', cd3='', cd4='', cd5='', cd6='', cd7='', cd8='', cd9='', cd10='',
cd11='', cd12='', cd13='', cd14='', cd15='', cd16='', cd17='', cd18='', cd19='', cd20='',
cd21='', cd22='', cd23='', cd24='', cd25='', cd26='', cd27='', cd28='', cd29='', cd30='',
cd31='', cd32='', cd33='', cd34='', cd35='', cd36='', cd37='', cd38='', cd39='', cd40='',
cd41='', cd42='', cd43='', cd44='', cd45='', cd46='', cd47='', cd48='', cd49='', cd50='',
cd51='', cd52='', cd53='', cd54='', cd55='', cd56='', cd57='', cd58='', cd59='', cd60=''):
cli = ssh.invoke_shell()
cli.send(cd1 + "\n")
cli.send(cd2 + "\n")
cli.send(cd3 + "\n")
cli.send(cd1 + "\n")
cli.send(cd2 + "\n")
cli.send(cd3 + "\n")
cli.send(cd4 + "\n")
cli.send(cd5 + "\n")
cli.send(cd6 + "\n")
cli.send(cd7 + "\n")
cli.send(cd8 + "\n")
cli.send(cd9 + "\n")
cli.send(cd10 + "\n")
cli.send(cd11 + "\n")
cli.send(cd12 + "\n")
cli.send(cd13 + "\n")
cli.send(cd14 + "\n")
cli.send(cd15 + "\n")
cli.send(cd16 + "\n")
cli.send(cd17 + "\n")
cli.send(cd18 + "\n")
cli.send(cd19 + "\n")
cli.send(cd20 + "\n")
cli.send(cd21 + "\n")
cli.send(cd22 + "\n")
cli.send(cd23 + "\n")
cli.send(cd24 + "\n")
cli.send(cd25 + "\n")
cli.send(cd26 + "\n")
cli.send(cd27 + "\n")
cli.send(cd28 + "\n")
cli.send(cd29 + "\n")
cli.send(cd30 + "\n")
cli.send(cd31 + "\n")
cli.send(cd32 + "\n")
cli.send(cd33 + "\n")
cli.send(cd34 + "\n")
cli.send(cd35 + "\n")
cli.send(cd36 + "\n")
cli.send(cd37 + "\n")
cli.send(cd38 + "\n")
cli.send(cd39 + "\n")
cli.send(cd40 + "\n")
cli.send(cd41 + "\n")
cli.send(cd42 + "\n")
cli.send(cd43 + "\n")
cli.send(cd44 + "\n")
cli.send(cd45 + "\n")
cli.send(cd46 + "\n")
cli.send(cd47 + "\n")
cli.send(cd48 + "\n")
cli.send(cd49 + "\n")
cli.send(cd50 + "\n")
cli.send(cd51 + "\n")
cli.send(cd52 + "\n")
cli.send(cd53 + "\n")
cli.send(cd54 + "\n")
cli.send(cd55 + "\n")
cli.send(cd56 + "\n")
cli.send(cd57 + "\n")
cli.send(cd58 + "\n")
cli.send(cd59 + "\n")
cli.send(cd60 + "\n")
time.sleep(3)
output = cli.recv(65535).decode('utf-8').replace('\r', '')
print(output)
ssh.close()
# Modify configuration commands based on scenarios
input_select()
a = MySSH(ip="10.88.1.26", username="admin", password="P@ssw0rd!@#")
a.connect()
a.exec_command() #键入代码
[SW1]vlan batch 10 20 30 40
Info: This operation may take a few seconds. Please wait for a moment…done.
[SW1]int e0/0/1
[SW1-Ethernet0/0/1]port link-type acces
[SW1-Ethernet0/0/1]port default vlan 10
[SW1-Ethernet0/0/1]int e0/0/2
[SW1-Ethernet0/0/2]port link-type access
[SW1-Ethernet0/0/2]port default vlan 20
[SW1-Ethernet0/0/2]int e0/0/3
[SW1-Ethernet0/0/3]port link-type trunk
[SW1-Ethernet0/0/3]port trunk allow-pass vlan all
SW2相同
[SW3]vlan batch 10 20 30 40
Info: This operation may take a few seconds. Please wait for a moment…done.
[SW3]int g0/0/1
[SW3-GigabitEthernet0/0/1]port link-type trunk
[SW3-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[SW3-GigabitEthernet0/0/1]int g0/0/2
[SW3-GigabitEthernet0/0/2]port link-type trunk
[SW3-GigabitEthernet0/0/2]port trunk allow-pass vlan all
[SW3-GigabitEthernet0/0/2]q
[SW3]int vlanif 10
[SW3-Vlanif10]ip add 192.168.10.1 24
[SW3-Vlanif10]int vlanif 20
[SW3-Vlanif20]ip add 192.168.20.1 24
[SW3-Vlanif20]int vlanif 30
[SW3-Vlanif30]ip add 192.168.30.1 24
[SW3-Vlanif30]int vlanif 40
[SW3-Vlanif40]ip add 192.168.40.1 24