Is it possible to set up bonding(active/backup) on top of existing vlan interfaces ?

Assume the following scenario:

  • Linux Server with 2 NICs connected to separate switches
  • iSCSI initiator + MPIO to utilize both NICs (redundancy+throughput)
    • each path via separate VLAN (e.g. VLAN 101+102)
  • now I need another VLAN (e.g. 100) connected to the Server that should utilize NIC1 but failover to the other one if NIC1 looses it's link

Something like this:

    eth0  --- eth0.101 -- iSCSI IP 1
            \ eth0.100 ------------------- 
                                          \ __ bond100 -- IP
    eth1  --- eth0.102 -- iSCSI IP 2      /
            \ eth1.100 -------------------

I'm afraid this doesnt work, because the bonding driver doesn't get link-layer information from the vlan-interface...

Any other ideas how to solve this ?


if you want to use bonding just for redundancy (meaning no extended throughput required), you can either use bridge with spanning tree (make sure you know what you're doing, when setting this up), or some kind of routing protocol (RIP, OSPF). though both of these have some delay on failover.

  • 1
    I like both ideas, but it's more of a "responsibility-domain" problem, in an environmented with separated System- and Network-engineering. As you already mentioned a STP-configuration problem on a Server could have bad impact on the network infrastructure. – powo Dec 16 '11 at 10:04

What part doesn't work? MII monitoring?

Try using ARP monitoring instead. Check the options for the bonding module and the documentation to set it up.


Shame on me, because what I wanted to do actually works without problems.

I was just missing the miimon option, which defaults to zero (disabled). It users carrier information (use_carrier=1 (default)) which is is reflected in the vlan-interfaces too.


options bonding mode=1 miimon=100 use_carrier=1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.