Browse Source

fixed cloud config file generation and added tcp download client/server

master
Sebastian Rieger 8 years ago
parent
commit
3e0a02f677
  1. 336
      GIT-VIRL-HS-Fulda/Kommunikationsnetze und -protokolle (Bachelor AI)/kommprot-lab3-clientserverapp.virl

336
GIT-VIRL-HS-Fulda/Kommunikationsnetze und -protokolle (Bachelor AI)/kommprot-lab3-clientserverapp.virl

@ -9,7 +9,7 @@
<entry key="config" type="String">#cloud-config&#xD; <entry key="config" type="String">#cloud-config&#xD;
bootcmd:&#xD; bootcmd:&#xD;
- ln -s -t /etc/rc.d /etc/rc.local&#xD; - ln -s -t /etc/rc.d /etc/rc.local&#xD;
hostname: client&#xD;
hostname: client1&#xD;
manage_etc_hosts: true&#xD; manage_etc_hosts: true&#xD;
runcmd:&#xD; runcmd:&#xD;
- systemctl start rc-local&#xD; - systemctl start rc-local&#xD;
@ -46,14 +46,37 @@ write_files:&#xD;
#!/bin/sh&#xD; #!/bin/sh&#xD;
ifconfig eth1 up 10.0.0.20 netmask 255.255.0.0&#xD; ifconfig eth1 up 10.0.0.20 netmask 255.255.0.0&#xD;
route add -host 192.168.0.1 gw 10.0.0.1 dev eth1&#xD; route add -host 192.168.0.1 gw 10.0.0.1 dev eth1&#xD;
route add -net 10.0.0.0/16 gw 10.0.0.1 dev eth1&#xD;
route add default gw 10.0.0.1&#xD; route add default gw 10.0.0.1&#xD;
echo "nameserver 8.8.8.8" &gt;/etc/resolv.conf&#xD; echo "nameserver 8.8.8.8" &gt;/etc/resolv.conf&#xD;
chown -R cisco:cisco /home/cisco&#xD;
exit 0&#xD; exit 0&#xD;
- path: /home/cisco/udpserver.py&#xD;
owner: cisco:cisco&#xD;
permissions: '0755'&#xD;
content: |-&#xD;
- path: /home/cisco/udp-client.py&#xD;
content: |&#xD;
#!/usr/bin/python&#xD;
from socket import *&#xD;
&#xD;
# Server-Adresse und Port&#xD;
serverName = "localhost"&#xD;
serverPort = 17000&#xD;
&#xD;
# Client Socket (IP, UDP) oeffnen&#xD;
clientSocket = socket(AF_INET, SOCK_DGRAM)&#xD;
&#xD;
# Nachricht vom Benutzer erfragen und versenden&#xD;
message = raw_input("UDP Nachricht in Kleinbuchstaben eingeben:")&#xD;
clientSocket.sendto(message,(serverName, serverPort))&#xD;
&#xD;
# Antwort des Server aus Socket lesen und ausgeben&#xD;
modifiedMessage, serverAddress = clientSocket.recvfrom(2048)&#xD;
print "Antwort des Servers: ", modifiedMessage&#xD;
raw_input("Fertig...")&#xD;
&#xD;
# Verbindung schliessen&#xD;
clientSocket.close()&#xD;
owner: root:root&#xD;
permissions: '0777'&#xD;
- path: /home/cisco/udp-server.py&#xD;
content: |&#xD;
#!/usr/bin/python&#xD; #!/usr/bin/python&#xD;
from socket import *&#xD; from socket import *&#xD;
&#xD; &#xD;
@ -73,35 +96,35 @@ write_files:&#xD;
# Client zuruecksenden&#xD; # Client zuruecksenden&#xD;
modifiedMessage = message.upper()&#xD; modifiedMessage = message.upper()&#xD;
serverSocket.sendto(modifiedMessage, clientAddress)&#xD; serverSocket.sendto(modifiedMessage, clientAddress)&#xD;
- path: /home/cisco/udpclient.py&#xD;
owner: cisco:cisco&#xD;
permissions: '0755'&#xD;
content: |-&#xD;
owner: root:root&#xD;
permissions: '0777'&#xD;
- path: /home/cisco/tcp-client.py&#xD;
content: |&#xD;
#!/usr/bin/python&#xD; #!/usr/bin/python&#xD;
from socket import *&#xD; from socket import *&#xD;
&#xD; &#xD;
# Server-Adresse und Port&#xD;
# Serveradresse und TCP Port auf den der Server hoert...&#xD;
serverName = "localhost"&#xD; serverName = "localhost"&#xD;
serverPort = 17000&#xD; serverPort = 17000&#xD;
# Socket fuer IP (INET) und TCP (STREAM) konfigurieren&#xD;
clientSocket = socket(AF_INET, SOCK_STREAM)&#xD;
clientSocket.connect((serverName,serverPort))&#xD;
&#xD; &#xD;
# Client Socket (IP, UDP) oeffnen&#xD;
clientSocket = socket(AF_INET, SOCK_DGRAM)&#xD;
&#xD;
# Nachricht vom Benutzer erfragen und versenden&#xD;
message = raw_input("UDP Nachricht in Kleinbuchstaben eingeben:")&#xD;
clientSocket.sendto(message,(serverName, serverPort))&#xD;
# Nachricht vom Benutzer abfragen und an den Server senden&#xD;
sentence = raw_input("TCP Nachricht in Kleinbuchstaben eingeben:")&#xD;
clientSocket.send(sentence)&#xD;
&#xD; &#xD;
# Antwort des Server aus Socket lesen und ausgeben&#xD;
modifiedMessage, serverAddress = clientSocket.recvfrom(2048)&#xD;
print "Antwort des Servers: ", modifiedMessage&#xD;
# Antwort des Servers ausgeben&#xD;
modifiedSentence = clientSocket.recv(1024)&#xD;
print "Antwort des Servers:", modifiedSentence&#xD;
raw_input("Fertig...")&#xD; raw_input("Fertig...")&#xD;
&#xD; &#xD;
# Verbindung schliessen&#xD; # Verbindung schliessen&#xD;
clientSocket.close()&#xD; clientSocket.close()&#xD;
- path: /home/cisco/tcpserver.py&#xD;
owner: cisco:cisco&#xD;
permissions: '0755'&#xD;
content: |-&#xD;
owner: root:root&#xD;
permissions: '0777'&#xD;
- path: /home/cisco/tcp-server.py&#xD;
content: |&#xD;
#!/usr/bin/python&#xD; #!/usr/bin/python&#xD;
from socket import *&#xD; from socket import *&#xD;
&#xD; &#xD;
@ -124,31 +147,61 @@ write_files:&#xD;
connectionSocket.send(capitalizedSentence)&#xD; connectionSocket.send(capitalizedSentence)&#xD;
# Verbindung schliessen&#xD; # Verbindung schliessen&#xD;
connectionSocket.close()&#xD; connectionSocket.close()&#xD;
- path: /home/cisco/tcpclient.py&#xD;
owner: cisco:cisco&#xD;
permissions: '0755'&#xD;
content: |-&#xD;
owner: root:root&#xD;
permissions: '0777'&#xD;
- path: /home/cisco/tcpdownload-client.py&#xD;
content: |&#xD;
#!/usr/bin/python&#xD; #!/usr/bin/python&#xD;
from socket import *&#xD; from socket import *&#xD;
import time&#xD;
&#xD; &#xD;
# Serveradresse und TCP Port auf den der Server hoert...&#xD; # Serveradresse und TCP Port auf den der Server hoert...&#xD;
serverName = "localhost"&#xD;
serverName = "10.0.0.30"&#xD;
serverPort = 17000&#xD; serverPort = 17000&#xD;
# Socket fuer IP (INET) und TCP (STREAM) konfigurieren&#xD; # Socket fuer IP (INET) und TCP (STREAM) konfigurieren&#xD;
clientSocket = socket(AF_INET, SOCK_STREAM)&#xD; clientSocket = socket(AF_INET, SOCK_STREAM)&#xD;
clientSocket.connect((serverName,serverPort))&#xD; clientSocket.connect((serverName,serverPort))&#xD;
&#xD;
# Nachricht vom Benutzer abfragen und an den Server senden&#xD;
sentence = raw_input("TCP Nachricht in Kleinbuchstaben eingeben:")&#xD;
clientSocket.send(sentence)&#xD;
&#xD; &#xD;
# Antwort des Servers ausgeben&#xD; # Antwort des Servers ausgeben&#xD;
modifiedSentence = clientSocket.recv(1024)&#xD;
print "Antwort des Servers:", modifiedSentence&#xD;
length = 0&#xD;
start = time.time()&#xD;
while 1:&#xD;
data = clientSocket.recv(1024)&#xD;
if not data:&#xD;
break&#xD;
length += len(data)&#xD;
elapsed = time.time() - start&#xD;
print str(length) + " Bytes geladen in " + str(elapsed) + " secs (" + str(length / elapsed) + " bytes/s)"&#xD;
raw_input("Fertig...")&#xD; raw_input("Fertig...")&#xD;
&#xD; &#xD;
# Verbindung schliessen&#xD; # Verbindung schliessen&#xD;
clientSocket.close()&#xD; clientSocket.close()&#xD;
owner: root:root&#xD;
permissions: '0777'&#xD;
- path: /home/cisco/tcpdownload-server.py&#xD;
content: |&#xD;
#!/usr/bin/python&#xD;
from socket import *&#xD;
&#xD;
# TCP Port auf dem der Server lauschen soll...&#xD;
serverPort = 17000&#xD;
# Server-Socket als Internet (INET) TCP (STREAM) erzeugen und an o.g. Port binden&#xD;
serverSocket = socket(AF_INET,SOCK_STREAM)&#xD;
serverSocket.bind(("",serverPort))&#xD;
serverSocket.listen(1)&#xD;
downloadSize = raw_input("Download-Groesse: ")&#xD;
print "TCP Server ist bereit fuer den Download..."&#xD;
&#xD;
# Endlosschleife&#xD;
while 1:&#xD;
# Eingehende Nachrichten akzeptieren und von Clients empfangen&#xD;
connectionSocket, addr = serverSocket.accept()&#xD;
# Bytes an Client zuruecksenden&#xD;
connectionSocket.send("a" * int(downloadSize))&#xD;
# Verbindung schliessen&#xD;
connectionSocket.close()&#xD;
owner: root:root&#xD;
permissions: '0777'&#xD;
</entry> </entry>
</extensions> </extensions>
<interface id="0" name="eth1" ipv4="10.0.0.2" netPrefixLenV4="16"/> <interface id="0" name="eth1" ipv4="10.0.0.2" netPrefixLenV4="16"/>
@ -158,7 +211,7 @@ write_files:&#xD;
<entry key="config" type="String">#cloud-config&#xD; <entry key="config" type="String">#cloud-config&#xD;
bootcmd:&#xD; bootcmd:&#xD;
- ln -s -t /etc/rc.d /etc/rc.local&#xD; - ln -s -t /etc/rc.d /etc/rc.local&#xD;
hostname: server&#xD;
hostname: server1&#xD;
manage_etc_hosts: true&#xD; manage_etc_hosts: true&#xD;
runcmd:&#xD; runcmd:&#xD;
- systemctl start rc-local&#xD; - systemctl start rc-local&#xD;
@ -195,20 +248,225 @@ write_files:&#xD;
#!/bin/sh&#xD; #!/bin/sh&#xD;
ifconfig eth1 up 10.0.0.30 netmask 255.255.0.0&#xD; ifconfig eth1 up 10.0.0.30 netmask 255.255.0.0&#xD;
route add -host 192.168.0.1 gw 10.0.0.1 dev eth1&#xD; route add -host 192.168.0.1 gw 10.0.0.1 dev eth1&#xD;
route add -net 10.0.0.0/16 gw 10.0.0.1 dev eth1&#xD;
route add default gw 10.0.0.1&#xD; route add default gw 10.0.0.1&#xD;
echo "nameserver 8.8.8.8" &gt;/etc/resolv.conf&#xD; echo "nameserver 8.8.8.8" &gt;/etc/resolv.conf&#xD;
chown -R cisco:cisco /home/cisco&#xD;
exit 0&#xD; exit 0&#xD;
- path: /home/cisco/udpclient.py&#xD;
content: |&#xD;
#!/usr/bin/python&#xD;
from socket import *&#xD;
&#xD;
# Server-Adresse und Port&#xD;
serverName = "localhost"&#xD;
serverPort = 17000&#xD;
&#xD;
# Client Socket (IP, UDP) oeffnen&#xD;
clientSocket = socket(AF_INET, SOCK_DGRAM)&#xD;
&#xD;
# Nachricht vom Benutzer erfragen und versenden&#xD;
message = raw_input("UDP Nachricht in Kleinbuchstaben eingeben:")&#xD;
clientSocket.sendto(message,(serverName, serverPort))&#xD;
&#xD;
# Antwort des Server aus Socket lesen und ausgeben&#xD;
modifiedMessage, serverAddress = clientSocket.recvfrom(2048)&#xD;
print "Antwort des Servers: ", modifiedMessage&#xD;
raw_input("Fertig...")&#xD;
&#xD;
# Verbindung schliessen&#xD;
clientSocket.close()&#xD;
owner: root:root&#xD;
permissions: '0777'&#xD;
- path: /home/cisco/udpserver.py&#xD;
content: |&#xD;
#!/usr/bin/python&#xD;
from socket import *&#xD;
&#xD;
# UDP Port auf dem der Server lauschen soll...&#xD;
serverPort = 17000&#xD;
&#xD;
# Server-Socket als Internet (INET) UDP (DGRAM) erzeugen und an o.g. Port binden&#xD;
serverSocket = socket(AF_INET, SOCK_DGRAM)&#xD;
serverSocket.bind(("", serverPort))&#xD;
print "UDP Server ist bereit fuer den Empfang von Daten..."&#xD;
&#xD;
# Endlosschleife&#xD;
while 1:&#xD;
# Eingehende Nachrichten von Clients empfangen&#xD;
message, clientAddress = serverSocket.recvfrom(2048)&#xD;
# Alle Buchstaben der Nachricht in Grossbuchstaben umwandeln und an den&#xD;
# Client zuruecksenden&#xD;
modifiedMessage = message.upper()&#xD;
serverSocket.sendto(modifiedMessage, clientAddress)&#xD;
owner: root:root&#xD;
permissions: '0777'&#xD;
- path: /home/cisco/tcpclient.py&#xD;
content: |&#xD;
#!/usr/bin/python&#xD;
from socket import *&#xD;
&#xD;
# Serveradresse und TCP Port auf den der Server hoert...&#xD;
serverName = "localhost"&#xD;
serverPort = 17000&#xD;
# Socket fuer IP (INET) und TCP (STREAM) konfigurieren&#xD;
clientSocket = socket(AF_INET, SOCK_STREAM)&#xD;
clientSocket.connect((serverName,serverPort))&#xD;
&#xD;
# Nachricht vom Benutzer abfragen und an den Server senden&#xD;
sentence = raw_input("TCP Nachricht in Kleinbuchstaben eingeben:")&#xD;
clientSocket.send(sentence)&#xD;
&#xD;
# Antwort des Servers ausgeben&#xD;
modifiedSentence = clientSocket.recv(1024)&#xD;
print "Antwort des Servers:", modifiedSentence&#xD;
raw_input("Fertig...")&#xD;
&#xD;
# Verbindung schliessen&#xD;
clientSocket.close()&#xD;
owner: root:root&#xD;
permissions: '0777'&#xD;
- path: /home/cisco/tcpserver.py&#xD;
content: |&#xD;
#!/usr/bin/python&#xD;
from socket import *&#xD;
&#xD;
# TCP Port auf dem der Server lauschen soll...&#xD;
serverPort = 17000&#xD;
# Server-Socket als Internet (INET) TCP (STREAM) erzeugen und an o.g. Port binden&#xD;
serverSocket = socket(AF_INET,SOCK_STREAM)&#xD;
serverSocket.bind(("",serverPort))&#xD;
serverSocket.listen(1)&#xD;
print "TCP Server ist bereit fuer den Empfang von Daten..."&#xD;
&#xD;
# Endlosschleife&#xD;
while 1:&#xD;
# Eingehende Nachrichten akzeptieren und von Clients empfangen&#xD;
connectionSocket, addr = serverSocket.accept()&#xD;
sentence = connectionSocket.recv(1024)&#xD;
# Alle Buchstaben der Nachricht in Grossbuchstaben umwandeln und an den&#xD;
# Client zuruecksenden&#xD;
capitalizedSentence = sentence.upper()&#xD;
connectionSocket.send(capitalizedSentence)&#xD;
# Verbindung schliessen&#xD;
connectionSocket.close()&#xD;
owner: root:root&#xD;
permissions: '0777'&#xD;
- path: /home/cisco/tcpclient-download.py&#xD;
content: |&#xD;
#!/usr/bin/python&#xD;
from socket import *&#xD;
import time&#xD;
&#xD;
# Serveradresse und TCP Port auf den der Server hoert...&#xD;
serverName = "10.0.0.30"&#xD;
serverPort = 17000&#xD;
# Socket fuer IP (INET) und TCP (STREAM) konfigurieren&#xD;
clientSocket = socket(AF_INET, SOCK_STREAM)&#xD;
clientSocket.connect((serverName,serverPort))&#xD;
&#xD;
# Antwort des Servers ausgeben&#xD;
length = 0&#xD;
start = time.time()&#xD;
while 1:&#xD;
data = clientSocket.recv(1024)&#xD;
if not data:&#xD;
break&#xD;
length += len(data)&#xD;
elapsed = time.time() - start&#xD;
print str(length) + " Bytes geladen in " + str(elapsed) + " secs (" + str(length / elapsed) + " bytes/s)"&#xD;
raw_input("Fertig...")&#xD;
&#xD;
# Verbindung schliessen&#xD;
clientSocket.close()&#xD;
owner: root:root&#xD;
permissions: '0777'&#xD;
- path: /home/cisco/tcpserver-download.py&#xD;
content: |&#xD;
#!/usr/bin/python&#xD;
from socket import *&#xD;
&#xD;
# TCP Port auf dem der Server lauschen soll...&#xD;
serverPort = 17000&#xD;
# Server-Socket als Internet (INET) TCP (STREAM) erzeugen und an o.g. Port binden&#xD;
serverSocket = socket(AF_INET,SOCK_STREAM)&#xD;
serverSocket.bind(("",serverPort))&#xD;
serverSocket.listen(1)&#xD;
downloadSize = raw_input("Download-Groesse: ")&#xD;
print "TCP Server ist bereit fuer den Download..."&#xD;
&#xD;
# Endlosschleife&#xD;
while 1:&#xD;
# Eingehende Nachrichten akzeptieren und von Clients empfangen&#xD;
connectionSocket, addr = serverSocket.accept()&#xD;
# Bytes an Client zuruecksenden&#xD;
connectionSocket.send("a" * int(downloadSize))&#xD;
# Verbindung schliessen&#xD;
connectionSocket.close()&#xD;
owner: root:root&#xD;
permissions: '0777'&#xD;
- path: /home/cisco/tcpdownload-client.py&#xD;
content: |&#xD;
#!/usr/bin/python&#xD;
from socket import *&#xD;
import time&#xD;
&#xD;
# Serveradresse und TCP Port auf den der Server hoert...&#xD;
serverName = "10.0.0.30"&#xD;
serverPort = 17000&#xD;
# Socket fuer IP (INET) und TCP (STREAM) konfigurieren&#xD;
clientSocket = socket(AF_INET, SOCK_STREAM)&#xD;
clientSocket.connect((serverName,serverPort))&#xD;
&#xD;
# Antwort des Servers ausgeben&#xD;
length = 0&#xD;
start = time.time()&#xD;
while 1:&#xD;
data = clientSocket.recv(1024)&#xD;
if not data:&#xD;
break&#xD;
length += len(data)&#xD;
elapsed = time.time() - start&#xD;
print str(length) + " Bytes geladen in " + str(elapsed) + " secs (" + str(length / elapsed) + " bytes/s)"&#xD;
raw_input("Fertig...")&#xD;
&#xD;
# Verbindung schliessen&#xD;
clientSocket.close()&#xD;
owner: root:root&#xD;
permissions: '0777'&#xD;
- path: /home/cisco/tcpdownload-server.py&#xD;
content: |&#xD;
#!/usr/bin/python&#xD;
from socket import *&#xD;
&#xD;
# TCP Port auf dem der Server lauschen soll...&#xD;
serverPort = 17000&#xD;
# Server-Socket als Internet (INET) TCP (STREAM) erzeugen und an o.g. Port binden&#xD;
serverSocket = socket(AF_INET,SOCK_STREAM)&#xD;
serverSocket.bind(("",serverPort))&#xD;
serverSocket.listen(1)&#xD;
downloadSize = raw_input("Download-Groesse: ")&#xD;
print "TCP Server ist bereit fuer den Download..."&#xD;
&#xD;
# Endlosschleife&#xD;
while 1:&#xD;
# Eingehende Nachrichten akzeptieren und von Clients empfangen&#xD;
connectionSocket, addr = serverSocket.accept()&#xD;
# Bytes an Client zuruecksenden&#xD;
connectionSocket.send("a" * int(downloadSize))&#xD;
# Verbindung schliessen&#xD;
connectionSocket.close()&#xD;
owner: root:root&#xD;
permissions: '0777'&#xD;
</entry> </entry>
</extensions> </extensions>
<interface id="0" name="eth1" ipv4="10.0.0.3" netPrefixLenV4="16"/> <interface id="0" name="eth1" ipv4="10.0.0.3" netPrefixLenV4="16"/>
</node> </node>
<node name="switch1" type="SIMPLE" subtype="Unmanaged Switch" location="446,227">
<node name="switch1" type="SIMPLE" subtype="Unmanaged Switch" location="459,232">
<interface id="0" name="link1"/> <interface id="0" name="link1"/>
<interface id="1" name="link2"/> <interface id="1" name="link2"/>
<interface id="2" name="link3"/> <interface id="2" name="link3"/>
</node> </node>
<node name="router1" type="SIMPLE" subtype="IOSv" location="446,106">
<node name="router1" type="SIMPLE" subtype="IOSv" location="459,111">
<extensions> <extensions>
<entry key="AutoNetkit.mgmt_ip" type="string"></entry> <entry key="AutoNetkit.mgmt_ip" type="string"></entry>
<entry key="Auto-generate config" type="Boolean">false</entry> <entry key="Auto-generate config" type="Boolean">false</entry>

Loading…
Cancel
Save