Monitoring the Interface Configuration With the ifconfig Command
You use the ifconfig command to manually assign IP addresses to interfaces and
to manually configure interface parameters. In addition, the Solaris startup scripts run ifconfig
to configure pseudo interfaces, such as 6to4 tunnel endpoints.
This book contains many tasks that use the various options of the versatile
ifconfig command. For a complete description of this command, its options, and its
variables, refer to the ifconfig(1M) man page. The basic syntax of ifconfig
follows:
ifconfig interface [protocol-family]
How to Get Information About a Specific Interface
Use the ifconfig command to determine basic information about the interfaces of a
particular system. For example, a simple ifconfig query can tell you the
following:
Device names of all interfaces on a system
All IPv4 and, if applicable, all IPv6 addresses that are assigned to the interfaces
Whether these interfaces are currently configured
The following procedure shows how to use the ifconfig command to obtain
basic configuration information about a system's interfaces.
- On the local host, assume the Primary Administrator role, or become superuser.
The Primary Administrator role includes the Primary Administrator profile. To create the role
and assign the role to a user, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.
- Obtain information about a particular interface.
# ifconfig interface
The output from the ifconfig command has the following format:
Status line
The first line in the ifconfig command output includes the interface name and status flags currently associated with the interface. Also, the status line includes the maximum transmission unit (MTU) that is configured for the particular interface and an index number. Use the status line to determine the current state of the interface.
IP address information line
The second line of the ifconfig output includes the IPv4 address or IPv6 address that is configured for the interface. For an IPv4 address, the configured netmask and broadcast address are also displayed.
MAC address line
When you run the ifconfig command as superuser or with a similar role, the ifconfig output contains a third line. For an IPv4 address, the third line shows the MAC address (Ethernet layer address) that is assigned to the interface. For an IPv6 address, the third line in the output shows the link-local address that the IPv6 in.ndpd daemon generates from the MAC address.
Example 8-1 Basic Interface Information From the
ifconfig Command
The following example shows how to obtain information about the eri interface
on a particular host by using the ifconfig command.
# ifconfig eri
eri0: flags=863<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 1
inet 10.0.0.112 netmask ffffff80 broadcast 10.8.48.127
ether 8:0:20:b9:4c:54
The next table describes the variable information in an ifconfig query. The preceding
output is used as an example.
Variable |
Screen Output |
Description |
Interface name |
eri0 |
Indicates the device name of
the interface whose status was requested in the ifconfig command. |
Interface status |
flags=863<UP |
Displays the status
of the interface, including any flags that are currently associated with the interface.
Here you can determine whether the interface is currently initialized (UP) or not
initialized (DOWN). |
Broadcast status |
BROADCAST |
Indicates that the interface supports IPv4 broadcasts. |
Transmission status |
RUNNING |
Indicates that the
system is transmitting packets through the interface. |
Multicast status |
MULTICAST, IPv4 |
Shows that the interface supports
multicast transmissions. The example interface supports IPv4 multicast transmissions. |
Maximum transmission unit |
mtu 1500 |
Shows that this
interface has a maximum transfer size of 1500 octets. |
IP address |
inet 10.0.0.112 |
Displays the IPv4
or IPv6 address that is assigned to the interface. Example interface eri0 has
the IPv4 address 10.0.0.112. |
Netmask |
netmask ffffff80 |
Displays the IPv4 netmask of the particular interface. Note
that IPv6 addresses do not use netmasks. |
MAC address |
ether 8:0:20:b9:4c:54 |
Shows the interface's Ethernet layer address. |
How to Display Interface Address Assignments
Routers and multihomed hosts have more than one interface and, often, more than
one IP address assigned to each interface. You can use the ifconfig
command to display all addresses that are assigned to the interfaces of a
system. You can also use the ifconfig command to display only IPv4 or
IPv6 address assignments. To additionally display the MAC addresses of the interfaces, you
must first log in as superuser or assume the appropriate role.
For more information on the ifconfig command, see the ifconfig(1M) man page.
- On the local system, assume the Network Management role or become superuser.
Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.
- Obtain information about all interfaces.
You can use variations of the ifconfig -a command to do the following:
View all addresses of all interfaces on the system.
# ifconfig -a
View all IPv4 addresses that are assigned to a system's interfaces.
# ifconfig -a4
If the local system is IPv6-enabled, display all IPv6 addresses that are assigned to a system's interfaces.
ifconfig -a6
Example 8-2 Displaying Addressing Information for All Interfaces
This example shows entries for a host with solely a primary network interface,
qfe0. Nevertheless, the ifconfig output shows that three forms of addresses are currently
assigned to qfe0: loopback (lo0), IPv4 (inet), and IPv6 (inet6). In the IPv6 section
of the output, note that the line for interface qfe0 displays the link-local
IPv6 address. The second address for qfe0 is displayed on the qfe0:1 line.
% ifconfig -a
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
qfe0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 10.0.0.112 netmask ffffff80 broadcast 10.0.0.127
ether 8:0:20:b9:4c:54
lo0: flags=2000849 <UP,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
inet6 ::1/128
qfe0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
ether 8:0:20:b9:4c:54
inet6 fe80::a00:20ff:feb9:4c54/10
qfe0:1: flags=2080841 <UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 index 2
inet6 2001:db8:3c4d:48:a00:20ff:feb9:4c54/64
Example 8-3 Displaying Addressing Information for All IPv4 Interfaces
This example shows the IPv4 address that is configured for a multihomed host.
You do not need to be logged in as superuser to run
this form of the ifconfig command.
% ifconfig -a4
lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
qfe0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 10.0.0.112 netmask ffffff80 broadcast 10.0.0.127
ether 8:0:20:b9:4c:54
qfe1: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 10.0.0.118 netmask ffffff80 broadcast 10.0.0.127
ether 8:0:20:6f:5e:17
Example 8-4 Displaying Addressing Information for All IPv6 Interfaces
This example shows only the IPv6 addresses that are configured for a particular
host. You do not need to be logged in as superuser to
run this form of the ifconfig command.
% ifconfig -a6
lo0: flags=2000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
inet6 ::1/128
qfe0: flags=2000841 <UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 2
ether 8:0:20:b9:4c:54
inet6 fe80::a00:20ff:feb9:4c54/10
qfe0:1: flags=2080841 <UP,RUNNING,MULTICAST,ADDRCONF,IPv6> mtu 1500 index 2
inet6 2001:db8:3c4d:48:a00:20ff:feb9:4c54/64
This output from ifconfig shows the following three types of IPv6 address forms
that are assigned to the single interface of a host:
- lo0
IPv6 loopback address.
- inet6 fe80::a00:20ff:feb9:4c54/10
Link-local address that is assigned to the primary network interface.
- inet6 2001:db8:3c4d:48:a00:20ff:feb9:4c54/64
IPv6 address, including subnet prefix. The term ADDRCONF in the output indicates that this address was autoconfigured by the host.