Oracle Solaris 11 Network
Oracle Solaris 11 Network
Oracle Solaris 11 Network
C H A P T E R
Introduction to NWAM
This chapter is intended for users and system administrators who have an understanding of
basic networking concepts, as well as some experience managing network configuration by
using traditional networking tools and commands. If you are ready to use NWAM to manage
your network configuration, skip to Chapter 4, NWAM Profile Configuration (Tasks).
For basic information about administering network interfaces in Oracle Solaris, see Part II,
Datalink and Interface Configuration.
capabilities that address any changes in network conditions, for example, if your wired network
interface becomes unplugged, or if a new wireless network becomes available.
Network configuration through NWAM is made up of properties and their values that are
associated with several different types of profiles, which are also sometimes referred to as
configuration objects.
These profiles and configuration objects include the following:
Locations
The Location profile is one of the two primary profile types that make up an NWAM
configuration. The location specifies system-wide network configuration, for example, the
naming services, the domain, the IP Filter, and IPsec configuration. This information
consists of a set of properties that apply to system-wide network configuration. There are
both system-defined and user-defined locations. For a complete description of the Location
profile, see Description of a Location Profile on page 46.
36
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
NWAM profile repository The profile repository is where the NWAM configuration data
is stored. Access to the profile repository is managed by the repository daemon, netcfgd.
The NWAM profile repository includes a snapshot of your network configuration when
NWAM is enabled. This data is preserved, in the event that you need to revert to manual
configuration of your network. For more information, see NWAM Configuration Data on
page 49.
Profile configuration programs (user interfaces) The NWAM architecture includes both
a command-line interface (CLI) and a graphical user interface (GUI). These interfaces can
be used to perform similar tasks, such as creating and modifying profiles, activating profiles,
and querying the system for information about profiles.
The NWAM CLI consists of two administrative commands, netcfg and netadm. The
netcfg command enables you to create and modify profiles. This command operates in
interactive mode, command-line mode, and command-file mode. The netadm command
enables you to perform certain actions, for example, enabling or disabling a profile and
listing information about profile states. For more information, see the netcfg(1M) and
netadm(1M) man pages.
For step-by-step instructions on creating and managing profiles by using the NWAM CLI,
see Chapter 4, NWAM Profile Configuration (Tasks), and Chapter 5, NWAM Profile
Administration (Tasks).
The NWAM GUI can also be used to create and manage network profiles. The GUI has
additional functionality that enables you to quickly view and monitor the status of network
connections from the desktop. The GUI also has a notification feature that alerts you about
changes in the current status of your network. The notification feature is only available in
the GUI. To find about more about using the NWAM GUI, see Chapter 6, About the
NWAM Graphical User Interface, or refer to the online help. See also the nwammgr(1M) and
the nwammgr-properties(1M) man pages.
Policy engine daemon The nwamd daemon is the policy component of NWAM. This
daemon functions in multiple roles and manages your network configuration based on the
profiles that are stored in the profile repository. The daemon determines which profile
should be activated, depending on current network conditions, and then activates that
profile. To accomplish this task, the daemon integrates information from multiple sources.
The multiple roles that the nwamd daemon fulfills are described in detail in the section,
Overview of the NWAM Daemons on page 65.
37
Repository daemon The netcfgd daemon controls the common profile repository that
stores all of the configuration data for profiles and other configuration objects. The netcfg
command, the NWAM GUI, and the nwamd daemon all interact with the netcfgd daemon
by sending requests to access the profile repository. The repository daemon's job is to verify
whether the various processes that are attempting to access the repository data have the
correct authorizations. The daemon prohibits (fails) any access attempts by unauthorized
processes. For more information, see Description of the NWAM Repository Daemon
(netcfgd) on page 66.
NWAM library interface The libnwam library provides a functional interface to interact
with the profile repository, thereby enabling information about profiles to be read and
modified by NWAM.
Service Management Facility (SMF) network services Several network services that
NWAM uses are already a part of Oracle Solaris. However, some of these existing services
have been modified, and new services that are specific to NWAM, have been introduced. For
more information, see SMF Network Services on page 67.
advanced networking features that are not currently supported by NWAM. For more
information, see Managing Network Configuration on page 104.
38
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Resuming from suspend when a wired interface, a wireless interface, or both, is available (if
supported)
The NWAM components interact with each other in the following manner:
At all times, one NCP and one Location profile must be active on the system.
During a system boot, the policy engine daemon, nwamd, performs the following actions:
1.
2.
3.
4.
5.
As events that might trigger a change in the network configuration occur, the NWAM
daemon, nwamd, functions in various roles and performs the following operations:
1. As an event handler, nwamd detects each event as it occurs.
2. As a profile daemon, nwamd consults the active profile.
3. Depending on the change, nwamd might reconfigure the network, or networks,
accordingly.
Automatic NCP
Automatic location
NoNet location
39
If no Ethernet interfaces are connected, or if none can obtain an IP address, activate one
wireless interface, automatically connecting to the best available WLAN from the Known
WLAN list. Or, wait for the user to select a wireless network to connect to.
Until at least one IPv4 address has been obtained, the NoNet location remains active. This
Location profile provides a strict set of IP Filter rules that only pass data that is relevant to IP
address acquisition (DHCP and IPv6 autoconf messages). All of the properties of the
NoNet location, with the exception of the activation conditions, can be modified.
When at least one IPv4 address has been assigned to one of the system's interfaces, the
Automatic location is activated. This Location profile has no IP Filter or IPsec rules. The
Location profile applies the DNS configuration data that is obtained from the DHCP server.
As with the NoNet location, all of the properties of the Automatic location, with the
exception of its activation conditions, can be modified.
The NoNet location is always applied when the system has no IPv4 addresses assigned to it.
When there is at least one IPv4 address assigned, the system selects the Location profile with
the activation rules that best match the current network conditions. In the absence of a
better match, the system falls back to the Automatic location. For more information, see
How NWAM Profiles Are Activated on page 54.
Network virtualization
NWAM works with the various Oracle Solaris network virtualization technologies as
follows:
Virtual machines: Oracle VM Server for SPARC (formerly Logical Domains) and
Oracle VM VirtualBox
NWAM is supported in both Oracle Solaris hosts and guests. NWAM manages only the
interfaces that belong to the specified virtual machines and does not interfere with other
virtual machines.
40
VNICs
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Although the current NWAM implementation does not manage VNICs, manually
created VNICs persist across reboots and can be created, for example, for assignment to
an exclusive-stack zone.
Bridging technology
Bridging technology is a method of connecting separate network segments to enable
communications between the attached nodes, as if only a single segment were in use.
Although the current NWAM implementation does not actively support network
configurations that use the bridging technology, you do not need to disable NWAM
configuration management prior to using this technology on your system.
Stop the network service. This action brings down all the network interfaces on the
system. Therefore, you must use the system console to stop the service. After you
have removed or replaced the device, restart the service.
Remove the IP interface from that active NCP's configuration by using the netcfg
command. Then, you can proceed with physically removing or replacing that IP
interface's underlying hardware device. If applicable, reconfigure the IP interface
after DR is complete.
41
Switch between NWAM network configuration mode Managing Network Configuration on page 104
and traditional network configuration mode.
42
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
C H A P T E R
This chapter provides background and overview information about the NWAM configuration
and administration process. A detailed description of the profiles implementation that NWAM
uses to simplify and automate network configuration is also provided.
This chapter covers the following topics:
The following are the profile types and configuration objects that comprise NWAM
configuration:
The two primary network profile types are the NCP and the Location profile. To effect
autoconfiguration of the network through NWAM, exactly one NCP and one Location profile
must be active on the system at all times.
The NCP specifies the configuration of the local network, including the configuration of
individual components, such as physical links and IP interfaces. Each NCP consists of
individual configuration objects that are called Network Configuration Units (NCUs). Each
NCU represents a physical link or an interface and is made up of properties that define the
configuration for that link or interface. The process of configuring a user-defined NCP involves
creating NCUs for that NCP. For more information, see Description of an NCU on page 45.
A Location profile contains system-wide network configuration information, such as the
following:
Description of an NCP
An NCP defines the network configuration of a system. The NCUs that make up an NCP
specify how to configure the various network links and interfaces, for example, which interface
or interfaces should be brought up, and under what conditions that interface should be brought
up, as well as how the IP address for the interface is obtained. There are two NCP types:
Automatic and user-defined. The Automatic NCP is a system-defined profile that is
automatically created by NWAM. This profile cannot be created, modified, or removed.
44
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
User-defined NCPs are profiles that you create to meet the needs of your particular network
configuration. A user-defined NCP can be modified and removed by the user.
The Automatic NCP is a representation of all of the links and interfaces that are currently in the
system. The content of the Automatic NCP changes if network devices are added or removed.
However, the configuration preferences that are associated with the Automatic NCP cannot be
edited. The Automatic NCP is created to provide access to a profile that utilizes DHCP and
address autoconfiguration that make it possible to obtain IP addresses for the system. This
profile also implements a link selection policy that favors wired links over wireless links. If the
specification of an alternate IP configuration policy, or an alternate link selection policy is
required, you would create additional user-defined NCPs on your system.
Description of an NCU
NCUs are the individual configuration objects that make up an NCP. NCUs represent the
individual physical links and interfaces that are on a system. The process of configuring a
user-defined NCP includes creating NCUs that specify how and under what conditions each
link and interface should be configured.
There are two types of NCUs:
Link NCUs
Link NCUs, for example, physical devices, are Layer 2 entities in the Open Systems
Interconnection (OSI) model.
Interface NCUs
Interface NCUs, specifically, IP interfaces, are Layer 3 entities in the OSI model.
Link NCUs represent data links. There are several different classes of data links:
45
Note The current NWAM implementation includes support for basic network configuration
of physical links (Ethernet and WiFi) only. Although not actively supported by NWAM, several
advanced networking technologies, such as VNICs and bridging, can be configured on your
network without requiring that you disable NWAM configuration management.
However, if you configure your system to use IP Network Multipathing (IPMP), you cannot use
NWAM configuration management. You must use the traditional network configuration. For
instructions, see How to Switch From Automatic Network Configuration Mode to Manual
Network Configuration Mode on page 104.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
are connected to the company intranet. Another location can be used when you are connected
to the public Internet by using a wireless access point that is located in your office.
By default, two Location profiles are predefined by the system:
NoNet
The NoNet location has very specific activation conditions. This profile is applied by
NWAM to a stand-alone system when no local interfaces have an assigned IP address. You
can modify the NoNet location after it is activated on your system for the first time. A
read-only copy of the original NoNet location is stored on the system, in case you want to
restore the default settings for this location.
Automatic
The Automatic location is activated if there are networks available, but no other Location
profile supersedes it. You can modify the Automatic location after it has been activated on
your system for the first time. A read-only copy of the original Automatic location is stored
on the system, in case you want to restore the default settings for this location.
Note The Automatic location should not be confused with the Automatic NCP. The
Automatic location is a Location profile type that defines system-wide network properties
after the initial network configuration of a system takes place. The Automatic NCP specifies
link and interface network configuration on a system.
User-defined locations are profiles that you create with values that you specify for system-wide
network configuration. User-defined locations are identical to system-defined locations, except
that a user-defined location is configured with values that you set, while system-defined
locations have preset values.
For more information about creating user-defined locations, see Creating a Location Profile
on page 81.
Description of an ENM
ENMs are profiles that pertain to applications that are external to NWAM. These applications
can create and modify network configuration. ENMs are included in the NWAM design as a
means of creating and removing customized network configuration that is not an NCP or a
Location profile. An ENM can also be defined as a service or application that directly modifies
network configuration when it is enabled or disabled. You can configure NWAM to activate
and deactivate ENMs under conditions that you specify. Unlike an NCP or a Location profile,
where only one of each profile type can be active on the system at any given time, multiple
ENMs can potentially be active on the system at the same time. The ENMs that are active on a
system at any given time are not necessarily dependent on the NCP or Location profile that is
also enabled on the system at the same time.
Chapter 3 NWAM Configuration and Administration (Overview)
47
Although there are several external applications and services for which you can create an ENM,
the obvious example is the VPN application. After you install and configure VPN on your
system, you can create an ENM that automatically activates and deactivates the application
under the conditions that you specify.
Note It is important to understand that NWAM does not have the capability to automatically
learn about external applications that are capable of directly modifying the network
configuration on a system. To manage the activation or deactivation of a VPN application, or
any external application or service, you must first install the application, then create an ENM
for it by using either the CLI or the NWAM GUI.
Persistent information about any network configuration that is performed by an ENM is not
stored or tracked by NWAM in exactly the same way that information about an NCP or a
Location profile is stored. However, NWAM is capable of noting an externally initiated network
configuration, and then based on any configuration changes that are made to the system by an
ENM, reevaluating which Location profile should be active, and subsequently activating that
location. An example would be switching to a location that is activated conditionally when a
certain IP address is in use. If the svc:/network/physical:default service is restarted at any
time, the network configuration that is specified by the active NCP is reinstated. ENMs are
restarted as well, possibly tearing down and recreating network configuration in the process.
For information about creating and modifying the properties of an ENM, see Creating an
ENM Profile on page 86.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
the same priority value as an existing WLAN, the existing entry is shifted to a lower priority
value. Subsequently, the priority value of every other WLAN in the list is dynamically shifted to
a lower priority value.
One or more key names can also be associated with a known WLAN. Key names enable you to
create your own keys by using the dladm create-secobj command. You can then associate
these keys with WLANs by adding the secure object names to the known WLAN keyname
property. For more information, see the dladm(1M) man page.
For more information about using the NWAM command-line utilities to manage WLANs, see
Performing a Wireless Scan and Connecting to Available Wireless Networks on page 113.
NCPs Contains values for the Automatic NCP, as well as any user-defined NCPs
Locations Contains values for the three system-defined location types, as well as values for
any user-defined locations
Known WLANs Contains information about wireless networks that you might be
connected to automatically
49
Configuration data for each NCP is stored persistently as a file in the /etc/nwam directory, using
the format, ncp-name. There is one file per NCP, with the entries representing each NCU. For
example, the file for the Automatic NCP is named ncp-Automatic.conf. All NCP files are
stored in the /etc/nwam directory.
Location properties are stored in the /etc/nwam/loc.conf file.
ENM properties are stored in the /etc/nwam/enm.conf file. Known WLANs are stored in the
/etc/nwam/known-wlan.conf file. This file format is similar to the file format of the
/etc/dladm/datalink.conf file.
Note Although it is possible to modify network profiles by directly editing the files in the
NWAM profile repository, the appropriate way to modify a profile is to use the netcfg
command or the NWAM GUI configuration panels. The file format and the use of files might
change in future releases. See Setting and Changing Property Values for a Profile on page 92.
NCU properties of the Automatic NCP. Certain values apply to each NCU type.
TABLE 31
50
Property
type
link
class
phys
parent
Automatic
enabled
true
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
TABLE 31
(Continued)
Property
activation-mode
prioritized
priority-group
priority-group-mode
mac-address
Hardware-assigned
autopush
N/A
MTU
N/A
TABLE 32
Property
type
interface
class
IP
parent
Automatic
enabled
true
ip-version
ipv4, ipv6
ipv4-addrsrc
dhcp
ipv4-static-addr
N/A
ipv6-addrsrc
dhcp, autoconf
ipv6-static-addr
N/A
Property
Value
name
Automatic
activation-mode
system
51
TABLE 33
(Continued)
Property
Value
enabled
conditions
N/A
default-domain
N/A
nameservices
dns
nameservices-config-file
/etc/nsswitch.dns
dns-nameservice-configsrc
dhcp
dns-nameservice-domain
N/A
dns-nameservice-servers
N/A
dns-nameservice-search
N/A
nis-nameservice-configsrc
N/A
nis-nameservice-servers
N/A
ldap-nameservice-configsrc
N/A
ldap-nameservice-servers
N/A
nfsv4-domain
N/A
ipfilter-config-file
N/A
ipfilter-v6config-file
N/A
ipnat-config-file
N/A
ippool-config-file
N/A
ike-config-file
N/A
ipsecpolicy-config-file
N/A
The following table provides the predefined properties for the NoNet location. Note that you
can modify these values, with the exception of the activation-mode and enabled properties.
The system always enables the NoNet location when there are no active interfaces.
TABLE 34
52
Property
Value
name
NoNet
activation-mode
system
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
TABLE 34
(Continued)
Property
Value
enabled
conditions
N/A
default-domain
N/A
nameservices
files
nameservices-config-file
/etc/nsswitch.files
dns-nameservice-configsrc
N/A
dns-nameservice-domain
N/A
dns-nameservice-servers
N/A
dns-nameservice-search
N/A
nis-nameservice-configsrc
N/A
nis-nameservice-servers
N/A
ldap-nameservice-configsrc
N/A
ldap-nameservice-servers
N/A
nfsv4-domain
N/A
ipfilter-config-file
ipfilter-v6config-file
ipnat-config-file
N/A
ippool-config-file
N/A
ike-config-file
N/A
ipsecpolicy-config-file
N/A
For more information about location properties, including the properties that make up
user-defined locations, see the netcfg(1M) man page.
53
54
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Note An interface NCU must always be associated with an underlying link NCU. Each
interface NCU becomes active when its associated link NCU is activated. You can override the
default behavior of an NCU by using the netadm command. However, the dependency on the
underlying link NCU can never be removed. For example, if you enable an interface NCU
without enabling its associated link NCU, the interface will not actually come online until the
underlying NCU for that interface is activated.
In the following example, NCU properties are set according to an NCP policy that specifies that
there be only one active link on the system at any given time, and that a wired connection is
preferred over a wireless connection.
For all physical links:
activation-mode property
This property can be set to either manual or prioritized.
manual The NCU activation is managed by the administrator. You can use the NWAM
CLI or the GUI to activate or deactivate the NCU. If an NCU's activation-mode is set to
manual, values that are set for both the priority-group and priority-mode NCU
properties are ignored.
55
prioritized The NCU is activated according to the values that are set in the
priority-group and priority-mode properties for the specified NCU. The enabled
property is always true for prioritized NCUs.
Prioritized activation enables groups of links to be activated at the same time. This
activation mode also enables one or more links to be preferred over other links. The
priority-group property assigns a numeric priority level to a given link. All links at the
same priority level are examined as a group. The priority-mode property defines how
many of the group members might or must be available for the group to be activated.
exclusive Specifies that only one NCU in the priority-group can be active at any
given time. NWAM activates the first available NCU within the priority group and
ignores the other NCUs.
shared Specifies that multiple NCUs in the priority group can be active at the same
time. Any available NCUs in the priority group are activated.
all Specifies that all of the NCUs in the priority group must be made available for the
priority group to be considered available and thus made active.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
environment. If changes take place in the current network environment that result in a better
criteria match, NWAM deactivates the current Location profile and activates the Location
profile that is the better match for the new environment.
The selection criteria for when and how a location is activated are specified by the following
properties:
activation-mode
conditions
manual
conditional-any
conditional-all
system
Note The system value of the activation-mode property can only be assigned to
system-provided locations: the Automatic and NoNet locations. The system value indicates
that the system determines when to activate these locations.
If the activation-mode property is set to conditional-any or conditional-all, the
conditions property contains a conditional expression (or expressions) that are user-defined.
Each expression contains a condition that can be assigned a boolean value, for example, ncu
ip:net0 is-not active.
If the activation-mode property is set to conditional-any, the condition is satisfied if any one
of the conditions is true.
If the activation-mode property is set to conditional-all, the condition is satisfied only if all
of the conditions are true. The criteria and operations that can be used to construct the
condition strings are defined in the following table.
TABLE 35
Object Type/Attribute
Condition
Object
is/is-not active
name
essid
is/is-not
name string
contains/does-not-contain
bssid
is/is-not
bssid string
ip-address
is/is-not
ip-address
is-in-range/is-not-in-range
57
TABLE 35
(Continued)
Object Type/Attribute
Condition
Object
advertised-domain
is/is-not
name string
contains/does-not-contain
system-domain
is/is-not
name string
contains/does-not-contain
Note The essid property represents an Extended Server Set Identifier (ESSID), which is the
network name of a wireless LAN (WLAN). The bssid property represents a Basic Service Set
Identifier (BSSID), which is the MAC address of a specific wireless access point (WAP) or any
access point (AP).
Note the distinction between the advertised-domain and the system-domain attributes. The
advertised domain is discovered through external communications, for example, the DNSdmain
or NISdmain domain names, which are advertised by a DHCP server. This attribute is useful for
the conditional activation of locations, for example, if the advertised domain is mycompany.com,
then activate the work location. The system-domain attribute is the domain that is currently
assigned to the system. It is the value that is returned by the domainname command. This
attribute is useful for the conditional activation of ENMs, as it will only become true after a
location has been activated, and the system has been configured for that particular domain. For
more information, see the domainname(1M) man page.
For more information about location properties, see Description of a Location Profile on
page 46.
58
List all of the profiles that exist on a system and their property values.
List all of the property values and resources for a specified profile.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Export the current configuration for a user-defined profile to standard output or a file.
Note You cannot export a system-defined profile.
Delete any changes that were made to a profile and revert to the previous configuration for
that profile.
You can use the netcfg user interface in interactive mode, command-line mode, or
command-file mode. Because the netcfg command is hierarchical, it is more easily understood
when used in the interactive mode.
The concept of a scope is used for the netcfg command. When you use the command
interactively, the scope you are in at any given time depends on the profile type and the task that
you are performing. When you type the netcfg command in a terminal window, a prompt is
displayed at the global scope.
From here, you can use the select or create subcommands to view, modify, or create the
following top-level profiles:
NCPs
Locations
ENMs
Known WLANs
Before creating or selecting a profile, the netcfg interactive prompt is displayed in the following
form:
netcfg>
After you have created or selected a profile, the netcfg interactive prompt is displayed as
follows:
netcfg:profile-type:profile-name>
Note In command-line mode, you must type the complete command on a single line. Changes
that you make to a selected profile by using the netcfg command in command-line mode are
committed to the persistent repository as soon as you finish typing the command.
For step-by-step instructions on using the netcfg command, see Chapter 4, NWAM Profile
Configuration (Tasks). For more information about using the netcfg command, see the
netcfg(1M) man page.
Chapter 3 NWAM Configuration and Administration (Overview)
59
If an NCP is selected, the command prompt is displayed is in the NCP scope. From the NCP
scope, an NCU can be selected or created. Selecting or creating an NCU results in a profile scope
prompt for the selected NCU. In this scope, all of the properties that are associated with the
currently selected profile can be viewed and set, as shown in the following example where the
User NCP was first selected, then an NCU was created in the NCP scope. This action resulted in
the profile scope for the newly created NCU. In this scope, the properties of the NCU can be
viewed or set:
netcfg> select ncp User
netcfg:ncp:User> create ncu phys net2
Created ncu net2. Walking properties ...
activation-mode (manual) [manual|prioritized]>
At any given scope, the command prompt indicates the currently selected profile. Any changes
that you make to the profile in this scope can be committed, meaning the changes are saved to
the persistent repository. Changes are implicitly committed upon exiting the scope. If you do
not want to commit the changes that you made to the selected profile, you can revert to the last
committed state for that profile. Doing this action reverts any changes that you made to the
profile at that level. The revert and cancel subcommands work similarly.
60
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
The select subcommand is issued at each scope, once at the global scope and once at the
profile scope.
The get subcommand is used within the scope in which the property foo exists.
Straight quotation marks are required to prevent the shell from interpreting semicolons.
cancel
Ends the current profile specification without committing the current changes to persistent
storage, then proceeds to the previous scope, which is one level higher.
clear prop-name
Clears the value for the specified property.
commit
Commits the current profile to persistent storage. A configuration must be correct to be
committed. Therefore, this operation automatically performs a verify on the profile or
object, as well. The commit operation is attempted automatically upon exiting the current
scope by using either the end or exit subcommand.
destroy -a
Removes all user-defined profiles from memory and persistent storage.
61
end
Ends the current profile specification and proceeds to the previous scope, which is one level
higher. The current profile is verified and committed before ending the edit operation. If
either the verify or commit operation fails, an error message is displayed. You are then
given the opportunity to end the operation without committing the current changes. Or,
you can remain in the current scope and continue editing the profile.
exit
Exits the netcfg interactive session. The current profile is verified and committed before the
current session ends. If either the verify or commit operation fails, an error message is
displayed. You are then given the opportunity to end the session without committing the
current changes. Or, you can remain in the current scope and continue editing the profile.
get [ -V ] prop-name
Gets the current, in-memory value of the specified property. By default, both the property
name and value are printed. If the -V option is specified, only the property value is printed.
help [ subcommand ]
Displays general help or help about a specific subject.
revert
Deletes any current changes that were made to a profile, then reverts to the values from
persistent storage.
62
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
set prop-name=value
Sets the current, in-memory value of the specified property.
If performed in command-line mode, the change is also committed immediately to
persistent storage.
The delimiter for multi-valued properties is a comma (,). If an individual value for a given
property contains a comma, it must be preceded it with a backslash (\). Commas within
properties that only have a single value are not interpreted as delimiters and do not need to
be preceded by a backslash.
verify
Verifies that the current, in-memory profile or object has a valid configuration.
walkprop [-a]
Walks each property that is associated with the current profile. For each property, the
name and current value are displayed. A prompt is provided to enable you to change the
current value. If a property is not used, based on the previously specified values, the property
is not displayed. For example, if the ipv4-addrsrc property is set to static, the ipv4-addr
property is not used, and is not walked or listed, unless you specify the -a option.
When used, the -a option iterates all available properties for the specified profile or object.
The delimiter for multi-valued properties is a comma (,). If an individual value for a given
property contains a comma, it must be preceded by a backslash (\). Commas within
properties that only have a single value are not interpreted as delimiters and do not need to
be preceded by a backslash.
Note This subcommand is meaningful when used in interactive mode only.
63
ncp
ncu
loc
enm
wlan
ncp
ncu
loc
enm
wlan
disabled
Indicates a manually activated profile that has not been enabled.
64
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
offline
Indicates a conditionally activated or system-activated profile that has not been enabled.
The profile might not be active because its conditions have not been satisfied. Or, the
profile might not be active because another profile with more specific conditions that are
met has been activated instead. This condition applies to profile types that must be
enabled one at a time, for example, the Location profile.
online
Indicates a conditionally activated or system-activated profile whose conditions have
been met and which has been successfully enabled. Or, it might indicate a manually
activated profile that has been successfully enabled at the request of the user.
maintenance
Indicates that activation of the profile was attempted, but failed.
initialized
Indicates that the profile represents a valid configuration object for which no action has
yet been taken.
uninitialized
Indicates that the profile represents a configuration object that is not present on the
system. For example, this state could indicate an NCU that corresponds to a physical link
that was removed from the system.
show-events
Listens for a stream of events from the NWAM daemon and displays them.
scan-wifi link-name
Initiates a wireless scan on the link that is specified as link-name.
select-wifi link-name
Selects a wireless network to connect to from scan results on the link that is specified as
link-name.
help
Displays a usage message with a short description of each subcommand.
65
Event Collector
This role involves collecting link-related events that need to be detected through routing
socket and sysevent registration. An example of how nwamd performs this task is that the
daemon obtains an EC_DEV_ADD sysevent, which signifies that a NIC was hot-plugged into
the system. All such events are packaged into the nwamd event structure and then sent to the
event handling thread, which is responsible for that task.
Event Handler
This role involves running an event loop thread to respond to events of interest. The event
handler operates on the state machines that are associated with the different objects that are
managed by the NWAM service. In the course of handling events, the nwamd daemon detects
changes in the network environment, which might trigger changes to a profile, or profiles, as
a result.
Event Dispatcher
This role involves sending events to external consumers who have registered an interest in
such events. Examples of event dispatching include wireless scan events that contain
information about available WLANs, which is useful to the NWAM GUI. The GUI can, in
turn, display the available options to the user.
Profile Manager
Management of these profiles by the nwamd daemon involves applying the network
configuration, depending on the following information:
66
solaris.network.autoconf.read
solaris.network.autoconf.write
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
For more information about authorizations, see the auth_attr(4) man page. For more
information about security profiles, see the prof_attr(4) man page.
For more information about the netcfgd daemon, see the netcfgd(1M) man page.
The netcfgd daemon controls the repository where all of the network configuration
information is stored. The netcfg command, the NWAM GUI, and the nwamd daemon all send
requests to the netcfgd daemon to access the repository. These functional components make
requests through the NWAM library, libnwam.
The nwamd daemon is the policy engine that receives system events, configures the network, and
reads network configuration information. The NWAM GUI and the netcfg command are
Chapter 3 NWAM Configuration and Administration (Overview)
67
configuration tools that can be used to view and modify the network configuration. These
components are also used to refresh the NWAM service when a new configuration needs to be
applied to the system.
These authorizations are registered in the auth_attr database. For more information, see the
auth_attr(4) man page.
Two security profiles are provided: Network Autoconf User and Network Autoconf Admin.
The User profile has read, select, and wlan authorizations. The Admin profile adds the write
authorization. The Network Autoconf User profile is assigned to the Console User profile.
Therefore, by default, anyone who logged in to the console can view, enable, and disable
profiles. Because the Console User is not assigned the solaris.network.autoconf.write
authorization, this user cannot create or modify NCPs, NCUs, locations, or ENMs. However,
the Console User can view, create, and modify WLANs.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
The NWAM GUI includes the following three components, which are not privileged. These
components are granted authorizations, depending on how they are started and the tasks they
need to perform:
NWAM GUI
The NWAM GUI is the primary means for interacting with NWAM from the desktop. The
GUI is used to view the network status, to create and modify NCPs and Location profiles,
and to start and stop configured ENMs. Interaction with the GUI requires four of the
solaris.network.autoconf authorizations or the Network Autoconf Admin profile. By
default, the Console User profile has sufficient authorizations to view the network status
and profiles by using the GUI. In addition, you require the
solaris.network.autoconf.write authorization or the Network Autoconf Admin profile
to modify profiles by using the GUI.
69
70
C H A P T E R
This chapter describes the NWAM profile configuration tasks that you can perform by using
the netcfg command. These configuration tasks include creating, modifying, and destroying
profiles, as well as managing the various SMF services that control the NWAM configuration.
This chapter describes how to use the netcfg command in both interactive mode and
command-line mode.
The following topics are covered in this chapter:
For information about displaying profile states, activating and deactivating profiles, and
managing known wireless networks by using the netadm command, see Chapter 5, NWAM
Profile Administration (Tasks).
For information about how to interact with NWAM and how to manage your network
configuration from the desktop, see Chapter 6, About the NWAM Graphical User Interface.
For an introduction to NWAM, see Chapter 2, Introduction to NWAM.
For detailed overview information about NWAM, including a description of the netcfg user
interface modes, see Chapter 3, NWAM Configuration and Administration (Overview).
71
Creating Profiles
Creating Profiles
The netcfg command, which is described in the netcfg(1M) man page, is one of two
administrative commands in the NWAM command-line interface.
The netcfg command can be used to display profile configuration data, and to display, create,
and modify Known WLAN objects, by anyone who has Console User privileges. These
privileges are automatically assigned to any user who is logged in to the system from
/dev/console. Users who have the Network Autoconf Admin profile can also create and
modify all types of NWAM profiles and configuration objects. For more information, see the
Overview of NWAM Security on page 67.
You can use the netcfg command to select, create, modify, and destroy user-defined profiles.
The command can be used in either interactive mode or command-line mode. The netcfg
command also supports the export of profile configuration information to command files.
You can create, modify, and remove the following profiles and configuration objects:
create
Creates an in-memory profile (or configuration object) of the specified type and
name.
-t template
Specifies that the new profile be identical to template, where template is the
name of an existing profile of the same type. If the -t option is not used, the new
profile is created with default values.
object-type
72
ncp
ncu
loc
enm
wlan
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Creating Profiles
All profiles that are specified by the object-type option, with the exception of an
ncu, must be created at the global scope before you can use the netcfg select
command to select the particular object.
class
object-name
Specifies the name of the user-defined profile. For an NCU, object-name is the
name of the corresponding link or interface. For all the other profile types,
object-name is any user-defined name.
For example, to create an NCP named User, you would type the following command:
$ netcfg create ncp User
Optionally, you can use a copy of the Automatic NCP as your template, then make changes to
that profile, as shown here:
$ netcfg create -t Automatic ncp
To create a Location profile with the name office, you would type the following command:
$ netcfg create loc office
Create a profile.
Verify that all of the required information about a profile is set and valid.
Cancel the current profile configuration without committing any changes to persistent
storage.
73
Creating Profiles
Creating an NCP
Creating a profile in interactive mode results in a command prompt that is in one of the
following scopes:
Creating an NCP or an NCU moves the focus into that object's scope, walking you through the
default properties for the specified profile.
To interactively create an NCP, you begin by initiating a netcfg interactive session. Then, you
use the create subcommand to create the new NCP User, as follows:
$ netcfg
netcfg> create ncp User
netcfg:ncp:User>
You can create NCUs by using the netcfg command in either interactive mode or
command-line mode. Because creating an NCU involves several operations, it is easier and
more efficient to create NCUs in interactive mode, rather than trying to construct a single-line
command that creates the NCU and all of its properties. NCUs can be created when you initially
create an NCP or afterward. The process of creating or modifying an NCU involves setting
general NCU properties, as well as setting properties that specifically apply to each NCU type.
The properties that you are presented with during the process of creating NCUs for an NCP
make the most sense based on the choices that you made during the creation of that particular
NCP.
When you create an NCU interactively, netcfg walks through each relevant property,
displaying both the default value, where a default exists, and the possible values. Pressing
74
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Creating Profiles
Return without specifying a value applies the default value (or leaves the property empty if there
is no default), or you can specify an alternate value. The properties that are displayed during the
process of creating NCUs for an NCP are relevant based on the choices that you have already
made. For example, if you choose dhcp for the ipv4-addrsrc property for an interface NCU,
you are not prompted to specify a value for the ipv4-addr property.
The following table describes all of the NCU properties that you might specify when creating or
modifying an NCU. Some properties apply to both NCU types. Other properties apply to either
a link NCU or an interface NCU. For a complete description of all of the NCU properties,
including rules and conditions that might apply when you specify these properties, see the
netcfg(1M) man page.
TABLE 41
Property
Description
Possible Values
NCU Type
type
link or interface
class
parent
parent-NCP
enabled
true or false
activation-mode
manual or prioritized
Link
priority-group
75
Creating Profiles
TABLE 41
(Continued)
Property
Description
Possible Values
NCU Type
priority-mode
Link
link-mac-addr
link-autopush
Link
See autopush(1M).
76
link-mtu
Link
ip-version
Interface
ipv4-addrsrc
Interface
ipv6-addrsrc
Interface
ipv4-addr
Interface
ipv6-addr
Interface
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Creating Profiles
TABLE 41
Property
Description
(Continued)
Possible Values
NCU Type
An IPv4 address
Interface
An IPv6 address
Interface
are prompted for only those properties that make sense, given the choices that you made
previously. Also, the verify subcommand that is described in this procedure verifies your
configuration. If any required values are missing, you are notified. You can use the verify
subcommand explicitly when creating or modifying a profile or implicitly by using the commit
subcommand to save your changes.
1
where ncp is the profile type and User is the profile name.
Creating the NCP automatically takes you into the NCP scope. If you were creating a location,
an ENM, or a WLAN object, the command prompt would take you to the profile scope.
3
where ncu is the object type, phys is the class, and net0 (for example purposes only) is the
object name.
Creating an NCU moves you into that object's scope and walks you through the default
properties for the object.
77
Creating Profiles
where ncu is the object type, ip is the class, and net0 (for example purposes only) is the
object name.
Creating an NCU moves you into that object's scope and walks you through the default
properties for the object.
During the creation of an NCU, the class option is used to differentiate between the two
types of NCUs. This option is especially valuable in situations where different NCU types
share the same name. If the class option is omitted, it is much more difficult to distinguish
NCUs that share the same name.
4
Add the appropriate properties for the NCU that you created.
Note Repeat Steps 3 and 4 until all of the required NCUs for the NCP are created.
During the creation of the NCU, or when setting property values for a specified NCU, use the
verify subcommand to ensure that the changes that you made are correct.
netcfg:ncp:User:ncu:net0> verify
All properties verified
Alternatively, you can use the end subcommand to perform an implicit commit, which moves
the interactive session up one level to the next higher scope. In this instance, if you have
completed creating the NCP and adding NCUs to it, you can exit the interactive session directly
from the NCP scope.
78
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Creating Profiles
Note
In interactive mode, changes are not saved to persistent storage until you commit them.
When you use the commit subcommand, the entire profile is committed. To maintain the
consistency of persistent storage, the commit operation also includes a verification step. If
the verification fails, the commit also fails. If an implicit commit fails, you are given the
option of ending or exiting the interactive session without committing the current changes.
Or, you can remain in the current scope and continue making changes to the profile.
To cancel the changes that you made, use the cancel or the revert subcommand.
The cancel subcommand ends the current profile configuration without committing the
current changes to persistent storage, then moves the interactive session up on level to the
next higher scope. The revert subcommand undoes the changes that you made and rereads
the previous configuration. When you use the revert subcommand, the interactive session
remains in the same scope.
When you are finished configuring the NCP, exit the interactive session.
netcfg:ncp:User> exit
Any time that you use the exit subcommand to end a netcfg interactive session, the current
profile is verified and committed. If either the verification or the commit operation fails, an
appropriate error message is issued, and you are given the opportunity to exit without
committing the current changes. Or, you can remain in the current scope and continue making
changes to the profile.
Note To exit the scope without exiting the netcfg interactive session, type the end command:
netcfg:ncp:User> end
netcfg>
Example 41
79
Creating Profiles
In this example, because the value ipv4 is chosen, no prompt is displayed for the ipv6-addrsrc
property, as this property is unused. Likewise, for the phys NCU, the default value (manual
activation) for the priority-group property is accepted, so no other conditionally related
properties are applied.
Example 42
80
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Creating Profiles
81
Creating Profiles
Location properties are also stored by NWAM in a repository. When a particular Location
profile is activated, NWAM autoconfigures the network, based on the properties that are set for
that location. Creating or modifying locations involves setting the various properties that define
how the profile is configured, which in turn, determines how NWAM autoconfigures your
network. The properties that you are presented with during the configuration process are those
that make the most sense, based on the choices that you made previously.
The following table describes all of the location properties that can be specified. Note that
location properties are categorized by group. For a complete description of all of the location
properties, including any rules, conditions, and dependencies that might apply when you
specify any of these properties, see the netcfg(1M) man page.
TABLE 42
Selection criteria
activation-mode
The possible values for the activation-mode property are
manual, conditional-any, and conditional-all.
conditions
domain-name
nameservices
nameservices-config-file
dns-nameservice-configsrc
dns-nameservice-domain
dns-namservice-servers
dns-nameservice-search
dns-nameservice-sortlist
dns-nameservice-options
nis-nameservice-configsrc
nis-namservice-servers
ldap-nameservice-configsrc
ldap-namservice-servers
For more information about these properties, see the Location
Properties section in the netcfg(1M) man page.
82
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Creating Profiles
TABLE 42
NFSv4 domain
IP Filter configuration
ipfilter-config-file
ipfilter-v6-config-file
ipnat-config-file
ippool-config-file
If a configuration file is specified, the rules that are contained
in the identified file are applied to the appropriate ipfilter
subsystem.
ike-config-file
ipsecpolicy-config-file
(Continued)
83
Creating Profiles
conditional-any
"ncu ip:wpi0 is active"
false
dns
"/etc/nsswitch.dns"
dhcp
"/export/home/test/wifi.ipf.conf"
When you complete the verification, commit the Location profile to persistent storage.
netcfg:loc:office> commit
Committed changes
Alternatively, you can use the end subcommand to end the session, which also saves the profile
configuration.
netcfg:loc:office> end
Committed changes
Note
In interactive mode, changes are not saved to persistent storage until you commit them.
When you use the commit subcommand, the entire profile is committed. To maintain the
consistency of persistent storage, the commit operation also includes a verification step. If
the verification fails, the commit also fails. If an implicit commit fails, you are given the
option of ending or exiting the interactive session without committing the current changes.
Or, you can remain in the current scope and continue making changes to the profile.
To cancel the changes that you made, use the cancel subcommand.
The cancel subcommand ends the current profile configuration without committing the
current changes to persistent storage, then moves the interactive session up one level to the
next higher scope.
84
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Creating Profiles
Example 43
In this example, the following properties were specified for the office location:
The condition for activation was specified as: ncu ip:wpi0 is active.
85
Creating Profiles
Note The conditions property was required because the conditional-any property was
specified in the previous step. If, for example, the manual property had been specified, the
conditions property would not be required.
nameservices
nameservices-config-file
dns-nameservice-configsrc
nfsv4-domain
ipfilter-v6-config-file
ipnat-config-file
ippool-config-file
ike-config-file
ipsecpolicy-config-file
The list subcommand was used to view the properties of the Location profile.
The commit subcommand was used to commit the changes to persistent storage.
The list subcommand was used again to ensure that the new location was created correctly
and that it contains the correct information.
The exit subcommand was used to exit the netcfg interactive session.
For instructions on which values can be specified for these properties, see the netcfg(1M) man
page.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Creating Profiles
Note NWAM does not automatically recognize an application for which you might create an
ENM. These applications must first be installed and then configured on your system before you
can use the netcfg command to create an ENM for them.
where enm is the ENM profile and my_enm is the object name.
The process of creating the ENM takes you to the profile scope for the newly created ENM, and
automatically begins a walk of the properties in the newly created ENM. From here, you can set
properties for the ENM that dictate when and how the ENM is activated, as well as other
conditions, including the ENM's start and stop method.
For further instructions on specifying ENM properties, see the netcfg(1M) man page.
The following table describes the properties that you might specify when creating or modifying
an ENM.
Property Name
Description
Possible Values
activation-mode
conditional-any, conditional-all,
manual
conditions
If activation-mode is
conditional-any or
conditional-all, specifies the test to
determine whether the ENM must be
activated.
start
stop
fmri
87
Creating Profiles
EXAMPLE 44
In this example, an ENM named test-enm was created with the following property values:
The default value (manual) for the activation-mode property was accepted by pressing the
Return key.
88
The list subcommand was used to view the properties of the ENM.
The verify subcommand was used to ensure that the profile configuration is correct.
The end subcommand was used again to end the interactive session.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Creating Profiles
Creating WLANs
NWAM maintains a system-wide list of known WLANs. WLANs are configuration objects that
contain history and configuration information for the wireless networks that you connect to
from your system. This list is used to determine the order in which NWAM attempts to connect
to available wireless networks. If a wireless network that exists in the Known WLAN list is
available, NWAM automatically connects to that network. If two or more known networks are
available, NWAM connects to the wireless network that has the highest priority (lowest
number). Any new wireless network that NWAM connects to is added to the top of the Known
WLAN list and becomes the new highest priority wireless network.
To create a WLAN object, type the following command:
$ netcfg
netcfg> create wlan mywifi
Created wlan mywifi. Walking properties ...
where wlan is the WLAN object and mywifi is the object name.
The process of creating a WLAN object takes you to the profile scope for the newly created
WLAN, and automatically begins a walk of the properties in the newly created WLAN. From
here, you can set properties for the WLAN that define its configuration.
The following table describes the properties that you might specify when creating or modifying
WLANs.
Known WLAN Property
name
bssids
priority
keyslot
keyname
security-mode
EXAMPLE 45
Creating a WLAN
89
Creating Profiles
EXAMPLE 45
Creating a WLAN
(Continued)
This example assumes that a secure object named mywifi-key, which contains the key that is
specified by the keyname property for the WLAN mywifi, is created before adding the WLAN.
The priority number can change as other WLANs are added or removed. Note that no two
WLANs can be assigned the same priority number. Lower numbers indicate a higher priority,
in terms of which WLANs are preferred. In this example, the WLAN is assigned the priority
number 100 to ensure that it has a lower priority than any other known WLANs.
When the list subcommand is used at the end of the procedure, the new WLAN is added to
the bottom of the list, indicating that it has the lowest priority of all the existing known WLANs.
If the WLAN was assigned a priority number of zero (0), which is the default, it would have
been displayed at the top of the list, indicating the highest priority. Subsequently, the priority of
all other existing WLANs would have shifted down in priority and would have been displayed
in the list after the newly added WLAN.
$ netcfg
netcfg> create wlan mywifi
Created wlan mywifi. Walking properties ...
priority (0)> 100
bssids>
keyname> mywifi-key
keyslot>
security-mode [none|wep|wpa]> wpa
netcfg:wlan:mywifi> list
WLAN:mywifi
priority
100
keyname
"mywifi-key"
security-mode
wpa
netcfg:wlan:mywifi> verify
All properties verified
netcfg:wlan:mywifi> end
Committed changes
netcfg> list
NCPs:
User
Automatic
Locations:
Automatic
NoNet
test-loc
ENMs:
test-enm
WLANs:
sunwifi
ibahn
gogoinflight
admiralsclub
hhonors
sjcfreewifi
mywifi
netcfg> exit
Nothing to commit
90
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Removing Profiles
EXAMPLE 45
Creating a WLAN
(Continued)
Removing Profiles
You can remove all user-defined profiles or a specified user-defined profile from memory and
persistent storage by using the netcfg destroy -a command.
Note System-defined profiles, which include the Automatic NCP and the NoNet and
Automatic Location profiles, cannot be removed.
Alternatively, you can use the following command to remove all of the user-defined profiles in a
system:
netcfg destroy -a
EXAMPLE 46
To remove all of the user-defined profiles on a system, type the following command:
$ netcfg destroy -a
Because at least one profile must be active on the system at all times, and to avoid in-use errors
when removing user-defined profiles, make sure that you enable the Automatic NCP before
using the destroy -a command.
EXAMPLE 47
To remove a specific user-defined profile on the system, for example the NCP named User, type
the following command:
$ netcfg destroy ncp User
The destroy command can also be used to remove NCUs from an existing NCP. In the
following example, an interface NCU with the name net1 is removed from the user-defined
NCP:
$ netcfg "select ncp User; destroy ncu ip net1"
To confirm that a profile has been removed, use the list subcommand, as shown here:
Chapter 4 NWAM Profile Configuration (Tasks)
91
EXAMPLE 47
(Continued)
$ netcfg
netcfg> select ncp User
netcfg:ncp:User> list
NCUs:
phys
net1
netcfg> exit
Nothing to commit
$
EXAMPLE 48
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
If you need to retrieve a specific property value, use the netcfg get command. For more
information, see Obtaining Values of a Specific Property on page 97.
EXAMPLE 49
If you are using the netcfg command to set a property value in command-line mode, multiple
subcommands must be typed on the command line.
For example, to set the mtu property for a link NCU named net1, you would type the following
command:
$ netcfg "select ncp User; select ncu phys net1; set mtu=1492"
In this example, the select subcommand is used to select the top-level profile, then again to
select the NCU that contains the mtu property value that is modified.
Multiple values can be set for a given property from the command line at the same time. When
setting multiple values, each value must be separated by a comma (,). If individual values for a
specified property also contain a comma, the comma that is part of the property value must be
preceded by a backslash (\,). Commas within properties that only have a single value are not
interpreted as delimiters and therefore do not need to be preceded by a backslash.
In the following example, the ip-version property value for the NCU, myncu, in the NCP User
is set:
$ netcfg "select ncp User; select ncu ip myncu; set ip-version=ipv4,ipv6"
EXAMPLE 410
When interactively setting property values, you must first select a profile at the current scope,
which moves the interactive session into that profile's scope. From this scope, you can select the
object whose property that you want to modify. The selected profile is then loaded into memory
from persistent storage. At this scope, you can modify the profile or its properties, as shown in
the following example:
$ netcfg
netcfg> select ncp User
netcfg:ncp:User> select ncu ip iwk0
netcfg:ncp:User:ncu:iwk0> set ipv4-default-route = 129.174.7.366
In the following example, the ipfilter-config-file property of the location foo is set:
$ netcfg
netcfg> list
NCPs:
Automatic
User
Locations:
Automatic
NoNet
Chapter 4 NWAM Profile Configuration (Tasks)
93
EXAMPLE 410
(Continued)
foo
netcfg> select loc foo
netcfg:loc:foo> list
LOC:foo
activation-mode
manual
enabled
false
nameservices
dns
dns-nameservice-configsrc
dhcp
nameservices-config-file
"/etc/nsswitch.dns"
netcfg:loc:foo> set ipfilter-config-file=/path/to/ipf-file
netcfg:loc:foo> list
LOC:foo
activation-mode
manual
enabled
false
nameservices
dns
dns-nameservice-configsrc
dhcp
nameservices-config-file
"/etc/nsswitch.dns"
ipfilter-config-file
"/path/to/ipf-file"
netcfg:loc:foo> end
Committed changes
netcfg> exit
Nothing to commit
$
In the following example, the link-mtu property of the NCU net0 in the NCP User is modified
interactively:
$ netcfg
netcfg> select ncp User
netcfg:ncp:User> select ncu phys net0
netcfg:ncp:User:ncu:net0> list
NCU:net0
type
link
class
phys
parent
"User"
enabled
true
activation-mode
prioritized
priority-mode
exclusive
priority-group
1
netcfg:ncp:User:ncu:net0> set link-mtu=5000
netcfg:ncp:User:ncu:net0> list
NCU:net0
type
link
class
phys
parent
"User"
enabled
true
activation-mode
prioritized
priority-mode
exclusive
priority-group
1
link-mtu
5000
netcfg:ncp:User:ncu:net0> commit
Committed changes
netcfg:ncp:User:ncu:net0> exit
Nothing to commit
94
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
EXAMPLE 410
(Continued)
NCPs
There are two NCPs listed: the Automatic NCP, which is a system-defined profile, and a
user-defined NCP, named User.
95
Locations
There are four Location profiles listed: two locations that are system-defined (Automatic
and NoNet) and two locations that are user-defined (home and office).
ENMs
There are two ENMs listed: one ENM for an installed and configured VPN application, and
one test ENM.
WLANs
There are three WLANs listed: one WLAN for work, one WLAN for the local coffee shop,
and one WLAN for the user's home wireless network.
For example, to list all of the property values for an IP NCU in the User NCP, you would type
the following command:
$ netcfg "select ncp User; list ncu ip net0"
NCU:net0
type
interface
class
ip
parent
"User"
enabled
true
ip-version
ipv4
ipv4-addrsrc
dhcp
ipv6-addrsrc
dhcp,autoconf
EXAMPLE 412
In the following example, all of the properties for an ENM named myenm are listed.
$ list enm myenm
ENM:myenm
activation-mode manual
enabled
true
start
"/usr/local/bin/myenm start"
stop
"/bin/alt_stop"
96
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
EXAMPLE 412
(Continued)
In this example, the output of the list subcommand displays the following information:
The start and stop method properties have been specified, rather than using an FMRI.
To obtain the value of the ip-version property of an NCU named myncu, which is a part of the
User NCP, you would type the following command. For example:
$ netcfg "select ncp User; select ncu ip myncu; get -V ip-version"
ipv4
If the -V option is used with the get subcommand, only the property value is displayed, as
shown here:
netcfg:ncp:User:ncu:net0> get -V activation-mode
manual
Otherwise, both the property and its value are displayed. For example:
netcfg:ncp:User:ncu:net0> get activation-mode
activation-mode
manual
97
at a time, enabling you to modify one or all of the profile's properties. For more information, see
Interactively Viewing and Changing Property Values by Using the walkprop Subcommand
on page 99.
1
Select the profile or configuration object that contains the property value that you want to
obtain.
netcfg> select object-type [ class ] object-name
Note The class parameter is applicable only if you are selecting an NCU. Also, the class
parameter must be specified if both the phys and ip class NCU share the same name. However,
if the NCU name is unique, the class parameter is not required.
In this example, selecting the User NCP moves the interactive session into the selected object's
scope.
3
Select the object that contains the property value that you want to obtain.
In the following example, the link (phys) NCU net0 in the User NCP is selected:
netcfg:ncp:User> select ncu phys net0
Selecting the NCU net0 moves the interactive session to that object's scope and loads the
current properties for the NCU from memory.
5
For example, to obtain the value of the activation-mode property, you would type:
netcfg:ncp:User:ncu:net0> get activation-mode
activation-mode
manual
Next Steps
98
At this point, you can set a new value for the property by using the set subcommand, or you can
exit the interactive session without making any changes. Note that if you modify a property
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
value while in interactive mode, you must use the commit or exit subcommand to save your
changes. For information about setting a property value in netcfg interactive mode, see
Setting and Changing Property Values for a Profile on page 92.
In the following example, the activation-mode property for the location foo is viewed and
then changed by using the walkprop subcommand. Note that when using the walkprop
subcommand, you do not need to use the set subcommand to set the property value.
$ netcfg
netcfg> select loc foo
netcfg:loc:foo> list
loc:foo
activation-mode
manual
enabled
false
nameservices
dns
nameservices-config-file
"/etc/nsswitch.dns"
dns-nameservice-configsrc
dhcp
nfsv4-domain
"Central.oracle.com"
netcfg:loc:foo> walkprop
activation-mode (manual) [manual|conditional-any|conditional-all]> conditional-all
conditions> advertised-domain is oracle.com
nameservices (dns) [dns|files|nis|ldap]>
nameservices-config-file ("/etc/nsswitch.dns")>
dns-nameservice-configsrc (dhcp) [manual|dhcp]>
nfsv4-domain ("Central.oracle.com")>
ipfilter-config-file>
ipfilter-v6-config-file>
ipnat-config-file>
ippool-config-file>
ike-config-file>
ipsecpolicy-config-file>
netcfg:loc:foo> list
loc:foo
activation-mode
conditional-all
Chapter 4 NWAM Profile Configuration (Tasks)
99
EXAMPLE 413
conditions
enabled
nameservices
nameservices-config-file
dns-nameservice-configsrc
nfsv4-domain
netcfg:loc:foo> commit
Committed changes
netcfg:loc:foo> end
netcfg> exit
$
(Continued)
"advertised-domain is oracle.com"
false
dns
"/etc/nsswitch.dns"
dhcp
"Central.oracle.com"
Note Only relevant properties are walked. For example, if the ipv4-addrsrc property is set to
static, the ipv4-addr property is included in the walk. However, if ipv4-addrsrc is set to
dhcp, the ipv4-addr property is not walked.
other.
EXAMPLE 414
In the following example, the export subcommand is used to display a system's profile
configuration on the screen.
$ netcfg
netcfg> export
create ncp "User"
create ncu ip "net2"
set ip-version=ipv4
set ipv4-addrsrc=dhcp
set ipv6-addrsrc=dhcp,autoconf
end
100
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
EXAMPLE 414
(Continued)
In the following example, the -d option is used with the export subcommand. The -d option
adds the destroy -a command as the first line of the netcfg export output.
$ netcfg
netcfg> export -d
destroy -a
create ncp "User"
create ncu ip "net2"
set ip-version=ipv4
set ipv4-addrsrc=dhcp
set ipv6-addrsrc=dhcp,autoconf
end
create ncu phys "net2"
Chapter 4 NWAM Profile Configuration (Tasks)
101
EXAMPLE 415
(Continued)
set activation-mode=manual
set link-mtu=5000
end
create ncu phys "wpi2"
set activation-mode=prioritized
set priority-group=1
set priority-mode=exclusive
set link-mac-addr="13:10:73:4e:2"
set link-mtu=1500
end
end
create loc "test"
set activation-mode=manual
set nameservices=dns
set nameservices-config-file="/etc/nsswitch.dns"
set dns-nameservice-configsrc=dhcp
set nfsv4-domain="domain.oracle.com"
end
create loc "foo"
set activation-mode=conditional-all
set conditions="system-domain is oracle.com"
set nameservices=dns
set nameservices-config-file="/etc/nsswitch.dns"
set dns-nameservice-configsrc=dhcp
set nfsv4-domain="domain.oracle.com"
end
create enm "myenm"
set activation-mode=conditional-all
set conditions="ip-address is-not-in-range 1.2.3.4"
set start="/my/start/script"
set stop="/my/stop/script"
end
create wlan "mywlan"
set priority=0
set bssids="0:13:10:73:4e:2"
end
netcfg> end
$
EXAMPLE 416
In the following example, the configuration information for the User NCP is written to a file by
using the netcfg export command with the -f option. The -f option writes the output to a
new file named user2. The -d option adds the destroy -a command as the first line of the
netcfg export output.
$ netcfg export -d -f user2 ncp User
102
$ ls -al
drwx------ 3 root
drwxr-xr-x 37 root
root
root
-rw-r--r-$
root
1 root
4 Oct 14 10:53 .
40 Oct 14 10:06 ..
352 Oct 14 10:53 user2
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
EXAMPLE 416
(Continued)
$ cat user2
destroy -a
create ncp "User"
create ncu ip "net2"
set ip-version=ipv4
set ipv4-addrsrc=dhcp
set ipv6-addrsrc=dhcp,autoconf
end
create ncu phys "net2"
set activation-mode=manual
set link-mtu=5000
end
create ncu phys "wpi2"
set activation-mode=prioritized
set priority-group=1
set priority-mode=exclusive
set link-mac-addr="13:10:73:4e:2"
set link-mtu=1500
end
end
create loc "test"
set activation-mode=manual
set nameservices=dns
set nameservices-config-file="/etc/nsswitch.dns"
set dns-nameservice-configsrc=dhcp
set nfsv4-domain="domain.oracle.com"
end
create loc "foo"
set activation-mode=conditional-all
set conditions="system-domain is oracle.com"
set nameservices=dns
set nameservices-config-file="/etc/nsswitch.dns"
set dns-nameservice-configsrc=dhcp
set nfsv4-domain="domain.oracle.com"
end
create enm "myenm"
set activation-mode=conditional-all
set conditions="ip-address is-not-in-range 1.2.3.4"
set start="/my/start/script"
set stop="/my/stop/script"
end
create wlan "mywlan"
set priority=0
set bssids="0:13:10:73:4e:2"
end
$
103
For example:
$ netcfg -f user2
This command executes the command file that contains the exported configuration.
104
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Note The netadm command is supported only when the network configuration is in the
automatic mode. Consequently, in the manual mode, the output of the command is limited
only to indicating that the DefaultFixed profile is enabled. No information about the other
NCPs in the system is provided.
Check the state of the NCP and the other NWAM profiles.
# netadm list -x
TYPE
PROFILE
ncp
Automatic
ncu:phys
net0
ncu:ip
net0
ncu:phys
net1
ncu:ip
net1
ncp
User
loc
Automatic
loc
NoNet
#
STATE
online
online
online
offline
offline
disabled
online
offline
AUXILIARY STATE
active
interface/link is up
interface/link is up
interface/link is down
conditions for activation are unmet
disabled by administrator
active
conditions for activation are unmet
105
106
C H A P T E R
This chapter describes how to use the netadm command to administer these profiles: NCPs,
locations, ENMs, and WLANs. The netadm command can also be used to administer NCUs,
which are the individual configuration objects that make up an NCP, and to interact with the
NWAM daemon (nwamd) in the absence of the NWAM GUI. For more information about using
the netadm command, see the netadm(1M)man page.
The following topics are covered in this chapter:
For information about creating profiles and configuring their properties by using the netcfg
command, see Chapter 4, NWAM Profile Configuration (Tasks).
For information about how to interact with the NWAM configuration and how to manage your
network configuration from the desktop by using the NWAM GUI, see Chapter 6, About the
NWAM Graphical User Interface.
For an introduction to NWAM, see Chapter 2, Introduction to NWAM.
For more information about all of the NWAM components, as well as NWAM configuration
details, see Chapter 3, NWAM Configuration and Administration (Overview).
107
For example, to display all of the profiles on a system and their state, you would type the
following command:
$ netadm list
TYPE
PROFILE
ncp
User
ncp
Automatic
ncu:ip
net1
ncu:phys
net1
ncu:ip
net0
ncu:phys
net0
loc
foo
loc
test
loc
NoNet
loc
Automatic
$
STATE
disabled
online
offline
offline
online
online
disabled
disabled
offline
online
In this example, every system-defined and user-defined profile that is on the system and its
current state is displayed. Note that the list subcommand displays the enabled NCP and all of
the NCUs that make up that particular NCP.
108
disabled
offline
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Note The offline state occurs more often in the case of profile types that
must be activated one at a time, such as the Location profile.
online
maintenance
Indicates that the activation of the profile was attempted, but the activation
failed.
initialized
Indicates that the profile is valid, but no action has been taken on the
profile.
uninitialized
Indicates that the profile is not present in the system. For example, this state
can occur when an NCU that corresponds to a physical link is removed
from the system.
EXAMPLE 51
The following example lists the current state of the Automatic NCP, which has been specified by
name:
$ netadm list Automatic
TYPE
PROFILE
ncp
Automatic
ncu:ip
net1
ncu:phys
net1
ncu:ip
net0
ncu:phys
net0
loc
Automatic
STATE
online
offline
offline
online
online
online
In the following example, the list subcommand is used with the -p option to display all of the
locations that are currently on the system:
$ netadm list -p loc
TYPE
PROFILE
loc
foo
loc
test
loc
NoNet
loc
Automatic
$
STATE
disabled
disabled
offline
online
In the following example, the list subcommand is used with the -c option to display all of the
interface NCUs in the currently active NCP:
$ netadm list -c ip
TYPE
PROFILE
ncu:ip
net0
STATE
online
109
EXAMPLE 51
ncu:ip
$
(Continued)
disabled
STATE
disabled
online
online
online
offline
offline
offline
offline
online
AUXILIARY STATE
disabled by administrator
active
interface/link is up
interface/link is up
interface/link is down
conditions for activation are unmet
conditions for activation are unmet
conditions for activation are unmet
active
Auxiliary state values vary, depending on the profile type. For detailed information about
auxiliary states, see the nwamd(1M) man page.
110
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
makes it easy to switch a conditional Location profile to always on. Disabling the conditional
location switches the system back to its normal conditional behavior. When any location is
manually enabled, the system does not change the location, even if a conditionally enabled
location's conditions are met.
Note You cannot explicitly disable the NCP that is currently active on a system, as that would
effectively shut down the basic network connectivity of the system. An NCP is disabled
implicitly when a different NCP is manually enabled. However, there are no constraints on
ENM activation. Zero or more ENMs can be active on a system at any given time. Thus,
enabling or disabling an ENM has no effect on other currently active ENMs.
You can also manually enable and disable individual NCUs. Note that the specified NCU must
be part of the currently active NCP and must have an activation-mode property of manual. If
the NCU class is not specified, all of the NCUs (one link NCU and one interface NCU with that
name) are activated or deactivated.
Activation and deactivation of objects is performed asynchronously. Therefore, the request to
enable or disable might succeed, while the action (activate or deactivate) fails. A failure of this
sort is reflected in the profile's state, which changes to maintenance, indicating that the last
action taken on the profile failed. For information about displaying the state of profiles, see
Obtaining Information About Profile States on page 108.
EXAMPLE 52
Enabling a Profile
If the profile name is not unique, for example, if there are multiple profiles with the same name,
but of different types, are on the system, you must also specify the profile type.
The -p option can be used to specify one of the following profile types:
ncp
ncu
loc
enm
If the configuration object's type is ncu, the -c option can be used to distinguish the NCU class.
The -c option is helpful when two NCUs with identical names are on the system.
If the -coption is used, it must specify either phys or ip class type.
In the following example, a location named office is enabled:
111
EXAMPLE 52
Enabling a Profile
(Continued)
where the profile-type is loc, and the profile-name is office. Note that the -c ncu-class option is
not used in this example because the profile type is a location and not an NCP.
$ netadm enable -p ncp user
Enabling ncp User
.
.
.
Note that when you specify profile names, the netadm command is case-insensitive.
EXAMPLE 53
Disabling a Profile
If the profile name is not unique, you must also specify the profile type.
The -p option can be used to specify one of the following profile or object types:
ncp
ncu
loc
enm
If the configuration object's type is an ncu, the -c option must also be used to distinguish the
NCU class.
The NCU class must be specified as either phys or ip.
For example, to manually disable a link NCU named net1, you would type the following
command:
$ netadm disable -p ncu -c phys net1
where the profile-type is ncu, and the ncu-class is phys, and the profile-name is net1. Note that
the -c ncu-class option is used in this example because the configuration object is an NCU.
EXAMPLE 54
Switching Profiles
To change the active NCP and enable manual configuration, you would type the following
command:
$ netadm enable -p ncp DefaultFixed
112
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
EXAMPLE 54
Switching Profiles
(Continued)
Similarly, to enable automatic (NWAM) configuration with the Automatic NCP, you would
type the following command:
$ netadm enable -p ncp Automatic
For more information about netadm, see the netadm(1M) man page.
You can also trigger a subsequent scan of the network to search for available wireless networks
by using the netadm scan-wifi link-name command. Note that a subsequent scan might not
trigger a scan event, if the new scan results are identical to the existing scan results. The nwamd
daemon performs the scan, regardless of whether the data has changed since the last scan.
In the following example, the netadm scan-wifi command is used to perform a scan of the
wireless link, net1. The netadm select-wifi command is then used to display a list of wireless
networks from which to select. The list that is displayed is based on the results of the scan that
was previously performed on net1.
$ netadm select-wifi net1
1: ESSID home BSSID 0:b:e:85:26:c0
2: ESSID neighbor1 BSSID 0:b:e:49:2f:80
3: ESSID testing BSSID 0:40:96:29:e9:d8
4: Other
Choose WLAN to connect to [1-4]: 1
$
In this example, the wireless network that is represented by the number 1, selects the home
network.
113
If the WLAN requires a key, you are prompted to enter the key and key slot, if WEP is specified.
For example:
Enter WLAN key for ESSID home: mywlankey
Enter key slot [1-4]: 1
In the following example, the nwam show-events command is used with the -v option to
display events in verbose mode:
$ netadm show-events -v
EVENT
DESCRIPTION
LINK_STATE
net0 -> state down
OBJECT_STATE
ncu link:net0 -> state online*, interface/link is down
OBJECT_STATE
ncu link:net0 -> state offline, interface/link is down
OBJECT_STATE
ncu interface:net0 -> state online*, conditions for act
OBJECT_STATE
ncu interface:net0 -> state offline, conditions for act
IF_STATE
net0 -> state (0) flags 2004801
IF_STATE
net0 -> state (0) flags 2004800
IF_STATE
net0 -> state (0) flags 1004803
IF_STATE
net0 -> state index 4 flags 0x0 address fe80::214:4fff:
IF_STATE
net0 -> state (0) flags 1004802
IF_STATE
net0 -> state index 4 flags 0x0 address 129.156.235.229
IF_STATE
net0 -> state (0) flags 1004803
IF_STATE
net0 -> state (0) flags 1004802
IF_STATE
net0 -> state (0) flags 1004803
IF_STATE
net0 -> state (0) flags 1004802
114
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
STATE
online
offline
offline
offline*
offline
disabled
offline
online
offline
AUXILIARY STATE
active
interface/link is down
conditions for activation are
need WiFi network selection
conditions for activation are
disabled by administrator
conditions for activation are
active
conditions for activation are
unmet
unmet
unmet
unmet
After determining the reason that a link or interface is offline, you can proceed to correct the
problem. In the case of a duplicate IP address, you must modify the static IP address that is
assigned to the specified interface by using the netcfg command. For instructions, see Setting
and Changing Property Values for a Profile on page 92. After you commit the changes, run the
netadm list -x command again to check that the interface is now configured correctly, and
that its state is displayed as online.
Another example of why an interface might not be configured correctly is if no known WLANs
are available. In this case, the WiFi link's state would be displayed as offline, and the reason
would be need wifi selection". Or, if a WiFi selection was made, but a key is required, the
reason would be need wifi key".
115
116
C H A P T E R
This chapter discusses the dladm command and how the command is used to configure
datalinks.
Task
Description
For Instructions
Rename a datalink.
Remove a datalink.
147
TABLE 82
Task
Description
For Instructions
Switches off higher link speed and How to Change Link Speed
advertises only the lower link speed Parameters on page 156
to allow communications with an
older system.
148
Only a single command interface, the dladm command, is needed to configure network
driver properties.
Use of the dladm command applies to both public and private properties of the driver.
Using the dladm command on a specific driver does not disrupt network connections of
other NICs of similar types. Thus, you can configure datalink properties dynamically.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Datalink configuration settings are stored in a dladm repository and persist even after you
reboot the system.
To avail of the advantages previously listed when you configure datalinks, you should use dladm
as the configuration tool instead of the customary tools in previous releases, such as the ndd
command.
To administer datalinks, you use the following dladm subcommands:
dladm show-linkprop displays the properties that are associated with the datalink.
The dladm command is also used to perform other types of link administration, such as the
following:
For more information about the commands, see the dladm(1M) man page.
The following procedures show how to use the dladm command to configure datalinks. In most
cases, datalink configuration is a part of the configuration of an IP interface over that link. Thus,
where applicable, the procedures include IP interface configuration steps with the ipadm
command. However, IP interface configuration and the ipadm command are discussed in
further detail in Chapter 9, Configuring an IP Interface.
149
Make sure that you have studied and prepared for other steps you need to perform on
associated configurations that might be affected by the change of link names. For more
information, see Link Names in Upgraded Systems on page 28.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
old-linkname
Refers to the current name of the datalink. By default, the link name is
hardware-based, such as bge0.
new-linkname
Refers to any name that you want to assign to the datalink. For rules for
assigning link names, refer to Rules for Valid Link Names on page 30. See
also Link Names in Upgraded Systems on page 28 for further information
about renaming datalinks.
If you do not want the new link name to persist across a system reboot, then use the -t option
immediately after the subcommand. The option renames a link temporarily. The original link
name reverts when the system is rebooted.
Note You can use dladm rename-link to transfer link configurations from one datalink to
another. For an example, see How to Replace a Network Interface Card With Dynamic
Reconfiguration on page 161. When you rename a link for this purpose, make sure that the link
that is inheriting the configuration does not have any prior existing configurations. Otherwise,
the transfer fails.
Example 81
150
SPEED
1000
1000
DUPLEX
full
full
DEVICE
e1000g0
nge0
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
STATE
up
up
SPEED
1000
1000
DUPLEX
full
full
DEVICE
e1000g0
nge0
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
You can use the -P with this command to also display flag status of each link. A datalink
becomes unavailable if its associated hardware has been removed. Without the -P option, the
command displays only available datalinks.
To view the /devices path of the datalinks, use the -v option.
Example 82
STATE
up
down
up
--
SPEED
100Mb
0Mb
100Mb
0Mb
DUPLEX
full
-full
--
DEVICE
e1000g0
ibd0
bge0
nge0
The following example shows the links and their physical locations that are displayed when you
use the -L option.
# dladm
LINK
net0
net2
show-phys -L
DEVICE
LOCATION
bge0
MB
ibp0
MB/RISER0/PCIE0/PORT1
151
net3
net4
ibp1
eoib2
MB/RISER0/PCIE0/PORT2
MB/RISER0/PCIE0/PORT1/cloud-nm2gw-2/1A-ETH-2
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
Example 83
OVER
----
The -P option also displays any existing persistent but unavailable links. A persistent link
becomes unavailable if the link is temporarily deleted. A link also becomes unavailable if the
associated hardware has been removed.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
Display the datalinks on the system including those links whose hardware have been removed.
To include information about removed hardware, use the -P option.
# dladm show-phys
152
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Remove the link configuration of the removed hardware that you do not intend to replace.
# dladm delete-phys link
Example 84
Deleting a Datalink
In the following example, the r flag for net2 indicates that the link's associated hardware
(e1000g0) has been removed. Therefore, you can also remove the link net2 and then reassign
the name to a new datalink.
# dladm show-phys -P
LINK
DEVICE
net0
nge0
net1
bge0
net2
e1000g0
MEDIA
Ethernet
Ethernet
Ethernet
FLAGS
--------r----
link's network driver has been converted to the GLDv3 framework, such as e1000g. To confirm
whether your specific driver supports this feature, refer to the driver's man page.
Public properties that can be applied to any driver of the given media type such as link speed,
autonegotiation for Ethernet, or the MTU size that can be applied to all datalink drivers.
Private properties that are particular to a certain subset of NIC drivers for a given media
type. These properties can be specific to that subset because they are closely related either to
the hardware that is associated with the driver or to the details of the driver implementation
itself, such as debugging-related tunables.
Link properties typically have default settings. However, certain networking scenarios might
require you to change specific property settings of a datalink. These property settings can be
either public or private properties. For example, a NIC might be communicating with an old
153
switch that does not properly perform autonegotiation. Or, a switch might have been
configured to support Jumbo frames. Or, driver specific properties that regulate packet
transmission or packet receiving might need to be modified for the given driver. In Oracle
Solaris, all of these settings can now be reset by a single administrative tool, dladm.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
To identify the specific Ethernet device whose MTU size you need to reset, display the links in the
system.
# dladm show-phys
Perform this step especially if your network configuration uses customized names for datalinks.
With customized names, datalinks are no longer necessarily identified by their hardware-based
names. For example, the Ethernet device is bge0. However, the datalink over the device is
renamed net0. Therefore, you would need to configure the MTU size of net0. Refer to IP
Interface Configuration (Tasks) on page 168 for examples of configuration tasks on datalinks
that use customized names.
3
(Optional) Display the datalink's current MTU size and other properties.
This command displays the settings of the property that you specify.
154
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
To display several selected properties of the datalink, use the following syntax:
# dladm show-link datalink
Change the link's MTU size to 9000, the setting for Jumbo frames.
# dladm set-linkprop -p mtu=9000 datalink
For more information about the ipadm command, see the ipadm(1M).
8
(Optional) Verify that the interface uses the new MTU size by using one of the command
syntaxes in Step 3.
# dladm show-linkprop -p mtu datalink
Example 85
The device bge0 is used as a primary interface, while the device bge1 is used for test
purposes.
You want to enable support for Jumbo frames on bge1, while you retain the default MTU
size of the primary interface.
The network configuration uses customized names for datalinks. The link name of bge0 is
net0. The link name of bge1 is net1.
# dladm show-phys
LINK
MEDIA
net0
ether
net1
ether
net2
ether
STATE
up
up
up
SPEED
100Mb
100Mb
100Mb
DUPLEX
full
full
full
DEVICE
bge0
bge1
nge3
POSSIBLE
155
net1
#
#
#
#
ipadm
dladm
ipadm
ipadm
mtu
1500
1500
--
delete-ip net1
set-linkprop -p mtu=9000 net1
create-ip net1
create-addr -T static -a 10.10.1.2/35 net1/v4
STATE
up
BRIDGE
--
OVER
--
Notice that the MTU setting is now 9000. In this example, the dladm command enabled you to
change net1's MTU size directly. The previous method that uses the ndd command would have
required you to deleted net0 as well, which would have unnecessarily disrupted the primary
interface's operations.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
(Optional) Display the current status of the property you want to modify.
# dladm show-linkprop -p property datalink
To advertise lower speed capabilities, turn off the higher speed capabilities to prevent them
from being advertised.
# dladm set-linkprop -p property=value1 datalink
Example 86
156
POSSIBLE
1,0
POSSIBLE
1,0
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
The properties that advertise the link's gigabit capabilities are adv_1000fdx_cap and
adv_1000hdx_cap. To disable these properties from being advertised, you would type the
following commands:
# dladm set-linkprop -p adv_1000fdx_cap=0 net1
# dladm set-linkprop -p adv_1000hdx_cap=0 net1
Listing the Ethernet parameter settings would display the following output:
# dladm show-ether net1
LINK
PTYPE
STATE
net1
current
up
AUTO SPEED-DUPLEX
yes 1G-f
PAUSE
both
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
To obtain information about the Ethernet parameter settings, use the following command:
# dladm show-ether [-x] datalink
where the -x option includes additional parameter information about the link. Without the -x
option, only the current parameter settings are displayed.
3
To obtain information about all the properties of the link, use the following command:
# dladm show-linkprop datalink
Example 87
show-ether -x net1
PTYPE
STATE
current
up
capable
-adv
-peeradv
--
AUTO
yes
yes
yes
yes
SPEED-DUPLEX
1G-f
1G-fh,100M-fh,10M-fh
100M-fh,10M-fh
100M-f,10M-f
PAUSE
both
both
both
both
With the -x option, the command also displays the built-in capabilities of the specified link, as
well as the capabilities that are currently advertised between the host and the link partner. The
following information is displayed:
157
Example 88
For the Ethernet device's current state, the link is up and functioning at 1 gigabits per second
at full duplex. Its autonegotiation capability is enabled and has bidirectional flow control, in
which both host and link partner can send and receive pause frames.
Regardless of the current setting, the capabilities of the Ethernet device are listed. The
negotiation type can be set to automatic, the device can support speeds of 1 gigabits per
second, 100 megabits per second, and 10 megabits per second, at both full and half duplex.
Likewise, pause frames can be received or sent in both directions between host and link
partner.
The capabilities of net1 are advertised as follows: autonegotiation, speed-duplex, and flow
control of pause frames.
Similarly, net1's link or peer partner advertises the following capabilities: autonegotiation,
speed-duplex, and flow control of pause frames.
show-linkprop net1
PROPERTY
speed
autopush
zone
duplex
state
adv_autoneg_cap
mtu
flowctrl
adv_1000fdx_cap
en_1000fdx_cap
adv_1000hdx_cap
en_1000hdx_cap
adv_100fdx_cap
en_100fdx_cap
adv_100hdx_cap
en_100hdx_cap
adv_10fdx_cap
en_10fdx_cap
adv_10hdx_cap
en_10hdx_cap
VALUE
1000
--half
unknown
1
1500
no
1
1
1
1
0
0
0
0
0
0
0
0
DEFAULT
----up
1
1500
bi
1
1
1
1
0
0
0
0
0
0
0
0
POSSIBLE
---half,full
up,down
1,0
-no,tx,rx,bi
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
The settings for the speed and duplex capabilities of the link are manually configured on the
enabled-speed properties which are labeled en_*_cap. For example, en_1000fdx_cap is the
property for the gigabit full-duplex capability, and en_100hdx_cap is the property for the 100
megabits half-duplex capability. The settings of these enabled speed properties are advertised
between the host and its link partner by corresponding advertised speed properties, which are
labeled adv_*_cap such as adv_1000fdx_cap and adv_100hdx_cap.
158
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Normally, the settings of a given enabled speed property and the corresponding advertised
property are identical. However, if a NIC supports some advanced features such as Power
Management, those features might set limits on the bits that are actually advertised between the
host and its link partner. For example, with Power Management, the settings of the adv_*_cap
properties might only be a subset of the settings of the en_*_cap properties. For more details
about the enabled and advertised speed properties, see the dladm(1M) man page.
How to Set the e1000g Driver to Use Direct Memory Access Binding
This procedure and the next procedure show how to configure private properties. Both
procedures apply to properties specific to the e1000g driver. However, the general steps can be
used to configure private properties of other NIC drivers as well.
Bulk traffic, such as file transfers, normally involves negotiation of large packets across the
network. In such cases, you can obtain better performance from the e1000g driver by
configuring it to automatically use DMA binding, where a threshold is defined for packet
fragment sizes. If a fragment size surpasses the threshold, then DMA binding is used for
transmitting. If a fragment size is within the threshold, then bcopy mode is used, where the
fragment data is copied to the preallocated transmit buffer.
To set the threshold, perform the following steps:
1
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
For this property, the valid settings for the threshold range from 60 through 2048.
Note As with configuring public properties, the interface must also be unplumbed before
159
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
If necessary, identify the device whose driver property you want to modify.
# dladm show-phys
systems and 260 on x86 based systems. Setting the minimum inter-interrupt level to 0 disables
the interrupt throttling logic.
6
Example 89
Configuring for DMA Binding and Setting the Interrupt Throttling Rate
This example uses an x86 based system with an e1000g NIC. The driver is configured with a
threshold setting toggle between using DMA binding or the bcopy mode for transmitting
packets. The setting for the interrupt throttling rate is also modified. Further, the e1000g
160
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
datalink uses the default generic name that is assigned by the OS. Therefore, the configuration is
performed on the datalink by referring to the customized name, net0.
# dladm show-phys
LINK
MEDIA
net0
ether
STATE
up
SPEED
100Mb
DUPLEX
full
DEVICE
e1000g0
ipadm
dladm
dladm
dladm
POSSIBLE
-POSSIBLE
--
delete-ip net0
set-linkprop -p _tx_bcopy_threshold=1024 net0
set-linkprop -p _intr_adaptive=0 net0
set-linkprop -p _intr-throttling_rate=1024 net0
POSSIBLE
--
POSSIBLE
--
161
Procedures to perform DR vary with the type of system. Make sure that you complete the
following first:
Ensure that your active network configuration profile is DefaultFixed. Refer to the section
Dynamic Reconfiguration and Network Configuration Profiles in How NWAM Works With
Other Oracle Solaris Networking Technologies on page 40 for information about using DR
if your system's active NCP is not DefaultFixed.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
(Optional) Display information about physical attributes of datalinks and their respective
locations on the system.
# dladm show-phys -L
For more information about the type of information that is displayed by dladm show-phys -L,
refer to the dladm(1M) man page.
3
Perform the DR procedures as detailed in your system's documentation to remove a NIC and
then insert a replacement NIC.
Consult your system's DR documentation to perform this step.
After you have installed the replacement NIC, proceed to the next step.
If you inserted the replacement NIC into the same slot as the old NIC, then skip to Step 6.
Otherwise, proceed to the next step.
With the new NIC using the same location which the old NIC previously occupied, the new
NIC inherits the link name and configuration of the old NIC.
162
If the old NIC to be replaced remains in its slot in the system as an unused NIC, perform the
following steps:
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
oldNIC
Refers to the NIC that is replaced but which you keep in the system.
new-name
Refers to the new name you give to removedNIC. The name must not be
shared by any other links in the system.
replacementNIC
Refers to the new NIC that you have just installed. This NIC
automatically receives the default link name depending on the slot
that it occupies in the system.
oldNIC
Refers to the NIC that is replaced but which you keep in the system.
If you removed the old NIC and you install the replacement NIC in a different slot but want
the NIC to inherit the configurations of the old NIC, assign the name of the old NIC to the
new NIC.
# dladm rename-link replacementNIC oldNIC
Complete the DR process by enabling the new NIC's resources to become available for use by
Oracle Solaris.
For example, you use the cfgadm command to configure the NIC. For more information see the
cfgadm(1M) man page.
Example 810
show-phys -L
DEVICE
LOCATION
bge0
MB
ibp0
MB/RISER0/PCIE0/PORT1
ibp1
MB/RISER0/PCIE0/PORT2
eoib2
MB/RISER0/PCIE0/PORT1/cloud-nm2gw-2/1A-ETH-2
You perform the DR-specific steps such as using cfgadm to remove bge and install e1000g in its
place. After the card is installed, the datalink of e1000g0 automatically assumes the name net0
and inherits the link configurations.
163
# dladm
LINK
net0
net1
net2
net3
show-phys -L
DEVICE
LOCATION
e1000g0
MB
ibp0
MB/RISER0/PCIE0/PORT1
ibp1
MB/RISER0/PCIE0/PORT2
eoib2
MB/RISER0/PCIE0/PORT1/cloud-nm2gw-2/1A-ETH-2
# dladm
LINK
net0
net1
net2
net3
show-link
CLASS
phys
phys
phys
phys
MTU
9600
1500
1500
1500
STATE
up
down
down
down
OVER
--------
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
164
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Example 811
modulelist
Specifies the list of modules that you want to be automatically pushed on to the
stream. A maximum of eight modules can be pushed over a link. These modules
are pushed in the order that they are listed in modulelist. Separate the modules in
the list by using dots as delimiters.
link
If you later replace the bge card with e1000g, you can switch to the new datalink without
needing to reconfigure the autopush settings. The e1000g card automatically inherits bge's link
name and configuration.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
If you do not specify link, then the information for all configured links is displayed.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
Use the -t option to remove the property settings temporarily. The settings are restored when
you reboot the system.
165
166
C H A P T E R
Configuring an IP Interface
This chapter provides the procedures that are used to configure an IP interface over a datalink.
Configure an IP interface over a datalink for a basic interface configuration. This chapter
describes the procedures.
Configure Wireless Interfaces. The procedures are described in Chapter 10, Configuring
Wireless Interface Communications on Oracle Solaris
The ipadm command is introduced to eventually replace the ifconfig command for interface
configuration. The command also replaces the ndd command to configure protocol properties.
As a tool for configuring interfaces, the ipadm command offers the following advantages:
It manages IP interfaces and IP addresses more efficiently by being the tool uniquely for IP
interface administration, unlike the ifconfig command that is used for purposes other
than interface configuration.
For a list of ifconfig options and their equivalent ipadm subcommands, see ifconfig
Command Options and ipadm Command Options on page 190.
As a tool to set protocol properties, the ipadm command provides the following benefits:
It can set temporary or persistent protocol properties for IP, Address Resolution Protocol
(ARP), Stream Control Transmission Protocol (SCTP), and Internet Control Messaging
Protocol (ICMP), as well as upper layer protocols such as TCP and User Datagram Protocol
(UDP).
It provides information about each TCP/IP parameter, such as a property's current and
default setting, as well as the range of possible settings. Thus, debugging information is
more easily obtained.
The ipadm command also follows a consistent command syntax and therefore is easier to
use.
For a list of ndd options and their equivalent ipadm subcommands, see ndd Command Options
and ipadm Command Options on page 192.
For more details about the ipadm command, refer to the ipadm(1M) man page.
168
Task
Description
For Instructions
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
TABLE 91
(Continued)
Task
Description
For Instructions
For link aggregations, you should use the factory-set MAC addresses of the interfaces in the
aggregation configuration.
For IPMP groups, each interface in the group must have a unique MAC address. These
interfaces must use their factory-installed MAC addresses.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
Determine whether all interfaces on the system currently use the system-wide MAC address.
# eeprom local-mac-address?
local-mac-address?=false
169
Configuring IP Interfaces
When you reboot the system, the interfaces with factory-installed MAC addresses now use
these factory settings, rather than the system-wide MAC address. Interfaces without factory-set
MAC addresses continue to use the system-wide MAC address.
4
-p mac-address
PERM VALUE
rw 8:0:20:0:0:1
rw 8:0:20:0:0:1
rw 0:14:4f:45:c:2d
DEFAULT
8:0:20:0:0:1
8:0:20:0:0:1
0:14:4f:45:c:2d
POSSIBLE
----
Note Continue to the next step only if more than one network interface still has the same MAC
If necessary, manually configure the remaining interfaces so that all interfaces have unique
MAC addresses.
# dladm set-linkprop -p mac-address=mac-address interface
In the example in the previous step, you would need to configure net0 and net1 with locally
administered MAC addresses. For example, to reconfigure net0 with the locally administered
MAC address 06:05:04:03:02, you would type the following command:
# dladm set-linkprop -p mac-address=06:05:04:03:02 net0
Refer to the dladm(1M) man page for details about this command.
6
Configuring IP Interfaces
The procedures that follow show how you use the ipadm command for different IP
configuration needs. Although the ifconfig command still functions to configure interfaces,
the ipadm command should be the preferred tool. For an overview of the ipadm command and
its benefits, see The ipadm Command on page 167.
Note Typically, IP interface configuration and datalink configuration occur together. Thus,
where applicable, procedures that follow include datalink configuration steps with the use of the
dladm command. For more information about using the dladm command to configure and
administer datalinks, see Chapter 8, Datalink Configuration and Administration.
170
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Configuring IP Interfaces
Determine if you want to rename datalinks on the system. Typically, you use the generic names
that have been assigned by default to the datalinks. To change link names, see How to Rename
a Datalink on page 149.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
(Optional) Display information about the physical attributes of datalinks currently on the
system.
# dladm show-phys
This command shows the physical network cards that are installed on your system and some of
their properties. For more information about this command, see How to Display Information
About Physical Attributes of Datalinks.
3
This command shows the datalinks and certain properties that have been set for them,
including the physical cards over which the links have been created.
4
interface-class
interface
IP interface. This interface class is the most common that you create
when you perform network configuration. To create this interface class,
use the create-ip subcommand.
IPMP interface. This interface is used when you configure IPMP groups.
To create this interface class, use the create-ipmp subcommand. For
more information about IPMP groups, see Chapter 14, Introducing
IPMP, and Chapter 15, Administering IPMP.
Refers to the name of the interface. The name is identical to the name of the
link over which the interface is being created.
171
Configuring IP Interfaces
Note You must create the IP interface before you can assign the IP address to it.
5
-T address-type
Specifies the type of IP address that is assigned to the interface, which is one
of the following: static, dhcp, or addrconf. Addrconf refers to
automatically generated IPv6 addresses.
-a
Specifies the IP address to configure on the interface. You can specify either
just a local address, or both a local address and a remote address in the case
of tunnel configuration. Typically, you assign only a local address. In this
case, you specify the address directly with the -a option, such as: -a address.
The address is automatically considered a local address.
If you are configuring tunnels, you might be required to provide both the
local address of the system and the remote address of the destination
system. In this case, you must specify local and remote to distinguish the
two addresses, as follows: -a local=local-addr,remote=remote-addr. For
more information about configuring tunnels, see Chapter 6, Configuring
IP Tunnels, in Oracle Solaris Administration: IP Services.
If you are using a numeric IP address, use the format address/prefixlen for
addresses in CIDR notation, for example, 1.2.3.4/24. See the explanation
for the prefixlen option.
Optionally, you can specify a host name for address instead of a numeric IP
address. Using a host name is valid if a corresponding numeric IP address is
defined for that host name in the /etc/hosts file. If no numeric IP address
is defined in the file, then the numeric value is uniquely obtained by using
the resolver order that is specified for host in the name-service/switch
service. If multiple entries exist for a given host name, then an error is
generated.
Note During the boot process, the creation of IP addresses precedes
naming services being brought online. Therefore you must ensure that any
host name that is used in the network configuration must be defined in the
/etc/hosts file.
172
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Configuring IP Interfaces
/prefixlen
Specifies the length of the network ID that is part of the IPv4 address when
you use CIDR notation. In the address 12.34.56.78/24, 24 is the prefixlen.
If you do not include prefixlen, then the netmask is computed according to
the sequence listed for netmask in the name-service/switch service or by
using classful address semantics.
addrobj
If you do not specify the interface, then information for all interfaces in the system is
displayed.
If you do not specify the addrobj, then information for all address objects in the system is
displayed.
For more information about the output of the ipadm show-* subcommand, see Monitoring IP
Interfaces and Addresses on page 184.
7
173
Configuring IP Interfaces
Example 91
STATE
up
# dladm show-link
LINK
CLASS
MTU
net3
phys
1500
SPEED
100Mb
STATE
up
DUPLEX
full
BRIDGE
--
DEVICE
bge3
OVER
--
show-if
CLASS
loopback
ip
STATE
ok
ok
# ipadm show-addr
ADDROBJ
TYPE
lo0/?
static
net3/v4
static
ACTIVE
yes
yes
STATE
ok
ok
OVER
---
ADDR
127.0.0.1/8
192.168.84.3/24
# vi /etc/hosts
# Internet host table
# 127.0.0.1
localhost
10.0.0.14
myhost
192.168.84.3
campus01
Note that if campus01 is already defined in the /etc/hosts file, you can use that host name
when assigning the following address:
# ipadm create-addr -T static -a campus01 net3/v4static
Example 92
STATE
up
# dladm show-link
LINK
CLASS
MTU
net3
phys
1500
SPEED
100Mb
STATE
up
DUPLEX
full
BRIDGE
--
DEVICE
bge3
OVER
--
174
STATE
ok
ACTIVE
yes
OVER
--
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Configuring IP Interfaces
net3
ip
ok
yes
--
ADDR
10.8.48.242/24
# ipadm show-addr
ADDROBJ
TYPE
lo0/?
static
net3/dhcp dhcp
ADDR
127.0.0.1/8
10.8.48.242/24
STATE
ok
ok
The information that is displayed depends on the options that you use.
If you do not specify a property nor an address object, then all properties of all existing
addresses are displayed.
If you specify only the property, then that property for all the addresses is displayed.
If you specify only the address object, then all the properties of that address object are
displayed.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
175
Configuring IP Interfaces
(Optional) Determine the current setting of a specific property of an IP address that you want to
change.
# ipadm show-addrprop -p property addrobj
If you do not know the property, you can issue a general ipadm show-addrprop command.
When you display IP addresses with this command, the addresses are displayed with the current
settings of all their properties.
4
Example 93
STATE
ok
ok
ADDR
127.0.0.1/8
192.168.84.3/24
POSSIBLE
1-30,32
# ipadm
# ipadm
ADDROBJ
net3/v4
POSSIBLE
1-30,32
176
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Configuring IP Interfaces
If you want to be selective in how packets are forwarded, then you enable packet forwarding
on the interface. For example, you might have a system that has multiple NICs. Some NICs
are connected to the external network, while other NICs are connected to the private
network. You would therefore enable packet forwarding only on some of the interfaces,
rather than on all interfaces. See How to Enable IP Packet Forwarding by Setting an
Interface Property on page 177.
If you want to implement packet forwarding globally within the system, then you enable the
forwarding property of the protocol. For this second method, see How to Enable Packet
Forwarding by Setting the Protocol Property on page 179.
Note The two methods of forwarding packets are not mutually exclusive. For example, you can
enable packet forwarding globally, and then customize the forwarding property for each
interface. Thus, packet forwarding can still be selective for that particular system.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
where protocol-version can either be ipv4 or ipv6. If you do not specify the version, then the
settings for both IPv4 and IPv6 protocols are displayed.
177
Configuring IP Interfaces
Note To display all the valid protocol properties of a given interface, do not specify a property,
as follows:
# ipadm show-ifprop interface
For every interface on which you want to enable packet forwarding, type the following
command:
# ipadm set-ifprop forwarding=on -m protocol-version interface
Example 94
PERSISTENT
off
--
DEFAULT
off
off
POSSIBLE
on,off
on,off
The ipadm show-ifprop command syntax that uses the -p property option provides
information only about a specific property.
# ipadm
# ipadm
IFNAME
...
net0
...
ipv4
rw
on
on
off
POSSIBLE
on,off
The ipadm show-ifprop command syntax without the -p property option displays all the
properties of an interface and their corresponding settings.
# ipadm
# ipadm
IFNAME
net0
178
DEFAULT
off
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
POSSIBLE
on,off
Configuring IP Interfaces
The ipadm reset-ifprop command syntax resets the specified property to the default setting.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
where protocol can be ip, ipv4, ipv6, udp, tcp, icmp, and sctp.
This syntax is shown in Example 95.
3
For every protocol version on which you want to enable forwarding, type the following
command:
# ipadm set-prop forwarding=on protocol-version
(Optional) Display the settings of the IP forwarding property by performing one of the
following:
To display all the properties and current settings of a protocol, type the following:
To reset a specific property of a protocol version to its default setting, type the following:
# ipadm reset-prop -p property protocol-version
179
Example 95
show-prop -p
PROPERTY
forwarding
forwarding
forwarding ip
PERM CURRENT
rw
off
rw
off
PERSISTENT
---
DEFAULT
off
off
POSSIBLE
on,off
on,off
DEFAULT
off
255
off
255
POSSIBLE
on,off
1-255
on,off
1-255#
PERM
rw
rw
rw
rw
CURRENT
on
255
on
255
PERSISTENT
on
-on
--
180
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
TABLE 92
Task
Description
For Instructions
Note For procedures that use the ipadm tool to configure network interfaces and IP addresses,
smallest_nonpriv_port
extra_priv_ports
Determine if the designated port is in the range of regular ports and therefore can be used.
# ipadm show-prop -p smallest_nonpriv_port protocol
where protocol is the protocol type for which you want to configure a privileged port, such as IP,
UDP, ICMP, and others.
In the command output, the POSSIBLE field shows the range of port numbers to which regular
users can bind. If the designated port is within this range, then you can set it as a privileged port.
2
Verify that the port that you want to reserve is available and not already marked as a privileged
port.
# ipadm show-prop -p extra_priv_ports protocol
In the command output, the CURRENT field indicates which ports are currently marked as
privileged. If the designated port is not included under this field, then you can set it as a
privileged port.
Chapter 9 Configuring an IP Interface
181
For every additional port that you want to add or remove as privileged ports, repeat one of the
following:
currently listed as privileged. Use the same syntax to remove all extra privileged ports,
including the default ports.
5
In the command output, make sure that the designated ports are now included in the CURRENT
field.
Example 96
182
PERSISTENT
DEFAULT
1024
DEFAULT
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
POSSIBLE
1024-32768
POSSIBLE
tcp
extra_priv_ports
rw
2049,4045
--
# ipadm
# ipadm
# ipadm
PROTO
tcp
# ipadm
# ipadm
PROTO
tcp
2049,4045
1-65535
DEFAULT
2049,4045
POSSIBLE
1-65535
DEFAULT
2049,4045
POSSIBLE
1-65535
Corresponds to the strong end system (ES) model as defined in RFC 1122.
This setting implements symmetric routing.
weak
183
src-priority
Example 97
hostmodel rw
strong
--
weak
POSSIBLE
strong,
src-priority,
weak
strong,
src-priority,
weak
This section provides several examples of using the ipadm command to obtain information
about the network interfaces. For other types of monitoring tasks that you perform on the
network, refer to Chapter 5, Administering a TCP/IP Network, in Oracle Solaris
Administration: IP Services.
Note For an explanation of all the fields in the ipadm show-* commands, refer to the
184
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
If you do not specify an interface, then the information covers all the interfaces on the system.
The fields in the command output refer to the following:
IFNAME
CLASS
STATE
ip refers to an IP interface
Refers to the status of the interface, which can either be ok, offline, failed, down,
or disabled.
The status failed applies to IPMP groups and can refer to a datalink or an IP
interface that is down and cannot host traffic. If the IP interface belongs to an IPMP
group, then the IPMP interface can continue to receive and send traffic by using
other active IP interfaces in the group.
The status down refers to an IP interface that is switched offline by the administrator.
The status disable refers to the IP interface that is unplumbed by using the ipadm
disable-if command.
ACTIVE
Indicates whether the interface is being used to host traffic, and is set either to yesor
no.
OVER
Applies only to the IPMP class of interfaces and refers to the underlying interfaces
that constitute the IPMP interface or group.
185
To obtain address information for the interface, type the following command:
# ipadm show-addr [addrobj]
If you do not specify an address identifier, then address information is provided for all the
address identifiers on the system.
The fields in the command output refer to the following:
ADDROBJ
TYPE
STATE
Describes the address object in its actual active configuration. For a full list of these
values, see the ipadm(1M) man page.
ADDR
Specifies the IP address that is configured over the interface. The address can be
IPv4 or IPv6. A tunnel interface will display both local and remote addresses.
For more information about tunnels, see Chapter 6, Configuring IP Tunnels, in
Oracle Solaris Administration: IP Services.
If you do not specify a property, then all the properties and their settings are displayed.
The fields in the command output refer to the following:
186
IFNAME
PROPERTY
Refers to the property of the interface. An interface can have several properties.
PROTO
Refers to the protocol to which the property applies, and which can either be
IPv4 or IPv6.
PERM
Refers to the allowed permissions of a given property, which can be read only,
write only, or both.
CURRENT
PERSISTENT
Refers to the setting of the property that is reapplied when the system is
rebooted.
DEFAULT
POSSIBLE
Refers to a list of values that can be assigned to the specified property. For
numeric settings, a range of acceptable values is displayed.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Note If any field value is unknown, such as when an interface does not support the property
whose information is being requested, the setting is displayed as a question mark (?).
5
The information that is displayed depends on the options that you use.
If you specify only the property, then that property for all the addresses is displayed.
If you specify only the address object, then the properties of all existing addresses on the
system are displayed.
Example 98
ADDROBJ
PROPERTY
Refers to the property of the address object. An address object can have several
properties.
PERM
Refers to the allowed permissions of a given property, which can be read only,
write only, or both.
CURRENT
PERSISTENT
Refers to the setting of the property that is reapplied when the system is
rebooted.
DEFAULT
POSSIBLE
Refers to a list of settings that can be assigned to the specified property. For
numeric settings, a range of acceptable values is displayed.
STATE
ok
ok
ok
ok
ACTIVE
yes
yes
yes
yes
OVER
-----
187
# ipadm show-addr
ADDROBJ
TYPE
lo0/?
static
net0/v4
static
tun0/v4tunaddr static
STATE
ok
ok
ok
ADDR
127.0.0.1/8
192.168.84.3/24
173.129.134.1-->173.129.134.2
Note that an address object that is listed as interface/? indicates that the address was configured
on the interface by an application that did not use libipadm APIs. Such applications are not
under the control of the ipadm command, which requires that the address object name use the
format interface/user-defined-string. For examples of assigning IP addresses, see How to
Configure an IP Interface on page 171.
# ipadm
IFNAME
net1
net1
--24
----
PERSISTENT DEFAULT
192.168.84.255
off
24
off
on
global
POSSIBLE
-on,off
1-30,32
on,off
on,off
--
STATE
disabled
online
offline
offline
188
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
ADR
127.0.0.1/10
192.168.10.1
or
# ipadm show-addr
ADDROBJ TYPE
STATE
lo0
static ok
net0/v4 static ok
ADR
127.0.0.1/10
192.168.10.1
189
show-if -o
CLASS
loopback
ip
all
STATE
ok
ok
ACTIVE
yes
yes
CURRENT
-m46-v-----bm4---------
PERSISTENT
46-----
OVER
---
The absence of the 4 flag for IPv4 configuration or 6 flag for IPv6 configuration on the
PERSISTENT field indicates that net0 was created as a temporary interface.
# ipadm delete-ip net0
# ipadm create-ip net0
# # ipadm create-addr -T static -a 192.168.1.10 net0/v4
190
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
TABLE 93
ifconfig Command
ipadm Command
plumb/unplumb
ipadm create-ip
ipadm create-vni
ipadm create-ipmp
ipadm enable-addr
ipadm delete-ip
ipadm delete-vni
ipadm delete-ipmp
ipadm disable-addr
ipadm up-addr
down
ipadm down-addr
ipadm set-ifprop
ipadm show-ifprop
ipadm reset-ifprop
ipadm create-ipmp
ipadm delete-ipmp
ipadm add-ipmp
ipadm remove-ipmp
ipadm set-ifprop -p [standby] [group]
191
TABLE 93
(Continued)
ifconfig Command
ipadm Command
ipsecconf
dhcp options
inform, ping, release, status, drop
modlist] [modinsert mod_name@pos] [modremove Equivalent subcommands currently unavailable.
mod_name@pos]
ndd Command
ipadm Command
Retrieving Properties
192
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
TABLE 94
(Continued)
ndd Command
ipadm Command
bash-3.2# ipadm
PROTO PROPERTY
ipv4 ttl
ipv6 hoplimit
PERSISTENT
-----
show-prop -p ttl,hoplimit ip
PERM CURRENT PERSISTENT
rw
255
-rw
255
--
DEFAULT
off
255
off
255
DEFAULT
255
255
POSSIBLE
on,off
1-255
on,off
1-255
POSSIBLE
1-255
1-255
ip
CURRENT
off
255
off
255
tcp
extra_
priv_ports
largest_
anon_port
recv_
maxbuf
sack
send_
maxbuf
smallest_
anon_port
smallest_
nonpriv_port
rw
2049
POSSIBLE
never,passive,
active
2049,4045 2049,4045 1-65535
rw
65535
--
rw
65535
1024-65535
128000 --
128000
2048-1073741824
rw
active --
active
rw
49152
--
49152
never,passive,
active
4096-1073741824
rw
32768
--
32768
1024-65535
rw
1024
--
1024
1024-32768
...
...
...
bash-3.2# ipadm show-prop -p ecn,sack tcp
PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE
tcp ecn
rw passive -passive never,passive,active
tcp sack
rw active -active never,passive,active
Setting Properties
193
TABLE 94
(Continued)
ndd Command
ipadm Command
194
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
POSSIBLE
1-255
POSSIBLE
1-255
11
C H A P T E R
1 1
Administering Bridges
Bridging Overview
Bridges are used to connect separate network segments. When connected by a bridge, the
attached network segments communicate as if they were a single network segment. Bridging is
implemented at the datalink layer (L2) of the networking stack. Bridges use a packet-forwarding
mechanism to connect subnetworks together.
While bridging and routing can both be used to distribute information about the locations of
resources on the network, they differ in several ways. Routing is implemented at the IP layer
(L3) and uses routing protocols. No routing protocols are used on the datalink layer. Instead,
the destinations of forwarded packets are determined by examining the network traffic that is
received on the links that are attached to the bridge.
When a packet is received, its source address is examined. The packet's source address
associates the node from which the packet was sent to the link on which it is received.
Thereafter, when a received packet uses that same address as the destination address, the bridge
forwards the packet over the link to that address.
The link associated with a source address might be an intermediate link that is connected to
another bridge in the bridged subnetwork. Over time, all of the bridges within the bridged
subnetwork learn which of the links sends a packet toward a given node. Thus, the packet's
destination address is used to direct the packet to its final destination by means of hop-by-hop
bridging.
207
Bridging Overview
A local link-down notification indicates that all nodes on a given link are no longer reachable.
In this situation, packet forwarding to the link is halted and all forwarding entries over the link
are flushed. Forwarding entries are also aged away over time. When a link is restored, packets
that are received over the link are treated as new. The learning process based on a packet's
source address begins again. This process enables the bridge to properly forward packets over
that link when the address is used as the destination address.
To forward packets to their destinations, bridges must listen in promiscuous mode on every
link that is attached to the bridge. Listening in promiscuous mode causes bridges to become
vulnerable to the occurrences of forwarding loops, in which packets circle forever at full line
rate. Thus, bridging uses the Spanning Tree Protocol (STP) mechanism to prevent network
loops that would render the subnetworks unusable.
In addition to using STP and the Rapid Spanning Tree Protocol (RSTP) for bridges, Oracle
Solaris supports the TRILL protection enhancement. STP is used by default, but you can use
TRILL by specifying the -P trill option for the bridging commands.
Using a bridge configuration simplifies the administration of the various nodes in the network
by connecting them into a single network. By connecting these segments through a bridge, all
the nodes share a single broadcast network. Thus, each node can reach the others by using
network protocols such as IP rather than by using routers to forward traffic across network
segments. If you do not use a bridge, you must configure IP routing to permit the forwarding of
IP traffic between nodes.
The following figure shows a simple bridged network configuration. The bridge, goldengate, is
an Oracle Solaris system that has bridging configured. sanfrancisco and sausalito are
systems that are physically connected to the bridge. Network A uses a hub that is physically
connected to the bridge on one side and to computer systems on the other side. The bridge
ports are links, such as bge0, bge1, and bge2.
208
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Bridging Overview
FIGURE 111
Port 2
sausalito
Port 1
Port 3
goldengate
sanfrancisco
Hub
Network A
Bridge networks can be formed into rings that physically connect several bridges together. Such
configurations are common in networks. This type of configuration could cause problems with
old packets saturating the network links by endlessly looping around the ring. To protect
against such looping conditions, Oracle Solaris bridges implement both the STP and TRILL
protocols. Note that most hardware bridges also implement STP loop protection.
The following figure shows a bridged network that is configured in a ring. The configuration
shows three bridges. Two systems are physically connected to westminster. One system is
physically connected to waterloo. And one system is physically connected to tower. Each of the
bridges are physically connected to each other through the bridge ports.
When STP or RSTP is used for loop protection, the physical loop is mitigated by preventing one
of the connections in the loop from forwarding packets. The figure shows that the physical link
between the westminster and tower bridges is not used to forward packets.
Note that by shutting down usable physical links to perform loop protection, STP and RSTP
cost you bandwidth.
Unlike STP and RSTP, TRILL does not shut down physical links to prevent loops. Instead,
TRILL computes the shortest-path information for each TRILL node in the network and uses
that information to forward packets to individual destinations.
As a result, TRILL enables the system to leave all links in use at all times. Loops are not a
problem as they are handled similarly to the way that IP handles loops. Namely, TRILL creates
routes as needed and uses forwarding hop limits to avoid problems that are caused by
momentary loop states.
209
Bridging Overview
FIGURE 112
Port 3
Port 2
Port 1
Port 3
waterloo
Port 1
Port 2
Port 4
westminster
Port 1
Port 2
Port 3
tower
errantly use the same MAC address on multiple ports and on the same network.
Note Do not configure a link into a bridge when the highest possible levels of performance are
required. Bridging requires that the underlying interfaces are in promiscuous mode, which
disables a number of important optimizations that are in the hardware, driver, and other layers
of the system. The disabling of these performance enhancements is an unavoidable
consequence of the bridging mechanism.
You can use a bridge on a system where some of the system's links are not bridged and are thus
not subject to those constraints. These performance issues only affect those links that are
configured to be part of a bridge.
For information about STP, see IEEE 802.1D-1998. For information about RSTP, see IEEE
820.1Q-2004. For information about TRILL, see the Internet Engineering Task Force (IETF)
TRILL draft documents (http://tools.ietf.org/wg/trill).
Link Properties
These link properties can be shown and modified by the dladm show-linkprop, dladm
set-linkprop, and reset-linkprop commands:
210
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Bridging Overview
default_tag
Define the default virtual local area network (VLAN) ID for untagged
packets that are sent to and from the link. Valid values are from 0 to 4094.
The default value is 1. Only non-VLAN and non-virtual network interface
card (VNIC) type links have this property. Setting this value to 0 disables the
forwarding of untagged packets to and from the port. (This is a MAC
property.)
Note This property is also used outside the scope of bridging to specify the
IEEE Port VLAN Identifier (PVID) for the link. When default_tag is
non-zero, you cannot create a VLAN that has that same ID on the link
because the base link itself automatically represents the PVID.
For example, if PVID is set to 5 on net0, you cannot create a VLAN with ID
5 on net0. To specify VLAN 5 in this situation, use net0.
You cannot set default_tag to be equal to the ID of any existing VLAN that
is created on that link. For instance, the following command creates VLAN
22 on net0:
# dladm create-vlan -l net0 -v 22 myvlan0
In this situation, you cannot set default_tag to 22, which would make both
net0 and myvlan0 represent the same VLAN.
By setting default_tag to 0, you enable untagged packets on net0 to be
unassociated with any VLAN at all. This situation prevents such packets
from being forwarded by a configured bridge.
forward
Enable and disable traffic forwarding through the bridge. This property
exists on all links except for VNIC links. Valid values are 1 (true) and 0
(false). The default value is 1. When disabled, a VLAN that is associated with
a link instance will not forward traffic through the bridge. Disabling
forwarding is equivalent to removing the VLAN from the allowed set for a
traditional bridge. This means that VLAN-based I/O to the underlying link
from local clients continues, but no bridge-based forwarding is performed.
stp
Enable and disable STP and RSTP. Valid values are 1 (true) and 0 (false). The
default value is 1, which enables STP and RSTP. When set to 0, the link does
not use any type of Spanning Tree Protocol and is placed into forwarding
mode at all times. The forwarding mode uses bridge protocol data unit
(BPDU) guarding. Disable STP and RSTP when you want to configure
point-to-point links that are connected to end nodes. Only non-VLAN and
non-VNIC type links have this property.
211
Bridging Overview
stp_cost
Represent STP and RSTP cost values for using the link. Valid values are from
1 to 65535. The default value is 0, which is used to signal that cost is
automatically computed by link type. The following values represent the
cost for several link types: 100 for 10 Mbps, 19 for 100 Mbps, 4 for 1 Gbps,
and 2 for 10 Gbps.
stp_edge
Specify whether the port is connected to other bridges. Valid values are 1
(true) and 0 (false). The default value is 1. If set to 0, the daemon assumes
that the port is connected to other bridges even if no BPDUs of any type are
seen.
stp_p2p
Specify the connection mode type. Valid values are true, false, and auto.
The default value is auto, which automatically discovers point-to-point
connections. Specify true to force to point-to-point mode, and specify
false to force normal multipoint mode.
stp_priority
Set the STP and RSTP port priority value. Valid values are from 0 to 255. The
default value is 128. The STP and RSTP port priority value is used to
determine the preferred root port of a bridge by prepending the value to the
port identifier. The lower the numerical value is, the higher the priority.
STP Daemon
Each bridge that you create by using the dladm create-bridge command is represented as an
identically named SMF instance of svc:/network/bridge. Each instance runs a copy of the
/usr/lib/bridged daemon, which implements the STP.
The following command example creates a bridge called pontevecchio:
# dladm create-bridge pontevecchio
212
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Bridging Overview
When a port has STP disabled, the bridged daemon continues to listen for BPDUs (BPDU
guarding). The daemon uses syslog to flag any errors and disables forwarding on the port to
indicate a serious network misconfiguration. The link is reenabled when link status goes down
and comes up again, or when you manually remove the link and re-add it.
If you disable the SMF service instance for a bridge, bridge forwarding stops on those ports as
the STP daemon is stopped. If the instance is restarted, STP starts from its initial state.
TRILL Daemon
Each bridge that you create by using the dladm create-bridge -P trill command is
represented as an identically named SMF instance of svc:/network/bridge and
svc:/network/routing/trill. Each instance of svc:/network/routing/trill runs a copy of
the /usr/lib/trilld daemon, which implements the TRILL protocol.
The following command example creates a bridge called bridgeofsighs:
# dladm create-bridge -P trill bridgeofsighs
Debugging Bridges
Each bridge instance is assigned an observability node, which appears in the /dev/net/
directory and is named by the bridge name plus a trailing 0.
The observability node is intended for use with the snoop and wireshark utilities. This node
behaves like a standard Ethernet interface, except for the transmission of packets, which are
silently dropped. You cannot plumb IP on top of an observability node, and you cannot
perform bind requests (DL_BIND_REQ) unless you use the passive option.
When used, the observability node makes a single unmodified copy of every packet handled by
the bridge available to the user. This behavior is similar to a monitoring port on a traditional
bridge, and is subject to the usual DLPI promiscuous mode rules. You can use pfmod or
features in the snoop and wireshark utilities to filter based on VLAN ID.
The delivered packets represent the data that is received by the bridge.
213
Bridging Overview
Caution In the cases where the bridging process adds, removes, or modifies a VLAN tag, the
data shown describes the state prior to this process taking place. This rare situation might be
confusing if there are distinct default_tag values used on different links.
To see the packets that are transmitted and received on a particular link (after the bridging
process is complete), run snoop on the individual links rather than on the bridge observability
node.
For information about observability nodes, see Observability Features for Network
Virtualization and Resource Control on page 328.
DLPI Behavior
The following describes the differences in link behavior when a bridge is enabled:
214
When link-down is seen, nodes on the link are no longer reachable. This is not true when
the bridging code can still send and receive packets through another link. Administrative
applications that need the actual status of links can use the existing MAC-layer kernel
statistics to reveal the status. These applications are unlike ordinary clients, such as IP, in
that they report hardware status information and do not get involved in forwarding.
When all external links are down, the status shows through as though the bridge itself
were shut down. In this special case, the system recognizes that nothing could possibly
be reachable. The trade-off is that bridges cannot be used to allow local-only
communication in the case where all interfaces are real (not virtual) and all are
disconnected.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Bridging Overview
All link-specific features are made generic. Links that support special hardware acceleration
features are unable to use those features because actual output link determination is not
made entirely by the client. The bridge forwarding function must choose an output link
based on the destination MAC address, and this output link can be any link on the bridge.
VLAN Administration
By default, VLANs that are configured on the system are forwarded among all the ports on a
bridge instance. When you invoke the dladm create-vlan or dladm create-vnic -v
command, and the underlying link is part of a bridge, that command will also enable
forwarding of the specified VLAN on that bridge link.
To configure a VLAN on a link and disable forwarding to or from other links on the bridge, you
must disable forwarding by setting the forward property with the dladm set-linkprop
command.
Use the dladm create-vlan command to automatically enable the VLAN for bridging when
the underlying link is configured as part of a bridge.
VLANs are ignored in the standards-compliant STP. The bridging protocol computes just one
loop-free topology by using tag-free BPDU messages, and uses this tree to enable and disable
links. You must configure any duplicate links that are provisioned in your networks such that
when those links are automatically disabled by STP, the configured VLANs are not
disconnected. This means that you should either run all VLANs everywhere on your bridged
backbone or carefully examine all redundant links.
TRILL does not need to follow the complex STP rules. Instead, TRILL automatically
encapsulates packets that have the VLAN tag intact, and passes them through the network. This
means that TRILL binds together isolated VLANs where the same VLAN ID has been reused
within a single bridged network.
This is an important difference from STP where you might reuse VLAN tags in isolated sections
of the network to manage sets of VLANs that are larger than the 4094 limit. While you cannot
use TRILL to manage networks in this way, you might be able to implement other solutions,
such as provider-based VLANs.
In an STP network with VLANs, it might be difficult to configure the failover characteristics to
prevent VLAN partitioning when STP disables the wrong link. The relatively small loss of
functionality in isolated VLANs is more than made up for in the robustness of the TRILL
model.
215
Bridging Overview
VLAN Behavior
The bridge performs forwarding by examining the allowed set of VLANs and the default_tag
property for each link. The general process is as follows:
Input VLAN determination. This task begins when a packet is received on a link. When a
packet is received, it is checked for a VLAN tag. If that tag is not present or if the tag is
priority-only (tag zero), the default_tag configured on that link (if not set to zero) is taken
as the internal VLAN tag. If the tag is not present or zero and default_tag is zero, the
packet is ignored. No untagged forwarding is performed. If the tag is present and is equal to
default_tag, the packet is also ignored. Otherwise, the input tag is taken to be the input
VLAN.
Link membership check. If the input VLAN is not configured as an allowed VLAN on this
link, the packet is ignored. Forwarding is then computed, and the same check is made for the
output link.
Tag update. If the VLAN (nonzero at this point) is equal to default_tag on the output link,
the tag on the packet (if any) is removed, regardless of priority. If the VLAN is not equal to
default_tag on the output link, a tag is added if not currently present, and the tag is set for
the output packet, with the current priority copied into the packet.
Note In the case where forwarding sends to multiple interfaces (for broadcast, multicast, and
unknown destinations), the output link check and tag update must be done independently for
each output link. Some transmissions might be tagged while others are untagged.
You can obtain information about bridges by running the following command:
# dladm show-bridge
BRIDGE
PROTECT
tonowhere trill
sanluisrey stp
pontoon
trill
ADDRESS
PRIORITY DESROOT
32768/66:ca:b0:39:31:5d 32768 32768/66:ca:b0:39:31:5d
32768/ee:2:63:ed:41:94 32768 32768/ee:2:63:ed:41:94
32768/56:db:46:be:b9:62 32768 32768/56:db:46:be:b9:62
You can obtain TRILL nickname information for a bridge by running the following
command:
# dladm show-bridge -t tonowhere
NICK FLAGS LINK
NEXTHOP
38628 -- simblue2
56:db:46:be:b9:62
58753 L
---
216
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Description
For Instructions
Create a bridge.
217
Task
Description
For Instructions
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
# dladm show-bridge
218
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Example 111
The following shows information about all bridges that are configured on the system:
# dladm show-bridge
BRIDGE
PROTECT ADDRESS
PRIORITY DESROOT
goldengate stp
32768/8:0:20:bf:f 32768
8192/0:d0:0:76:14:38
baybridge
stp
32768/8:0:20:e5:8 32768
8192/0:d0:0:76:14:38
The following dladm show-bridge -l command shows link-related status information for
a single bridge instance, tower. To view configured parameters, use the dladm
show-linkprop command instead.
# dladm show-bridge -l tower
LINK
STATE
UPTIME
hme0
forwarding 117
qfe1
forwarding 117
DESROOT
8192/0:d0:0:76:14:38
8192/0:d0:0:76:14:38
The following dladm show-bridge -s command shows statistics for the specified bridge,
terabithia:
# dladm show-bridge -s terabithia
BRIDGE
DROPS
FORWARDS
terabithia 0
302
The following dladm show-bridge -ls command shows statistics for all of the links on the
specified bridge, london:
# dladm show-bridge -ls london
LINK
DROPS
RECV
hme0
0
360832
qfe1
0
322311
The following dladm show-bridge -f command shows kernel forwarding entries for the
specified bridge, avignon:
# dladm show-bridge -f avignon
DEST
AGE
FLAGS
8:0:20:bc:a7:dc 10.860 -8:0:20:bf:f9:69 -L
8:0:20:c0:20:26 17.420 -8:0:20:e5:86:11 -L
XMIT
31797
356852
OUTPUT
hme0
hme0
hme0
qfe1
The following dladm show-bridge -t command shows TRILL information about the
specified bridge, key:
# dladm show-bridge -t key
NICK FLAGS LINK
NEXTHOP
38628 -- london
56:db:46:be:b9:62
58753 L
---
219
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
The dladm create-bridge command creates a bridge instance and optionally assigns one or
more network links to the new bridge. Because no bridge instances are present on the system by
default, Oracle Solaris does not bridge between network links by default.
To bridge between links, you must create at least one bridge instance. Each bridge instance is
separate. Bridges do not include a forwarding connection between them, and a link is a member
of at most one bridge.
bridge-name is an arbitrary string that must be a legal SMF service instance name. This name is
a FMRI component that has no escape sequences, which means that whitespace, ASCII control
characters, and the following characters cannot be present:
; / ? : @ & = + $ , % < > # "
220
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
The name default is reserved, as are all names beginning with the SUNW string. Names that have
trailing digits are reserved for the creation of observability devices. Because of the use of the
observability devices, the names of legal bridge instances are further constrained to be a legal
dlpi(7P) name. The name must begin and end with an alphabetic character or an underscore
character. The rest of the name can contain alphanumeric and underscore characters.
1
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
The -l link option adds a link to the bridge. Note that if any of the specified links cannot be
added, the command fails and the bridge is not created.
The following example shows how to create the brooklyn bridge by connecting the hme0 and
qfe1 links:
# dladm create-bridge -l hme0 -l qfe1 brooklyn
The -P protection-type option specifies which protection type to use. By default, the protection
type is STP (-P stp). To use the TRILL protection type instead, use the -P trill option.
The following example shows how to modify the protection type for the brooklyn bridge from
the default STP to TRILL:
# dladm modify-bridge -P trill brooklyn
221
The links that are assigned to a bridge cannot be VLANs, VNICs, or tunnels. Only links that
would be acceptable as part of an aggregation, or links that are aggregations themselves can be
assigned to a bridge.
Links that are assigned to a bridge must all have the same MTU value. Note that Oracle Solaris
allows you to change the MTU value on an existing link. In this case, the bridge instance goes
into maintenance state until you remove or change the assigned links so that the MTU values
match before you restart the bridge.
The links that are assigned to the bridge must be an Ethernet type, which includes 802.3 and
802.11 media.
1
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
The following example shows how to add the qfe2 link to the existing bridge rialto:
# dladm add-bridge -l qfe2 rialto
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
The following example shows how to remove the hme0, qfe1, and qfe2 links from the bridge
charles:
# dladm remove-bridge -l hme0 -l qfe1 -l qfe2 charles
222
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
The following example shows how to first remove the hme0, qfe1, and qfe2 links from the
coronado bridge, and then remove the bridge itself from the system:
# dladm remove-bridge -l hme0 -l qfe1 -l qfe2 coronado
# dladm delete-bridge coronado
223
14
C H A P T E R
1 4
Introducing IPMP
Note Throughout the description of IPMP in this chapter and in Chapter 15, Administering
IPMP, all references to the term interface specifically mean IP interface. Unless a qualification
explicitly indicates a different use of the term, such as a network interface card (NIC), the term
always refers to the interface that is configured on the IP layer.
An IPMP group is represented as an IPMP IP interface. This interface is treated just like any
other interface on the IP layer of the networking stack. All IP administrative tasks, routing
tables, Address Resolution Protocol (ARP) tables, firewall rules, and other IP-related
procedures work with an IPMP group by referring to the IPMP interface.
251
Deploying IPMP
The system becomes responsible for the distribution of data addresses among underlying
active interfaces. In the previous IPMP implementation, the administrator initially
determines the binding of data addresses to corresponding interfaces when the IPMP group
is created. In the current implementation, when the IPMP group is created, data addresses
belong to the IPMP interface as an address pool. The kernel then automatically and
randomly binds the data addresses to the underlying active interfaces of the group.
The ipmpstat tool is introduced as the principal tool to obtain information about IPMP
groups. This command provides information about all aspects of the IPMP configuration,
such as the underlying IP interfaces of the group, test and data addresses, types of failure
detection being used, and which interfaces have failed. The ipmpstat functions, the options
you can use, and the output each option generates are all described in Monitoring IPMP
Information on page 296.
The IPMP interface can be assigned a customized name to identify the IPMP group more
easily within your network setup. For the procedures to configure IPMP groups with
customized names, see any procedure that describes the creation of an IPMP group in
Configuring IPMP Groups on page 279.
Note To use IPMP, make sure that the DefaultFixed profile is enabled on the system. For
procedures, see Profiles and Configuration Tools on page 144. For more information about
profile-managed network configuration, see Chapter 4, NWAM Profile Configuration
(Tasks).
Deploying IPMP
This section describes various topics about the use of IPMP groups.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Deploying IPMP
Multiple IP interfaces on the same local area network or LAN must be configured into an
IPMP group. LAN broadly refers to a variety of local network configurations including
VLANs and both wired and wireless local networks whose nodes belong to the same
link-layer broadcast domain.
Note Multiple IPMP groups on the same link layer (L2) broadcast domain are
For example, suppose that a system with three interfaces is connected to two separate LANs.
Two IP interfaces link to one LAN while a single IP interface connects to the other. In this case,
the two IP interfaces connecting to the first LAN must be configured as an IPMP group, as
required by the first rule. In compliance with the second rule, the single IP interface that
connects to the second LAN cannot become a member of that IPMP group. No IPMP
configuration is required of the single IP interface. However, you can configure the single
interface into an IPMP group to monitor the interface's availability. The single-interface IPMP
configuration is discussed further in Types of IPMP Interface Configurations on page 262.
Consider another case where the link to the first LAN consists of three IP interfaces while the
other link consists of two interfaces. This setup requires the configuration of two IPMP groups:
a three-interface group that links to the first LAN, and a two-interface group to connect to the
second.
253
Deploying IPMP
The following table presents a general comparison between link aggregation and IPMP.
IPMP
Link Aggregation
Configuration tool
ipadm
dladm
Link-based failure
detection
Supported.
Supported.
Probe-based failure
detection
Supported
Not supported
Supported
Hardware support
Not required
Broadcast-capable
Ethernet-specific
Driver framework
requirements
None
In link aggregations, incoming traffic is spread over the multiple links that comprise the
aggregation. Thus, networking performance is enhanced as more NICs are installed to add links
to the aggregation. IPMP's traffic uses the IPMP interface's data addresses as they are bound to
the available active interfaces. If, for example, all the data traffic is flowing between only two IP
addresses but not necessarily over the same connection, then adding more NICs will not
improve performance with IPMP because only two IP addresses remain usable.
The two technologies complement each other and can be deployed together to provide the
combined benefits of network performance and availability. For example, except where
proprietary solutions are provided by certain vendors, link aggregations currently cannot span
multiple switches. Thus, a switch becomes a single point of failure for a link aggregation
254
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Deploying IPMP
between the switch and a host. If the switch fails, the link aggregation is likewise lost, and
network performance declines. IPMP groups do not face this switch limitation. Thus, in the
scenario of a LAN using multiple switches, link aggregations that connect to their respective
switches can be combined into an IPMP group on the host. With this configuration, both
enhanced network performance as well as high availability are obtained. If a switch fails, the
data addresses of the link aggregation to that failed switch are redistributed among the
remaining link aggregations in the group.
For other information about link aggregations, see Chapter 12, Administering Link
Aggregations.
255
Deploying IPMP
FIGURE 141
itops0
192.168.10.10
192.168.10.15
Active
net0
192.168.10.30
net1
192.168.10.32
Reserve
Failed
net2
192.168.10.34
Offline
Two data addresses are assigned to the group: 192.168.10.10 and 192.168.10.15.
Two underlying interfaces are configured as active interfaces and are assigned flexible link
names: net0 and net1.
The group has one standby interface, also with a flexible link name: net2.
Probebased failure detection is used, and thus the active and standby interfaces are
configured with test addresses, as follows:
256
net0: 192.168.10.30
net1: 192.168.10.32
net2: 192.168.10.34
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Deploying IPMP
Note The Active, Offline, Reserve, and Failed areas in the figures indicate only the status of
STATE
ok
FDT
10.00s
INTERFACES
net1 net0 (net2)
To display information about the group's underlying interfaces, you would type the following:
# ipmpstat
INTERFACE
net0
net1
net2
-i
ACTIVE
yes
yes
no
GROUP
itops0
itops0
itops0
FLAGS
--------mb--is-----
LINK
up
up
up
PROBE
ok
ok
ok
STATE
ok
ok
ok
IPMP maintains network availability by managing the underlying interfaces to preserve the
original number of active interfaces. Thus, if net0 fails, then net2 is deployed to ensure that the
group continues to have two active interfaces. The activation of the net2 is shown in
Figure 142.
257
Deploying IPMP
FIGURE 142
itops0
192.168.10.10
192.168.10.15
net2
192.168.10.34
net1
192.168.10.32
Active
net0
192.168.10.30
Failed
net2
192.168.10.34
net0
192.168.10.30
Offline
Reserve
Note The onetoone mapping of data addresses to active interfaces in Figure 142 serves only
to simplify the illustration. The IP kernel module can assign data addresses randomly without
necessarily adhering to a onetoone relationship between data addresses and interfaces.
-i
ACTIVE
no
yes
yes
GROUP
itops0
itops0
itops0
FLAGS
--------mb---s-----
LINK
up
up
up
PROBE
failed
ok
ok
STATE
failed
ok
ok
After net0 is repaired, then it reverts to its status as an active interface. In turn, net2 is returned
to its original standby status.
A different failure scenario is shown in Figure 143, where the standby interface net fails (1),
and later, one active interface, net1, is switched offline by the administrator (2). The result is
that the IPMP group is left with a single functioning interface, net0.
258
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Deploying IPMP
FIGURE 143
itops0
192.168.10.10
192.168.10.15
Active
net0
192.168.10.30
net1
192.168.10.32
Reserve
Failed
net2
192.168.10.34
Offline
net1
192.168.10.32
net2
192.168.10.34
The ipmpstat utility would display the information illustrated by Figure 143 as follows:
# ipmpstat
INTERFACE
net0
net1
net2
-i
ACTIVE
yes
no
no
GROUP
itops0
itops0
itops0
FLAGS
--------mb-dis-----
LINK
up
up
up
PROBE
ok
ok
failed
STATE
ok
offline
failed
For this particular failure, the recovery after an interface is repaired behaves differently. The
restoration depends on the IPMP group's original number of active interfaces compared with
the configuration after the repair. The recovery process is represented graphically in
Figure 144.
259
Deploying IPMP
FIGURE 144
itops0
192.168.10.10
192.168.10.15
Active
net0
192.168.10.30
net2
192.168.10.34
Offline
Failed
net1
192.168.10.32
Reserve
net2
192.168.10.34
In Figure 144, when net2 is repaired, it would normally revert to its original status as a standby
interface (1). However, the IPMP group still would not reflect the original number of two active
interfaces, because net1 continues to remain offline (2). Thus, IPMP deploys net2 as an active
interface instead (3).
The ipmpstat utility would display the post-repair IPMP scenario as follows:
# ipmpstat
INTERFACE
net0
net1
net2
-i
ACTIVE
yes
no
yes
GROUP
itops0
itops0
itops0
FLAGS
--------mb-d-s-----
LINK
up
up
up
PROBE
ok
ok
ok
STATE
ok
offline
ok
A similar restore sequence occurs if the failure involves an active interface that is also
configured in FAILBACK=no mode, where a failed active interface does not automatically revert
to active status upon repair. Suppose net0 in Figure 142 is configured in FAILBACK=no mode.
In that mode, a repaired net0 is switched to a reserve status as a standby interface, even though
it was originally an active interface. The interface net2 would remain active to maintain the
IPMP group's original number of two active interfaces. The ipmpstat utility would display the
recovery information as follows:
# ipmpstat
INTERFACE
net0
net1
260
-i
ACTIVE
no
yes
GROUP
itops0
itops0
FLAGS
i-------mb---
LINK
up
up
PROBE
ok
ok
STATE
ok
ok
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
net2
yes
itops0
-s-----
up
ok
ok
For more information about this type of configuration, see The FAILBACK=no Mode on
page 267.
261
active-active configuration an IPMP group in which all underlying interfaces are active.
An active interface is an IP interface that is currently available for use by the IPMP group. By
default, an underlying interface becomes active when you configure the interface to become
part of an IPMP group. For additional information about active interfaces and other IPMP
terms, see also IPMP Terminology and Concepts on page 270.
A single interface can also be configured in its own IPMP group. The single interface IPMP
group has the same behavior as an IPMP group with multiple interfaces. However, this IPMP
configuration does not provide high availability for network traffic. If the underlying interface
fails, then the system loses all capability to send or receive traffic. The purpose of configuring a
single-interfaced IPMP group is to monitor the availability of the interface by using failure
detection. By configuring a test address on the interface, you can set the daemon to track the
interface by using probe-based failure detection. Typically, a single-interfaced IPMP group
configuration is used in conjunction with other technologies that have broader failover
capabilities, such as Oracle Solaris Cluster software. The system can continue to monitor the
status of the underlying interface. But the Oracle Solaris Cluster software provides the
functionalities to ensure availability of the network when failure occurs. For more information
about the Oracle Solaris Cluster software, see Sun Cluster Overview for Solaris OS.
An IPMP group without underlying interfaces can also exist, such as a group whose underlying
interfaces have been removed. The IPMP group is not destroyed, but the group cannot be used
to send and receive traffic. As underlying IP interfaces are brought online for the group, then
the data addresses of the IPMP interface are allocated to these interfaces and the system
resumes hosting network traffic.
262
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
IPMP Addressing
IPMP Addressing
You can configure IPMP failure detection on both IPv4 networks and dual-stack, IPv4 and IPv6
networks. Interfaces that are configured with IPMP support two types of addresses:
Data Addresses are the conventional IPv4 and IPv6 addresses that are assigned to an IP
interface dynamically at boot time by the DHCP server, or manually by using the ipadm
command. Data addresses are assigned to the IPMP interface. The standard IPv4 packet
traffic and, if applicable, IPv6 packet traffic are considered data traffic. Data traffic flow use
the data addresses that are hosted on the IPMP interface and flow through the active
interfaces of that group.
Test Addresses are IPMP-specific addresses that are used by the in.mpathd daemon to
perform probe-based failure and repair detection. Test addresses can also be assigned
dynamically by the DHCP server, or manually by using the ipadm command. While data
addresses are assigned to the IPMP interface, only test addresses are assigned to the
underlying interfaces of the group. For an underlying interface on a dual-stack network, you
can configure an IPv4 test address or an IPv6 test address or both. When an underlying
interface fails, the interface's test address continues to be used by the in.mpathd daemon for
probe-based failure detection to check for the interface's subsequent repair.
Note You need to configure test addresses only if you specifically want to use probe-based
failure detection. Otherwise, you can enable transitive probing to detect failure without
using test addresses. For more information about probe-based failure detection with or
without using test addresses, refer to Probe-Based Failure Detection on page 264.
In previous IPMP implementations, test addresses needed to be marked as DEPRECATED to
avoid being used by applications especially during interface failures. In the current
implementation, test addresses reside in the underlying interfaces. Thus, these addresses
can no longer be accidentally used by applications that are unaware of IPMP. However, to
ensure that these addresses will not be considered as a possible source for data packets, the
system automatically marks any addresses with the NOFAILOVER flag as also DEPRECATED.
263
264
ICMP probes
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
ICMP probes are sent by the active interfaces in the group to probe targets that are defined
in the routing table. An active interface is the underlying interface that can receive inbound
IP packets that are addressed to the interface's link layer (L2) address. The ICMP probe uses
the data address as the probe's source address. If the ICMP probe reaches its target and gets a
response from the target, then the active interface is operational.
Transitive probes
Transitive probes are sent by the alternate interfaces in the group to probe the active
interface. An alternate interface is an underlying interface that does not actively receive any
inbound IP packets.
For example, consider an IPMP group that consists of four underlying interfaces. The group
is configured with one data address but no test addresses. In this configuration, outbound
packets can use all the underlying interfaces. However, inbound packets can only be
received by the interface to which the data address is bound. The remaining three
underlying interfaces that cannot receive inbound packets are the alternate interfaces.
If an alternate interface can successfully send a probe to an active interface and receive a
response, then the active interface is functional, and by inference, so is the alternate interface
that sent the probe.
Note You must enable transitive probing to use this failure detection method that does not
265
in.mpathd sends multicast packets to probe neighbor hosts on the link. The multicast packet is
sent to the all hosts multicast address, 224.0.0.1 in IPv4 and ff02::1 in IPv6, to determine
which hosts to use as target systems. The first five hosts that respond to the echo packets are
chosen as targets for probing. If in.mpathd cannot find routers or hosts that responded to the
multicast probes, then ICMP echo packets, in.mpathd cannot detect probe-based failures. In
this case, the ipmpstat -i utility will report the probe state as unknown.
You can use host routes to explicitly configure a list of target systems to be used by in.mpathd.
For instructions, refer to Configuring for Probe-Based Failure Detection on page 291.
Group Failure
A group failure occurs when all interfaces in an IPMP group appear to fail at the same time. In
this case, no underlying interface is usable. Also, when all the target systems fail at the same time
and probe-based failure detection is enabled, the in.mpathd daemon flushes all of its current
target systems and probes for new target systems.
In an IPMP group that has no test addresses, a single interface that can probe the active
interface will be designated as a prober. This designated interface will have both the FAILED
flag and PROBER flag set. The data address is bound to this interface which allows the interface
to continue probing the target to detect recovery.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
these interfaces do not belong to a named IPMP group, then these addresses are visible to
applications. To enable tracking of interfaces that are not part of an IPMP group, see How to
Configure the Behavior of the IPMP Daemon on page 293.
Failed interface was originally an active interface the repaired interface reverts to its
original active status. The standby interface that functioned as a replacement during the
failure is switched back to standby status if enough interfaces are active for the group as
defined by the system administrator.
Note An exception to this step are cases when the repaired active interface is also
configured with the FAILBACK=no mode. For more information, see The FAILBACK=no
Mode on page 267
Failed interface was originally a standby interface the repaired interface reverts to its
original standby status, provided that the IPMP group reflects the original number of active
interfaces. Otherwise, the standby interface is switched to become an active interface.
To see a graphical presentation of how IPMP behaves during interface failure and repair, see
How IPMP Works on page 255.
267
prevent an interface to automatically become active upon repair. These interfaces must be
configured in the FAILBACK=no mode. For related procedures, see How to Configure the
Behavior of the IPMP Daemon on page 293.
When an active interface in FAILBACK=no mode fails and is subsequently repaired, the IPMP
daemon restores the IPMP configuration as follows:
The daemon retains the interface's INACTIVE status, provided that the IPMP group reflects
the original configuration of active interfaces.
If the IPMP configuration at the moment of repair does not reflect the group's original
configuration of active interfaces, then the repaired interface is redeployed as an active
interface, notwithstanding the FAILBACK=no status.
Note The FAILBACK=NO mode is set for the whole IPMP group. It is not a per-interface tunable
parameter.
268
Description
For Information
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
TABLE 141
Description
(Continued)
For Information
Tasks for administering IPMP groups on a system that Recovering an IPMP Configuration With Dynamic
supports DR
Reconfiguration on page 294
Detaching NICs
All requests to detach system components that contain NICs are first checked to ensure that
connectivity can be preserved. For instance, by default you cannot detach a NIC that is not in an
IPMP group. You also cannot detach a NIC that contains the only functioning interfaces in an
IPMP group. However, if you must remove the system component, you can override this
behavior by using the -f option of cfgadm, as explained in the cfgadm(1M) man page.
If the checks are successful, the daemon sets the OFFLINE flag for the interface. All test addresses
on the interfaces are unconfigured. Then, the NIC is unplumbed from the system. If any of these
steps fail, or if the DR of other hardware on the same system component fails, then the previous
configuration is restored to its original state. A status message about this event will be displayed.
Otherwise, the detach request completes successfully. You can remove the component from the
system. No existing connections are disrupted.
Chapter 14 Introducing IPMP
269
Replacing NICs
When an underlying interface of an IPMP group fails, a typical solution would be to replace the
failed interface by attaching a new NIC. RCM records the configuration information associated
with any NIC that is detached from a running system. If you replace a failed NIC with an
identical NIC, then RCM automatically configures the interface according to the persistent
configurations that had been previously defined by using the ipadm command.
For example, suppose you replace a failed bge0 interface with another bge0 interface. The failed
bge0's configuration settings that were defined by using the ipadm command are persistent
settings. After you attach the replacement bge NIC, RCM plumbs and then configures the bge0
interface according to these persistent settings. Thus the interface is properly configured with
the test address and is added to the IPMP group.
You can replace a failed NIC with a different NIC, provided that both are the same type, such as
Ethernet. In this case, RCM plumbs the new interface after it is attached. If you did not use
customized link names when you first configured your interfaces, then you will have to
configure the new NIC before you can add the interface to the IPMP group.
However, if you used customized link names, the additional configuration steps are
unnecessary. By reassigning the failed interface's link name to the new interface, then the new
interface acquires the configuration specified in the removed interface's persistent settings.
RCM then configures the interface according to those settings. For procedures to recover your
IPMP configuration by using DR when an interface fails, refer to Recovering an IPMP
Configuration With Dynamic Reconfiguration on page 294.
270
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
dynamic reconfiguration
FAILBACK=no mode
271
failure detection
INACTIVE interface
272
IPMP group
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
IPMP interface
IPMP singleton
273
274
NOFAILOVER address
OFFLINE interface
physical interface
probe
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
probe target
STANDBY interface
target systems
test address
275
undo-offline operation
unusable interface
UP address
276
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
15
C H A P T E R
1 5
Administering IPMP
This chapter provides tasks for administering interface groups with IP network multipathing
(IPMP). The following major topics are discussed:
Description
For Instructions
277
Task
Description
For Instructions
Description
For Instructions
278
Task
Description
For Instructions
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Task
Description
For Instructions
Description
For Instructions
279
Note You must configure only one IPMP group for each subnet or L2 broadcast domain. For
more information, see When You Must Use IPMP on page 253.
1
Determine the general IPMP configuration that would suit your needs.
Your IPMP configuration depends on what your network needs to handle the type of traffic that
is hosted on your system. IPMP spreads outbound network packets across the IPMP group's
interfaces, and thus improves network throughput. However, for a given TCP connection,
inbound traffic normally follows only one physical path to minimize the risk of processing
out-of-order packets.
Thus, if your network handles a huge volume of outbound traffic, configuring a big number of
interfaces into an IPMP group can improve network performance. If instead, the system hosts
heavy inbound traffic, then the number of interfaces in the group does not necessarily improve
performance by load spreading traffic. However, having more underlying interfaces helps to
guarantee network availability during interface failure.
For SPARC based systems, verify that each interface in the group has a unique MAC address.
To configure a unique MAC address for each interface in the system, see SPARC: How to
Ensure That the MAC Address of an Interface Is Unique on page 169.
Ensure that the same set of STREAMS modules is pushed and configured on all interfaces in the
IPMP group.
All interfaces in the same group must have the same STREAMS modules configured in the same
order.
a. Check the order of STREAMS modules on all interfaces in the prospective IPMP group.
You can print a list of STREAMS modules by using the ifconfig interface modlist
command. For example, here is the ifconfig output for an net0 interface:
# ifconfig net0 modlist
0 arp
1 ip
2 e1000g
As the output shows, interfaces normally exist as network drivers directly below the IP
module. These interfaces should not require additional configuration.
However, certain technologies insert themselves as a STREAMS module between the IP
module and the network driver. If a STREAMS module is stateful, then unexpected behavior
can occur on failover, even if you push the same module onto all of the interfaces in a group.
However, you can use stateless STREAMS modules, provided that you push them in the
same order on all interfaces in the IPMP group.
280
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
b. Push the modules of an interface in the standard order for the IPMP group.
ifconfig interface modinsert module-name@position
ifconfig net0 modinsert vpnmod@3
4
Use the same IP addressing format on all interfaces of the IPMP group.
If one interface is configured for IPv4, then all interfaces of the group must be configured for
IPv4. For example, if you add IPv6 addressing to one interface, then all interfaces in the IPMP
group must be configured for IPv6 support.
Ensure that all interfaces in the IPMP group are connected to the same local network.
For example, you can configure Ethernet switches on the same IP subnet into an IPMP group.
You can configure any number of interfaces into an IPMP group.
Note You can also configure a single interface IPMP group, for example, if your system has
only one physical interface. For related information, see Types of IPMP Interface
Configurations on page 262.
7
Ensure that the IPMP group does not contain interfaces with different network media types.
The interfaces that are grouped together should be of the same interface type, as defined in
/usr/include/net/if_types.h. For example, you cannot combine Ethernet and Token ring
interfaces in an IPMP group. As another example, you cannot combine a Token bus interface
with asynchronous transfer mode (ATM) interfaces in the same IPMP group.
For IPMP with ATM interfaces, configure the ATM interfaces in LAN emulation mode.
IPMP is not supported for interfaces using Classical IP over ATM.
281
Make sure that IP interfaces that will be in the IPMP group have been correctly configured over
the system's network datalinks. You can create an IPMP interface even if underlying IP
interfaces do not yet exist. However, subsequent configurations on this IPMP interface will fail.
For procedures to configure links and IP interfaces, see IP Interface Configuration (Tasks) on
page 168. For information about configuring IPv6 interfaces, see Configuring an IPv6
Interface in Oracle Solaris Administration: IP Services.
Additionally, if you are using a SPARC system, configure a unique MAC address for each
interface. For procedures, see SPARC: How to Ensure That the MAC Address of an Interface Is
Unique on page 169.
Finally, if you are using DHCP, make sure that the underlying interfaces have infinite leases.
Otherwise, in case of a group failure, the test addresses will expire and the IPMP daemon will
then disable probe-based failure detection and link-based failure detection will be used. If
link-based failure detection discovers that the interface is functioning, the daemon might
erroneously report that the interface has been repaired. For more information about
configuring DHCP, refer to Chapter 13, Planning for DHCP Service (Tasks), in System
Administration Guide: IP Services.
Note You cannot use IPMP if the active network profile on the system is a reactive profile.
Before configuring IPMP groups, if necessary enable the DefaultFixed profile to switch to a
fixed network configuration profile. For procedures, see Profiles and Configuration Tools on
page 144.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
where
ipmp-interface specifies the name of the IPMP interface. You can assign any meaningful name
to the IPMP interface. As with any IP interface, the name consists of a string and a number, such
as ipmp0.
3
where under-interface refers to the IP interface that you will add to the IPMP group.
4
Add underlying IP interfaces that will contain test addresses to the IPMP group.
# ipadm add-ipmp -i under-interface1 [-i under-interface2 ...] ipmp-interface
282
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
You can create as many IP interfaces to the IPMP group as are available in the system.
5
Have DHCP configure and manage the data addresses on the IPMP interface.
# ipadm create-addr -T dhcp addrobj
The addrobj represents an address object and uses the format interface/string. The interface in
this step is the IPMP interface. The string can be any user-defined string. Thus, if you have
multiple data addresses on the IPMP interface, the corresponding address objects would be
ipmp-interface/string1, ipmp-interface/string2, ipmp-interface/string3, and so on.
6
The addrobj represents an address object and uses the format interface/string. The interface in
this step is the underlying interface. The string can be any user-defined string. Thus, if you have
multiple underlying interfaces for the IPMP group, the corresponding address objects would be
under-interface1/string, ipmp-interface2/string, ipmp-interface3/string, and so on.
Example 151
Three underlying interfaces for the IPMP group will be configured over their respective
datalinks net0, net1, and net2 are designated members of the IPMP group.
The IPMP interface itops0 shares the same name with the IPMP group.
To use probe-based failure detection, all the underlying interfaces are assigned test
addresses.
283
Make sure that IP interfaces that will be in the prospective IPMP group have been correctly
configured over the system's network datalinks. For procedures to configure links and IP
interfaces, see IP Interface Configuration (Tasks) on page 168. For information about
configuring IPv6 interfaces, see Configuring an IPv6 Interface in Oracle Solaris
Administration: IP Services. You can create an IPMP interface even if underlying IP interfaces
do not yet exist. However, subsequent configurations on this IPMP interface will fail.
Additionally, if you are using a SPARC system, configure a unique MAC address for each
interface. For procedures, see SPARC: How to Ensure That the MAC Address of an Interface Is
Unique on page 169.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
where
ipmp-interface specifies the name of the IPMP interface. You can assign any meaningful name
to the IPMP interface. As with any IP interface, the name consists of a string and a number, such
as ipmp0.
3
where under-interface refers to the underlying interface of the IPMP group. You can add as
many IP interfaces as are available in the system.
Note In a dual-stack environment, placing the IPv4 instance of an interface under a particular
group automatically places the IPv6 instance under the same group as well.
4
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
All test IP addresses in an IPMP group must use the same network prefix. The test IP addresses
must belong to a single IP subnet.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
where
ipmp-interface specifies the name of the IPMP interface. You can assign any meaningful name
to the IPMP interface. As with any IP interface, the name consists of a string and a number, such
as ipmp0.
3
where under-interface refers to the underlying interface of the IPMP group. You can add as
many IP interfaces as are available in the system.
Note In a dual-stack environment, placing the IPv4 instance of an interface under a particular
group automatically places the IPv6 instance under the same group as well.
285
All test IP addresses in an IPMP group must use the same network prefix. The test IP addresses
must belong to a single IP subnet.
6
Example 152
286
STATE
ok
FDT
10.00s
INTERFACES
net0 net1 (net2)
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
# ipmpstat
INTERFACE
net0
net1
net2
-t
MODE
routes
routes
routes
TESTADDR
192.168.10.30
192.168.10.32
192.168.10.34
TARGETS
192.168.10.1
192.168.10.1
192.168.10.5
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
If the underlying IP interface does not yet exist, create the interface.
# ipadm create-ip interface
Example 153
INTERFACES
net0 net1 net4
287
You can remove as many underlying interfaces in a single command as required. Removing all
underlying interfaces does not delete the IPMP interface. Rather exists as an empty IPMP
interface or group.
Example 154
INTERFACES
net0 net1
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
To add data addresses to the IPMP group, type the following command:
# ipadm create-addr -T static -a ip-address addrobj
To remove an address from the IPMP group, type the following command:
# ipadm delete-addr addrobj
To assign a test address to an underlying interface of the IPMP group, type the following
command:
# ipadm create-addr -T static ip-address adrobj
288
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
To remove a test address from an underlying interface of the IPMP group, type the
following command:
# ipadm delete-addr addrobj
Example 155
TARGETS
192.168.10.1
STATE
ok
ADDR
127.0.0.1/8
ok
192.168.10.30
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
where under-interface refers to the underlying interface that you want to move and
ipmp-interface refers to the IPMP interface or group to which you want to move the underlying
interface.
Placing the interface in a new group automatically removes the interface from any existing
group.
Chapter 15 Administering IPMP
289
Example 156
This command removes the net0 interface from IPMP group itops0 and then puts net0 to
cs-link1.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
After you delete the IPMP interface, any IP address that is associated with the interface is
deleted from the system.
Example 157
STATE
ok
FDT
10.00s
INTERFACES
net0 net1
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Make sure that the prospective targets are available and running. Make a list of their IP
addresses.
Ensure that the target interfaces are on the same network as the IPMP group that you are
configuring.
The netmask and broadcast address of the target systems must be the same as the addresses
in the IPMP group.
The target host must be able to answer ICMP requests from the interface that is using
probe-based failure detection.
291
Log in with your user account to the system where you are configuring probe-based failure
detection.
where destination-IP and gateway-IP are IPv4 addresses of the host to be used as a target. For
example, you would type the following to specify the target system 192.168.10.137, which is
on the same subnet as the interfaces in IPMP group itops0:
$ route -p add -host 192.168.10.137 192.168.10.137 -static
This new route will be automatically configured every time the system is restarted. If you want
to define only a temporary route to a target system for probe-based failure detection, then do
not use the -p option.
3
For more information about setting this property, see the in.mpathd(1M) man page.
b. Remove any existing test addresses that have been configured for the IPMP group.
2
To use only test addresses to probe for failure, perform the following steps:
a. If necessary, turn off transitive probing.
# svccfg -s svc:/network/ipmp setprop config/transitive-probing=false
# svcadm refresh svc:/network/ipmp:default
292
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
FAILURE_DETECTION_TIME
TRACK_INTERFACES_ONLY_WITH_GROUPS
FAILBACK
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
where n is the amount of time in seconds for ICMP probes to detect whether an interface
failure has occurred. The default is 10 seconds.
b. Type the new value for the FAILBACK parameter.
FAILBACK=[yes | no]
yes The yes value is the default for the failback behavior of IPMP. When the repair of a
failed interface is detected, network access fails back to the repaired interface, as
described in Detecting Physical Interface Repairs on page 267.
no The no value indicates that data traffic does not move back to a repaired interface.
When a failed interfaces is detected as repaired, the INACTIVE flag is set for that interface.
This flag indicates that the interface is currently not to be used for data traffic. The
interface can still be used for probe traffic.
For example, the IPMP group ipmp0 consists of two interfaces, net0 and net1. In the
/etc/default/mpathd file, the FAILBACK=no parameter is set. If net0 fails, then it is
flagged as FAILED and becomes unusable. After repair, the interface is flagged as
INACTIVE and remains unusable because of the FAILBACK=no setting.
If net1 fails and only net0 is in the INACTIVE state, then net0's INACTIVE flag is cleared
and the interface becomes usable. If the IPMP group has other interfaces that are also in
the INACTIVE state, then any one of these INACTIVE interfaces, and not necessarily net0,
can be cleared and become usable when net1 fails.
293
yes The yes value is the default for the behavior of IPMP. This parameter causes IPMP to
ignore network interfaces that are not configured into an IPMP group.
no The no value sets failure and repair detection for all network interfaces, regardless
of whether they are configured into an IPMP group. However, when a failure or repair is
detected on an interface that is not configured into an IPMP group, no action is triggered
in IPMP to maintain the networking functions of that interface. Therefore, theno value is
only useful for reporting failures and does not directly improve network availability.
294
Your system's active NCP is DefaultFixed. Refer to the section Dynamic Reconfiguration
and Network Configuration Profiles in How NWAM Works With Other Oracle Solaris
Networking Technologies on page 40 for information about using DR if your system's
active NCP is not DefaultFixed.
The underlying interface net0 has failed, and you need to remove net0's card, bge.
The procedures for performing DR vary with the type of system. Therefore, make sure that you
complete the following:
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Consult the appropriate manual that describes DR procedures on your system. For Sun
hardware from Oracle, all systems that support DR are servers. To locate current DR
documentation on Sun systems, search for dynamic reconfiguration on
http://www.oracle.com/technetwork/indexes/documentation/index.html.
Note The steps in the following procedure refer only to aspects of DR that are specifically
related to IPMP and the use of link names. The procedure does not contain the complete
steps to perform DR. For example, some layers beyond the IP layer require manual
configuration steps, such as for ATM and other services, if the configuration is not
automated. Follow the appropriate DR documentation for your system.
For the detailed procedure to replace NICs, refer to How to Replace a Network Interface
Card With Dynamic Reconfiguration on page 161.
1
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
Perform the appropriate DR steps to remove the failed NIC from the system.
For example, you would remove the bge card.
Complete the DR process by enabling the new NIC's resources to become available for use.
For example, you use the cfgadm command to perform this step. For more information, see the
cfgadm(1M) man page.
After this step, the new interface is configured with the test address, added as an underlying
interface of the IPMP group, and deployed either as an active or a standby interface, all
depending on the persistent configurations of net0. The kernel can then allocate data addresses
to this new interface according to the persistent configurations of the IPMP interface, itops0.
295
FDT
10.00s
-20.00s
INTERFACES
net0 net1
[net3 net4]
net2 net5 (net7) [net6]
GROUP
Specifies the IPMP interface name. In the case of an anonymous group, this
field will be empty. For more information about anonymous groups, see the
in.mpathd(1M) man page.
GROUPNAME
Specifies the name of the IPMP group. In the case of an anonymous group, this
field will be empty.
STATE
FDT
296
STATE
ok
failed
degraded
ok indicates that all underlying interfaces of the IPMP group are usable.
degraded indicates that some of the underlying interfaces in the group are
unusable.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Specifies the underlying interfaces that belong to the group. In this field, active
interfaces are listed first, then inactive interfaces, and finally unusable
interfaces. The status of the interface is indicated by the manner in which it is
listed:
INTERFACES
STATE
up
up
up
up
up
up
down
GROUP
itops0
itops0
acctg1
acctg1
field2
field2
field2
INBOUND
OUTBOUND
net0 net0 net1
net1 net0 net1
----net2
net2 net7
net7
net2 net7
---
ADDRESS
Specifies the hostname or the data address, if the -n option is used in conjunction
with the -a option.
STATE
Indicates whether the address on the IPMP interface is up, and therefore usable,
or down, and therefore unusable.
GROUP
INBOUND
Identifies the interface that receives packets for a given address. The field
information might change depending on external events. For example, if a data
address is down, or if no active IP interfaces remain in the IPMP group, this field
will be empty. The empty field indicates that the system is not accepting IP
packets that are destined for the given address.
OUTBOUND
Identifies the interface that sends packets that are using a given address as a
source address. As with the INBOUND field, the OUTBOUND field information might
297
also change depending on external events. An empty field indicates that the
system is not sending out packets with the given source address. The field might
be empty either because the address is down, or because no active IP interfaces
remain in the group.
298
-i
ACTIVE
yes
yes
no
no
yes
no
no
yes
GROUP
itops0
itops0
acctg1
acctg1
field2
field2
filed2
field2
FLAGS
--mb--------------is------mb---i------------mb---
LINK
up
up
unknown
down
unknown
up
up
up
PROBE
ok
disabled
disabled
unknown
ok
ok
failed
ok
STATE
ok
ok
offline
failed
ok
ok
failed
ok
INTERFACE
ACTIVE
Indicates whether the interface is functioning and is in use (yes) or not (no).
GROUP
Specifies the IPMP interface name. In the case of anonymous groups, this field
will be empty. For more information about anonymous groups, see the
in.mpathd(1M) man page.
FLAGS
Indicates the status of the underlying interface, which can be one or any
combination of the following:
i indicates that the INACTIVE flag is set for the interface and therefore the
interface is not used to send or receive data traffic.
m indicates that the interface is designated by the system to send and receive
IPv4 multicast traffic for the IPMP group.
M indicates that the interface is designated by the system to send and receive
IPv6 multicast traffic for the IPMP group.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
LINK
PROBE
STATE
Indicates the state of link-based failure detection, which is one of the following
states:
unknown indicates that the driver does not support notification of whether a
link is up or down and therefore does not detect link state changes.
Specifies the state of the probebased failure detection for interfaces that have
been configured with a test address, as follows:
failed indicates that probe-based failure detection has detected that the
interface is not working.
ok indicates that the interface is online and working normally based on the
configuration of failure detection methods.
failed indicates that the interface is not working because either the
interface's link is down, or the probe detection has determined that the
interface cannot send or receive traffic.
offline indicates that the interface is not available for use. Typically, the
interface is switched offline under the following circumstances:
299
-nt
MODE
routes
disabled
disabled
routes
multicast
multicast
multicast
multicast
$ ipmpstat
INTERFACE
net3
net2
net1
-nt
MODE
transitive
transitive
routes
INTERFACE
MODE
TESTADDR
TESTADDR
192.168.85.30
--192.1.2.200
128.9.0.200
128.9.0.201
128.9.0.202
128.9.0.203
TESTADDR
<net1>
<net1>
172.16.30.100
TARGETS
192.168.85.1 192.168.85.3
--192.1.2.1
128.0.0.1 128.0.0.2
128.0.0.2 128.0.0.1
128.0.0.1 128.0.0.2
128.0.0.1 128.0.0.2
TARGETS
<net1> <net2> <net3>
<net1> <net2> <net3>
172.16.30.1
routes indicates that the system routing table is used to find probe targets.
mcast indicates that multicast ICMP probes are used to find targets.
disabled indicates that probe-based failure detection has been disabled for
the interface.
Specifies the hostname or, if the -n option is used in conjunction with the -t
option, the IP address that is assigned to the interface to send and receive
probes.
If transitive probing is used, then the interface names refer to the underlying IP
interfaces that are not actively used to receive data. The names also indicate that
the transitive test probes are being sent out with the source address of these
specified interfaces. For active underlying IP interfaces that receive data, an IP
address that is displayed indicates the source address of outgoing ICMP probes.
Note If an IP interface is configured with both IPv4 and IPv6 test addresses, the
300
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
TARGETS
Lists the current probe targets in a space-separated list. The probe targets are
displayed either as hostnames or IP addresses, if the -n is used in conjunction
with the -t option.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
PROBE
589
612
602
602
601
603
613
603
# ipmpstat -pn
TIME
INTERFACE
1.39S net4
1.39s net1
PROBE
t28
i29
NETRTT
0.51ms
-0.61ms
-0.62ms
0.79ms
-0.63ms
NETRTT
1.05ms
1.00ms
RTT
0.76ms
-1.10ms
-1.20ms
1.11ms
-1.10ms
RTT
1.06ms
1.42ms
RTTAVG
0.76ms
-1.10ms
-1.00ms
1.10ms
-1.10ms
RTTAVG
1.15ms
1.48ms
TARGET
192.168.85.1
192.1.2.1
128.0.0.1
128.0.0.2
128.0.0.1
128.0.0.1
192.1.2.1
192.168.85.3
TARGET
<net1>
172.16.30.1
TIME
Specifies the time a probe was sent relative to when the ipmpstat command was
issued. If a probe was initiated prior to ipmpstat being started, then the time is
displayed with a negative value, relative to when the command was issued.
INTERFACE
PROBE
Specifies the identifier that represents the probe. If transitive probing is used for
failure detection, the identifier is prefixed with either t for transitive probes or i
for ICMP probes.
NETRTT
Specifies the total network round-trip time of the probe and is measured in
milliseconds. NETRTT covers the time between the moment when the IP module
sends the probe and the moment the IP module receives the ack packets from
the target. If the in.mpathd daemon has determined that the probe is lost, then
the field will be empty.
301
RTT
Specifies the total round-trip time for the probe and is measured in
milliseconds. RTT covers the time between the moment the daemon executes the
code to send the probe and the moment the daemon completes processing the
ack packets from the target. If the in.mpathd daemon has determined that the
probe is lost, then the field will be empty. Spikes that occur in the RTT which are
not present in the NETRTT might indicate that the local system is overloaded.
RTTAVG
Specifies the probe's average round-trip time over the interface between local
system and target. The average round-trip time helps identify slow targets. If
data is insufficient to calculate the average, this field will be empty.
TARGET
Specifies the hostname or, if the -n option is used in conjunction with -p, the
target address to which the probe is sent.
To display selected fields of the ipmpstat command, use the -o option in combination with
the specific output option. For example, to display only the GROUPNAME and the STATE fields
of the group output mode, you would type the following:
$ ipmpstat -g -o groupname,state
GROUPNAME
itops0
accgt1
field2
STATE
ok
failed
degraded
To display all the fields of a given ipmpstat command, use the following syntax:
# ipmpstat -o all
302
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Fields with empty values are empty rather than being filled with the double dash (--).
In the case of multiple fields being requested, if a field contains a literal colon (:) or back
slash (\), these can be escaped or excluded by prefixing these characters with a back slash (\)
.
To display in machine parseable format the group name, the failure detection time, and the
underlying interfaces, you would type the following:
$ ipmpstat -P -o -g groupname,fdt,interfaces
itops0:10.00s:net0 net1
acctg1::[net3 net4]
field2:20.00s:net2 net7 (net5) [net6]
The group name, failure detection time, and underlying interfaces are group information fields.
Thus, you use the -o -g options together with the -P option.
Example 158
303
304
17
C H A P T E R
1 7
This chapter explains the basic concepts involved in network virtualization and resource
control. The following topics are covered:
Network virtualization
Types of virtual networks
Virtual machines and zones
Resource control, including flow management
Enhanced network observability
These features help you to manage flow control, improve system performance, and configure
the network utilization needed to achieve OS virtualization, utility computing, and server
consolidation.
For specific tasks, refer to the following chapters:
An internal virtual network consists of one system using virtual machines or zones that are
configured over at least one pseudo-network interface. These containers can communicate with
each other as though on the same local network, providing a virtual network on a single host.
The building blocks of the virtual network are virtual network interface cards or virtual NICs
(VNICs) and virtual switches. Oracle Solaris network virtualization provides the internal virtual
network solution.
You can combine networking resources to configure both internal and external virtual
networks. For example, you can configure individual systems with internal virtual networks
onto LANs that are part of a large, external virtual network. The network configurations that are
described in this part include examples of combined internal and external virtual networks.
A virtual switch, which is configured at the same time as the first VNIC on the interface.
A container, such as a zone or virtual machine , which is configured on top of the VNIC.
The next figure shows these parts and how they fit together on a single system.
322
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
FIGURE 171
System
Zone 1
Zone 2
Zone 3
VNIC 1
VNIC 2
VNIC 3
Virtual Switch
NIC
Switch
Internet
The figure shows a single system with one NIC. The NIC is configured with three VNICs. Each
VNIC supports a single zone. Therefore, Zone 1, Zone 2, and Zone 3 are configured over VNIC
1, VNIC 2, and VNIC 3, respectfully. The three VNICs are virtually connected to one virtual
switch. This switch provides the connection between the VNICs and the physical NIC upon
which the VNICs are built. The physical interface provides the system with its external network
connection.
Alternatively, you can create a virtual network based on the etherstub. Etherstubs are purely
software and do not require a network interface as the basis for the virtual network.
A VNIC is a virtual network device with the same datalink interface as a physical interface. You
configure VNICs on top of a physical interface. For the current list of physical interfaces that
support VNICs, refer to the Network Virtualization and Resource Control FAQ
(http://hub.opensolaris.org/bin/view/Project+crossbow/faq). You can configure up to
900 VNICs on a single physical interface. When VNICs are configured, they behave like
physical NICs. In addition, the system's resources treat VNICs as if they were physical NICs.
323
Each VNIC is implicitly connected to a virtual switch that corresponds to the physical interface.
The virtual switch provides the same connectivity between VNICs on a virtual network that
switch hardware provides for the systems connected to a switch's ports.
In accordance with Ethernet design, if a switch port receives an outgoing packet from the host
connected to that port, that packet cannot go to a destination on the same port. This design is a
drawback for systems that are configured with zones or virtual machines. Without network
virtualization, outgoing packets from a virtual machine or a zone with an exclusive stack cannot
be passed to another virtual machine or zone on the same system. The outgoing packets go
through a switch port out onto the external network. The incoming packets cannot reach their
destination zone or virtual machine because the packets cannot return through the same port as
they were sent. Therefore, when virtual machines and zones on the same system need to
communicate, a data path between the containers must open on the local machine. Virtual
switches provide these containers with the method to pass packets.
NIC hardware, including the powerful new interfaces that support hardware rings
Multiple MAC addresses for the VNICs
The large amount of bandwidth provided by newer interfaces
You can replace many systems with a single system that implements running multiple zones or
virtual machines, without significantly losing separation, security, and flexibility.
324
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
325
managed by transport, service, or virtual machine, including zones. Flows cannot exceed the
amount of bandwidth that is guaranteed to the application or to the customer's purchased
share.
When a VNIC or flow is assigned a guarantee, the VNIC is assured its designated bandwidth
even if other flows or VNICs also use the interface. However, assigned guarantees are workable
only if they do not exceed the maximum bandwidth of the physical interface.
326
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
FIGURE 172
Tier 3
Database
Tier
Backups
Database
Look-ups
Tier 2
Applications
Tier
Applications
bge 1
Tier 1
Web Tier
bge 0
http:
https:
DMZ
Tier 0
Internet
This figure shows a typical network topology that uses resource controls to improve network
efficiency and performance. The network does not implement VNICs and containers, such as
exclusive zones and virtual machines. However, VNICs and containers could be used on this
network for consolidation and other purposes.
The network is divided into four tiers:
Tier 0 is the demilitarized zone (DMZ). This is a small local network that controls access to
and from the outside world. Resource control is not used on the systems of the DMZ.
Tier 1 is the web tier and includes two systems. The first system is a proxy server that does
filtering. This server has two interfaces, bge0 and bge1. The bge0 link connects the proxy
server to the DMZ on Tier 0. The bge0 link also connects the proxy server to the second
system, the web server. The http and https services share the bandwidth of the web server
327
with other standard applications. Due to the size and critical nature of web servers, shares of
http and https require guarantees and prioritization.
Tier 2 is the applications tier and also includes two systems. The second interface of the
proxy server, bge1, provides the connection between the web tier and the applications tier.
Through a switch, an applications server connects to bge1 on the proxy server. The
applications server requires resource control to manage the shares of bandwidth given to the
various applications that are run. Critical applications that need a lot of bandwidth must be
given higher guarantees and priorities than smaller, or less critical applications.
Tier 3 is the database tier. The two systems on this tier connect through a switch to the
proxy server's bge1 interface. The first system, a database server, needs to issue guarantees
and to prioritize the various processes involved in database lookups. The second system is a
backup server for the network. This system must consume a great deal of bandwidth during
backups. However, backup activities are typically carried out overnight. Using resource
controls, you can control when the backup processes have the highest bandwidth guarantees
and highest priorities.
The new flowadm command and extensions to the dladm and netstat commands implement
the network virtualization observability features. You can use these commands to monitor
current system usage and to gather statistical data into logs.
328
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Where network resources can be consolidated from many systems to a single system,
possibly with greater bandwidth through the new generation of network interfaces. Do this
prior to setting up VNICs and virtual machines or exclusive zones.
Which applications consume the most bandwidth. This information can help you to set up
bandwidth management, so that critical applications are guaranteed the most bandwidth
within a particular time slot. For example, you can guarantee a video stream the greatest
amount of an interface's bandwidth for 20 hours a day. For a designated four hours a day,
you can give highest priority to the system's backup program. Do this as part of bandwidth
management implementation.
How to much bill customers for bandwidth used. Application service providers and other
businesses that rent out system space can use the Resource control observability features to
determine usage by paying customers. Some businesses offer customers Service Level
Agreements, wherein the customer buys a guaranteed percentage of bandwidth from the
provider. The observability features let you view how much bandwidth each customer uses
and bill for possible overages. Other businesses offer customers bandwidth on a per use
basis. Here the observability features directly help in billing. Do this after you have
implemented resource control and, possibly, VNICs and virtual machines on a system.
The next chapter, Chapter 18, Planning for Network Virtualization and Resource Control,
contains scenarios that show where the observability features are used for planning
consolidation and resource control.
329
330
18
C H A P T E R
1 8
This chapter contains information and example scenarios to help you evaluate and then design
network virtualization and resource control solutions for your site. The chapter discusses the
following scenarios:
Each scenario contains best usage suggestions that explain the types of networks that best
benefit from the particular scenario.
Description
For Instructions
331
Task
Description
For Instructions
Basic virtual network of two zones, especially useful for consolidating network services from
the local network onto a single host.
Private virtual network, useful for a development environment where you isolate
applications and services from the public network.
332
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
FIGURE 181
System
Global Zone
zone1
zone2
Exclusive IP
192.168.3.20
192.168.3.22
vnic1
192.168.3.20
vnic2
192.168.3.22
Virtual Switch
e1000g0
192.168.3.70
A single GLDv3 network interface e1000g0. This interface connects to the public network
192.168.3.0/24. Interface e1000g0 has the IP address 192.168.3.70.
A virtual switch, which is automatically configured when you create the first VNIC.
Two VNICs. vnic1 has the IP address 192.168.3.20, and vnic2 has the IP address
192.168.3.22.
Two exclusive IP zones to which the VNICs are assigned. vnic1 is assigned to zone1, and
vnic2 is assigned to zone2.
The VNICs and zones in this configuration allow access to the public. Therefore, the zones can
pass traffic beyond the e1000g0 interface. Likewise, users on external networks can reach
applications and services offered by the zones.
333
Network consolidators and others who want to consolidate the services of a LAN onto a
single system.
Any site that rents out services to customers. You can rent out individual zones or virtual
machines, observe traffic, and take statistics for performance measuring or for billing
purposes on each zone in the virtual network.
Any administrator who wants to isolate processes and applications to separate containers to
improve system efficiency .
FIGURE 182
Private Network
192.168.0.200
192.168.0.220
Exclusive
IP zone
Exclusive
IP zone
vnic1
vnic2
Virtual switch
Global
Zone
vnic0
192.168.0.250
etherstub 0
Public Network
Firewall
e1000g0
192.168.3.70
External network 192.168.3.0
334
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
The topology features a single system with a public network, including a firewall, and a private
network built on an etherstub pseudo-interface. The public network runs in the global zone and
consists of the following elements:
etherstub0, a pseudo-interface upon which the virtual network topology is built. Etherstubs
provide the ability to create a virtual network on a host. That network is totally isolated from
the external network.
A virtual switch which provides packet forwarding among the VNICs of the private
network.
vnic0, which is the VNIC for the global zone, and has the IP address 192.168.0.250.
vnic1 with the IP address 192.168.0.200 and vnic2 with the IP address 192.168.0.220.
All three VNICs are configured over etherstub0.
For procedures that configure a virtual network and implement the scenarios described in
this chapter, go to Creating a Private Virtual Network on page 356.
For conceptual information about zones, go to Chapter 15, Introduction to Oracle Solaris
Zones, in Oracle Solaris Administration: Oracle Solaris Zones, Oracle Solaris 10 Zones, and
Resource Management.
335
336
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
FIGURE 183
Application
Server
10.10.12.45
Database
Server
10.10.12.46
Backup
Server
10.10.12.47
Other
Systems
Switch
Internal Network
10.10.12.0/8
internal0 10.10.12.42
Proxy Server
HTTP and HTTPS
DMZ0 10.10.6.5
Firewall
with NAT
DMZ 10.10.6.0/8
Internet
The figure shows that the company has a public network, 10.10.6.0/8, that also serves as a
demilitarized zone (DMZ). A system on the DMZ provides name-to-address translation (NAT)
through an IP Filter firewall. The company has a large system that functions as the proxy server.
The system has two wired interfaces and 16 processor sets with IDs 016. This system is
connected to the public network through the interface nge0, with IP address l0 10.6.5. The
link name for the interface is DMZ0. Through DMZ0, the proxy server offers HTTP and HTTPS
service through the company's public web site.
The figure also illustrates the company's internal network, 10.10.12.0/24. The proxy server
connects to the internal 10.10.12.0/8 network through interface nge1, with the IP address
10.10.12.42. The link name for this interface is internal0. Through the internal0 datalink,
the proxy server operates on behalf of internal clients that request the services of an application
server, 10.10.12.45, database server, 10.10.12.46, and backup server, 10.10.12.47.
337
For tasks for implementing flow control, refer to Chapter 21, Managing Network
Resources
For conceptual information about bandwidth management and resource control, refer to
What Is Resource Control? on page 325
For detailed technical information, refer to the dladm(1M) and flowadm(1M)man pages.
338
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
FIGURE 184
System
Global Zone
zone1
zone2
Exclusive IP
192.168.3.20
192.168.3.22
vnic1
192.168.3.20
vnic2
192.168.3.22
Virtual Switch
e1000g0
192.168.3.70
The topology is described in Basic Virtual Network on a Single System on page 332. Here a
host has one network interface, e1000g0, with two VNICs, vnic1 and vnic2. zone1 is
configured over vnic1, and zone2 is configured over vnic2. Resource management for the
virtual network involves creating flows on a per-VNIC basis. These flows define and isolate
packets with similar characteristics, such as port number or IP address of the sending host. You
assign bandwidth based on the usage policy for the system.
Another very common usage for flow controls on VNIC traffic is by companies that rent out
zones. You create different service level agreements for customers, and rent out zones with a
guaranteed amount of bandwidth. When you create flows on a per-zone basis, you can isolate
and observe each customer's traffic and monitor bandwidth usage. If your service level
agreement is based strictly on usage, you can use statistics and accounting features to bill
customers.
Flow controls are effective for any network that requires bandwidth management for traffic
over zones. Larger organizations, such as application service providers (ASPs) or Internet
service providers (ISP), can take advantage of resource control for VNICs for data centers and
for multiprocessor systems. The individual zones can be rented out to customers for different
levels of service. Therefore, you could rent out zone1 at the standard price and offer a standard
bandwidth. Then, you could rent out zone2 at a premium price and give that customer a high
level of bandwidth.
339
Determine which applications have historically used the most bandwidth or require the most
bandwidth.
For example, the telnet application might not consume huge amounts of bandwidth on your
system, but it could be heavily used. Conversely, database applications consume a huge amount
of bandwidth, but might only be used on a sporadic basis. Consider monitoring traffic for these
applications prior to assigning them to zones. You can use the statistical option of the dladm
show-link command to gather statistics, as described in Gathering Statistics About Network
Traffic on Links on page 399.
Create flows for any application running in zone1 whose traffic you want to isolate and control.
Assign bandwidth to flows based on usage policies in place for your site.
Decide whether you want to charge customers on a monthly, per service level basis, or charge
customers on an actual bandwidth consumed basis.
If you choose the latter pricing structure, you need to gather statistics on each customer's usage.
340
Assign bandwidth to each VNIC based on the service level purchased by the customer assigned
to that VNIC's zone.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
19
C H A P T E R
1 9
This chapter contains tasks for configuring internal virtual networks, or networks in a box.
The topics that are covered include:
Description
For Instructions
Creates VNICs and new zones Creating New Zones for Use
and configure these to create a With VNICs on page 347
basic virtual network.
341
Task
Description
For Instructions
Remove VNICs.
VNICs are pseudo interfaces that you create on top of datalinks. A VNIC has an automatically
generated MAC address. Depending on the network interface in use, you can explicitly assign to
a VNIC a MAC address other than the default address, as described in the dladm(1M) man
page. You can create as many VNICs over a datalink as you require.
Etherstubs are pseudo Ethernet NICs which are managed by the system administrator. You can
create VNICs over etherstubs instead of over physical links. VNICs over an etherstub become
independent of the physical NICs in the system. With etherstubs, you can construct a private
virtual network that is isolated both from the other virtual networks in the system and from the
external network. For example, you want to create a network environment whose access is
limited only to your company developers than to the network at large. Etherstubs can be used to
create such an environment.
Etherstubs and VNICs are only a part of the virtualization features of Oracle Solaris. You
typically use these components together with Oracle Solaris containers or zones. By assigning
VNICs or etherstubs for use by zones, you can create a network within a single system.
342
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
(Optional) To view information about the system's available physical interfaces, type the
following command:
# dladm show-phys
This command displays the physical NICs on the system and their corresponding datalink
names. Unless you create customized names for your datalinks, the datalink has the same name
as the network interface device name. For example, the device e1000g0 uses the data link name
e1000g0 until you replace the link name with another name. For more information about
customized datalink names, see Network Devices and Datalink Names on page 26.
3
(Optional) To view information about the system's datalinks, type the following command:
# dladm show-link
This command lists the datalinks and their current status. Make sure that a datalink's STATE
field indicates that the datalink is up. You can configure VNICs only over datalinks whose status
is up.
4
This command lists configured interfaces on your system including their corresponding IP
addresses.
5
link is the name of the datalink over which the VNIC is configured.
vnic is the VNIC which you can label with a customized name as well.
343
If you are using static IP addresses, add the address information in the /etc/hosts file.
10
Example 191
STATE
up
unknown
# dladm
LINK
net0
net1
show-link
CLASS
MTU
phys
1500
phys
1500
# ipadm
IFNAME
lo0
net0
show-if
CLASS
loopback
ip
# ipadm show-addr
ADDROBJ
TYPE
lo0/?
static
net0/v4addr
static
SPEED DUPLEX
1000 full
0
half
STATE
BRIDGE
up
-unknown --
STATE
ok
ok
ACTIVE
yes
yes
STATE
ok
ok
DEVICE
e1000g0
e1000g1
OVER
--OVER
---
ADDR
127.0.0.1/8
192.168.3.70/24
MACADDRTYPE
random
random
-a 192.168.3.80/24 vnic0/v4address
-a 192.168.3.85/24 vnic1/v4address
STATE
ok
ADDR
127.0.0.1/8
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
net0/v4addr
vnic0/v4address
vnic1/v4address
static
static
static
ok
ok
ok
192.168.3.70/24
192.168.3.80/24
192.168.3.85/24
The system's /etc/hosts file would contain information similar to the following:
# cat /etc/hosts
#
::1
localhost
127.0.0.1
localhost
192.168.3.70
loghost #For e1000g0
192.168.3.80
vnic1
192.168.3.85
vnic2
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
Create an etherstub
# dladm create-etherstub etherstub
This command lists all the VNICs in the system and the datalinks or etherstubs over which the
VNICs are created.
Chapter 19 Configuring Virtual Networks (Tasks)
345
(Optional) To display information about all the physical and virtual links on the system, type the
following command.
# dladm show-link
Example 192
Creating an Etherstub
The following example shows how to create an etherstub and then configure a VNIC over the
etherstub. This example develops the previous example by adding a third VNIC that is
configured over the etherstub.
You must log in to the system as superuser or equivalent role to run the next commands.
# dladm create-etherstub stub0
#
dladm show-vnic
LINK
OVER
SPEED MACADDRESS
MACADDRTYPE
vnic1
net9
1000 Mbps 2:8:20:c2:39:38
random
vnic2
net0
1000 Mbps 2:8:20:5f:84:ff
random
#
# dladm create-vnic -l stub0 vnic3
# ipadm create-vnic vnic3
# ipadm create-addr -T static -a 192.168.0.10/24 vnic3/privaddr
#
# dladm show-vnic
LINK
OVER
SPEED MACADDRESS
MACADDRTYPE
vnic1
net0
1000 Mbps 2:8:20:c2:39:38
random
vnic2
net0
1000 Mbps 2:8:20:5f:84:ff
random
vnic3
stub0
1000 Mbps 2:8:20:54:f4:74
random
#
# ipadm show-addr
ADDROBJ
TYPE
STATE
ADDR
lo0/?
static
ok
127.0.0.1/8
net0/v4addr
static
ok
192.168.3.70/24
vnic1/v4address
static
ok
192.168.3.80/24
vnic2/v4address
static
ok
192.168.3.85/24
vnic3/privaddr
static
ok
192.168.0.10/24
The system's /etc/hosts file would contain information similar to the following:
# cat /etc/hosts
#
::1
localhost
127.0.0.1
localhost
192.168.3.70
loghost #For e1000g0
192.168.3.80
vnic1
192.168.3.85
vnic2
192.168.0.10
vnic3
346
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Creating entirely new zones and configuring VNICs over these zones
Modifying existing zone configurations to use VNICs.
When you first log in to a system, you are automatically in its global zone. You create VNICs on
the global zone. Then you further configure these VNICs depending on whether they are to be
used by the global zone or non-global exclusive type zones. For an introduction to zones, refer
to Zones Overview in Oracle Solaris Administration: Oracle Solaris Zones, Oracle Solaris 10
Zones, and Resource Management.
Created the VNICs for the zones, as explained in How to Create a Virtual Network
Interface on page 343.
Obtained other network information such as router address to supply to the zone.
347
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
For every zone that you create, perform the following steps.
a. Start the zone configuration utility and create the zone.
global# zonecfg -z zone
zonecfg:zone> create
f. Verify and commit the settings, then exit the zone configuration utility.
zonecfg:zone>verify
zonecfg:zone> commit
zonecfg:zone> exit
global#
g. (Optional) To verify that the information for the zone is correct, type the following:
global# zonecfg -z zone info
Note You can display the same information while running the zone configuration utility by
typing the following:
zonecfg:zone> info
3
348
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
(Optional) After the zone is completely installed, check the status of the zone.
zoneadm list -iv
Note The -iv option lists all configured zones regardless of whether they are running or not. At
this stage, the status of the zone you just created will be installed rather than running. If
you use the -v option, only zones that are running are listed, and the zone you just created will
be excluded.
After the zone completely boots up, connect to the zone's console.
# zlogin -C zone
IP address of the zone which is based on the IP address of the zone's VNIC.
Default route, which can be the IP address of the physical interface on which the virtual
network is built.
After you have supplied the required information for the zone, the zone is restarted.
Example 193
VNICs: vnic1
349
SPEED DUPLEX
1000 full
1000 full
DEVICE
e1000g0
bge0
ipadm show-if
CLASS
STATE
loopback
ok
ip
ok
global # ipadm
ADDROBJ
lo0/?
net0/v4addr
ACTIVE
yes
yes
show-addr
TYPE
STATE
static
ok
static
ok
OVER
---
ADDR
127.0.0.1/8
192.168.3.70/24
MACADDRESS
2:8:20:5f:84:ff
MACADDRTYPE
random
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
zonecfg:zone1> info
zonename: zone1
zonepath: /export/home/zone1
brand:
native
autoboot: true
net:
address not specified
physical: vnic1
zonecfg:zone1> commit
zonecfg:zone1> exit
global#
global# zoneadm -z zone1 verify
WARNING: /export/home/zone1 does not exist, so it could not be verified.
When zoneadm install is run, install will try to create
/export/home/zone1, and verify will be tried again,
but the verify may fail if:
the parent directory of /export/home/zone1 is group- or other-writable
or
/export/home/zone1 overlaps with any other installed zones.
global# zoneadm -z zone1 install
Preparing to install zone <zone1>
Creating list of files to copy from the global zone.
.
.
Zone <zone1> is initialized.
global# zoneadm list -iv
ID NAME
STATUS
PATH
0 global running
/
- zone1
installed /export/home/zone1
global# zoneadm -z zone1 boot
global# zoneadm list -v
ID NAME
STATUS
PATH
0 global running /
1 zone1
running /export/home/zone1
BRAND
native
native
BRAND
native
native
IP
shared
excl
IP
shared
excl
zlogin -C zone1
What type of terminal are you using?
.
.
.
8) Sun Workstation
9) Televideo 910
10) Televideo 925
11) Wyse Model 50
12) X Terminal Emulator (xterms)
13) CDE Terminal Emulator (dtterm)
14) Other
Type the number of your choice and press Return: 13
.
(More prompts)
..
Provide the information as prompted. For network information, supply the following:
Chapter 19 Configuring Virtual Networks (Tasks)
351
Hostname: zone1
IP address: 192.168.3.80
System part of a subnet: Yes
Netmask: 255.255.255.0
Enable IPv6: No
Default route: 192.168.3.70
Router IP address: 192.168.3.25
Next Steps
You can use various tools to observe network traffic and take statistics on zone usage.
To observe traffic over the network, refer to Monitoring Packet Transfers With the snoop
Command in Oracle Solaris Administration: IP Services.
To manage how the network uses system resources, refer to Chapter 21, Managing
Network Resources.
To obtain statistics for accounting purposes, refer to Chapter 22, Monitoring Network
Traffic and Resource Usage.
If you need to disassemble the virtual network, refer to How to Remove the Virtual Network
Without Removing the Zones on page 358.
Created the VNICs for the zones, as explained in How to Create a Virtual Network
Interface on page 343.
Obtained other network information such as router address to supply to the zone.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
Verify that zones are properly configured and running on the system.
global# zoneadm list -v
352
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Note The -v option lists only zones that are running. To list all configured zones including
those that have not been started, use the -iv option.
3
For every zone that you want to configure with VNICs, perform the following steps:
a. Verify the information about the zone.
global# zonecfg -z zone info
Check the information about IP type and network interface. The network interface is
designated by the parameter physical. For a zone to be configured with a VNIC, the zone
must be an exclusive IP zone and the network interface must specify the VNIC.
b. If necessary, change the shared zone to an exclusive IP zone.
global# zonecfg -z zone
zonecfg:zone1> set ip-type=exclusive
zonecfg:zone1>
g. After the zone reboots, verify that the zone information about ip-type and physical are
correct.
global# zonecfg -z zone info ip-type
global# zonecfg -z zone info net
The information must show that the zone's IP type is exclusive and that it uses the
designated VNIC.
4
353
where address can use CIDR notation while addrobj follows the naming convention
interface/user-defined-string.
6
or
zone# ipadm show-addr
Example 194
ipadm show-if
CLASS
loopback
ip
ip
STATE
ok
ok
ok
BRIDGE
---ACTIVE
yes
yes
yes
STATE
ok
ok
ok
OVER
--e1000g0
OVER
----
ADDR
127.0.0.1/8
192.168.3.70/24
192.168.3.80/24
MACADDRTYPE
random
random
IP
shared
excl
shared
-v
PATH
/
/export/home/zone1
/export/home/zone2
BRAND
native
native
native
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
brand: native
autoboot: true
bootargs:
pool: z2-pool
limitpriv:
scheduling-class:
ip-type: shared
hostid:
inherit-pkg-dir:
dir: /lib
inherit-pkg-dir:
dir: /platform
inherit-pkg-dir:
dir: /sbin
inherit-pkg-dir:
dir: /usr
inherit-pkg-dir:
dir: /etc/crypto
net:
address not specified
physical: e1000g0
defrouter not specified
global#
global# zonecfg -z zone2
zonecfg:zone1> set ip-type=exclusive
zonecfg:zone1> remove net physical=net0
zonecfg:zone1> add net
zonecfg:zone1:net> set physical=vnic2
zonecfg:zone1:net> end
zonecfg:zone1> verify
zonecfg:zone1> commit
zonecfg:zone1> exit
global#
global# zonecfg -z zone2 info ip-type
ip-type: exclusive
global#
global# zonecfg -z zone2 info net
net:
address ot specified
physical: vnic2
defrouter not specified
global#
global# zlogin zone2
zone2# ipadm create-ip vnic2
zone2# ipadm create-addr -T static -a 192.168.3.85/24 vnic2/v4address
zone2# ipadm show-addr
ADDROBJ
TYPE
lo0/v4
static
vnic2/v4address static
STATE
ok
ok
ADDR
127.0.0.1/8
192.168.3.85/24
zone1# exit
global#
355
global# vi /etc/hosts
#
::1
localhost
127.0.0.1
localhost
192.168.3.70
loghost #For e1000g0
192.168.3.80
zone1 #using vnic1
192.168.3.85
zone2 #using vnic2
Next Steps
You can either configure the network setup further to customize use of system resources, or use
various tools to observe network traffic and take statistics on resource usage.
If you need to disassemble the virtual network, refer to How to Remove the Virtual Network
Without Removing the Zones on page 358
The following example uses the same system and proceeds on the same assumptions as the
previous examples. Specifically, zone1 and zone2 are now configured as virtual networks.
Suppose that zone3 already exists in the system. You will modify zone3 to become a private
network isolated from the rest of the network. Then you will configure NAT and IP forwarding
to allow the virtual private network to send packets outside the host but still concealing its
private address from the external network.
global# dladm create-etherstub stub0
global# dladm create-vnic -l etherstub0 vnic3
global# dladm show-vnic
LINK
OVER
SPEED
MACADDRESS
vnic1
net0
1000 Mbps
2:8:20:5f:84:ff
vnic2
net0
1000 Mbps
2:8:20:54:f4:74
356
MACADDRTYPE
random
random
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
EXAMPLE 195
vnic3
0 Mbps
2:8:20:6b:8:ab
(Continued)
random
global# vi /etc/hosts
#
::1
localhost
127.0.0.1
localhost
192.168.3.70
loghost #For e1000g0
192.168.3.80
zone1 #using vnic1
192.168.3.85
zone2 #using vnic2
At this stage, you modify zone3 to become an exclusive IP zone over vnic3.
global# zonecfg -z zone3
zonecfg:zone3> set ip-type=exclusive
zonecfg:zone3> remove net physical=e1000g0
zonecfg:zone3> add net
zonecfg:zone3:net> set physical=vnic3
zonecfg:zone3:net> end
zonecfg:zone3> verify
zonecfg:zone3> commit
zonecfg:zone3> exit
global#
global# zonecfg -z zone3 info ip-type
ip-type: exclusive
global#
global# zonecfg -z zone3 info net
net:
address ot specified
physical: vnic3
defrouter not specified
global#
global# zlogin zone3
zone3# ipadm create-ip vnic3
zone3# ipadm create-addr -T static -a 192.168.0.10/24 vnic3/privaddr
zone3# ipadm show-addr
ADDROBJ
TYPE
lo0/v4
static
vnic3/privaddr
static
zone3# exit
STATE
ok
ok
ADDR
127.0.0.1/8
192.168.0.10/24
STATE
ok
ok
ok
ok
ok
ADDR
127.0.0.1/8
192.168.3.70/24
192.168.3.80/24
192.168.3.85/24
192.168.0.10/24
global# vi /etc/hosts
::1
localhost
127.0.0.1
localhost
Chapter 19 Configuring Virtual Networks (Tasks)
357
EXAMPLE 195
192.168.3.70
192.168.3.80
192.168.3.85
192.168.0.10
(Continued)
global# routeadm
Configuration Current
Current
Option Configuration
System State
--------------------------------------------------------------IPv4 routing enabled
enabled
IPv6 routing disabled
disabled
IPv4 forwarding disabled
disabled
IPv6 forwarding disabled
disabled
Routing services
"route:default ripng:default"
Use the existing zones in a different configuration. For example, you might need to
configure the zones as part of a private network that would require the zone to be created by
using an etherstub.
Clone the zones, as explained in Cloning a Non-Global Zone on the Same System in
Oracle Solaris Administration: Oracle Solaris Zones, Oracle Solaris 10 Zones, and Resource
Management.
This task assumes that you have a running virtual network that consists of exclusive IP zones.
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
NAME
global
zone1
zone2
zone3
STATUS
running
running
running
running
PATH
/
/export/home/zone1
/export/home/zone2
/export/home/zone3
BRAND
native
native
native
native
IP
shared
excl
excl
excl
When you halt the zone, you remove the zone's application environment and terminate a
number of system activities, as explained in Halting a Zone in Oracle Solaris Administration:
Oracle Solaris Zones, Oracle Solaris 10 Zones, and Resource Management.
4
BRAND
IP
native shared
native excl
native excl
native excl
Note that the zones are no longer running, although they remain installed. To reboot a halted
zone, refer to How to Boot a Zone in Oracle Solaris Administration: Oracle Solaris Zones,
Oracle Solaris 10 Zones, and Resource Management.
5
List the VNICs that were configured for the halted zones.
# dladm show-vnic
LINK
OVER
vnic1
net0
vnic2
net1
vnic3
stub0
SPEED MACADDRESS
1000 Mbps 2:8:20:5f:84:ff
1000 Mbps 2:8:20:54:f4:74
1000 MBps 2:8:20:c2:39:38
MACADDRTYPE
random
random
random
The resulting output shows that the VNICs are still configured as datalinks in the global zone.
However, their corresponding IP interfaces were created and enabled on the zones with which
these VNICs are associated, and not on the global zone. These nonglobal zones are now halted.
6
359
For example, you would type the following to delete the VNICs in the zones in Figure 181.
# dladm delete-vnic vnic1
# dladm delete-vnic vnic2
360
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
20
C H A P T E R
2 0
This chapter describes link protection and how to configure it on Oracle Solaris systems. The
chapter covers the following topics:
Note Link protection should not replace the deployment of a firewall, particularly for
mac-nospoof
ip-nospoof
Enables protection against IP spoofing. Any outgoing IP, ARP, or NDP packet
must have an address field that matches either a DHCP-configured IP address
or one of the addresses listed in the allowed-ips link property. Otherwise,
the packet is dropped.
The allowed-ips link property works with the ip-nospoof protection type.
By default, the list specified by this property is empty. If the property is empty
or unconfigured, the following IP addresses are implicitly included in the
property. These IP addresses are matched with the IP address of the outgoing
packets to determine if the packets are allowed to pass or are dropped.
Link local IPv6 addresses that conform to RFC 2464 and which are
derived from the link's MAC address
restricted
Restricts outgoing packets to only those packets of the IPv4, IPv6, and ARP
protocol types. Other packets that are not of the listed types are dropped.
Using this protection type prevents the link from generating potentially
harmful L2 control frames.
Note Packets that are dropped because of link protection are tracked by the
362
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
The following points to the tasks that you can use to configure link protection on a Oracle
Solaris server.
Task
Description
For Instructions
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
363
In the following example, all three link protection types on the vnic0 link are enabled:
# dladm set-linkprop -p protection=mac-nospoof,ip-nospoof,restricted vnic0
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
Disable link protection by resetting the protection property to its default value.
# dladm reset-linkprop -p protection link
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
The following example shows how to specify the 10.0.0.1 and 10.0.0.2 IP addresses as values
for the allowed-ips property for the vnic0 link:
# dladm set-linkprop -p allowed-ips=10.0.0.1,10.0.0.2 vnic0
364
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
The following example shows the values for the protection and allowed-ips properties for
the vnic0 link:
# dladm show-linkprop -p protection,allowed-ips vnic0
LINK
PROPERTY
PERM
VALUE
DEFAULT
vnic0
protection
rw
ip-nospoof
-mac-nospoof
restricted
vnic0
allowed-ips
rw
10.0.0.1,
-10.0.0.2
POSSIBLE
---
365
366
21
C H A P T E R
2 1
This chapter explains how to manage resources on datalinks, including virtual links such as
VNICs. Network resource management implements quality of service to enhance performance
especially in the virtual network.
The chapter covers the following topics:
allotted a given bandwidth to process a specific type of network traffic. After a resource property
is defined, the new setting takes effect immediately. This method makes managing resources
flexible. You can set resource properties when you create the link. Alternatively, you can set
these properties later, for example, after studying resource usage over time and determining
how to better allocate the resource. The procedures for allocating resources apply to both the
virtual network environment as well as the traditional physical network.
Network resource management is comparable to creating dedicated lanes for traffic. When you
combine different resources to cater to specific types of network packets, those resources form a
network lane for those packets. Resources can be assigned differently for each network lane. For
example, you can allocate more resources to a lane where network traffic is heaviest. By
configuring network lanes where resources are distributed according to actual need, you
increase the system's efficiency to process packets. For more information about network lanes,
see Overview of Network Traffic Flow on page 395.
Network resource management is helpful for the following tasks:
Network provisioning.
Establishing service level agreements.
Billing clients.
Diagnosing security problems.
You can isolate, prioritize, track, and control data traffic on an individual system without the
complex QoS rule definitions in previous releases.
IP address
DS field attribute, which is used for quality of service in IPv6 packets only. For more
information about the DS field, refer to DS Codepoint in Oracle Solaris Administration: IP
Services.
A flow can be based on only one of the attributes in the list. For example, you can create a flow
according to the port that is being used, such as port 21 for FTP, or according to IP addresses,
such as packets from a specific source IP address. However, you cannot create a flow for packets
368
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
from a specified IP address that are received on port number 21 (FTP). Likewise, you cannot
create a flow for all traffic from IP address 192.168.1.10, and then create a flow for transport
layer traffic on 192.168.1.10. Thus, you can configure multiple flows on a system, with each
flow based on a different attribute.
For datalinks, you use the appropriate dladm subcommand depending on whether you are
setting the property while creating the link or setting the property of an existing link. To
simultaneously create a link and allocate resources to it, use the following syntax:
# dladm create-vnic -l link -p property=value[,property=value] vnic
For more details about the dladm command and the properties that this command manages,
refer to the dladm(1M) man page.
The following are link properties that you can set for resource allocation:
Bandwidth You can limit a hardware's bandwidth for a certain link's use.
NIC rings If a NIC supports ring allocation, its transmit and receive rings can be
assigned for dedicated use by datalinks. NIC rings are discussed in Transmit and
Receive Rings on page 370
CPU pools Pools of CPUs are generally created and associated with specific zones.
These pools can be assigned to datalinks to reserve the sets of CPUs to manage the
network processes of their associated zones. CPUs and pools are discussed in Pools and
CPUs on page 384.
CPUs In a system with multiple CPUs, you can dedicate a given number of CPUs for
specific network processing.
For flows, you use flowadm subcommands. First you create the flow by using the flowadm
add-flow subcommand. Then you assign resources to the flow by using the flowadm
set-flowprop subcommand. The set of defined attributes that characterizes the flows
together constitutes the system's flow control policy.
369
Note The properties for resource allocation that can be assigned to a flow are the same as
the properties that are assigned directly to a link. Currently however, only the bandwidth
properties can be associated with flows. Although the commands to set properties are
different for datalinks and for flows, the syntax is similar. To configure the bandwidth
properties, see the examples in How to Configure a Flow on page 389
Description
For Instructions
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
overview of rings followed by procedures that are used to allocate rings for networking
processes. Examples are also provided to show the mechanism works when you issue
commands to allocate rings.
Clients that do not fulfill any of these conditions are called software-based MAC clients.
Hardware-based clients can be assigned rings for exclusive use depending on the NIC. NICs
such as nxge support dynamic ring allocation. On such NICs, you can configure not only
hardware-based clients. You also have the flexibility to determine the number of rings to
allocate to such clients, assuming that rings remain available for allocation. Use of rings is
always optimized for the primary interface, for example, nxge0. The primary interface is also
known as the primary client. Any available rings that have not been assigned for exclusive use by
other clients are automatically assigned to the primary interface.
Other NICs such as ixge only support static ring allocation. On these NICs, you can only create
hardware-based clients. The clients are automatically configured with a fixed set of rings per
client. The fixed set is determined during the NIC driver's initial configuration. For more
information about a driver's initial configuration for static ring allocation, refer to the Oracle
Solaris Tunable Parameters Reference Manual.
A VLAN that is created by the dladm create-vlan subcommand shares the same MAC address
as the underlying interface. Consequently, that VLAN also shares the Rx and Tx rings of the
underlying interface. A VLAN that is created as a VNIC by using the dladm create-vnic
command has a different MAC address from its underlying interface. The allocation of rings for
Chapter 21 Managing Network Resources
371
such a VLAN is independent of the allocation for the underlying link. Thus, that VLAN can be
assigned its own dedicated rings, assuming that the NIC supports hardware-based clients.
sw indicates that you are configuring a software-based client. The client does not have
exclusive use of rings. Rather, the client shares rings with any other existing clients that are
similarly configured.
n > 0 (number greater than zero) applies to the configuration of a hardware-based client
only. The number refers to the quantity of rings that you allocate to the client for its
exclusive use. You can specify a number only if the underlying NIC supports dynamic ring
allocation.
hw also applies to the configuration of a hardware-based client. However, for such a client,
you cannot specify the actual number of dedicated rings. Rather, the fixed number of rings
per client is already set according to the NIC driver's initial configuration. You set the
*rings properties to hw if the underlying NIC supports static ring allocation only.
To provide information about current ring assignments and use, the following additional
read-only ring properties are available:
372
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
The rxrings and txrings properties in the command output indicate whether a NIC
supports hardware-based clients. From the same data, you can also determine the type of
ring allocation that is supported by the NIC.
The availability of hardware-based clients that you can configure on the link
Rings are allocated as sets. No one-to-one correspondence exists between the number of
available rings and the number of clients that can use dedicated rings. Consequently, to
allocate rings, you must check not only the availability of rings but also the number of
additional hardware-based clients that you can still configure to use dedicated rings. You
can allocate rings only if both rings and hardware-based clients are available.
The rxhwclnt-available and txhwclnt-available properties in the command output
indicate how many hardware-based clients you can configure that can use dedicated Rx and
Tx rings.
If the NIC supports ring allocation, and rings and hardware-based clients are available, then you
can configure this type of client on the system, as explained in How to Configure a
Hardware-Based Client on page 375. Alternatively, you can configure a software-based client
instead, as explained in How to Create a Software-Based Client on page 376.
The following examples show different information that is displayed for ring-related link
properties of an nxge NIC, an ixgbe NIC, and an e1000g NIC.
EXAMPLE 211
show-linkprop nxge0
PROPERTY
PERM VALUE DEFAULT POSSIBLE
rxrings
rw
--
--
sw,<1-7>
txrings
rw
--
--
sw,<1-7>
rxrings-available
txrings-available
rxhwclnt-available
txhwclnt-available
rrrr-
5
5
2
2
-----
-----
The POSSIBLE field lists sw and <1-7> as acceptable values for the rxrings and txrings
properties. These values indicate that nxge supports hardware-based clients as well as
software-based clients. The range <1-7> indicates that the number of Rx rings or Tx rings you
set must be within the specified range. You can also infer from the range that the NIC supports
dynamic ring allocation for both the receive and transmit sides.
Chapter 21 Managing Network Resources
373
EXAMPLE 211
(Continued)
In addition, the *rings-available properties indicate that five Rx rings and five Tx rings are
available to allocate to hardware-based clients.
However, based on the *clnt-available properties, you can configure only two clients that
can have exclusive use of available Rx rings. Likewise, you can configure only two clients that
can have exclusive use of available Tx rings.
EXAMPLE 212
show-linkprop ixgbe0
PROPERTY
PERM VALUE DEFAULT POSSIBLE
rxrings
rw
--
--
sw,hw
txrings
rw
--
--
sw,hw,<1-7>
rxrings-available
txrings-available
rxhwclnt-available
txhwclnt-available
rrrr-
0
5
0
7
-----
-----
The POSSIBLE field for both the rxrings and txrings properties indicates that both
hardware-based clients and software-based clients can be configured on ixgbe0. Only static
ring allocation is supported for Rx rings, where the hardware assigns a fixed set of Rx rings to
each hardware-based client. However, you can allocate Tx rings dynamically, meaning that you
can determine the number of Tx rings to assign to a hardware-based client, in this example, up
to seven rings.
In addition, the *rings-available properties indicate that five Tx rings are available to allocate
to hardware-based clients, but no Rx rings can be assigned.
Finally, based on the *hwclnt-available properties, you can configure seven hardware-based
Tx clients to use Tx rings exclusively. However, dynamic Rx ring allocation is not supported in
ixgbe cards. Therefore, you cannot create a hardware-based client with a specified set of
dedicated Rx rings.
A zero (0) under the VALUE field for either of the *rings-available properties can mean one of
the following:
You can verify the meaning of the zero by comparing the POSSIBLE field for rxrings and
txrings and the VALUE field for rxrings-available and txrings-available.
For example, suppose that txrings-available is 0, as follows:
374
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
EXAMPLE 212
# dladm
LINK
...
ixgbe0
ixgbe0
ixgbe0
ixgbe0
...
(Continued)
show-linkprop ixgbe0
PROPERTY
PERM VALUE DEFAULT POSSIBLE
rxrings
txrings
rxrings-available
txrings-available
rw
rw
rr-
--0
0
-----
sw,hw
sw,hw,<1-7>
---
In this output, the VALUE field for rxrings-available is 0 while the POSSIBLE field for rxrings
is sw,hw. The combined information means that no Rx rings are available because the NIC does
not support dynamic ring allocation. On the transmit side, the VALUE field for
txrings-available is 0 while the POSSIBLE field for txrings is sw,hw,<1-7>. The combined
information indicates that, no Tx rings are available because all the Tx rings have already been
allocated. However, as the POSSIBLE field for txrings indicates, dynamic ring allocation is
supported. Thus, you can allocate Tx rings as these rings become available.
EXAMPLE 213
--
--
--
rw
--
--
--
rrrr-
0
0
0
0
-----
-----
The output indicates that neither rings nor hardware-based clients can be configured because
ring allocation is not supported in e1000g NICs.
Make sure that you have obtained the following information about the NIC on your system:
375
Perform one of the following steps depending on the type of ring allocation that your NIC
supports:
If the NIC supports dynamic ring allocation, use the following syntax:
# dladm create-vnic -p rxrings=number[,txrings=number] -l link vnic
number
Refers to the number of Rx rings and Tx rings that you allocate to the client. The
number must be within the range of the number of available rings for
allocation.
Note Some NICs support dynamic allocation on either Rx rings or Tx rings,
but not on both types. You specify number on the ring type for which dynamic
ring allocation is supported.
link
Refers to the datalink over which you are creating the client.
vnic
If the NIC supports static ring allocation, use the following syntax:
# dladm create-vnic -p rxrings=hw[,txrings=hw] -l link vnic
Note Some NICs support static allocation on either Rx rings or Tx rings, but not on both
types. You specify hw on the ring type for which static ring allocation is supported.
376
link
Refers to the datalink over which you are creating the client.
vnic
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
To configure an existing client to share rings with other clients, type the following
command:
# dladm set-linkprop -p rxrings=sw[,txrings=sw] vnic
Example 214
STATE
down
BRIDGE
--
OVER
--
# dladm
LINK
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
show-phys -H ixgbe0
RINGTYPE RINGS
RX
0-1
TX
0-7
RX
2-3
RX
4-5
RX
6-7
# dladm
LINK
...
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
...
show-linkprop ixgbe0
PROPERTY
PERM VALUE DEFAULT POSSIBLE
rxrings
rxrings-effective
txrings
txrings-effective
txrings-available
rxrings-available
rxhwclnt-available
txhwclnt-available
CLIENTS
<default,mcast>
<default>
----
rw
r
rw
r
rrrr-
----7
0
3
7
---------
sw,hw
-sw,hw,<1-7>
------
The command output shows a single link ixgbe0 on the system, but no existing clients. In
addition, the following information is also gleaned from this output:
The NIC has eight Rx rings and eight Tx rings (rings 0 to 7).
377
For hardware-based clients, only static ring allocation is supported for Rx rings, while both
static and dynamic ring allocations are supported for Tx rings.
create-ip ixgbe0
create-addr -T static -a 192.168.10.10/24 ixgbe0/v4
show-phys -H ixgbe0
RINGTYPE RINGS CLIENTS
RX
0-1
<default,mcast>
TX
0-7
<default>ixgbe0
RX
2-3
ixgbe0
RX
4-5
-RX
6-7
--
# dladm
LINK
...
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
...
show-linkprop ixgbe0
PROPERTY
PERM VALUE DEFAULT POSSIBLE
rxrings
rxrings-effective
txrings
txrings-effective
txrings-available
rxrings-available
rxhwclnt-available
txhwclnt-available
rw
r
rw
r
rrrr-
-2
-8
7
0
3
7
---------
sw,hw
-sw,hw,<1-7>
------
ixgbe0, the primary client, automatically receives two Rx rings (rings 2 and 3) for dedicated
use. However, ixgbe0 uses all Tx rings. By default, all unused rings are automatically
assigned to the primary client.
The number of available Tx rings that can be allocated to other clients remains at seven.
The number of available hardware-based clients that can be configured with Rx rings
remains at three. The number of available hardware-based clients that can be dynamically
configured with Tx rings remains at seven.
378
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
# dladm
# dladm
LINK
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
# dladm
LINK
...
vnic0
...
vnic0
...
# dladm
LINK
...
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
...
show-linkprop vnic0
PROPERTY
PERM VALUE DEFAULT POSSIBLE
rxrings
rw
sw
--
sw,hw
txrings
rw
sw
--
sw,hw,<1-7>
show-linkprop ixgbe0
PROPERTY
PERM VALUE DEFAULT POSSIBLE
rxrings
rxrings-effective
txrings
txrings-effective
txrings-available
rxrings-available
rxhwclnt-available
txhwclnt-available
rw
r
rw
r
rrrr-
-2
--7
0
3
7
---------
--sw,hw,<1-7>
------
As a software-based client, vnic0's rxrings and txrings properties are accordingly set to
sw.
No Tx rings are assigned. Therefore, the number of available Tx rings that can be allocated
to other clients remains at seven.
The number of available hardware-based clients that can be configured with Rx rings
remains at three. The number of available hardware-based clients that can be configured
with Tx rings remains at seven.
create-vnic -l ixgbe0
show-phys -H ixgbe0
RINGTYPE RINGS
RX
0-1
TX
0,2-7
RX
2-3
vnic1
CLIENTS
<default,mcast>,vnic0
<default>vnic0,ixgbe0
ixgbe0
379
ixgbe0
ixgbe0
ixgbe0
RX
RX
TX
4-5
6-7
1
vnic1
-vnic1
# dladm
LINK
...
vnic1
vnic1
vnic1
vnic1
...
show-linkprop vnic1
PROPERTY
PERM VALUE DEFAULT POSSIBLE
# dladm
LINK
...
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
...
show-linkprop ixgbe0
PROPERTY
PERM VALUE DEFAULT POSSIBLE
rxrings
rxrings-effective
txrings
txrings-effective
rxrings
rxrings-effective
txrings
txrings-effective
txrings-available
rxrings-available
rxhwclnt-available
txhwclnt-available
rw
rrw
r-
rw
rrw
rrrrr-
-2
---
-2
--7
0
3
7
-----
---------
sw,hw
-sw,hw,<1-7>
--
sw,hw
-sw,hw,<1-7>
------
Of the eight Tx rings, ixgbe0 and vnic0 now share seven rings (ring 0 and rings 2 through
7). Ring 1 has become a dedicated Tx ring for vnic1.
No Tx rings are assigned. Therefore, the number of available Tx rings that can be allocated
to other clients remains at seven.
The number of available hardware-based clients that can be configured with Rx rings
remains at three. The number of available hardware-based clients that can be configured
with Tx rings remains at seven.
380
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
# dladm
LINK
...
vnic1
vnic1
vnic1
vnic1
...
# dladm
LINK
...
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
...
show-linkprop vnic1
PROPERTY
PERM VALUE DEFAULT POSSIBLE
rxrings
rxrings-effective
txrings
txrings-effective
rw
rrw
r-
hw
2
hw
--
-----
sw,hw
-sw,hw,<1-7>
--
show-linkprop ixgbe0
PROPERTY
PERM VALUE DEFAULT POSSIBLE
rxrings
rxrings-effective
txrings
txrings-effective
txrings-available
rxrings-available
rxhwclnt-available
txhwclnt-available
rw
rrw
rrrrr-
-2
--6
0
3
6
---------
sw,hw
-sw,hw,<1-7>
------
The distribution of Rx and Tx rings for vnic1 remains the same as when vnic1 was created
without ring allocation.
Similarly, ring information remains the same as when vnic1 was created without ring
allocation.
The rxrings and txrings properties of vnic1 have been explicitly set to hw. Consequently,
the number of available Tx rings for dynamic allocation has been reduced to six. Likewise,
the number of available hardware-based clients that can be configured has been reduced to
six.
Next, configure a hardware-based client with Tx rings that are dynamically allocated.
# dladm
# dladm
LINK
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
create-vnic -l ixgbe0
show-phys -H ixgbe0
RINGTYPE RINGS
RX
0-1
TX
0,4-7
RX
2-3
RX
4-5
RX
6-7
TX
1
TX
2-3
# dladm
LINK
...
vnic2
vnic2
vnic2
vnic2
...
# dladm
show-linkprop vnic2
PROPERTY
PERM VALUE DEFAULT POSSIBLE
rxrings
rxrings-effective
txrings
txrings-effective
-p txrings=2 vnic2
CLIENTS
<default,mcast>,vnic0
<default>vnic0,ixgbe0
ixgbe0
vnic1
vnic2
vnic1
vnic2
rw
rrw
r-
-2
2
2
-----
sw,hw
-sw,hw,<1-7>
--
show-linkprop ixgbe0
381
LINK
...
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
...
PROPERTY
rxrings
rxrings-effective
txrings
txrings-effective
txrings-available
rxrings-available
rxhwclnt-available
txhwclnt-available
rw
rrw
rrrrr-
-2
--4
0
3
5
---------
sw,hw
-sw,hw,<1-7>
------
The hardware automatically assigned a pair of Rx rings (rings 6 and 7) to vnic2 for exclusive
use. However, vnic2's two dedicated Tx rings (rings 2 and 3) were assigned by the
administrator.
With two Tx rings administratively assigned to vnic2, the number of available Tx rings that
can be allocated to other clients has been reduced to four.
With vnic2 configured as a hardware-based client with two Tx rings, the number of
available clients that can be configured has been reduced to five.
Configure a hardware-based client with static ring allocation by performing one of the
following steps:
To create the client with static ring allocation, type the following command:
# dladm create-vnic -l link -p rxrings=hw[,txrings=hw] vnic
link
Refers to the datalink over which you are creating the client.
vnic
To identify the number of rings that have been allocated, perform the following substeps:
a. Display the client's properties.
# dladm show-linkprop link
382
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
b. Check the value of the *rings-effective property that corresponds to the ring type that
you allocated statically.
For example, if you statically allocated Rx rings, check the rxrings-effective property. If
you statically allocated Tx rings, check the txrings-effective property. The number
indicates how many rings were allocated by the hardware.
3
To verify which rings have been statically allocated, perform the following substeps:
a. Display the NIC's ring usage.
# dladm show-phys -H link
STATE
down
BRIDGE
--
OVER
--
# dladm
# dladm
LINK
...
vnic1
vnic1
vnic1
vnic1
# dladm
LINK
ixgbe0
ixgbe0
ixgbe0
ixgbe0
ixgbe0
show-phys -H ixgbe0
RINGTYPE RINGS
RX
0-1
TX
0,2-7
RX
2-3
RX
4-5
RX
6-7
rxrings
rxrings-effective
txrings
txrings-effective
rw
rrw
r-
hw
2
---
-----
sw,hw
-sw,hw,<1-7>
--
CLIENTS
<default,mcast>
<default>
vnic1
---
383
ixgbe0
...
TX
vnic1
The output indicates that after vnic1 was configured with Rx rings, the hardware allocated two
dedicated Rx rings, as reflected by the rxrings-effective property. Based on the output of the
dladm show-phys -H command, Rx rings 2 and 3 were dedicated for vnic1's use.
As a result of being configured as a client, vnic1 also automatically received Tx ring 1 for its
dedicated use. However, the txrings-effective property displays no value because the
txrings property is not explicitly set.
properties, cpu and pool, are mutually exclusive. You cannot set both properties for a given
datalink. To assign CPU resources to a datalink by using the cpu property, see How to Allocate
CPUs to Links on page 388.
For more information about pools within a zone, see Chapter 13, Creating and Administering
Resource Pools (Tasks), in Oracle Solaris Administration: Oracle Solaris Zones, Oracle
Solaris 10 Zones, and Resource Management. For more information about creating pools and
assigning CPU sets to the pools, refer to the poolcfg(1M) man page.
The following figure show how pools work when the pool property is assigned to a datalink.
384
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
FIGURE 211
Global Zone
zone1
vnic1
pool99
Default Pool
CPU 3
CPU 0
CPU 1
CPU 2
CPU 4
CPU 5
CPU 6
CPU 7
In the figure, the system has eight CPUs. When no pools are configured on the system, all the
CPUs belong to the default pool and are used by the global zone. However, in this example, the
pool99 pool has been created and consists of CPU 3 and CPU 4. This pool is associated with
zone1, which is an exclusive zone. If pool99 is set as a property of vnic1, then pool99 becomes
dedicated to also manage vnic1's networking processes. After vnic1 is assigned to be zone1's
network interface , then the CPUs in pool99 become reserved to manage both networking and
nonnetworking processes of zone1.
The pool property is dynamic in nature. Zone pools can be configured with a range of CPUs,
and the kernel determines which CPUs are assigned to the pool's CPU set. Changes to the pool
are automatically implemented for the datalink, which simplifies pool administration for that
link. By contrast, assigning specific CPUs to the link by using the cpu property requires you to
specify the CPU to be assigned. You have to set the cpu property every time you want to change
the CPU components of the pool.
For example, suppose that in the system in Figure 211, CPU 4 is taken offline. Because the pool
property is dynamic, the software automatically associates an additional CPU with the pool.
Thus, the pool's original configuration of two CPUs is preserved. For vnic1, the change is
transparent. The adjusted configuration is shown in the following figure.
385
FIGURE 212
Global Zone
zone1
vnic1
Default Pool
pool99
CPU 2
CPU 0
Offline
CPU 3
CPU 1
CPU 4
CPU 5
CPU 6
CPU 7
Additional pool related properties display information about a datalink's use of CPUs or a pool
of CPUs. These properties are read-only and cannot be set by the administrator.
pool-effective displays the pool that is being used for network processes.
cpus-effective displays the list of CPUs that are being used for network processes.
To manage CPU resources of a zone, setting a datalink's pool property is not normally
performed as an initial step. More frequently, commands such as zonecfg and poolcfg are used
to configure a zone to use a pool of resources. The cpu and pool link properties themselves are
not set. In such cases, the pool-effective as well as the cpus-effective properties of these
datalinks are set automatically according to those zone configurations when the zone is booted.
The default pool is displayed under pool-effective, while the value of cpus-effective is
selected by the system. Thus, if you use the dladm show-linkprop command, the pool and cpu
properties will be empty, while the pool-effective and cpus-effective properties will
contain values.
Directly setting the pool and cpu properties of a datalink is an alternative step that you can use
to bind a zone's CPU pool for networking processes. After you configure these properties, their
values are reflected in the pool-effective and cpus-effectiveproperties as well. Note,
however, that this alternative step is less typically used to manage a zone's network resources.
sets the pool property while you create the VNIC. To set the pool property of an existing VNIC,
you use the following syntax:
# dladm setlinkprop -p pool=pool-name vnic
386
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
The following procedure provides the steps to configure a CPU pool for a VNIC.
Before You Begin
Set the link's pool property to the pool of CPUs that you created for the zone. Perform one of the
following steps, depending on whether the VNIC exists.
If the VNIC has not yet been created, use the following syntax:
# dladm create-vnic -l link -p pool=pool vnic
where pool refers to the name of the pool that was created for the zone.
Example 216
387
zonecfg:zone1>net> end
zonecfg:zone1> exit
By default, no CPUs are assigned to any specific interface. Thus, the parameter VALUE in the
command output will not contain any entry.
2
List the interrupts and the CPUs with which the interrupts are associated.
# echo ::interrupts | mdb -k
The output lists parameters for each link in the system, including the CPU number.
3
where cpu1 is the CPU number to be assigned to the link. You can dedicate multiple CPUs to
the link.
4
(Optional) Display the CPUs that are associated with the link.
# dladm show-linkprop -p cpus link
Example 217
388
DEFAULT
--
POSSIBLE
--
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
State
enbl
enbl
INO
0x1b
0x1a
Mondo
0x1b
0x1a
Pil
6
6
CPU
0
18
POSSIBLE
--
All the supporting threads including the interrupt are now confined to the newly assigned set of
CPUs.
Verify that IP interfaces over the selected link are properly configured with IP addresses.
# ipadm show-addr
Create flows according to the attribute you have determined for each flow.
# flowadm add-flow -l link -a attribute=value[,attribute=value] flow
389
attribute
flow
Refers to one of the following classifications by which you can organize network
packets into a flow:
IP address
DS field attribute, which is used for quality of service in IPv6 packets only. For
more information about the DS field, refer to DS Codepoint in Oracle Solaris
Administration: IP Services.
For more details about flows and flow attributes, see the flowadm(1M) man page.
4
Implement resource controls on the flows by setting the appropriate flow properties.
# flowadm set-flowprop -p property=value[,property=value,...] flow
You can specify the following flow properties that control resources:
maxbw
The maximum amount of the link's bandwidth that packets identified with this flow
can use. The value you set must be within the allowed range of values for the link's
bandwidth. To display the possible range of values for a link's bandwidth, check the
POSSIBLE field in the output that is generated by the following command:
# dladm show-linkprop -p maxbw link
(Optional) Display the flows that you have created over the link.
# flowadm show-flow -l link
Example 218
390
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Host2
zone1
zone2
zone3
vnic0
vnic1
vnic2
vnic3
udpflow
nxge0
internal0
Router Zone
external0
Host1
Internet
The figure shows two physical hosts that are connected to each other.
It has one non-global zone that functions as a router zone. Two interfaces are assigned to
the zone: external0 connects to the Internet while internal0 connects to the internal
network including the second host.
The IP interfaces have been renamed to use customized names. Although not required,
using customized names on links and interfaces provides advantages when you
administer the network. See Network Devices and Datalink Names on page 26.
A flow is configured over internal0 to isolate UDP traffic and implement control over
how UDP packets use resources. For information about configuring flows, see
Managing Resources on Flows on page 389.
391
It has three non-global zones and their respective VNICs. The VNICs are configured
over an nxge card that supports dynamic ring allocation. For more information about
ring allocation, see Transmit and Receive Rings on page 370.
Each zone's network processing load is different. For the purposes of this example, the
load for zone1 is heavy, the load for zone2 is medium, and the load for zone3 is light.
Resources are assigned to these zones according to their loads.
Creating a flow and configuring flow controls A flow is created over internal0 to create
separate resource controls over UDP packets that are received by Host2.
Configuring network resource properties for the VNICs on Host2 Based on the processing
load on each zone, each zone's VNIC is configured with a set of dedicated rings. A separate
VNIC is also configured without dedicated rings as an example of a software-based client.
Note that the example does not include any procedure for zone configuration. To configure
zones, refer to Chapter 17, Planning and Configuring Non-Global Zones (Tasks), in Oracle
Solaris Administration: Oracle Solaris Zones, Oracle Solaris 10 Zones, and Resource
Management.
First, view information about links and IP interfaces on Host1.
# dladm show-phys
LINK
MEDIA
internal0
Ethernet
e1000g0
n
e1000g1
n
external0
Ethernet
STATE
up
unknown
unknown
up
# dladm show-link
LINK
CLASS
internal0 phys
e1000g0
phys
e1000g1
phys
external0 phys
MTU
1500
1500
1500
1500
# ipadm show-addr
ADDROBJ
TYPE
lo0/4
static
external0 static
internal0 static
STATE
ok
ok
ok
SPEED DUPLEX
1000 full
0
half
0
half
1000 full
STATE
up
unknown
unknown
up
BRIDGE
-----
DEVICE
nge1
e1000g0
e1000g1
nge0
OVER
nge1
--nge0
ADDR
127.0.0.1/8
10.10.6.5/24
10.10.12.42/24
Next, create a flow over internal0 to isolate UDP traffic to Host2. Then, implement resource
controls on the flow.
# flowadm add-flow -l external0 -a transport=udp udpflow
# flowadm set-flowprop -p maxbw=80 udpflow
392
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
IPADDR
--
PROTO
udp
PORT
--
DFSLD
--
# flowadm show-flowprop
SECURE OUTPUT FOR THIS
On Host2, configure VNICs over nxge0 for each zone. Implement resource controls on each
VNIC. Then, assign the VNICs to their respective zones.
# dladm create-vnic -l nxge0 vnic0
# dladm create-vnic -l nxge0 vnic1
# dladm create-vnic -l nxge0 vnic2
# dladm set-prop -p rxrings=4,txrings=4 vnic0
# dladm set-prop -p rxrings=2,txrings=2 vnic1
# dladm set-prop -p rxrings=1,txrings=1 vnic2
# zone1>zonecfg>net> set physical=vnic0
# zone2>zonecfg>net> set physical=vnic1
# zone3>zonecfg>net> set physical=vnic2
Suppose that pool1, a set of CPUs in Host2, was previously configured for use by zone1. Bind
that pool of CPUs to also manage network processes for zone1 as follows:
# dladm set-prop -p pool=pool01 vnic0
Finally, create a software-based client that shares rings with nxge0, the primary interface.
dladm create-vnic -p rxrings=sw,txrings=sw -l nxge0 vnic3
393
22
C H A P T E R
2 2
This chapter describes tasks for monitoring and gathering statistics about the use of network
resources in a physical as well as a virtual network environment. The information can help you
analyze resource allocation for provisioning, consolidation, and billing purposes. This chapter
introduces the two commands that you use to display statistics: dlstat and flowstat.
The following subjects are discussed:
On hardware lanes, rings are dedicated to the packets that use those lanes. In contrast, rings on
software lanes are shared among datalinks. Datalinks are configured to share rings for the
following reasons:
Administrative intent. The datalink might not be performing intensive processes to require
dedicated rings.
Despite support for ring allocation, rings are no longer available to be assigned for exclusive
use.
396
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
FIGURE 221
Hardware Lanes
Hardware Lanes
nxge0
distat show-link
distat show-phys
K
E
R
N
E
L
vnic1
T
H
R
E
A
D
S
K
E
R
N
E
L
T
H
R
E
A
D
S
Q
U
E
U
E
S
Q
U
E
U
E
S
Hardware rings/
Direct Memory
Access
Hardware rings/
Direct Memory
Access
vnic2
K
E
R
N
E
L
T
H
R
E
A
D
S
Q
U
E
U
E
S
Hardware rings/
Direct Memory
Access
nxge
Links are configured over the physical device: nxge0, vnic1, and vnic2. Note that as a
datalink, nxge0 can be assigned a customized name. However, in the figure, the link retains
its default device name.
397
The NIC supports dynamic ring allocation. Thus, a set of hardware rings can be assigned to
each link to constitute a hardware lane. In addition, a set of CPUs is also allocated to each
lane.
Description
For Instructions
For a description of the steps to configure flows, see Managing Resources on Flows on
page 389. For more information about these two commands, see the dlstat(1M) and the
flowstat(1M) man pages.
398
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
Monitoring Commands
Command
Function
Command
Function
User interface and tool for dlstat command options User interface and tool for
configuring and
obtaining statistics on
administering datalinks.
traffic on datalinks.
flowadm command
options
The following variants of the dlstat command can be used to gather network traffic
information:
dlstat Displays general information about packets that are being received or transmitted
by a system.
dlstat show-phys Displays information about the use of receive and transmit rings. This
command corresponds to the dladm show-phys command, which displays non-traffic
information about a network physical device. For an illustration of the level of the network
lane to which this command applies, refer to Figure 221.
dlstat show-link Displays detailed information about traffic flow on a given lane. The
lane is identified by its datalink. This command corresponds to the dladm show-link and
dladm show-vnic commands, which display non-traffic information about datalinks. For
an illustration of the level of the network lane to which the dlstat show-link command
applies, refer to Figure 221.
dlstat show-aggr Displays information about the use of ports in a link aggregation. This
command corresponds to the dladm show-aggr command, which displays non-traffic
information about a link aggregation.
399
[-r|-t]
-i interval
Specifies the time in seconds at which you want the displayed statistics to be
refreshed. If you do not use this option, then static output is displayed.
link
Indicates that you want to monitor the statistics of the specified datalink only. If
you do not use this option, then information about all datalinks is displayed.
Used by itself, the dlstat command displays information about incoming and outgoing
packets on all configured datalinks.
The following information is displayed by most of the options that you use with the dlstat
command:
Example 221
Links in the system that have been configured with IP interfaces and that can receive or
transmit traffic
Example 222
RBYTES
32.86M
6.78G
336
OPKTS
40.16K
1.38M
0
OBYTES
4.37M
90.90M
0
400
CH>50
5
1.64K
0
0
24
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
vnic1
...
^C
In this output, the statistics for interrupt (INTRS) are significant. Low interrupt numbers
indicate greater efficiency in performance. If the interrupt numbers are high, then you might
need to add more resources to the specific link.
Example 223
-t -i 5
OPKTS OBYTES BLKCNT UBLKCNT
40.24K 4.37M
0
0
9.76M 644.14M
0
0
0
0
0
0
0
0
0
0
26.82K 1.77M
0
0
0
0
0
0
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
[-r|-t]
-i interval
Specifies the time in seconds at which you want the displayed statistics to be
refreshed. If you do not use this option, then static output is displayed.
link
Indicates that you want to monitor the statistics of the specified datalink only. If
you do not use this option, then information about all datalinks is displayed.
Used by itself, the dlstat show-phys command displays information about incoming and
outgoing packets on all configured datalinks.
401
Example 224
The nxge device has eight receive rings, which are identified under the INDEX field. An even
distribution of packets per ring is an ideal configuration that indicates that the rings are
properly allocated to links according to the links' load. An uneven distribution might indicate a
disproportionate distribution of rings per link. The resolution depends on whether the NIC
supports dynamic ring allocation, which allows you to redistribute rings per link. For more
information about dynamic ring allocation, see Transmit and Receive Rings on page 370.
Example 225
402
-t nxge1
OPKTS OBYTES
44
3.96K
0
0
1.48M 121.68M
2.45M 201.11M
1.47M 120.82M
0
0
1.97M 161.57M
4.59M 376.21M
2.43M 199.24M
0
0
3.23M 264.69M
1.88M 153.96M
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
[-r|-t]
-i interval
Specifies the time in seconds at which you want the displayed statistics to be
refreshed. If you do not use this option, then static output is displayed.
link
Indicates that you want to monitor the statistics of the specified datalink only. If
you do not use this option, then information about all datalinks is displayed.
If ring grouping is supported and dedicated rings were configured, then
hardware lane statistics are displayed. If no dedicated rings are configured, then
software lane statistics are displayed.
Example 226
The following command shows receive-side statistics for the specific link. The information
indicates ring usage. However, the data might also reflect the implementation of other resource
allocations, such as bandwidth limits and priority processing.
# dlstat show-link -r nxge1
LINK TYPE
ID INDEX IPKTS
nxge1 rx local
-0
nxge1 rx
hw
1
0
nxge1 rx
hw
2 1.73M
nxge1 rx
hw
3
0
nxge1 rx
hw
4 8.44M
nxge1 rx
hw
5 5.68M
nxge1 rx
hw
6 4.90M
nxge1 rx
hw
7
0
RBYTES
0
0
2.61G
0
12.71G
8.56G
7.38G
0
The following command shows receive-side statistics for the specific link. In the output, the ID
field indicates whether hardware rings are exclusively assigned or shared among clients. In the
ixgbe card, Rx rings are shared if other clients such as VNICs are configured over the link as
well. Thus, for this specific example, Rx rings are shared, as indicated by the sw value under the
ID field.
# dlstat show-link -r ixgbe0
LINK TYPE
ID INDEX IPKTS RBYTES
ixgbe0 rx local
-0
0
403
ixgbe0
rx
sw
-- 794.28K
1.19G 794.28K
The following command shows usage of receive-side statistics for the specific link. In addition,
with the use of the -F option in the command, the output also provides fanout information.
Specifically, the fanout count is two (0 and 1). Network traffic that is received on the hardware
lane that uses ring 0 is split and passed on across the two fanouts. Likewise, network traffic that
is received on the hardware lane that uses ring 1 is also split and divided across the two fanouts.
# dlstat show-link -r -F nxge1
LINK
ID INDEX FOUT IPKTS
nxge1 local
-0
0
nxge1
hw
0
0 382.47K
nxge1
hw
0
1
0
nxge1
hw
1
0 367.50K
nxge1
hw
1
1 433.24K
Example 227
OPKTS
32
0
1.48M
2.45M
1.47M
0
1.97M
4.59M
2.43M
0
3.23M
1.88M
OBYTES
1.44K
0
97.95M
161.87M
97.25M
276
130.25M
302.80M
302.80M
0
213.05M
123.93M
BLKCNT
0
0
0
0
0
0
0
0
0
0
0
0
UBLKCNT
0
0
0
0
0
0
0
0
0
0
0
0
[-r|-t]
404
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
-i interval
Specifies the time in seconds at which you want the displayed statistics to be
refreshed. If you do not use this option, then static output is displayed.
link
Indicates that you want to monitor the statistics for all the flows on the specified
datalink. If you do not use this option, then information about all the flows on
all the datalinks is displayed.
flow
Indicates that you want to monitor the statistics of a specified flow only. If you
do not use this option, then depending on whether you specified a link, all flow
statistics are displayed.
On the system where you previously configured flow control, become an administrator in the
global zone.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
For a sampling of how to observe network traffic on flows, perform any of the following
commands:
This command provides a static display of traffic information on all configured flows.
The display of statistics is refreshed at the specified interval until you stop the output
generation by pressing ControlC.
Display statistics about incoming packets on all flows that are configured over a specified
datalink.
# flowstat -r -l link
405
Example 228
Example 229
Example 2210
OBYTES
1.61G
0
216
OERRS
0
0
0
406
-l net0
RBYTES
270.24M
0
551.52M
0
549.04M
0
549.61M
0
547.89M
0
282.95M
310.70M
0
335.15M
0
335.52M
0
241.07M
0
252.61M
0
IERRS
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
udp-flow
^C
9.52K
14.32M
On the system with the interfaces whose network usage you want to track, become an
administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
Process accounting
Task accounting
Flow accounting for IP Quality of Service (IPQoS)
Network accounting for links and flows
Specifying net displays the status of network accounting. If net is not used, then the status of all
four accounting types is displayed.
Note Network accounting also applies to flows that are managed by the flowadm and flowstat
where filename includes the full path of the log file that will capture network traffic statistics.
The log file can be created in any directory that you specify.
407
Example 2211
After you have enabled network accounting, you can use the dlstat and flowstat commands
to extract information from the log file. The following procedure explains the steps.
408
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
On the system with the interfaces whose network usage you want to track, become an
administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
To extract and display historical information about resource usage on datalinks, use the
following command:
# dlstat show-link -h [-a] -f filename [-d date] [-F format] [-s start-time] [-e end-time] [link]
-h
-a
Displays resource usage on all datalinks, including those that have already
been deleted after the data capture.
-f filename
Specifies the log file that was defined when network accounting was enabled
with the acctadm command.
-d
-F format
-s start-time,
-e end-time
link
Display available logged information for a specified date and time range. Use
the MM/DD/YYY,hh:mm:ss format. The hour (hh) must use the 24hour clock
notation. If you do not include the date, then data for the current date's time
range is displayed.
Displays historical data for a specified datalink. If you do not use this option,
then historical network data for all configured datalinks is displayed.
To extract and display historical information about network traffic on configured flows, use the
following command:
# flowstat -h [-a] -f filename [-d date] [-F format] [-s start-time] [-e end-time] [flow]
-h
-a
Displays resource usage on all datalinks, including those that have already
been deleted after the data capture.
-f filename
Specifies the log file that was defined when network accounting was enabled
with the acctadm command.
-d
-F format
409
-s start-time,
-e end-time
Example 2212
Display available logged information for a specified date and time range. Use
the MM/DD/YYY,hh:mm:ss format. The hour (hh) must use the 24hour clock
notation. If you do not include the date, then data for the current date's time
range is displayed.
link
Displays historical data for a specified datalink. If you do not use this option,
then historical network data for all configured datalinks is displayed.
flow
Displays historical data for a specified flow. If you do not use this option, then
historical network data for all configured flows is displayed.
Example 2213
BANDWIDTH
2.44 Kbps
OPACKETS OBYTES
0
0
0
0
BANDWIDTH
43.76Kbps
0.00Mbps
Display historical statistics of resource usage by traffic on a flow over a given date and time
range.
# flowstat -h -s 02/19/2008,10:39:06 -e 02/19/2008,10:40:06 \
-f /var/log/net.log flowtcp
FLOW
flowtcp
flowtcp
flowtcp
flowtcp
START
10:39:06
10:39:26
10:39:46
10:40:06
END
10:39:26
10:39:46
10:40:06
10:40:26
RBYTES
1546
3586
240
0
OBYTES
6539
9922
216
0
BANDWIDTH
3.23 Kbps
5.40 Kbps
182.40 bps
0.00 bps
Display historical statistics of resource usage by traffic on a flow over a given date and time
range. Display the information by using the gnuplot format.
410
Oracle Solaris Administration: Network Interfaces and Network Virtualization December 2011
411
C H A P T E R
This chapter provides an overview of the NFS service, which can be used to access file systems
over the network. The chapter includes a discussion of the concepts necessary to understand the
NFS service and a description of the latest features in NFS and autofs.
Note If your system has zones enabled and you want to use this feature in a non-global zone,
see Oracle Solaris Administration: Oracle Solaris Zones, Oracle Solaris 10 Zones, and Resource
Management for more information.
The configuration parameters that used to be set by editing the /etc/default/autofs and
/etc/default/nfs can now be set in the SMF repository. See the descriptions of the new
SMF parameters in procedures that use them, as well as the descriptions of the daemons that
use them:
The NFS service provides support for mirror mounts. Mirror mounts enable an NFSv4
client to traverse shared file system mount points in the server namespace. For NFSv4
mounts, the automounter will perform a mount of the server namespace root and rely on
mirror mounts to access its file systems. The main advantage that mirror mounts offer over
the traditional automounter is that mounting a file system using mirror mounts does not
require the overhead associated with administering automount maps. Mirror mounts
provide these features:
NFS referrals have been added to the NFS service. Referrals are server-based redirections
that an NFSv4 client can follow to find a file system. The NFS server supports referrals
created by the nfsref(1M)command, and the NFSv4 client will follow them to mount the
file system from the actual location. This facility can be used to replace many uses of the
automounter, with creation of referrals replacing the editing of automounter map. NFS
referrals provide these features:
The ability to mount the per-DNS-domain root of a Federated File System name space has
been added. This mount point can be used with NFS referrals to bridge from one file server
to another, building an arbitrarily large namespace. For more information see:
70
The sharectl utility is included. This utility enables you to configure and manage file
sharing protocols, such as NFS. For example, this utility allows you to set client and server
operational properties, display property values for a specific protocol, and obtain the status
of a protocol. For more information, see the sharectl(1M) man page and sharectl
Command on page 153.
The NFS version 4 domain can be defined. See Configuring an NFS Version 4 Default
Domain in the Oracle Solaris 11 Release on page 142 for more information.
Additionally, this guide provides a more detailed description of the nfsmapid daemon. For
information about nfsmapid, see the following:
Starting in the Solaris 10 release, NFS version 4 is the default. For information about features in
NFS version 4 and other changes, refer to the following:
71
NFS Terminology
NFS Terminology
This section presents some of the basic terminology that must be understood to work with the
NFS service. Expanded coverage of the NFS service is included in Chapter 6, Accessing
Network File Systems (Reference).
72
About Autofs
Enables multiple computers to use the same files so that everyone on the network can access
the same data
Reduces storage costs by having computers share applications instead of needing local disk
space for each user application
Provides data consistency and reliability because all users can read the same set of files
The NFS service makes the physical location of the file system irrelevant to the user. You can use
the NFS implementation to enable users to see all the relevant files regardless of location.
Instead of placing copies of commonly used files on every system, the NFS service enables you
to place one copy on one computer's disk. All other systems access the files across the network.
Under NFS operation, remote file systems are almost indistinguishable from local file systems.
About Autofs
File systems that are shared through the NFS service can be mounted by using automatic
mounting. Autofs, a client-side service, is a file-system structure that provides automatic
mounting. The autofs file system is initialized by automount, which is run automatically when a
system is booted. The automount daemon, automountd, runs continuously, mounting and
unmounting remote directories as necessary.
Whenever a client computer that is running automountd tries to access a remote file or remote
directory, the daemon mounts the remote file system. This remote file system remains mounted
for as long as needed. If the remote file system is not accessed for a certain period of time, the file
system is automatically unmounted.
Chapter 4 Managing Network File Systems (Overview)
73
Mounting need not be done at boot time, and the user no longer has to know the superuser
password to mount a directory. Users do not need to use the mount and umount commands. The
autofs service mounts and unmounts file systems as required without any intervention by the
user.
Mounting some file hierarchies with automountd does not exclude the possibility of mounting
other hierarchies with mount. A diskless computer must mount / (root), /usr, and /usr/kvm
through the mount command and the /etc/vfstab file.
Task Overview for Autofs Administration on page 100 and How Autofs Works on page 198
give more specific information about the autofs service.
The NFS version 3 protocol removed the 8-Kbyte transfer size limit. Clients and servers could
negotiate whatever transfer size the clients and servers support, rather than conform to the
8-Kbyte limit that version 2 imposed. Note that in earlier Solaris implementations, the protocol
defaulted to a 32-Kbyte transfer size. Starting in the Solaris 10 release, restrictions on wire
transfer sizes are relaxed. The transfer size is based on the capabilities of the underlying
transport.
75
mountd
nfslogd
statd
For a complete list of the features in NFS version 4, refer to Features in NFS Version 4 on
page 171.
For procedural information that is related to using NFS version 4, refer to Setting Up NFS
Services on page 91.
area networks. TCP also provides congestion control and error recovery. NFS over TCP works
with version 2, version 3, and version 4. Prior to the Solaris 2.5 release, the default NFS protocol
was User Datagram Protocol (UDP).
Note If RDMA for InfiniBand is available, RDMA is the default transport protocol for NFS. For
more information, see NFS Over RDMA on page 168. Note, however, that if you use the
proto=tcp mount option, NFS mounts are forced to use TCP only.
77
Note The Network Lock Manager is used only for NFS version 2 and version 3 mounts. File
locking is built into the NFS version 4 protocol.
WebNFS Support
The Solaris 2.6 release also included the ability to make a file system on the Internet accessible
through firewalls. This capability was provided by using an extension to the NFS protocol. One
of the advantages to using the WebNFS protocol for Internet access is its reliability. The service
is built as an extension of the NFS version 3 and version 2 protocol. Additionally, the WebNFS
implementation provides the ability to share these files without the administrative overhead of
an anonymous ftp site. See Security Negotiation for the WebNFS Service on page 79 for a
description of more changes that are related to the WebNFS service. See WebNFS
Administration Tasks on page 97 for more task information.
78
Note The NFS version 4 protocol is preferred over the WebNFS service. NFS version 4 fully
integrates all the security negotiation that was added to the MOUNT protocol and the WebNFS
service.
79
You can also use these options to select the operations that should be logged. This feature is
particularly useful for sites that make anonymous FTP archives available to NFS and WebNFS
clients. See How to Enable NFS Server Logging on page 84 for more information.
Note NFS version 4 does not support server logging.
Autofs Features
Autofs works with file systems that are specified in the local namespace. This information can
be maintained in NIS or local files.
A fully multithreaded version of automountd is included. This enhancement makes autofs more
reliable and enables concurrent servicing of multiple mounts, which prevents the service from
hanging if a server is unavailable.
The automountd provides better on-demand mounting. Previous releases would mount an
entire set of file systems if the file systems were hierarchically related. Now, only the top file
system is mounted. Other file systems that are related to this mount point are mounted when
needed.
The autofs service supports browsability of indirect maps. This support enables a user to see
which directories could be mounted, without having to actually mount each file system. A
-nobrowse option has been added to the autofs maps so that large file systems, such as /net and
/home, are not automatically browsable. Also, you can turn off autofs browsability on each client
by using the -n option with automount. See Disabling Autofs Browsability on page 112 for
more information.
80
C H A P T E R
This chapter provides information about how to perform such NFS administration tasks as
setting up NFS services, adding new file systems to share, and mounting file systems. The
chapter also covers the use of the Secure NFS system and the use of WebNFS functionality. The
last part of the chapter includes troubleshooting procedures and a list of some of the NFS error
messages and their meanings.
Your responsibilities as an NFS administrator depend on your site's requirements and the role
of your computer on the network. You might be responsible for all the computers on your local
network, in which instance you might be responsible for determining these configuration items:
Maintaining a server after it has been set up involves the following tasks:
Modifying administrative files to update the lists of file systems your computer shares or
mounts automatically
Remember, a computer can be both a server and a client. So, a computer can be used to share
local file systems with remote computers and to mount remote file systems.
Note If your system has zones enabled and you want to use this feature in a non-global zone,
see Oracle Solaris Administration: Oracle Solaris Zones, Oracle Solaris 10 Zones, and Resource
Management for more information.
Task
Description
For Instructions
Enable WebNFS
See the share_nfs(1M) man page for a complete list of the specific-options.
82
See Also
The next step is to set up your autofs maps so that clients can access the file systems that you
have shared on the server. For more information, see Task Overview for Autofs
Administration on page 100.
By default all file systems that are available for NFS mounting are automatically available for
WebNFS access. The only condition that requires the use of this procedure is one of the
following:
To allow NFS mounting on a server that does not currently allow NFS mounting
To reset the public file handle to shorten NFS URLs by using the public option with the
share command
To force a specific HTML file to be loaded by using the index option with the share
command
You can also use the sharectl utility to configure file-sharing protocols, such as NFS. See
the sharectl(1M) man page and sharectl Command on page 153.
See Planning for WebNFS Access on page 98 for a list of issues to consider before starting the
WebNFS service.
1
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
83
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
84
Task
Description
For Instructions
85
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
to avoid a system hang during reboot. For more information, see mount Options for NFS File
Systems on page 147.
Example 51
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
86
In this instance, the /export/share/local file system from the server bee is mounted on
read-only /mnt on the local system. Mounting from the command line allows for temporary
viewing of the file system. You can unmount the file system with umount or by rebooting the
local host.
Caution All versions of the mount command do not warn about invalid options. The command
silently ignores any options that cannot be interpreted. To prevent unexpected behavior, ensure
that you verify all of the options that were used.
Example 52
Because the automounter allows all users to mount file systems, root access is not required. The
automounter also provides for automatic unmounting of file systems, so you do not need to
unmount file systems after you are finished.
See Using Mirrormounts After Mounting a File System for information about how to mount
additional file systems on a client.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
Chapter 5 Network File System Administration (Tasks)
87
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
If large files are on the file system, you must remove or move these files to another file system.
3
Reset the file system state if the file system has been mounted by using largefiles.
fsck resets the file system state if no large files exist on the file system:
# fsck /export/home1
You can mount from the command line, but to make the option more permanent, add an entry
that resembles the following into /etc/vfstab:
/dev/dsk/c0t3d0s1 /dev/rdsk/c0t3d0s1 /export/home1 ufs 2 yes nolargefiles
88
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
On the NFS client, mount the file system by using the ro option.
You can mount from the command line, through the automounter, or by adding an entry to
/etc/vfstab that resembles the following:
bee,wasp:/export/share/local - /usr/local nfs - no ro
This syntax has been allowed by the automounter. However, the failover was not available while
file systems were mounted, only when a server was being selected.
Note Servers that are running different versions of the NFS protocol cannot be mixed by using
a command line or in a vfstab entry. Mixing servers that support NFS version 2, version 3, or
version 4 protocols can only be performed with autofs. In autofs, the best subset of version 2,
version 3, or version 4 servers is used.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
or=-rose:eng
The access-list that allows read-only mount access to all clients in the
eng netgroup except for the host named rose
/export/share/man
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
Chapter 5 Network File System Administration (Tasks)
89
Manually mount the file system by using a command such as the following:
# mount -F nfs bee:/export/share/local /mnt
In this example, the file system /export/share/local is mounted on the local client by using
the public file handle. An NFS URL can be used instead of the standard path name. If the public
file handle is not supported by the server bee, the mount operation fails.
Note This procedure requires that the file system on the NFS server be shared by using the
public option. Additionally, any firewalls between the client and the server must allow TCP
connections on port 2049. All file systems that are shared allow for public file handle access, so
the public option is applied by default.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
(Optional) If you are using NFS version 2 or version 3, manually mount the file system by using a
command such as the following:
# mount -F nfs nfs://bee:3000/export/share/local /mnt
In this example, the /export/share/local file system is being mounted from the server bee by
using NFS port number 3000. The port number is not required and by default the standard NFS
port number of 2049 is used. You can choose to include the public option with an NFS URL.
Without the public option, the MOUNT protocol is used if the public file handle is not
supported by the server. The public option forces the use of the public file handle, and the
mount fails if the public file handle is not supported.
3
(Optional) If you are using NFS version 4, manually mount the file system by using a command
such as the following:
# mount -F nfs -o vers=4 nfs://bee:3000/export/share/local /mnt
90
Task
Description
For Instructions
Select a different version of NFS on Steps to select a different version of NFS on the server.
the server
If you choose not to use NFS version 4, use this
procedure.
Select a different version of NFS on Steps to select a different version of NFS on the client
How to Select Different Versions of
the client
by modifying SMF parameters. If you choose not to use NFS on a Client on page 94
NFS version 4, use this procedure.
Alternate steps to select a different version of NFS on
How to Use the mount Command to
the client by using the command line. If you choose not Select Different Versions of NFS on a
to use NFS version 4, use this alternate procedure.
Client on page 95
91
92
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
my.comany.com
93
This command reports whether the NFS server service is online or disabled.
6
See Also
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
94
See Also
server-name
/share-point
/local-dir
Become an administrator.
For more information, see How to Obtain Administrative Rights in Oracle Solaris
Administration: Security Services.
value
server-name
/share-point
/local-dir
Note This command uses the NFS protocol to mount the remote directory and overrides the
95
Assign your domain a domain name, and make the domain name known to each computer in
the domain.
Establish public keys and secret keys for your clients' users.
Use the newkey or nisaddcred command. Have each user establish his or her own secure RPC
password by using the chkey command.
Note For information about these commands, see the newkey(1M), the nisaddcred(1M), and
the chkey(1) man pages.
When public keys and secret keys have been generated, the public keys and encrypted secret
keys are stored in the publickey database.
3
If you are running NIS, verify that the ypbind daemon is running.
96
0:00 /usr/sbin/keyserv
0:00 grep keyserv
If the daemon is not running, start the key server by typing the following:
# /usr/sbin/keyserv
5
For more information about security modes, see the nfssec(5) man page.
7
auto_home
-nosuid,sec=dh
When you reinstall, move, or upgrade a computer, remember to save /etc/.rootkey if you do
not establish new keys or change the keys for root. If you do delete /etc/.rootkey, you can
always type the following:
# keylogin -r
Task
Description
Issues to consider before enabling the WebNFS service. Planning for WebNFS Access on
page 98
Enable WebNFS
For Instructions
97
TABLE 54
Task
(Continued)
Description
For Instructions
Enable WebNFS through a firewall Steps to allow access to files through a firewall by using
the WebNFS protocol.
Use a public file handle with autofs Steps to force use of the public file handle when
mounting a file system with the automounter.
4. You can use the index option with the share command to force the loading of an HTML
file. Otherwise, you can list the directory when an NFS URL is accessed.
After a file system is chosen, review the files and set access permissions to restrict viewing of
files or directories, as needed. Establish the permissions, as appropriate, for any NFS file
system that is being shared. For many sites, 755 permissions for directories and 644
permissions for files provide the correct level of access.
You need to consider additional factors if both NFS and HTTP URLs are to be used to access
one web site. These factors are described in WebNFS Limitations With Web Browser Use
on page 187.
server
port
path
Path to file, which can be relative to the public file handle or to the root file system
Note In most browsers, the URL service type (for example, nfs or http) is remembered from
one transaction to the next. The exception occurs when a URL that includes a different service
type is loaded. After you use an NFS URL, a reference to an HTTP URL might be loaded. If such
a reference is loaded, subsequent pages are loaded by using the HTTP protocol instead of the
NFS protocol.
99