Softpanorama
(slightly skeptical) Open Source Software Educational Society

May the source be with you, but remember the KISS principle ;-)

Google   


Administering Logical Network Interfaces

Logical interfaces are also referred to as virtual interfaces. You can configure an interface to have many different IP addresses, even IP addresses that are in different IP classes. This is one way that a single system can appear to be multiple systems.

Logical interfaces do not have to exist on the same subnet as the primary interface.

Each logical interface is assigned a unique IP address and a unique host name in cases in which:

Some advantages of logical interfaces are:

Some disadvantages of logical interfaces are:

Physical network interfaces have names of the form:

driver-name physical-unit-number

For example: hme0, qfe3.

Logical interfaces have names of the form:

driver-name physical-unit-number:logical-unit-number
for example: hme0:1, qfe3:1.

A system with one interface can appear as two different systems.

The /etc/hostname.interface File

The S30network.sh startup script at run level S reads the /etc/hostname.interface file. The ifconfig utility used within the script assigns an IPv4 address on the local system for each IPv4 interface. At least one /etc/hostname.interface  file must exist on the local system for each interface to be configured. The Solaris installation program creates this file only for the primary interface. Additional interfaces are configured by manually creating additional hostname.interface  files.

These files must contain at least one entry: the host name or the IPv4 address that is associated with the network interface.

For example, if the hme0 interface is the primary network interface for a system called myhost, the file is called /etc/hostname. hme0 and contains at least one line, which is the name of the system, myhost.

Configuring Logical Interfaces

After a physical interface is plumbed (has streams set up for IP and is open), and configured as up by the ifconfig utility, you can configure logical interfaces that are associated with the physical interface by separate plumb or addif options to the ifconfig utility.

To view the current configuration of the interfaces on the system before adding a logical interface, use the ifconfig utility:


# ifconfig -a


lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000


hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.30.31 netmask ffffff00 broadcast 192.168.30.255
ether 8:0:20:b9:72:23


qfe0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.1.1 netmask ffffff00 broadcast 192.168.1.255
ether 8:0:20:b9:72:23

To configure logical network interface 1 on the hme0 physical interface,  use the ifconfig utility. In this example, the logical interface is assigned  an IP address of 192.169.1.1:

# ifconfig hme0:1 plumb 192.169.1.1 up

To view the changes made to the interface, use the ifconfig utility:

# ifconfig -a


lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000

hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.30.31 netmask ffffff00 broadcast 192.168.30.255
ether 8:0:20:b9:72:23

hme0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.169.1.1 netmask ffffff00 broadcast 192.169.1.255

qfe0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.1.1 netmask ffffff00 broadcast 192.168.1.255
ether 8:0:20:b9:72:23

The hme0:1 interface is now configured, it has a default netmask of ffffff00 (255.255.255.0), and it has a broadcast address of  192.169.1.255.

You could have assigned different values if you wanted to. Notice that the index number is unique for each physical interface, while logical interfaces use the physical interface’s index number.

The addif Option

It can be tedious to increment the logical interface number each time you add logical interfaces. The ifconfig utility includes the addif option, which causes the utility to add the next available logical interface.

For example, to add the next logical interface with an IP address of 192.168.55.1, use a command similar to the following:

# ifconfig hme0 addif 192.168.55.1 up
Created new logical interface hme0:2

The same results can be achieved by editing the /etc/hostname.hme0 file so that its contents are similar to the following:

# cat /etc/hostname.hme0
myhost up
addif 192.168.55.1 up

Then reboot the system using  init 6 to configure the logical interface. To view the changes made to the interface, use the ifconfig utility:

# ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000

hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.30.31 netmask ffffff00 broadcast 192.168.30.255
ether 8:0:20:b9:72:23

hme0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.55.1 netmask ffffff00 broadcast 192.168.55.255

qfe0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.1.1 netmask ffffff00 broadcast 192.168.1.255
ether 8:0:20:b9:72:23

The hme0:1 interface is added and is functional.

Unconfiguring Logical Interfaces

To unconfigure a logical interface, use the ifconfig utility with the down and unplumb options. Use the down option before the unplumb option to make sure that the interface is shut down in the proper order and that no data is lost. For example, to unconfigure the hme0:1 interface, enter the following:

# ifconfig hme0:1 down unplumb

To verify that the interface is removed, use the ifconfig utility:

# ifconfig -a

lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000


hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.30.31 netmask ffffff00 broadcast 192.168.30.255
ether 8:0:20:b9:72:23


hme0:2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 192.168.55.1 netmask ffffff00 broadcast 192.168.55.255


qfe0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 192.168.1.1 netmask ffffff00 broadcast 192.168.1.255
ether 8:0:20:b9:72:23

The hme0:1 interface is no longer available.

When you know the logical interface’s IP address, but you do not know to which logical interface the address is assigned, use the ifconfig with the removeif option. For example:

# ifconfig hme0 removeif 192.168.55.1

Note: If you are logged in remotely using this interface for your connection, you will lose connection to the system.


Copyright © 1996-2008 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. Submit comments This document is an industrial compilation designed and created exclusively for educational use and is placed under the copyright of the Open Content License(OPL). Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

Standard disclaimer: The statements, views and opinions presented on this web page are those of the author and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

Last modified: February 28, 2008