1.
(30 points) Correct Network design that follows the IP addressing rules for this
assignment, listed above, and allows all the hosts to successfully ping each other.
Draw and submit the network design in pdf format with all interfaces labeled with
interface names (e.g., s1-eth1) and interface IP addresses.
(Continues on next page)
2. (20 points) Screen capture of the program that runs with no Python errors.
(Continues on next page)
3. (20 points) Screen capture of successful pingall at the mininet> prompt. (5 points are
given if h1, h2, h3 and h4 can successfully ping each other, but pingall is not
successful.)
(Continues on next page)
4. (15 points) A list of lines that were changed and why
legacy_network.py has been completely overhauled, and as such, calling out
specific line differences would be insufficient. The major design changes include:
● r3:
○ Now has the IP addresses:
■ r3-eth0: 10.0.0.1/24 (into the West Coast subnet)
● Changed from 0.0.0.0 so that r3 could be addressed
● Set during r3’s initial creation
■ r3-eth1: 192.168.0.1/30 (towards the “Internet”)
● Changed from None so that r3 could be addressed
● Set during the creation of the r3 <-> r4 link
○ Now has a default route of: via 192.168.0.2 dev r3-eth1
■ Allows traffic addressed to networks other than the West Coast
network to be forwarded towards the “Internet”
■ Set during r3’s initial creation
(Continues on next page)
● r4:
○ Now has the IP addresses:
■ r4-eth0: 192.168.0.2/30 (towards the West Coast network)
● Changed from 0.0.0.0 so that r4 could be addressed
● Set during r4’s initial creation, and the creation of the r3
<-> r4 link
■ r4-eth1: 192.168.0.5/30 (towards the East Coast network)
● Changed from None so that r4 could be addressed
● Set during the creation of the r4 <-> r5 link
○ Now has the static routes:
■ 10.0.0.0/24 via 192.168.0.1 dev r4-eth0
● Allows traffic addressed to the West Coast network to be
forwarded
■ 10.0.1.0/24 via 192.168.0.6 dev r4-eth1
● Allows traffic addressed to the East Coast network to be
forwarded
(Continues on next page)
● r5:
○ Now has the IP addresses:
■ r5-eth0: 10.0.1.1/24 (into the East Coast subnet)
● Changed from 0.0.0.0 so that r5 could be addressed
● Set during r5’s initial creation
■ r5-eth1: 192.168.0.6/30 (towards the “Internet”)
● Changed from None so that r5 could be addressed
● Set during the creation of the r4 <-> r5 link
○ Now has a default route of: via 192.168.0.5 dev r5-eth1
■ Allows traffic addressed to networks other than the East Coast
network to be forwarded towards the “Internet”
■ Set during r5’s initial creation
● h1:
○ Now has the IP address: h1-eth0: 10.0.0.2/24 (into the West Coast
subnet)
■ Changed from 10.0.0.1/24 so that the West Coast subnet’s
default gateway could have the IP address 10.0.0.1/24
■ Set during h1’s initial creation
● h2:
○ Now has the IP address: h2-eth0: 10.0.0.3/24 (into the West Coast
subnet)
■ Changed from 10.0.0.2/24 so that the West Coast subnet’s
default gateway could have the IP address 10.0.0.1/24
■ Set during h2’s initial creation
(Continues on next page)
● h3:
○ Now has the IP address: h3-eth0: 10.0.1.2/24 (into the East Coast
subnet)
■ Changed from 10.0.0.3/24 so that h3 has a valid IP on the East
Coast subnet, and so the East Coast subnet’s default gateway
could have the IP address 10.0.1.1/24
■ Set during h3’s initial creation
● h4:
○ Now has the IP address: h4-eth0: 10.0.1.3/24 (into the East Coast
subnet)
■ Changed from 10.0.0.4/24 so that h4 has a valid IP on the East
Coast subnet, and so the East Coast subnet’s default gateway
could have the IP address 10.0.1.1/24
■ Set during h4’s initial creation
(Continues on next page)
5. (30 points) Answers to these questions:
● What were any interesting findings and lessons learned?
○ It was interesting to design a network with different subnet mask lengths. The
concept only really started to click for the team when we were attempting to
create this assignment’s network, and subsequently partitioning the network
into subnets that support different host-count maximums. This assignment
also was useful towards understanding ARP, and how the hosts need to learn
the MAC addresses of the next-hop router (or another host on the same
subnet) via an ARP broadcast-and-reply before they can send any IP
datagrams.
● Why didn’t the original program forward packets between the hosts?
○ The original program could not forward packets between the hosts because
the routers lacked the necessary static routes. By default mininet’s routers
can only forward packets to hosts that are within one of the router’s subnets.
This is possible due to a side effect of mininet using ifconfig to bring up a
host’s interface, which automatically creates a static route through that
interface to its subnet. Importantly, static routes can allow a host to forward
traffic that is addressed to outside of the host’s subnet. This is done by having
the host forward traffic to a next-hop router, which then performs its own
forwarding logic. In the modified code the three gateway routers have static
(and default) routes that allow traffic destined for any subnet to be forwarded.
● Is the line ‘ r3.cmd('sysctl -w net.ipv4.ip_forward=1') ’ required?
○ Yes. The command “sysctl -w” is used to write a new value to the specified
kernel parameter “net.ipv4.ip_forward”. Setting the parameter to “1” enables
forwarding; setting it to “0” would disable it. If forwarding is disabled on a host
any packets not specifically addressed to the host are dropped. By enabling
forwarding on the network’s routers, and configuring the necessary static
routes, the routers properly forward packets destined to any subnet of the
network topology.
(Continues on next page)
● 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.
○ r3 has the following default route:
default via 192.168.0.2 dev r3-eth1
This route allows r3 to forward traffic destined for r4->r5’s subnet, and the
East Coast subnet. If it were removed, r3, h1, and h2 would all be unable to
send packets to r5, h3, and h4. r3 is responsible for the malfunction, as
without its default route it cannot determine how it should forward traffic
traveling out of the West Coast subnet; it simply drops the packets. Note that
in this situation the connection becomes one-way – the East Coast network
still knows how to route to the West Coast network, though the West Coast
network has forgotten how to route to the East Coast network.
(Continues on next page)
6. (25 points total)
● (15 points) Screen capture of a successful chat session between the two chat
clients
(Continues on next page)
● (10 points) Screen capture of a Wireshark trace of the communication between a
chat client and the chat server.
○ You must select the Server Hello packet, and in the packet details, expand
the TLS Record Layer Server Key Exchange after expanding the Transport
Layer Security.
(Continues on next page)
7. (25 points) Screen capture of the successful wget (or curl) of the web server index
file.
(Continues on next page)
8. (20 points) Screenshot of both decrypted server (web and chat) certificates.
● Web server:
(Continues on next page)
● Chat server: