<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Thinking about this a bit… if you just need Linux IP routing (configured by iproute) in Mininet, you can use LinuxRouter (currently in examples/ but will probably be promoted to nodelib.)<br class=""><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On May 8, 2015, at 3:45 PM, Bob Lantz <<a href="mailto:rlantz@cs.stanford.edu" class="">rlantz@cs.stanford.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Yeah this is easy. I think you can just make a KVMhost (or LXChost or DockerHost or whatever) for Mininet. ;-)<div class=""><br class=""></div><div class="">You can also easily add existing tap interfaces to a Mininet switch either using the Mininet API or simply using ovs-vsctl.</div><div class=""><div class=""><br class=""></div><div class="">If you have existing VM images that you want to use for some reason, then that is OK.</div><div class=""><br class=""></div><div class="">However, I greatly prefer the approach of simply running your routing software in a Mininet container rather than a VM or a heavyweight container with a virtual file system and other stuff.</div><div class=""><br class=""></div><div class="">-Bob</div><div class=""><br class=""></div><div class=""><br class=""><div class=""><div class=""><blockquote type="cite" class=""><div class="">On May 8, 2015, at 3:32 PM, Rob Sherwood <<a href="mailto:rob.sherwood@bigswitch.com" class="">rob.sherwood@bigswitch.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Thanks for the reply Bob.<div class=""><br class=""></div><div class="">I can very precisely describe what I want to do. I've written a script that manually plumbs together a fixed line topology with VMs *as vswitches/routers* and posted it here:</div><div class=""><br class=""></div><div class=""><a href="https://github.com/opennetworklinux/ONL/blob/master/tools/kvm-router-demo.sh" class="">https://github.com/opennetworklinux/ONL/blob/master/tools/kvm-router-demo.sh</a><br class=""></div><div class=""><br class=""></div><div class="">The idea the VMs here have multiple interfaces themselves and inside the VM is some sort of packet forwarding logic.  Yes, you can pull the contents of the packet forwarding logic out of the VM and into a container, but if you already have the VMs, this is much easier.</div><div class=""><br class=""></div><div class="">Does that help?</div><div class=""><br class=""></div><div class="">Thanks,</div><div class=""><br class=""></div><div class="">- Rob</div><div class="">.</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Sat, Apr 25, 2015 at 6:14 PM, Bob Lantz <span dir="ltr" class=""><<a href="mailto:rlantz@cs.stanford.edu" target="_blank" class="">rlantz@cs.stanford.edu</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class="">Maybe someone can describe the problem in detail for me, since there isn’t enough context here for me to figure it out, but I think this was the original issue:</div><div class=""><br class=""></div><div class="">If you have Mininet running in one VM and you want the Mininet hosts/containers to be able to talk to other VMs connected to your VM bridge, usually the easiest thing to do is to add a new virtual interface (e.g. ‘eth2’) to your Mininet VM (make sure that new virtual interface is connected to your VM bridge), and then to add that interface to OVS, e.g. by using s1.addIntf(’eth2’) or the approach in examples/hwintf.py (which is basically the same thing but using the low-level API.)</div><div class=""><div class="h5"><div class=""><br class=""></div><div class=""><div class=""><div class=""><blockquote type="cite" class=""><div class="">On Apr 24, 2015, at 10:32 PM, Rob Sherwood <<a href="mailto:rob.sherwood@bigswitch.com" target="_blank" class="">rob.sherwood@bigswitch.com</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class="">Hi all,<div class=""><br class=""></div><div class="">Did anyone get code together to do this through mininet?  I know how to set this up by hand, but I really like having mininet as a wrapper to handle arbitrary topologies and the CLI.</div><div class=""><br class=""></div><div class="">Please let me know and thanks,</div><div class=""><br class=""></div><div class="">- Rob</div><div class="">.</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, Feb 2, 2015 at 1:48 PM, Pablo M. Guevara <span dir="ltr" class=""><<a href="mailto:pablomguevara@gmail.com" target="_blank" class="">pablomguevara@gmail.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Sorry, I did reply all, thought the list was there!<br class="">
Yes, I'm actually using a pair of veth to interconect 2 VMs, one with Mininet and one running Vyos router. Works like a charm.<br class="">
Thanks!<div class=""><div class=""><br class="">
<br class="">
On 02/02/2015 06:41 PM, Bob Lantz wrote:<br class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Please don't drop the list!! :(<br class="">
Yes, those are two standard methods. You might also add:<br class="">
3) connect your Mininet network to some sort of tunnel/virtual link that connects to wherever you want<br class="">
<br class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Feb 2, 2015, at 11:54 AM, Pablo M. Guevara <<a href="mailto:pablomguevara@gmail.com" target="_blank" class="">pablomguevara@gmail.com</a>> wrote:<br class="">
<br class="">
My bad... I had a problem with my code and that is why it was failling...<br class="">
To complete the topic. To my knoledge there are 2 ways to connect Mininet hosts to the outside world.<br class="">
<br class="">
1) add a router (could be iptables, quagga or something else) running on root namespace, add a link from this host to ovs and you are done; this is the approach on<br class="">
<a href="https://github.com/mininet/mininet/blob/master/examples/nat.py" target="_blank" class="">https://github.com/mininet/mininet/blob/master/examples/nat.py</a><br class="">
2) add a physical interface to ovs; this is the approach on<br class="">
<a href="https://github.com/mininet/mininet/blob/master/examples/hwintf.py" target="_blank" class="">https://github.com/mininet/mininet/blob/master/examples/hwintf.py</a><br class="">
<br class="">
I have both methods working ok now.<br class="">
<br class="">
Thanks<br class="">
<br class="">
On 01/31/2015 12:09 AM, Bob Lantz wrote:<br class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
You haven't provided much information, but this configuration works fine for me with vmware:<br class="">
<br class="">
# mn -v output --nat<br class="">
<br class="">
mininet> sh route<br class="">
Kernel IP routing table<br class="">
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface<br class="">
default         192.168.51.2    0.0.0.0         UG    0      0        0 eth0<br class="">
10.0.0.0        *               255.0.0.0       U     0      0        0 nat0-eth0<br class="">
192.168.51.0    *               255.255.255.0   U     0      0        0 eth0<br class="">
<br class="">
mininet> h1 ping -c1 192.168.51.2<br class="">
PING 192.168.51.2 (192.168.51.2) 56(84) bytes of data.<br class="">
64 bytes from <a href="http://192.168.51.2/" target="_blank" class="">192.168.51.2</a>: icmp_seq=1 ttl=127 time=3.61 ms<br class="">
...<br class="">
<br class="">
mininet> h1 ping -c1 192.168.51.198<br class="">
PING 192.168.51.198 (192.168.51.198) 56(84) bytes of data.<br class="">
64 bytes from <a href="http://192.168.51.198/" target="_blank" class="">192.168.51.198</a>: icmp_seq=1 ttl=63 time=2.20 ms<br class="">
...<br class="">
<br class="">
<br class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Jan 30, 2015, at 11:44 AM, Jian Li <<a href="mailto:jli263@usc.edu" target="_blank" class="">jli263@usc.edu</a>> wrote:<br class="">
<br class="">
Actually I think you need to check your network settings by ifconfig. Make sure you have an interface connecting to the outside network.<br class="">
<br class="">
Best Regards,<br class="">
Jian Li<br class="">
<br class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Jan 30, 2015, at 11:17 AM, Pablo M. Guevara <<a href="mailto:pablomguevara@gmail.com" target="_blank" class="">pablomguevara@gmail.com</a>> wrote:<br class="">
<br class="">
Hi Guys,<br class="">
<br class="">
Has anyone found a way to make this work?<br class="">
I have 2 VMs<br class="">
<br class="">
1 VM Vyos router 192.168.144.1<br class="">
2 VM Mininet 192.168.144.2<br class="">
<br class="">
Ping from Vyos-VM to Mininet-VM works.<br class="">
<br class="">
Hosts on Mininet can ping Mininet-VM's address 192.168.144.2<br class="">
Hosts on Mininet can not ping Vyos-VM address 192.168.144.1<br class="">
<br class="">
Thanks<br class="">
<br class="">
-- <br class="">
Pablo<br class="">
<br class="">
_______________________________________________<br class="">
mininet-discuss mailing list<br class="">
<a href="mailto:mininet-discuss@lists.stanford.edu" target="_blank" class="">mininet-discuss@lists.stanford.edu</a><br class="">
<a href="https://mailman.stanford.edu/mailman/listinfo/mininet-discuss" target="_blank" class="">https://mailman.stanford.edu/mailman/listinfo/mininet-discuss</a><br class="">
</blockquote>
_______________________________________________<br class="">
mininet-discuss mailing list<br class="">
<a href="mailto:mininet-discuss@lists.stanford.edu" target="_blank" class="">mininet-discuss@lists.stanford.edu</a><br class="">
<a href="https://mailman.stanford.edu/mailman/listinfo/mininet-discuss" target="_blank" class="">https://mailman.stanford.edu/mailman/listinfo/mininet-discuss</a><br class="">
</blockquote></blockquote>
-- <br class="">
Pablo<br class="">
<br class="">
</blockquote></blockquote>
<br class="">
-- <br class="">
Pablo<br class="">
<br class="">
_______________________________________________<br class="">
mininet-discuss mailing list<br class="">
<a href="mailto:mininet-discuss@lists.stanford.edu" target="_blank" class="">mininet-discuss@lists.stanford.edu</a><br class="">
<a href="https://mailman.stanford.edu/mailman/listinfo/mininet-discuss" target="_blank" class="">https://mailman.stanford.edu/mailman/listinfo/mininet-discuss</a><br class="">
</div></div></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></div></div></div></div></div></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></div></div></div></div></div></blockquote></div><br class=""></div></body></html>