[Ovirt-devel] Network configuration wiki page created...

Daniel P. Berrange berrange at redhat.com
Thu Oct 16 19:42:24 UTC 2008


On Thu, Oct 16, 2008 at 12:45:02PM -0400, Darryl Pierce wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Daniel P. Berrange wrote:
> > Yes, this does more closely align, though I see this approach actualy
> > introduces a slightly different problem - the VLANs don't actually
> > work very well in this context. If you want to create lots of VLANs,
> > its forcing you to re-specify the pair of bonded devices each time
> > which isn't very nice. I can't think of a good answer for this yet
> 
> Another thing is if we're going to have multiple networks defined on a
> node, we'll need a dropdown for that as well; i.e., select an existing
> network to edit.
> 
> Regarding the vlans, I'm not experienced enough with them to come up
> with a good design. I'll do some research, but if you can point me to a
> site that can give a great high level explanation, I can try using that
> to tweak the design.

Thinking about it some more, I wasn't far off - we just need some 
dynamic handling of the devices list depending on what you select.

Basic properties

     Name: free text name for the network

IPv4 properties

       Mode: DHCP | Static | None
    Address: <if static>
    Netmask: <if static>
  Broadcast: <if static>
    Gateway: <if static>

IPv6 properties

       Mode: DHCP | Static | Autoconfig | None
    Address: <if static>
     Prefix: <if static>
    Gateway: <if static>

Physical devices

  Shared: yes | no
    Mode: raw | failover | aggregation | vlan
    VLAN: <number>
 Devices: eth0: 00:11:22:33:44:55:66 (or name of network if its used)
          eth1: 00:11:22:33:44:55:66 (or name of network if its used)
          eth2: 00:11:22:33:44:55:66 (or name of network if its used)
          bond0: <name of network owning the bond>
          bond1: <name of network owning the bond>

So, to explain this last section

 - If you select shared = 'yes', then the resulting device (either ethX
   or bondX) will be attached to a bridge. This enables its use for a
   guest. If not shared, then its a storage or mgmt network where the
   device is used directly.

 - If mode is 'raw'
      - Devices list is filtered to only show unused ethXXX devices
      - Allows picking of one device
      - Configures the ethXXX device or the bridge if its shared

 - If mode is 'failover' or 'aggregation'
      - Devices list is filtered to only show unused ethXXX devices
      - Allows picking of multiple devices based on mac addr
      - We put them all in a bondXXX device
      - Configures the bondXXX device or the bridge if its shared

 - If mode is 'vlan'
      - Devices list shows all ethXXX, all bondXXX devices in networks
        which are not shared
      - Allows picking of one device based on network name
      - Creates a VLAN device ethXXX.YYY or bondXXX.YYY against 
        this device, where YYY is VLAN number
      - Configures the ethXXX.YYY/bondXXX.YY device or the bridge
        if its shared


Some examples

 1. Want device eth0 for mgmt traffic

     - Create network with
          * device mode = raw
          * pick eth0 based on mac addr
          * Configure IPv4/6 
          * Shared = no
        Results in eth0

 2. Want devices eth0 and eth1 bonded for guest traffic

     - Create network with
          * device mode = failover
          * pick eth0 & eth1 based on mac addr
          * Optional IPv4/6 config if desired
          * Shared = yes
        Results in bond0 + br0


 3. Want devices eth0 and eth1, bonded, with two VLANs available for
    guest traffic

     - Create network with
          * device mode = failover
          * pick eth0 & eth1 based on mac addr
          * IPv4/6 address = none
          * Shared = no
        Results in bond0

     - Create network with
          * device mode = vlan
          * pick bond0 based on network name
          * Optional IPv4/6 config if desired
          * Shared = yes
          * VLAN = 123
        Results in bond0.123 + br0.123

     - Create network with
          * device mode = vlan
          * pick bond0 based on network name
          * Optional IPv4/6 config if desired
          * Shared = yes
          * VLAN = 125
        Results in bond0.125 + br0.125


 4. Want device eth0 with one VLAN for guest traffic and one VLAN for
    mgmt traffic

      - Create network with
          * device mode = raw
          * pick eth0 based on mac addr
          * IPv4/6 config = none
          * shared = no
        Results in eth0

      - Create network with
          * device mode = vlan
          * pick eth0 based on network name
          * shared = yes
          * VLAN = 123
        Results in eth0.123 + br0.123

      - Create network with
          * device mode = vlan
          * pick eth0 based on network name
          * shared = no
          * VLAN = 125
         Results in eth0.125


So for bridging, bonding & raw devices everything can be done in one
step by defining a network & picking devices. 

Additional networks need only be defined if we wish to make use of
multiple VLANs on a raw device or bond.

Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the ovirt-devel mailing list