давно не занимался таким извращением, но кажется вам понадобится pf (во фре есть ещё пара подобных штук, но я бы не рекомендовал их пользовать, в общем покурить маны надо) ...
man pf
его кажется можно включить, не пересобирая ядро, как KLD
т.е.
Вылез интересный вопрос Имею конфиг на обычном сервере(не роутере) с 1 сетевой
#транспортная сеть /30 ifconfig_em0="inet 192.168.1.2 netmask
255.255.255.252" #живой ИП, на котором всё должно работать и с которого должен уходить трафик ifconfig_em0_alias0="inet 1.1.1.1 netmask 255.255.255.0
" #ещё живой ИП, на котором всё должно работать ifconfig_em0_alias1="inet 1.1.1.2 netmask 255.255.255.0" defaultrouter="
192.168.1.1"
Со входящими коннектами всё понятно - на какой ИП придут, с того и уйдут. Как сказать FreeBSD при исходящих коннектах посылать в шлюз пакеты с src addr не 192.168.1.2
, а 1.1.1.1?
кстати, а на какой адрес уходят пакеты? на 192.168.1.ХХХ или 1.1.1.ХХХ ?
т.е. зачем такой изврат понадобилсо?
На Linux я это могу сделать через что-то вроде ip route replace default via
192.168.1.1 dev eth0 src 1.1.1.1 т.е. выставить src addr для пакетов, уходящих по этому маршруту
На крайний случай можно НАТить, но это обязательно перебор ядра на FreeBSD, что может быть неудобно, да и не очень красивое решение.