我们在上一章完成了用代码操作telnet,实现了远程控制,分析前面的代码会发现健壮性太低,需要进行优化,后续会通过开发一个交互式界面来完成人工介入操作网络的过程。本次实验目的:实现自动化创建环回口

首先更新拓扑,拉出新的路由器和一台交换机

wKioL1mkAQDBRfBqAAAffPh0MTQ421.jpg-wh_50

import telnetlib

import time

def main():

         Host="192.168.10.100"

         username="yerik"

         password="1111"

         commends=['enable','2222','conft']#相关指令

        

         tn= telnetlib.Telnet(Host,port=23,timeout=10)

         tn.set_debuglevel(2)

 

         #login input username

        

         tn.read_until('Username:') # 期待回复

         tn.write(username+'\n')

 

         #input password

         tn.read_until('Password:') # 期待回复

         tn.write(password+'\n')

 

         tn.read_until('R1>')

         forcommend in commends:

                   tn.write("%s\n"% commend)

         '''

         tn.read_until('R1#')

         tn.write('configure')

         time.sleep(1)

         tn.write('t')'''

 

         tn.read_until('R1(config)#')

         loopback= 'int lo'

         ipaddr= ' 255.255.255.255'

         exit= 'exit'

         fori in range(1,5):

                   loopbackn=loopback+str(i)

                   time.sleep(1)

                   tn.write("%s\n"% loopbackn)

                   ipaddrn='ipadd '+str(i)+'.'+str(i)+'.'+str(i)+'.'+str(i)+ipaddr

                   time.sleep(1)

                   tn.write("%s\n"% ipaddrn)

                   time.sleep(1)

                   tn.write("%s\n"% exit)

         tn.close()

 

if __name__=='__main__':

         main()

wKioL1mkARmD9yt5AAB7NUOojTw674.jpg

发现已经创建成功了

wKioL1mkAS7Qo12WAAA4uHXqdeE500.jpg

由于此时还没有运行路由协议,请问有什么办法可以ping到这些环回口?使用ping中的严格源站路由技术,通过R2pingR1 在特权界面中,输入ping

ping

Protocol [ip]:

Target IP address: 2.2.2.2

Repeat count [5]:

Datagram size [100]:

Timeout in seconds [2]:

Extended commands [n]: y

Source address or interface: 192.168.10.102

Type of service [0]:

Set DF bit in IP header? [no]:

Validate reply data? [no]:

Data pattern [0xABCD]:

Loose, Strict, Record, Timestamp, Verbose[none]:Strict

Source route: 192.168.10.101

Loose, Strict, Record, Timestamp,Verbose[SV]:

Sweep range of sizes [n]:

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 2.2.2.2,timeout is 2 seconds:

Packet sent with a source address of192.168.10.102

Packet has IP options:  Total option bytes= 7, padded length=8

 Strict source route: <*>

  (192.168.10.101)

 

Reply to request 0 (20 ms).  Received packet has options

 Total option bytes= 8, padded length=8

 Strict source route:

  (192.168.10.101)

  <*>

 Endof list

 

Reply to request 1 (28 ms).  Received packet has options

 Total option bytes= 8, padded length=8

 Strict source route:

  (192.168.10.101)

  <*>

 Endof list

 

Reply to request 2 (24 ms).  Received packet has options

 Total option bytes= 8, padded length=8

 Strict source route:

  (192.168.10.101)

  <*>

 Endof list

 

Reply to request 3 (16 ms).  Received packet has options

 Total option bytes= 8, padded length=8

 Strict source route:

  (192.168.10.101)

  <*>

 End oflist

 

Reply to request 4 (28 ms).  Received packet has options

 Total option bytes= 8, padded length=8

 Strict source route:

  (192.168.10.101)

  <*>

 Endof list

 

Success rate is 100 percent (5/5),round-trip min/avg/max = 16/23/28 ms

现实可以ping