====== Sample (and simple) VNET configurations in shell ======
===== Left-Center-Right =====
The left-center-right configuration is the easiest way to test input, forwarding and output paths with virtual network stacks.
The picture below shows the base system with a physical interface (unrelated) and the three virtual nodes not connected to the outside.
The commands below can be used to create this sample configuration.
{{vimage/vnetsamples/vnet-lmr.png}}
- Create the virtual instances
jail -i -c name=left host.hostname=left.example.net vnet persist
jail -i -c name=center host.hostname=center.example.net vnet persist
jail -i -c name=right host.hostname=right.example.net vnet persist
- Create the interfaces and move them to the virtual instances
ifconfig epair create
ifconfig epair create
# assuming that gave us epair0/1 (use ifconfig epair if you want a special number)
ifconfig epair0a vnet left
ifconfig epair0b vnet center
ifconfig epair1a vnet center
ifconfig epair1b vnet right
- Configure the interfaces in each virtual instance We are doing this manually but you could use the rc framework or other ways as well.
jexec left ifconfig epair0a inet 192.0.2.1/30 up
jexec left ifconfig epair0a inet6 2001:db8::1/64 alias
jexec center ifconfig epair0b inet 192.0.2.2/30 up
jexec center ifconfig epair0b inet6 2001:db8::2/64 alias
jexec center ifconfig epair1a inet 192.0.2.5/30 up
jexec center ifconfig epair1a inet6 2001:db8:1::1/64 alias
jexec right ifconfig epair1b inet 192.0.2.6/30 up
jexec right ifconfig epair1b inet6 2001:db8:1::2/64 alias
- Simple single hop tests with ping{,6}, enable forwarding, add default routes and traceroute{,6}s
jexec center ping -c 1 -n 192.0.2.1
jexec center ping -c 1 -n 192.0.2.6
jexec center ping6 -c 5 -n 2001:db8::1
jexec center ping6 -c 5 -n 2001:db8:1::2
jexec center sysctl net.inet.ip.forwarding=1
jexec center sysctl net.inet6.ip6.forwarding=1
jexec left route add -inet default 192.0.2.2
jexec left route add -inet6 default 2001:db8::2
jexec right route add -inet default 192.0.2.5
jexec right route add -inet6 default 2001:db8:1::1
jexec left traceroute -n 192.0.2.6
jexec left traceroute6 -n 2001:db8:1::2
Note that while doing all the syscalls with jexec is not particularly efficient, it can be scripted a lot easier.
==== Script to download ====
A more sophisticated script can be downloaded here: {{vimage/vnetsamples/jail-start-lmr.sh?linkonly|jail-start-lmr.sh}}