Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I made the topology and tried adding the static routing, but I am unsure what I am doing wrong. I can ping the routers from

image text in transcribed

I made the topology and tried adding the static routing, but I am unsure what I am doing wrong. I can ping the routers from the host but not other hosts. A correction in the code with an explanation would be beneficial.

CODE:-

from mininet.topo import Topo

from mininet.net import Mininet

from mininet.log import setLogLevel, info

from mininet.cli import CLI

from mininet.link import TCLink

class CustomTopo( Topo ):

def build (self):

"Create custom topo."

# Add Hosts

h1 = self.addHost( 'h1', ip='192.168.1.1/24' )

h2 = self.addHost( 'h2', ip='192.168.1.2/24' )

h3 = self.addHost( 'h3', ip='192.168.1.3/24' )

# Add switch

r1 = self.addHost( 'r1' , ip="192.168.1.10/24")

r2 = self.addHost( 'r2' , ip="192.168.1.20/24")

# Add links

self.addLink( h1, r1 )

self.addLink( h2, r1 )

self.addLink( h3, r2 )

self.addLink( r1, r2 )

def runExperiment(net:Mininet):

h1, h2, h3 = net.hosts[0:3]

r1, r2 = net.hosts[3:]

print(" * r1 routes :-")

print(r1.cmd("route -n"))

print(" * r2 routes :-")

print(r2.cmd("route -n"))

print(" * h1 pinging h2 :-")

print(r1.cmd(f"ping -c1 {h2.IP()}"))

print(" * h1 pinging h3 :-")

print(r1.cmd(f"ping -c1 {h3.IP()}"))

print(" * h2 pinging h3 :-")

print(r2.cmd(f"ping -c1 {h3.IP()}"))

"""

# IF the host does not know where the destination is : default to asking from router

print(h1.cmd(f'ip route add default dev h1-eth0'))

print(h2.cmd(f'ip route add default dev h2-eth0'))

print(h3.cmd(f'ip route add default dev h3-eth0'))

# MAKE sure routers know the devices that are connected to it, so it answer the request

print(r1.cmd(f"ip route add {h1.IP()} dev r1-eth0"))

print(r1.cmd(f"ip route add {h2.IP()} dev r1-eth1"))

print(r1.cmd(f"ip route add {r2.IP()} dev r1-eth2"))

print(r1.cmd(f"ip route add {h3.IP()} via {r2.IP()} dev r1-eth2"))

print(r2.cmd(f"ip route add {h3.IP()} dev r2-eth0"))

print(r2.cmd(f"ip route add {r1.IP()} dev r2-eth1"))

print(r2.cmd(f"ip route add {h1.IP()} via {r1.IP()} dev r2-eth1"))

print(r2.cmd(f"ip route add {h2.IP()} via {r1.IP()} dev r2-eth1"))

"""

print(r1.cmd("ip route show"))

print(" * r1 routes :-")

print(r1.cmd("route -n"))

print(" * r2 routes :-")

print(r2.cmd("route -n"))

print(" * h1 pinging h2 :-")

print(h1.cmd(f"ping -c5 {h2.IP()}"))

print(" * h1 pinging h3 :-")

print(h1.cmd(f"ping -c5 {h3.IP()}"))

print(" * h2 pinging h3 :-")

print(h2.cmd(f"ping -c5 {h3.IP()}"))

CLI(net)

def MakeCustomTopo():

topo = CustomTopo( )

net = Mininet(topo,controller=None)

net.start()

runExperiment(net)

net.stop()

if __name__ == '__main__':

# Tell mininet to print useful information

setLogLevel('info')

MakeCustomTopo()

Create the following network topology in Mininet using Python without using a controller: 1. Set up the appropriate routes using the Linux commands at Router1 and Router2 to reach all the hosts 2. Ping a single packet from and check the RTT: h1 to h2 h1 to h3 h2 to h3 3. Check the throughput from h1 to h2, h1 to h3 and h2 to h3

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Knowledge Discovery In Databases

Authors: Gregory Piatetsky-Shapiro, William Frawley

1st Edition

0262660709, 978-0262660709

More Books

Students also viewed these Databases questions

Question

Knowledge of process documentation (process flow charting)

Answered: 1 week ago