>>>имеем - FreeBSD, внутрений и внешний интерфейс, на внешнем 2 IP адреса.
>>>как при помощи ipfw и natd заставить натить протоколы с разных
>>>ip адресов? например почтовые протоколы только с первого, всё другое -
>>>только со второго. нашёл варианты чего-то подобного, но для двух внешних
>>>сетевых интерфейсов, попробовал - не получается.
>>
>>
>>Запускай два natd, см. ключ -a
>>Делай divert нужных протоколов на порт соответсвующего nat'а.
>
>собственно так и делалось. вот сейчас разобрался почему не получалось.
>т.е. протокол, попавший в один divert не должен попадать в другой. это
>как бы и понятно, но у меня так и не вышло
>заставить понимать ipfw слово not перед протоколом, хотя в мануале написано
>что можно.
>в итоге сейчас имею токую работающую схему
>divert 8669 tcp from any 25 to any via rl0
>divert 8669 tcp from any to any 25 via rl0
>divert 8668 tcp from any to any 5190 via rl0
>divert 8668 tcp from any 5190 to any via rl0
>по крайней мере smtp и ася идут с разных внешних IP
мда, схема то работающая, но неудобная до беспредела :( это мне надо диверту перечислять абсолютно все порты, которые я хочу выпускать. тут уже и остальные правила практически не нужны становяться. а что делать с программами использующими динамические порты, например тот же активный FTP? нужно что бы NOT перед протоколом работало однозначно. что бы первому диверту отдавать только 25, а второму всё КРОМЕ 25. подскажите, может это с определёных версий начинает работать, может мне стоит обновиться.
|