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....@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

Reply via email to