[pox-dev] : ARP in loop topology
Murphy McCauley
murphy.mccauley at gmail.com
Wed Dec 11 13:38:41 PST 2013
The problem with using ARP in a looped topology is that ARP is usually broadcast and a simple-minded implementation of broadcast will lead to the broadcast getting caught in the loop.
One simple solution here is to remove the loop. This is what the traditional Spanning Tree Protocol does, and broadcast ARPs are used in networks with loops and STP every day. You can do basically the same thing with OpenFlow. POX comes with a component which attempts to do this for broadcast/multicast traffic by dynamically learning the topology (using the openflow.discovery component) and then disabling the flood bit on ports that aren't on a tree. Running POX with l2_pairs, spanning_tree, and discovery components demonstrates this, and certainly works with ARP. There's more information about this in the POX manual.
There are other solutions too. For example, l2_flowvisor never actually floods packets, and instead just sends packets along a tree to begin with. Or you might fake ARP altogether. l3_learning mostly does this, except when it doesn't know the answer, it floods the request. Instead of actually flooding, it could simply send ARP requests out each port which it knows doesn't connect to another switch (openflow.discovery can be queried to find these ports).
-- Murphy
On Dec 11, 2013, at 7:46 AM, Hoang Viet <viet.k54.bka at gmail.com> wrote:
> Dear Murphy,
> I am a student and i want to learn about SDN. While i do my project, i have a trouble that is " how to get host's MAC in a loop topology?". I have a topo as follow:
>
> h1------------------------sw1--------------sw4-------------------h4
> | |
> h2-------------------------sw2--------------sw3-------------------h3
>
> a Controller (POX) is connected to sw1,sw2,sw3,sw4.
>
> i want to get host's MAC address, so Could you give me some ideas or recommend reference to solve this answer? Some reference use ARP to get host's MAC, but i think it's impossible in a loop topology?
> Thanks for your help.
>
> Viet
More information about the pox-dev
mailing list