Fixes #6444 - add support for virtual NICs

I'm just concered that whatever we do here will probably make it into at least one release before it can be updated, so I'd like to get it right. If we're agreed that:
```
eth0(physical)   -\
                   | -> bond0
eth1(pyshical)   -/

eth0(physical) -> eth0.0(virtual)
```
is the way to go, then lets do that to start with...