In this short article, I am going to cover how to configure a network interface on FreeBSD.
One thing I love about FreeBSD is the feeling of completeness I get when using it. On FreeBSD, the kernel and the core utilities that come installed as base are all maintained by the FreeBSD team. Consequently, if the kernel requires or deprecates certain features, then the base utilities can adjust accordingly. For this reason, the sysadmins don’t have to worry about any compatibility issues.
On Linux, it was almost a standard to use
ifconfig for managing network interfaces. Nevertheless, development of the Linux kernel continued. And,
ifconfig couldn’t provide enough features and flexibility. Predictably, this made a new utility called
ip to replace the old
ifconfig command. Now, the system admins have to learn yet another tool (as if we hadn’t learned enough).
On the other hand, there has been
ifconfig and always
ifconfig on FreeBSD.
So, the agenda of this article is to quickly go over the
ifconfig command. We’ll use it to configure a network interface assigned to my FreeBSD VM.
Assigning an IP
Firstly, we can view the network interfaces by simply running
As highlighted above, we wish to configure the
vtnet1 interface. I attached this to the VM after the FreeBSD installer completed. As a result, the installer didn’t configure it automatically.
vtnet1 some life by assigning it an IP. The general syntax is (
# denotes root):
# ifconfig <interface-name> <IP> <netmask>
# ifconfig vtnet1 192.168.1.6/24
As you might have noticed, we can use the CIDR notation as well.
It’s important to realize that, this will not persist across reboots. In order to do so, we have to tell the FreeBSD init system about it.
Let’s add an entry to
/etc/rc.conf telling the system to configure that network at boot:
Let’s consider that I decide to remove the interface. However, I still want FreeBSD to respond to the two IPs I was using before . It has to do this while only having one interface, namely
vtnet0. This is where I will have to use aliases. Fortunately, this couldn’t be any easier.
# ifconfig vtnet0 alias 192.168.1.6/24
Note that, if the aliased IP needs to communicate in another network, then we can set the netmask accordingly. Nonetheless, I am just going to use that IP in the same network hence the same netmask.
Once again, we need this to persist across reboots. Therefore, I add the following to
I have rebooted the machine and now I can ssh into it using two different IPs.
Although I haven’t covered much, this should hopefully make you familiar with configuring your network interfaces on FreeBSD.
As always, the best place to look for would be the
ifconfig(8) manual page. Additionally, the FreeBSD Handbook is also a great resource.