Коллега занимающийся FREEBSD убыл в отпуск, а я с ipfw не сталкивался (сам iptables в linux-е ковыряю). Появилась срочная проблема: нужно одной машине из внутренней сети сделать NAT на один из внешних интерфейсов.Есть внешний интерфейс em0, смотриящий в инет. На нем висят два IP адреса - xxx.xxx.xxx.170 и xxx.xxx.xxx.173
Написал правило "00500 divert 8668 ip from 192.168.1.100 to any via em0". Пускает через 173-й айпишник. Попробовал в этом правиле em0, заменить на xxx.xxx.xxx.170 - результат тот же.
Как мне настроить чтобы пакеты шли через 170-й IP адрес?
Заранее спасибо за помощь.
Народ! Неужели никак не указать IP-адрес через который будут транслироваться пакеты???
Отзовитесь пожалуйста
>[оверквотинг удален]
>Есть внешний интерфейс em0, смотриящий в инет. На нем висят два IP
>адреса - xxx.xxx.xxx.170 и xxx.xxx.xxx.173
>
>Написал правило "00500 divert 8668 ip from 192.168.1.100 to any via em0".
>Пускает через 173-й айпишник. Попробовал в этом правиле em0, заменить на
>xxx.xxx.xxx.170 - результат тот же.
>
>Как мне настроить чтобы пакеты шли через 170-й IP адрес?
>
>Заранее спасибо за помощь.а провайдерские шлюзы у адресов одни и те же?
>а провайдерские шлюзы у адресов одни и те же?Угу... шлюз провайдера xxx.xxx.xxx.161
Мне в принципе хочется понять. Позволяет ли синтаксис ipfw указать конкретный ip-адрес в качестве внешнего, если они на одном интерфейсе висят. Потому что написав
ipfw 00500 divert 8668 ip from 192.168.1.100 to any via xxx.xxx.xxx.170 пакеты всё равно идут через 173-й. Т.е. правило то работает (пакеты то бегают), только так как ему нравится.PS. Кстати... не знаю имеет ли это значение, но ifconfig говорит, что 173-й IP в конфигах значится первым, а 170-й вторым.
мой рецепт - запускай NAT с указанием конфиг файла:/sbin/natd -f /etc/natd/vr0.conf
а в конфиге можешь прописать все что угодно, например:
log no
verbose no
dynamic no
interface vr0
alias_address 111.111.111.111
port 8668
same_ports yes
use_sockets yes
#deny_incoming no
#unregistered_only no
на самом деле все то же самое можно и указать в командной строке...
(но мне больше нравится с конфигом) ;-)
да, я неправильно написалнужно либо использовать интерфейс, либо IP адрес
насколько я понимаю в твоем случае надо прописать конкретный адрес, следовательно:#interface vr0 (закоментировано)
alias_address 111.111.111.111