|
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <topology xmlns="http://www.cisco.com/VIRL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="0.95" xsi:schemaLocation="http://www.cisco.com/VIRL https://raw.github.com/CiscoVIRL/schema/v0.95/virl.xsd"> <extensions> <entry key="management_network" type="String">exclusive</entry> <entry key="AutoNetkit.enable_cdp" type="Boolean">true</entry> </extensions> <node name="client1" type="SIMPLE" subtype="lxc" location="340,301"> <extensions> <entry key="config" type="String">#cloud-config
 bootcmd:
 - ln -s -t /etc/rc.d /etc/rc.local
 hostname: client1
 manage_etc_hosts: true
 runcmd:
 - systemctl start rc-local
 - sed -i '/^\s*PasswordAuthentication\s\+no/d' /etc/ssh/sshd_config
 - echo "UseDNS no" >> /etc/ssh/sshd_config
 - service ssh restart
 - service sshd restart
 users:
 - default
 - gecos: User configured by VIRL Configuration Engine 0.23.9
 lock-passwd: false
 name: cisco
 plain-text-passwd: cisco
 shell: /bin/bash
 ssh-authorized-keys:
 - VIRL-USER-SSH-PUBLIC-KEY
 sudo: ALL=(ALL) ALL
 write_files:
 - path: /etc/systemd/system/dhclient@.service
 content: |
 [Unit]
 Description=Run dhclient on %i interface
 After=network.target
 [Service]
 Type=oneshot
 ExecStart=/sbin/dhclient %i -pf /var/run/dhclient.%i.pid -lf /var/lib/dhclient/dhclient.%i.lease
 RemainAfterExit=yes
 owner: root:root
 permissions: '0644'
 - path: /etc/rc.local
 owner: root:root
 permissions: '0755'
 content: |-
 #!/bin/sh
 ifconfig eth1 up 10.0.0.20 netmask 255.255.0.0
 route add -host 192.168.0.1 gw 10.0.0.1 dev eth1
 route add default gw 10.0.0.1
 echo "nameserver 8.8.8.8" >/etc/resolv.conf
 chown -R cisco:cisco /home/cisco
 exit 0
 - path: /home/cisco/udp-client.py
 content: |
 #!/usr/bin/python
 from socket import *
 
 # Server-Adresse und Port
 serverName = "localhost"
 serverPort = 17000
 
 # Client Socket (IP, UDP) oeffnen
 clientSocket = socket(AF_INET, SOCK_DGRAM)
 
 # Nachricht vom Benutzer erfragen und versenden
 message = raw_input("UDP Nachricht in Kleinbuchstaben eingeben:")
 clientSocket.sendto(message,(serverName, serverPort))
 
 # Antwort des Server aus Socket lesen und ausgeben
 modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
 print "Antwort des Servers: ", modifiedMessage
 raw_input("Fertig...")
 
 # Verbindung schliessen
 clientSocket.close()
 owner: root:root
 permissions: '0777'
 - path: /home/cisco/udp-server.py
 content: |
 #!/usr/bin/python
 from socket import *
 
 # UDP Port auf dem der Server lauschen soll...
 serverPort = 17000
 
 # Server-Socket als Internet (INET) UDP (DGRAM) erzeugen und an o.g. Port binden
 serverSocket = socket(AF_INET, SOCK_DGRAM)
 serverSocket.bind(("", serverPort))
 print "UDP Server ist bereit fuer den Empfang von Daten..."
 
 # Endlosschleife
 while 1:
 # Eingehende Nachrichten von Clients empfangen
 message, clientAddress = serverSocket.recvfrom(2048)
 # Alle Buchstaben der Nachricht in Grossbuchstaben umwandeln und an den
 # Client zuruecksenden
 modifiedMessage = message.upper()
 serverSocket.sendto(modifiedMessage, clientAddress)
 owner: root:root
 permissions: '0777'
 - path: /home/cisco/tcp-client.py
 content: |
 #!/usr/bin/python
 from socket import *
 
 # Serveradresse und TCP Port auf den der Server hoert...
 serverName = "localhost"
 serverPort = 17000
 # Socket fuer IP (INET) und TCP (STREAM) konfigurieren
 clientSocket = socket(AF_INET, SOCK_STREAM)
 clientSocket.connect((serverName,serverPort))
 
 # Nachricht vom Benutzer abfragen und an den Server senden
 sentence = raw_input("TCP Nachricht in Kleinbuchstaben eingeben:")
 clientSocket.send(sentence)
 
 # Antwort des Servers ausgeben
 modifiedSentence = clientSocket.recv(1024)
 print "Antwort des Servers:", modifiedSentence
 raw_input("Fertig...")
 
 # Verbindung schliessen
 clientSocket.close()
 owner: root:root
 permissions: '0777'
 - path: /home/cisco/tcp-server.py
 content: |
 #!/usr/bin/python
 from socket import *
 
 # TCP Port auf dem der Server lauschen soll...
 serverPort = 17000
 # Server-Socket als Internet (INET) TCP (STREAM) erzeugen und an o.g. Port binden
 serverSocket = socket(AF_INET,SOCK_STREAM)
 serverSocket.bind(("",serverPort))
 serverSocket.listen(1)
 print "TCP Server ist bereit fuer den Empfang von Daten..."
 
 # Endlosschleife
 while 1:
 # Eingehende Nachrichten akzeptieren und von Clients empfangen
 connectionSocket, addr = serverSocket.accept()
 sentence = connectionSocket.recv(1024)
 # Alle Buchstaben der Nachricht in Grossbuchstaben umwandeln und an den
 # Client zuruecksenden
 capitalizedSentence = sentence.upper()
 connectionSocket.send(capitalizedSentence)
 # Verbindung schliessen
 connectionSocket.close()
 owner: root:root
 permissions: '0777'
 - path: /home/cisco/tcpdownload-client.py
 content: |
 #!/usr/bin/python
 from socket import *
 import time
 
 # Serveradresse und TCP Port auf den der Server hoert...
 serverName = "10.0.0.30"
 serverPort = 17000
 # Socket fuer IP (INET) und TCP (STREAM) konfigurieren
 clientSocket = socket(AF_INET, SOCK_STREAM)
 clientSocket.connect((serverName,serverPort))
 
 # Antwort des Servers ausgeben
 length = 0
 start = time.time()
 while 1:
 data = clientSocket.recv(1024)
 if not data:
 break
 length += len(data)
 elapsed = time.time() - start
 print str(length) + " Bytes geladen in " + str(elapsed) + " secs (" + str(length / elapsed) + " bytes/s)"
 raw_input("Fertig...")
 
 # Verbindung schliessen
 clientSocket.close()
 owner: root:root
 permissions: '0777'
 - path: /home/cisco/tcpdownload-server.py
 content: |
 #!/usr/bin/python
 from socket import *
 
 # TCP Port auf dem der Server lauschen soll...
 serverPort = 17000
 # Server-Socket als Internet (INET) TCP (STREAM) erzeugen und an o.g. Port binden
 serverSocket = socket(AF_INET,SOCK_STREAM)
 serverSocket.bind(("",serverPort))
 serverSocket.listen(1)
 downloadSize = raw_input("Download-Groesse: ")
 print "TCP Server ist bereit fuer den Download..."
 
 # Endlosschleife
 while 1:
 # Eingehende Nachrichten akzeptieren und von Clients empfangen
 connectionSocket, addr = serverSocket.accept()
 # Bytes an Client zuruecksenden
 connectionSocket.send("a" * int(downloadSize))
 # Verbindung schliessen
 connectionSocket.close()
 owner: root:root
 permissions: '0777'
 </entry> </extensions> <interface id="0" name="eth1" ipv4="10.0.0.2" netPrefixLenV4="16"/> </node> <node name="server1" type="SIMPLE" subtype="lxc" location="584,301"> <extensions> <entry key="config" type="String">#cloud-config
 bootcmd:
 - ln -s -t /etc/rc.d /etc/rc.local
 hostname: server1
 manage_etc_hosts: true
 runcmd:
 - systemctl start rc-local
 - sed -i '/^\s*PasswordAuthentication\s\+no/d' /etc/ssh/sshd_config
 - echo "UseDNS no" >> /etc/ssh/sshd_config
 - service ssh restart
 - service sshd restart
 users:
 - default
 - gecos: User configured by VIRL Configuration Engine 0.23.9
 lock-passwd: false
 name: cisco
 plain-text-passwd: cisco
 shell: /bin/bash
 ssh-authorized-keys:
 - VIRL-USER-SSH-PUBLIC-KEY
 sudo: ALL=(ALL) ALL
 write_files:
 - path: /etc/systemd/system/dhclient@.service
 content: |
 [Unit]
 Description=Run dhclient on %i interface
 After=network.target
 [Service]
 Type=oneshot
 ExecStart=/sbin/dhclient %i -pf /var/run/dhclient.%i.pid -lf /var/lib/dhclient/dhclient.%i.lease
 RemainAfterExit=yes
 owner: root:root
 permissions: '0644'
 - path: /etc/rc.local
 owner: root:root
 permissions: '0755'
 content: |-
 #!/bin/sh
 ifconfig eth1 up 10.0.0.30 netmask 255.255.0.0
 route add -host 192.168.0.1 gw 10.0.0.1 dev eth1
 route add default gw 10.0.0.1
 echo "nameserver 8.8.8.8" >/etc/resolv.conf
 chown -R cisco:cisco /home/cisco
 exit 0
 - path: /home/cisco/udpclient.py
 content: |
 #!/usr/bin/python
 from socket import *
 
 # Server-Adresse und Port
 serverName = "localhost"
 serverPort = 17000
 
 # Client Socket (IP, UDP) oeffnen
 clientSocket = socket(AF_INET, SOCK_DGRAM)
 
 # Nachricht vom Benutzer erfragen und versenden
 message = raw_input("UDP Nachricht in Kleinbuchstaben eingeben:")
 clientSocket.sendto(message,(serverName, serverPort))
 
 # Antwort des Server aus Socket lesen und ausgeben
 modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
 print "Antwort des Servers: ", modifiedMessage
 raw_input("Fertig...")
 
 # Verbindung schliessen
 clientSocket.close()
 owner: root:root
 permissions: '0777'
 - path: /home/cisco/udpserver.py
 content: |
 #!/usr/bin/python
 from socket import *
 
 # UDP Port auf dem der Server lauschen soll...
 serverPort = 17000
 
 # Server-Socket als Internet (INET) UDP (DGRAM) erzeugen und an o.g. Port binden
 serverSocket = socket(AF_INET, SOCK_DGRAM)
 serverSocket.bind(("", serverPort))
 print "UDP Server ist bereit fuer den Empfang von Daten..."
 
 # Endlosschleife
 while 1:
 # Eingehende Nachrichten von Clients empfangen
 message, clientAddress = serverSocket.recvfrom(2048)
 # Alle Buchstaben der Nachricht in Grossbuchstaben umwandeln und an den
 # Client zuruecksenden
 modifiedMessage = message.upper()
 serverSocket.sendto(modifiedMessage, clientAddress)
 owner: root:root
 permissions: '0777'
 - path: /home/cisco/tcpclient.py
 content: |
 #!/usr/bin/python
 from socket import *
 
 # Serveradresse und TCP Port auf den der Server hoert...
 serverName = "localhost"
 serverPort = 17000
 # Socket fuer IP (INET) und TCP (STREAM) konfigurieren
 clientSocket = socket(AF_INET, SOCK_STREAM)
 clientSocket.connect((serverName,serverPort))
 
 # Nachricht vom Benutzer abfragen und an den Server senden
 sentence = raw_input("TCP Nachricht in Kleinbuchstaben eingeben:")
 clientSocket.send(sentence)
 
 # Antwort des Servers ausgeben
 modifiedSentence = clientSocket.recv(1024)
 print "Antwort des Servers:", modifiedSentence
 raw_input("Fertig...")
 
 # Verbindung schliessen
 clientSocket.close()
 owner: root:root
 permissions: '0777'
 - path: /home/cisco/tcpserver.py
 content: |
 #!/usr/bin/python
 from socket import *
 
 # TCP Port auf dem der Server lauschen soll...
 serverPort = 17000
 # Server-Socket als Internet (INET) TCP (STREAM) erzeugen und an o.g. Port binden
 serverSocket = socket(AF_INET,SOCK_STREAM)
 serverSocket.bind(("",serverPort))
 serverSocket.listen(1)
 print "TCP Server ist bereit fuer den Empfang von Daten..."
 
 # Endlosschleife
 while 1:
 # Eingehende Nachrichten akzeptieren und von Clients empfangen
 connectionSocket, addr = serverSocket.accept()
 sentence = connectionSocket.recv(1024)
 # Alle Buchstaben der Nachricht in Grossbuchstaben umwandeln und an den
 # Client zuruecksenden
 capitalizedSentence = sentence.upper()
 connectionSocket.send(capitalizedSentence)
 # Verbindung schliessen
 connectionSocket.close()
 owner: root:root
 permissions: '0777'
 - path: /home/cisco/tcpclient-download.py
 content: |
 #!/usr/bin/python
 from socket import *
 import time
 
 # Serveradresse und TCP Port auf den der Server hoert...
 serverName = "10.0.0.30"
 serverPort = 17000
 # Socket fuer IP (INET) und TCP (STREAM) konfigurieren
 clientSocket = socket(AF_INET, SOCK_STREAM)
 clientSocket.connect((serverName,serverPort))
 
 # Antwort des Servers ausgeben
 length = 0
 start = time.time()
 while 1:
 data = clientSocket.recv(1024)
 if not data:
 break
 length += len(data)
 elapsed = time.time() - start
 print str(length) + " Bytes geladen in " + str(elapsed) + " secs (" + str(length / elapsed) + " bytes/s)"
 raw_input("Fertig...")
 
 # Verbindung schliessen
 clientSocket.close()
 owner: root:root
 permissions: '0777'
 - path: /home/cisco/tcpserver-download.py
 content: |
 #!/usr/bin/python
 from socket import *
 
 # TCP Port auf dem der Server lauschen soll...
 serverPort = 17000
 # Server-Socket als Internet (INET) TCP (STREAM) erzeugen und an o.g. Port binden
 serverSocket = socket(AF_INET,SOCK_STREAM)
 serverSocket.bind(("",serverPort))
 serverSocket.listen(1)
 downloadSize = raw_input("Download-Groesse: ")
 print "TCP Server ist bereit fuer den Download..."
 
 # Endlosschleife
 while 1:
 # Eingehende Nachrichten akzeptieren und von Clients empfangen
 connectionSocket, addr = serverSocket.accept()
 # Bytes an Client zuruecksenden
 connectionSocket.send("a" * int(downloadSize))
 # Verbindung schliessen
 connectionSocket.close()
 owner: root:root
 permissions: '0777'
 - path: /home/cisco/tcpdownload-client.py
 content: |
 #!/usr/bin/python
 from socket import *
 import time
 
 # Serveradresse und TCP Port auf den der Server hoert...
 serverName = "10.0.0.30"
 serverPort = 17000
 # Socket fuer IP (INET) und TCP (STREAM) konfigurieren
 clientSocket = socket(AF_INET, SOCK_STREAM)
 clientSocket.connect((serverName,serverPort))
 
 # Antwort des Servers ausgeben
 length = 0
 start = time.time()
 while 1:
 data = clientSocket.recv(1024)
 if not data:
 break
 length += len(data)
 elapsed = time.time() - start
 print str(length) + " Bytes geladen in " + str(elapsed) + " secs (" + str(length / elapsed) + " bytes/s)"
 raw_input("Fertig...")
 
 # Verbindung schliessen
 clientSocket.close()
 owner: root:root
 permissions: '0777'
 - path: /home/cisco/tcpdownload-server.py
 content: |
 #!/usr/bin/python
 from socket import *
 
 # TCP Port auf dem der Server lauschen soll...
 serverPort = 17000
 # Server-Socket als Internet (INET) TCP (STREAM) erzeugen und an o.g. Port binden
 serverSocket = socket(AF_INET,SOCK_STREAM)
 serverSocket.bind(("",serverPort))
 serverSocket.listen(1)
 downloadSize = raw_input("Download-Groesse: ")
 print "TCP Server ist bereit fuer den Download..."
 
 # Endlosschleife
 while 1:
 # Eingehende Nachrichten akzeptieren und von Clients empfangen
 connectionSocket, addr = serverSocket.accept()
 # Bytes an Client zuruecksenden
 connectionSocket.send("a" * int(downloadSize))
 # Verbindung schliessen
 connectionSocket.close()
 owner: root:root
 permissions: '0777'
 </entry> </extensions> <interface id="0" name="eth1" ipv4="10.0.0.3" netPrefixLenV4="16"/> </node> <node name="switch1" type="SIMPLE" subtype="Unmanaged Switch" location="459,232"> <interface id="0" name="link1"/> <interface id="1" name="link2"/> <interface id="2" name="link3"/> </node> <node name="router1" type="SIMPLE" subtype="IOSv" location="459,111"> <extensions> <entry key="AutoNetkit.mgmt_ip" type="string"></entry> <entry key="Auto-generate config" type="Boolean">false</entry> <entry key="config" type="String">! IOS Config generated on 2016-12-05 08:28
 ! by autonetkit_0.23.5
 !
 hostname router1
 boot-start-marker
 boot-end-marker
 !
 vrf definition Mgmt-intf
 !
 address-family ipv4
 exit-address-family
 !
 address-family ipv6
 exit-address-family
 !
 !
 !
 no aaa new-model
 !
 !
 ip cef
 ipv6 unicast-routing
 ipv6 cef
 !
 !
 service timestamps debug datetime msec
 service timestamps log datetime msec
 no service password-encryption
 no service config
 enable password cisco
 ip classless
 ip subnet-zero
 no ip domain lookup
 ip domain name virl.info
 crypto key generate rsa modulus 768
 ip ssh server algorithm authentication password
 username cisco privilege 15 secret cisco
 line vty 0 4
 transport input ssh telnet
 exec-timeout 720 0
 password cisco
 login local
 line con 0
 password cisco
 !
 cdp run
 !
 !
 interface Loopback0
 description Loopback
 ip address 192.168.0.1 255.255.255.255
 !
 interface GigabitEthernet0/0
 description OOB Management
 vrf forwarding Mgmt-intf
 ! Configured on launch
 no ip address
 cdp enable
 duplex full
 speed auto
 no shutdown
 !
 interface GigabitEthernet0/1
 description to Internet
 no ip address
 ip nat outside
 cdp enable
 duplex full
 speed auto
 no shutdown
 !
 interface GigabitEthernet0/2
 description to switch1
 ip address 10.0.0.1 255.255.0.0
 ip nat inside
 cdp enable
 ip ospf cost 1
 duplex full
 speed auto
 no shutdown
 !
 ! NAT stuff
 !
 ip nat inside source list 1 interface GigabitEthernet0/1 overload
 ip route 0.0.0.0 0.0.0.0 172.16.1.1
 access-list 1 permit 10.0.0.0 0.0.255.255
 !
 end</entry> </extensions> <interface id="0" name="GigabitEthernet0/1"/> <interface id="1" name="GigabitEthernet0/2" ipv4="10.0.0.1" netPrefixLenV4="16"/> </node> <node name="Internet" type="ASSET" subtype="FLAT" location="337,55"> <interface id="0" name="link0"/> </node> <annotations/> <connection dst="/virl:topology/virl:node[4]/virl:interface[1]" src="/virl:topology/virl:node[5]/virl:interface[1]"/> <connection dst="/virl:topology/virl:node[3]/virl:interface[1]" src="/virl:topology/virl:node[4]/virl:interface[2]"/> <connection dst="/virl:topology/virl:node[1]/virl:interface[1]" src="/virl:topology/virl:node[3]/virl:interface[2]"/> <connection dst="/virl:topology/virl:node[2]/virl:interface[1]" src="/virl:topology/virl:node[3]/virl:interface[3]"/> </topology>
|