RF-Client reaction on Quagga sub-interface with VLAN tags

436 views
Skip to first unread message

Ailiko

unread,
Sep 26, 2013, 4:42:41 AM9/26/13
to routeflo...@googlegroups.com
Dear ALL,

We know the rf-client is a daemon, running in the virtual machines where Quagga is executing. Its principal function is to monitor changes in the Linux routing table.  When it detects any change, sends the route information to the rf-server. In addition it helps in the mapping between the VM interfaces and their attachment to the Open vSwitch ports.

We have done in Routeflow rftest2 with 4 hardware openflow switch and work fine. 
On the other hand, we trying create the Quagga's subinterface with VLAN tags, then check the Openflow switch's flow table, that no related flow entry about the sub-interface created.

Our question is, how to let rf-client reaction about the Quagga's sub-interface created or ARP table changed?!

Thank You,
Ailiko,

Allan Vidal

unread,
Sep 27, 2013, 9:26:06 AM9/27/13
to routeflo...@googlegroups.com
Hi Ailiko,

Sorry, I ended up losing track of your last message.

As for the VLANs, it seems you're trying to trunk several VLANs in one
switch port, right? I'm not sure you can do this with RouteFlow
configuration.

A while ago I tested an Inter VLAN routing scenario. I will explain
how I did it hoping it can help you (I'm recallign by memory, so there
might be some glitches). The attached files shows an overview of the
setup.

I had one switch trunking both VLANs and sending it to one port in my
IVR Router, which was running RouteFlow. I modified rftest1.

That router was represented by a single LXC container (rfvm1), which
had the following interfaces:

eth1
eth1.10 renamed as eth2
eth1.20 renamed as eth3

Then I modified RFServer to ignore any port registration but the first
port, since we don't need the other ones, they're logical only. The
configuration file was:

12A0A0A0A0A0,1,0,<dp_id>,1

RFClient would receive packets from VLANs 10 and 20 in its eth1
interface, the tag would be removed, processed accordingly by the OS
(creating the ARP entry), and finally get tagged and sent out.

I didn't need Quagga to do the routing. I added some logic to RFProxy
in which I tracked packet sources (IP) and mapped them to the VLANs
they were in. When a flow install message came from the RFServer, I
would check the destination and add the action to tag the VLAN
accordingly from what I had learned. The right way to do it would be
logic in RFServer, but I just wanted to prove the concept, so it was
quicker to implement in RFProxy.

So, what happens is that you have just one interface in all VLANs you
need, but RouteFlow just needs to see one interface. It will associate
that with a port in your router, which will have all the trunked
VLANs.

I don't know if this helps in your scenario. It's just to show that
when using VLANs, perhaps it's better to keep it all in the LXC
container and adapt RouteFlow (minimally) to your scenario.

Let us know if that helps or what the issues of your specific scenario are.
> --
> You received this message because you are subscribed to the Google Groups
> "RouteFlow" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to routeflow-disc...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
ivr_demo.png

Ailiko

unread,
Sep 30, 2013, 3:57:35 AM9/30/13
to routeflo...@googlegroups.com
Hi Allan,

Thanks for your suggestions, that Inter VLAN routing scenario is really our trying issue!

Follow your suggestions, we'll try to modify rfproxy.py, but we still have some miss understanding on this below.

That router was represented by a single LXC container (rfvm1), which 
had the following interfaces: 
 
    eth1 
    eth1.10 renamed as eth2 
    eth1.20 renamed as eth3 
 
Then I modified RFServer to ignore any port registration but the first 
port, since we don't need the other ones, they're logical only. The 
configuration file was: 

    12A0A0A0A0A0,1,0,<dp_id>,1 

1. Due to rfporxy will add some logic VLAN mapping or action to VLAN tag, 
    Does the Quagga(rfvm1) must be create sub-interface and rename the interface name on beginning?

RFClient would receive packets from VLANs 10 and 20 in its eth1 
interface, the tag would be removed, processed accordingly by the OS 
(creating the ARP entry), and finally get tagged and sent out. 


2. RFClient would receive packets from VLANs 10 and 20 in its eth1 interface, 
   so we can say VLAN tag would be removed as a resoult of LXC(rfvm1) sub-interface create, right? 


Finally, just let you know, we are still trying on this part and will be back when it works.

Thank You,
Ailiko,

Allan Vidal

unread,
Oct 9, 2013, 7:37:04 AM10/9/13
to routeflo...@googlegroups.com
Hi Ailiko,

As for #1, if I remember correctly, Quagga doesn't need to be run. The VM, however, has to have its interfaces renamed before rfclient starts. I suggest using /etc/rc.local, since that's where rfclient is called. So you should insert the renaming commands before it.

For #2, you're right, since you have VLAN interfaces, when your eth1 interface receives tagged packets, it will accept these packets, removing the tag. When one of these interfaces reply to the packet, it will come out tagged. The Linux kernel will do the magic for you.


Allan
Reply all
Reply to author
Forward
0 new messages