Во всех статьях opennet в описании ната всегда видел подобные примеры:${ipfw} add divert natd ip from 192.168.1.0/24 to 10.0.0.1 via wi0
${ipfw} add divert natd ip from any to 10.0.0.66это если надо сети 192.168.1.0/24 дать доступ к сети 10.0.0.0/8, к примеру.
Вопрос. А если ip-адрес интерфейса wi0 не постоянный? Что в этом случае делать со вторым правилом? Как указать реальный ip?
И ещё один чайниковский вопрос. После ключевого слова divert идёт номер порта. Его обязательно выбирать из неиспользуемых на хосте портов? А если у меня на хосте 65535 сервисов и все порты забиты? Если же слово "порт" употребляется для связи с приложением, которое будет обрабатывать пакеты с ним связанные, то почему они идут начиная с 8868, а не с 1?
ps. ОС FreeBSD 5.4
>Во всех статьях opennet в описании ната всегда видел подобные примеры:
>
>${ipfw} add divert natd ip from 192.168.1.0/24 to 10.0.0.1 via wi0
>${ipfw} add divert natd ip from any to 10.0.0.66
>
>это если надо сети 192.168.1.0/24 дать доступ к сети 10.0.0.0/8, к примеру.
>
>
>Вопрос. А если ip-адрес интерфейса wi0 не постоянный? Что в этом случае
>делать со вторым правилом? Как указать реальный ip?
>
>И ещё один чайниковский вопрос. После ключевого слова divert идёт номер порта.
>Его обязательно выбирать из неиспользуемых на хосте портов? А если у
>меня на хосте 65535 сервисов и все порты забиты? Если же
>слово "порт" употребляется для связи с приложением, которое будет обрабатывать пакеты
>с ним связанные, то почему они идут начиная с 8868, а
>не с 1?
>
>ps. ОС FreeBSD 5.4логично предположить, что адрес тебе нужно получить в момент добавления правила. Его можно пропарсить из ifconfig например так:
myif='wi0'
myip=`ifconfig $myif | grep broadcast|awk '{print $2}'`
${ipfw} add divert natd ip from any to $myipНомер порта тебе нужно выбрать именно тот, на котором ты запустил демон natd его легко можно изменить на любой другой в диапозоне 1-65534 (man 8 natd), порт natd обычно используется по умолчанию для этого демона и все подобные "названия" сервисов прописаны в файле /etc/services
пс: поищи как прописываются параметры для natd в файлике /etc/defaults/rc.conf
>
>Вопрос. А если ip-адрес интерфейса wi0 не постоянный? Что в этом случае
>делать со вторым правилом? Как указать реальный ip?
>
>И ещё один чайниковский вопрос. После ключевого слова divert идёт номер порта.
>Его обязательно выбирать из неиспользуемых на хосте портов? А если у
>меня на хосте 65535 сервисов и все порты забиты? Если же
>слово "порт" употребляется для связи с приложением, которое будет обрабатывать пакеты
>с ним связанные, то почему они идут начиная с 8868, а
>не с 1?
>
>ps. ОС FreeBSD 5.4проблема со вторым правилом фаервола не единственная - если адрес внешнего интерфейса неизвестен - то natd не сможет корректно запустится и ему надо будет явно указывать alias_address.
>>
>>Вопрос. А если ip-адрес интерфейса wi0 не постоянный? Что в этом случае
>>делать со вторым правилом? Как указать реальный ip?
>>
>>И ещё один чайниковский вопрос. После ключевого слова divert идёт номер порта.
>>Его обязательно выбирать из неиспользуемых на хосте портов? А если у
>>меня на хосте 65535 сервисов и все порты забиты? Если же
>>слово "порт" употребляется для связи с приложением, которое будет обрабатывать пакеты
>>с ним связанные, то почему они идут начиная с 8868, а
>>не с 1?
>>
>>ps. ОС FreeBSD 5.4
>
>проблема со вторым правилом фаервола не единственная - если адрес внешнего интерфейса
>неизвестен - то natd не сможет корректно запустится и ему надо
>будет явно указывать alias_address.man natd /-dynamic?
>>
>>Вопрос. А если ip-адрес интерфейса wi0 не постоянный? Что в этом случае
>>делать со вторым правилом? Как указать реальный ip?
Скорее всего, используете ppp соединение? Тогда испльзуйте nat встроенный в ppp FreeBSD. Самый простой и надежный способ.