On FreeBSD at least you can assign whatever address you want to a loopback interface. I'm currently using aliases on a loopback device (lo1 in this case) for host <-> jail communication. The jails get 172.16.0.0/16.
You can manage this trivially in rc.conf and then restart the netif and route services.
You can manage this trivially in rc.conf and then restart the netif and route services.