Добрый день. Помогите, пожалуйста разобраться с настройкой natd, которая должна несколько отличаться от наиболее часто используемой и описанной во всех букварях, по которой, как правило, natd привязывается к адресу шлюза, имеющему реальный IP, выданный провайдером. А у меня ситуация следующая:
1) провайдером выдан шлюзовой адрес X1.X2.Y1.166, принадлежащий сети X1.X2.Y1.164/30;
2) провайдером выдана сеть реальных адресов X1.X2.Y2.144/29, смаршрутизированная на его стороне на указанный выше шлюзовой адрес.Имеется сервер с тремя сетевыми интерфейсами, задача которого маршрутизировать трафик на шлюз
1) от юзеров с реальными IP-адресами из сети X1.X2.Y2.144/29 напрямую на шлюз;
2) от юзеров локальной сети 192.168.1/24 через NAT.
Сейчас всё настроено и работает как написано. Конфигурация интерфейсов сервера в /etc/rc.conf при этом такая:
defaultrouter="X1.X2.Y1.165"
network_interfaces="lo0 fxp0 fxp1 fxp2"
ifconfig_lo0="inet 127.0.0.1"
ifconfig_fxp0="inet X1.X2.Y2.145 netmask 255.255.255.248 ..."
ifconfig_fxp1="inet X1.X2.Y1.166 netmask 255.255.255.252 ..."
ifconfig_fxp2="inet 192.168.1.1 netmask 255.255.255.0 ..."
gateway_enable="YES"
Не устраивает только одна вещь: natd привязан к интерфейсу fxp1, то есть юзеры локальной сетки выходят в Инет с IP-адресом X1.X2.Y1.166, а хотелось бы, чтоб они ходили с IP-адресом X1.X2.Y2.145, то есть fxp0.
Касательно natd в /etc/rc.conf имеем следующее:
natd_enable="YES"
natd_interface="fxp1"
natd_flags="-s -m -u"
А в /etc/rc.firewall вот, что:
...
add 310 deny all from 192.168.1.0/24 to any in via fxp1
add 400 divert natd all from 192.168.1.0/24 to any out via fxp1
add 440 divert natd all from any to X1.X2.Y1.166 in via fxp1
add 450 pass all from any to 192.168.1.0/24 via fxp1
...
Если в natd_interface и в этих правилах ipfw изменить fxp1 на fxp0, а в 440-м правиле
X1.X2.Y1.166 заменить на X1.X2.Y2.145, то юзеры из локальной сетки почему-то не могут выйти в Инет через NAT. Почему? Где копать?