Thursday, October 20, 2016

Experimental stacking and distributed switching support

FAUCET can now do - experimentally - distributed switching.

This means that you can connect a bunch of FAUCET switches together, in an arbitrarily complex topology, and FAUCET will make them behave like one switch.

Many non-SDN switches support "stacking", which uses (usually) proprietary cables to achieve the same end. In FAUCET, they are just Ethernet connections. We administratively declare which connection goes where, and we nominate a switch to be at the root of the topology (by giving it a priority of 1 - in the future we will support more complex ideas).

In this version, distributed switching is very simple - all switches are programmed using an SPF algorithm. There is no need for a spanning tree protocol, because the controller has global visibility and complete control over all the switches. There is no load balancing implemented (yet) and we rely on Ethernet link status for failure detection at the edges (and only at the edges).

However, because FAUCET is open source, we can easily add other algorithms - for example to load balance based on Ethernet destination address. We can also be more clever about link failure detection (for example, we can inject test traffic to detect when a link has been configured on the wrong port).

The following configuration is for the simplest possible layout (two switches, one link).

vlans:
    100:
        name: "avlan"
dps:
    f1:
        dp_id: 0x1
        hardware: 'Open vSwitch'
        stack:
            priority: 1
        interfaces:
            1:
                native_vlan: 100
            2:
                native_vlan: 100
            3:
                native_vlan: 100
            4:
                stack:
                     dp: f2
                     port: 4
    f2:
        dp_id: 0x2
        hardware: 'Open vSwitch'
        interfaces:
            1:
                native_vlan: 100
            2:
                native_vlan: 100
            3:
                native_vlan: 100
            4:
                stack:
                     dp: f1
                     port: 4


No comments:

Post a Comment

Note: Only a member of this blog may post a comment.