FreeBSD - Ein NIC, zwei IPs, zwei Gateways

Bei einigen Hostern bekommt man, wenn man mehr als eine IPv4-Adresse braucht IPs aus unterschiedlichen Netzen. Dies lässt sich wie folgt konfigurieren.

IPGateway
1.2.3.41.2.3.1
5.6.7.85.6.7.1

In der /boot/loader.conf Routingtabellen (fibs) aktivieren:

net.fibs=2

In /etc/rc.conf keinen Eintrag für „defaultrouter“ dafür statische Routigneinträge, die sich auf die Routingtabellen (fib) beziehen.

ifconfig_vtnet0="inet 1.2.3.4 netmask 255.255.255.0 fib 0"
ifconfig_vtnet0_alias0="inet 5.6.7.8 netmask 255.255.255.0 fib 1"

static_routes="FIB0 FIB1"
route_FIB0="-fib 0 default 1.2.3.1"
route_FIB1="-fib 1 default 5.6.7.1"

Firewallregeln in der /etc/pf.conf müssen um „rtable“ ergänzt und für die zweite Routingtabelle dupliziert werden:

# fib 0
pass in on $if proto tcp from any to any port $open_tcp keep state rtable 0
pass in on $if proto udp from any to any port $open_udp keep state rtable 0
# fib 1
pass in on $if proto tcp from any to any port $open_tcp keep state rtable 1
pass in on $if proto udp from any to any port $open_udp keep state rtable 1