Solaris Network Virtualization
OpenSolaris Project Crossbow aim is bringing a flexible Network Virtualization and Resource Control layer to Solaris. A Crossbow-enabled version of Solaris enables the administrator to create virtual NICs (and switches) which, from a guest operating system or Zone standpoint, are indistinguishable from physical NICs. You will be able to create as many NICs as your guests need and configure them independently. More information on Crossbow and official documentation can be found on the project's homepage.
This post is just a quick walkthrough to get started with Solaris Network Virtualization capabilities.
Creating a VNIC
To create a VNIC on a Solaris host you can use the procedure described hereon. Show the physical links and decide which one you'll use:
$ dladm show-link
LINK CLASS MTU STATE BRIDGE OVER
e1000g0 phys 1500 up -- --
vboxnet0 phys 1500 unknown -- --
In this machine I only have one physical link, e1000g0. Create a VNIC using the physical NIC you chose:
# dladm create-vnic -l e1000g0 vnic1
Your VNIC is now created and you can use it with Solaris network monitoring and management tools:
$ dladm show-link
LINK CLASS MTU STATE BRIDGE OVER
e1000g0 phys 1500 up -- --
vboxnet0 phys 1500 unknown -- --
vnic1 vnic 1500 up -- e1000g0
Note that a random MAC address has been chosen for your VNIC:
$ dladm show-vnic
LINK OVER SPEED MACADDRESS MACADDRTYPE VID
vnic1 e1000g0 100 2:8:20:a8:af:ce random 0
You can now use your VNIC as a "classical" physical link. You can plumb it and bring it up with the classical Solaris procedures like ifconfig and Solaris configuration files.
Resource Control
Solaris network virtualization is tightly integrated with Solaris Resource Control. After a VNIC is created you can attach resource control parameters to it such as a control for maximum bandwidth consumption or CPU usage.
Bandwidth Management
As if it were a physical link, you can use the dladm command to establish a maximum bandwidth limit on a whole VNIC:
# dladm set-linkprop -p maxbw=300 vnic4
# dladm show-linkprop vnic4
LINK PROPERTY PERM VALUE DEFAULT POSSIBLE
vnic4 autopush -- -- -- --
vnic4 zone rw -- -- --
vnic4 state r- unknown up up,down
vnic4 mtu r- 1500 1500 1500
vnic4 maxbw rw 300 -- --
vnic4 cpus rw -- -- --
vnic4 priority rw high high low,medium,high
vnic4 tagmode rw vlanonly vlanonly normal,vlanonly
vnic4 protection rw -- -- mac-nospoof,
ip-nospoof,
restricted
vnic4 allowed-ips rw -- -- --
vnic4 maximum bandwidth limit is now set to 300.
If you want to read an introduction to Solaris Projects and Resource Control you can read this blog post.
Using VNICs
VNICs are useful on a variety of use cases. VNICs are one of the building blocks of a full fledged network virtualization layer offered by Solaris. The possibility of creating VNICs on the fly will open the door to complex network setups and resource control policies.
VNICs are especially useful when used in conjunction with other virtualization technologies such as:
- Solaris Zones.
- Oracle VM.
- Oracle VM VirtualBox.
Using VNICs with Solaris Zones
Solaris Zones can use a shared or an exclusive IP stack. An exclusive IP stack has its own instance of variables used by the TCP/IP stack and are not shared with the global zone. This basically means that a Solaris Zone with an exclusive IP stack can have:
- Its own routing table.
- Its own ARP table.
and whatever parameter Solaris lets you set on your IP stack.
Before Crossbow the number of physical links on a server was a serious problem when you needed to set up a large number of Solaris Zones when an exclusive IP stack was desirable. Crossbow now removes that limit and having a large number of exclusive IP stack non global Zones is not an issue any longer.
Other Virtualization Software
The same reasoning applies for other virtualization software such as Oracle VM or Oracle VM VirtualBox. For every guest instance you need, you will create the VNICs you'll need for exclusive use of your guest operating system.
On another post I'll focus on VirtualBox and describe how VNICs can be used with its guests.
Next Steps
There's more to Solaris Network Virtualization, these are just the basics. For instance, you will be able to fully virtualize a network topology by using:
- VNICs.
- Virtual Switches.
- Etherstubs.
- VLANs.
As far as it concerns resource control, bandwith limit is just the beginning. Solaris Network Virtualization will let you finely control your VNIC usage on a:
- Per-transport basis.
- Per-protocol basis.
- CPU consumption per VNIC basis.
To discover what else Solaris Network Virtualization can do for you, keep on reading this blog and checkout the official project documentation. You could also install an OpenSolaris guest with VirtualBox and experiment yourself. There's nothing like a hands-on session.
No comments:
Post a Comment