Вечный кайф на FreeBSD с помощью VIMAGE
Aug. 20th, 2019 10:59 pmТрадиционно FreeBSD IP-трафик, предназначенный для одного из собственных интерфейсов, обрабатывает через loopback-интерфейс (lo0) [...] Иногда всё же нужно сделать так, чтобы пакеты физически покидали машину и возвращались обратно - например, для тестирования какого-нибудь оборудования для организации канала связи. Удобно такое тестирование делать одной машиной с двумя интерфейсами.
https://dadv.livejournal.com/168858.html
в /boot/loader.conf добавляем: net.fibs=4
в ядро добавляем: options VIMAGE
не делая никаких buildworld/installword, создаём два "пустых" jail, без единого исполняющегося процесса в каждом, зато с собственным сетевым стеком, набором сетевых интерфейсов и таблицей маршрутизации на каждый jail:
перемещаем интерфейс igb0 в jail test0, а igb1 в jail test1, после чего они "исчезают" из хост-системы:
После этого можно, например, запустить jexec test0 ping 10.0.0.2 и пинг с адреса 10.0.0.1 на 10.0.0.2 уходит через интерфейс igb0 в физическую сеть, которая в моём случае замкнута обратно на igb1. tcpdump подтверждает, что пакеты уходят и приходят через igb0/igb1.
Так можно тестировать коммутаторы/медиаконвертеры/модули SFP/что угодно.
https://dadv.livejournal.com/168858.html
в /boot/loader.conf добавляем: net.fibs=4
в ядро добавляем: options VIMAGE
не делая никаких buildworld/installword, создаём два "пустых" jail, без единого исполняющегося процесса в каждом, зато с собственным сетевым стеком, набором сетевых интерфейсов и таблицей маршрутизации на каждый jail:
jail -c name=test0 vnet persist exec.fib=1 jail -c name=test1 vnet persist exec.fib=2
перемещаем интерфейс igb0 в jail test0, а igb1 в jail test1, после чего они "исчезают" из хост-системы:
ifconfig igb0 vnet test0 ifconfig igb1 vnet test1 jexec test0 ifconfig igb0 inet 10.0.0.1/24 jexec test1 ifconfig igb1 inet 10.0.0.2/24
После этого можно, например, запустить jexec test0 ping 10.0.0.2 и пинг с адреса 10.0.0.1 на 10.0.0.2 уходит через интерфейс igb0 в физическую сеть, которая в моём случае замкнута обратно на igb1. tcpdump подтверждает, что пакеты уходят и приходят через igb0/igb1.
Так можно тестировать коммутаторы/медиаконвертеры/модули SFP/что угодно.