exclusive
true
#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'
#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'
false
! 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