Update 2023-12-20
This guide applies only to the VMware based "Virtual Server Cloud" VPS servers, which have been discontinued in mid 2023 and replaced with the "VPS Linux" servers.
Due to problems with getting IPv6 to work reliably with the IONOS VPS, I have also updated the IPv6 Networking section of this guide.
---
This Post was inspired by Thread point-to-point-connection-32-network.82257 and Adding a Public IPv4 and IPv6 Address to a Linux Server (Ubuntu and Debian).
Hello everyone,
in this guide, I want to show you how I have set up the network and installed the VMware tools on my FreeBSD 13 VPS server hosted by IONOS.
Since I've only worked with IONOS so far, I don't know if these instructions can also be used with other VPS providers.
I'm in no way a FreeBSD or network expert, if there are any errors or possible improvements, feel free to let me know.
Prerequisites
This is done in part to increase security by prohibiting direct communication with other VPS servers hosted in the same datacenter network.
IONIS uses the IP addresses 10.255.255.1 as the IPv4 gateway and fe80::1 as the IPv6 gateway. The network interface of the VM is vmx0.
All changes to the network have to be saved in this file or they will be lost when the host is rebooted.
Switch to Insert mode to insert the following lines with
If we run
If we run
If there are any errors, check if your settings in /etc/rc.conf and /etc/resolv.conf are correct and/or local-unbound is running.
I will be using emulators/open-vm-tools-nox11 in this guide (see https://kb.vmware.com/s/article/2149806 for more information).
... and update the repository catalog:
Switch to Insert mode to insert the following line with
Save and quit with
To automatically start the VM guest tools at boot, we have to add the following line to /etc/rc.conf:
Switch to Insert mode to insert the following line with
Save and quit with
To make shure the VM guest tools can communicate with the VMware hypervisor, we need to shut down (not reboot) the VM:
If we start the VM again, we should now be able to ssh into it, download and install other packages etc.
To see if the VM guest tools are running, we can run the following command:
The output should look something like this:
I hope someone else finds this useful.
This guide applies only to the VMware based "Virtual Server Cloud" VPS servers, which have been discontinued in mid 2023 and replaced with the "VPS Linux" servers.
Due to problems with getting IPv6 to work reliably with the IONOS VPS, I have also updated the IPv6 Networking section of this guide.
---
This Post was inspired by Thread point-to-point-connection-32-network.82257 and Adding a Public IPv4 and IPv6 Address to a Linux Server (Ubuntu and Debian).
Hello everyone,
in this guide, I want to show you how I have set up the network and installed the VMware tools on my FreeBSD 13 VPS server hosted by IONOS.
Since I've only worked with IONOS so far, I don't know if these instructions can also be used with other VPS providers.
I'm in no way a FreeBSD or network expert, if there are any errors or possible improvements, feel free to let me know.
Prerequisites
- I am assuming that FreeBSD is already installed on the VPS Server and that you have access to the root shell via the KVM Console.
- I am assuming that local-unbound(8) is used as the DNS resolver and was selected at "System configuration" during the installation.
- If not, set one or more public DNS servers in /etc/resolv.conf (see resolv.conf(5) for details).
- I am assuming that during the installation, no IPv4 or IPv6 configuration was made.
- If so, remove the entries for networking in /etc/resolv.conf.
- I will be using the vi(1) text editor since it comes pre-installed, feel free to install and use any other text editor as soon as the Internet connection is working.
Setting up Networking
Setting up a working internet connection on a IONOS VPS server can be a bit tricky, since we have to work with a static /32 IPv4 and a /128 IPv6 address on our host.This is done in part to increase security by prohibiting direct communication with other VPS servers hosted in the same datacenter network.
IONIS uses the IP addresses 10.255.255.1 as the IPv4 gateway and fe80::1 as the IPv6 gateway. The network interface of the VM is vmx0.
FreeBSD networking
The settings we need to set are held in the configuration file rc.conf(5).All changes to the network have to be saved in this file or they will be lost when the host is rebooted.
IPv4 Networking
Run the following command to edit the file rc.conf: # vi /etc/rc.conf
Switch to Insert mode to insert the following lines with
Esc
and i
:
Code:
ifconfig_vmx0="inet 212.227.xxx.xxx netmask 255.255.255.255"
defaultrouter="10.255.255.1"
static_routes="wan"
route_wan="-host 10.255.255.1 -iface vmx0"
- The first entry tells the system to assign the IPv4 address 212.227.xxx.xxx/32 to the Interface vmx0.
- Replace 212.227.xxx.xxx with the IPv4 address assigned to you and the interface name vmx0 if needed.
- The second entry sets the address 10.255.255.1 of the default gateway.
- The third entry creates a route with the name wan, other names can used aswell.
- The fourth entry route_wan sets the destination to 10.255.255.1 via the interface vmx0
- You can replace route_wan with route_<route name> you've set in static_routes="<route name>" (see route(8) for more information).
IPv6 Networking
Next, insert the following lines for setting up IPv6:
Code:
ifconfig_vmx0_ipv6="inet6 accept_rtadv"
ifconfig_vmx0_alias0="inet6 2001:ba0:xxxx:xxxx::1/128"
- The first entry tells FreeBSD to listen for IPv6 Router Advertisement (RA) messages. These are sent by IONOS routers and contain information such as which IPv6 default gateway to use and how long it is valid. This replaces the old
ipv6_defaultrouter="fe80::1%vmx0"
approach, as there were problems with IPv6 routing not working or the IPv6 default route expiring (e.g. stale ndp cache). - The second entry specifies the static IPv6 address we set up earlier. If there is more than one IPv6 address, they can be specified in additional alias entries such as
ifconfig_vmx0_alias="..."1
and so on.
Code:
ifconfig_vmx0_ipv6="2001:ba0:xxxx:xxxx::1/128"
ipv6_defaultrouter="fe80::1%vmx0"
The first entry tells the system to assign the IPv6 address 2001:ba0:xxxx:xxxx::1/128 to the interface vmx0.Replace 2001:ba0:xxxx:xxxx::1 with the IPv6 address assigned to you and the interface name vmx0 if needed.
The second entry sets the address fe80::1 of the default gateway on the interface vmx0.In FreeBSD, every interface automatically gets assigned a link local IPv6 address in the fe80::/10 range.
If we don't specify the interface where the IPv6 default gateway should connect, FreeBSD might assign it to the loopback interface lo0 and routing will not be possible.
Esc
and :wq
, then press Enter
to confirm.Testing
To see if everything worked, we can use ping(8) to ping FreeBSD.org (for example).If we run
# ping -4 -c 3 freebsd.org
, we should get something like this:
Code:
PING freebsd.org (96.47.72.84): 56 data bytes
64 bytes from 96.47.72.84: icmp_seq=0 ttl=49 time=105.049 ms
64 bytes from 96.47.72.84: icmp_seq=1 ttl=49 time=104.598 ms
64 bytes from 96.47.72.84: icmp_seq=2 ttl=49 time=104.672 ms
If we run
# ping -6 -c 3 freebsd.org
, we should get something like this:
Code:
PING6(56=40+8+8 bytes) 2001:ba0:xxxx:xxxx::1 --> 2610:1c1:1:606c::50:15
16 bytes from 2610:1c1:1:606c::50:15, icmp_seq=0 hlim=49 time=106.029 ms
16 bytes from 2610:1c1:1:606c::50:15, icmp_seq=1 hlim=49 time=106.005 ms
16 bytes from 2610:1c1:1:606c::50:15, icmp_seq=2 hlim=49 time=105.858 ms
If there are any errors, check if your settings in /etc/rc.conf and /etc/resolv.conf are correct and/or local-unbound is running.
Installing VMware Tools
IONOS use VMware vSphere as their hypervisor, for improved resource monitoring and other VM improvements it is recommended to install VM Guest tools.I will be using emulators/open-vm-tools-nox11 in this guide (see https://kb.vmware.com/s/article/2149806 for more information).
Bootstrap pkg
To install packages, we must first bootstrap pkg(8): # pkg bootstrap
... and update the repository catalog:
# pkg update -f
Installation
Next we install the package with the following command: # pkg install -y open-vm-tools-nox11
Enable at startup
After the installation, we get promted to load the fusefs(5) kernel module, so lets add an entry to /boot/loader.conf: # vi /boot/loader.conf
Switch to Insert mode to insert the following line with
Esc
and i
:
Code:
fusefs_load="YES"
Save and quit with
Esc
and :wq
, then press Enter
to confirm.To automatically start the VM guest tools at boot, we have to add the following line to /etc/rc.conf:
vi /etc/rc.conf
Switch to Insert mode to insert the following line with
Esc
and i
:
Code:
vmware_guestd_enable="YES"
Save and quit with
Esc
and :wq
, then press Enter
to confirm.To make shure the VM guest tools can communicate with the VMware hypervisor, we need to shut down (not reboot) the VM:
# poweroff
If we start the VM again, we should now be able to ssh into it, download and install other packages etc.
To see if the VM guest tools are running, we can run the following command:
# ps aux | grep vmware | grep -v grep
The output should look something like this:
Code:
root 70538 0.0 1.0 22404 4984 - S 16:14 0:45.89 /usr/local/bin/vmtoolsd -c /usr/local/share/vmware-tools/tools.conf -p /usr/local/lib/open-vm-tools/plugins/vmsvc
Example rc.conf
Code:
# Host
clear_tmp_enable="YES"
syslogd_flags="-ss"
sendmail_enable="NONE"
hostname="xxxxxxx.online-server.cloud"
keymap="de.kbd"
# IPv4 Network
ifconfig_vmx0="inet 212.227.xxxx.xxxx netmask 255.255.255.225"
defaultrouter="10.255.255.1"
static_routes="wan"
route_wan="-host 10.255.255.1 -iface vmx0"
# IPv6 Network
ifconfig_vmx0_ipv6="2001:ba0:xxxx:xxxx::1/128"
ipv6_defaultrouter="fe80::1%vmx0"
# Services
local_unbound_enable="YES"
sshd_enable="YES"
ntpd_enable="YES"
vmware_guest_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="NO"
Summing up
We should now have:- Working IPv4 Internet connection
- Working IPv6 Internet connection
- VM guest tools installed and working
I hope someone else finds this useful.
Last edited: