Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Deliverables

#1: Network Design

#2: Program that runs with no Python errors


#3: Successful pingall at the mininet> prompt
#4: A list of lines that were changed and why
1. Moved the two lines instantiating switches s1 and s2 in front of the legacy router
instantiations to get rid of initial build errors for myNetwork()
2. Changed the IP address for r5 to r5 = net.addHost('r5', cls=Node,
ip='10.0.12.1/24') to get pings and IP scheme to work correctly
3. Changed the IP address for r4 to r4 =net.addHost('r4', cls=Node,
ip='192.168.1.2/30') to get pings and IP scheme to work correctly
4. Changed the IP address for r3 to r3 = net.addHost('r3', cls=Node,
ip='10.0.10.1/24')) to get pings and IP scheme to work correctly
5. IP address was changed for h1 to 10.0.10.100 in order to align with assignment
rules
6. IP address was changed for h2 to 10.0.10.200 in order to align with assignment
rules
7. IP address was changed for h3 to 10.0.12.100 in order to align with assignment
rules
8. IP address was changed for h4 to 10.0.12.200 in order to align with assignment
rules
9. Modified PA4_chat_client_thread.py to get the client to stay open to receive
messages
10. Changed the default routes for h1-h4 because a defaultRoute of None leds to an
error in pingall. H1 and h2 got the ip for r3 and h3 and h4 got the ip for h5
11. For the add link on r3, r4, and r5 routers - we added intfNames and ip params in
order to get the network connectivity correct
12. We added static routes for r3. r4, and r5. This was an addition because there
needs to be six routers so that all the hosts can ping each other.

#5: Answers to questions


a. What were any interesting findings and lessons learned?
This project had a lot of great challenges and lessons learned. We learned
a lot about network topology and TSL. It was challenging to get the chat
client program working, but the challenge helped us to grow our skills. We
learned that we had to work on things in a very specific order. Adding
things in early caused unexpected errors to pop up in the program. It was
good practice for us to see how to implement static routes. We tried to
implement it at first by adding r0, r1, r2. That was not the correct way to
approach the code, even though we were getting around 73% dropped.
What we did instead was adding them like 3.cmd('ip route add
10.0.12.0/24 via 192.168.1.2 dev r3-eth9'), etc. We learned a lot about the
web chat server and how to get it implemented. Programming during this
project to run a TLS-enabled simple web server helped us challenge
ourselves.
b. Why didn’t the original program forward packets between the hosts?
The original program was not fully functional, so we had to make a handful
of modifications. The response/output was not being received. There were
build errors that were stopping the program from forwarding packets. We
needed to change the IP addressing to allow forwarding to occur. The IP
addresses and hosts had no way to communicate with each other.
c. Is the line ‘ r3.cmd('sysctl -w net.ipv4.ip_forward=1') ’ required?
This particular line is required for this programming project. This is needed
in order for the packets to communicate and be forwarded correctly on the
router. It allows the network interfaces to communicate freely as well.
d. Intentionally break your working program, e.g.: change a subnet length, IP
address, or default route for a host. Explain why your change caused the
network to break.
For this step, we changed our working program by changing an IP
address. We had 0% dropped and all packets received before. Changing
one of the IP addresses caused our program to have great issues with
pingall. The IP address for r4 was changed to r4 = net.addHost('r4',
cls=Node, ip='192.168.1.29/30') from r4 = net.addHost('r4', cls=Node,
ip='192.168.1.2/30'). This causes 15/42 and 64% to be dropped. This is
because the IP addresses are not in the same network as the other IP
addresses. It is not communicating, and so we experience great packet
loss. H1 can ping h2 and h4 can ping h3. Howvereb, communication has
been lost so now h4 can not ping h1, for example. The host networks are
no longer visible to each other.

#6: Screen capture of a successful chat session between the two


chat clients (15 points) and a screen capture of a Wireshark trace
of the communication between a chat client and the chat server

#7: Screen capture of the successful wget (or curl) of the web
server index file

#8: Screenshot of both decrypted server (web and chat)


certificates

You might also like