A very common use of FreeBSD is virtual site hosting, where one server appears to the network as many servers. This is achieved by assigning multiple network addresses to a single interface.
A given network interface has one "real" address,
and may have any number of "alias" addresses.
These aliases are
normally added by placing alias entries in
/etc/rc.conf
.
An alias entry for the interface fxp0
looks like:
ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"
Note that alias entries must start with alias0
and proceed
upwards in order, (for example, _alias1
, _alias2
, and so on).
The configuration process will stop at the first missing number.
The calculation of alias netmasks is important, but
fortunately quite simple. For a given interface, there must be
one address which correctly represents the network's netmask.
Any other addresses which fall within this network must have a
netmask of all 1
s (expressed as either
255.255.255.255
or 0xffffffff
).
For example, consider the case where the
fxp0
interface is
connected to two networks, the 10.1.1.0
network with a netmask of 255.255.255.0
and the 202.0.75.16
network with
a netmask of 255.255.255.240
.
We want the system to appear at 10.1.1.1
through 10.1.1.5
and at
202.0.75.17
through
202.0.75.20
. As noted above, only the
first address in a given network range (in this case,
10.0.1.1
and
202.0.75.17
) should have a real
netmask; all the rest (10.1.1.2
through 10.1.1.5
and
202.0.75.18
through
202.0.75.20
) must be configured with a
netmask of 255.255.255.255
.
The following /etc/rc.conf
entries
configure the adapter correctly for this arrangement:
ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0" ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255" ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255" ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255" ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255" ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240" ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255" ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255" ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.