Извините за повторение вопроса, но тема очень важная.
И так. Есть машина, на ней 3 карточки:
1) fxp0 смотрит на клиентов. Интерфейс 10.0.0.1 и 192.168.1.1. Адреса клиентов 10.0.0.0/24 и 192.168.1.0/24
2) fxp1 смотрит на 1-ого провайдера.
2) fxp2 смотрит на 2-ого провайдера.
На машинке стоят считалка и куча правил фаэрволла. Как сделать, что бы сетка 10.0.0.0/24 ходила через мою машинку на 1-ого провайдера. А сетка 192.168.1.0/24 ходила на 2-ого провайдера. Адреса реальные. То бишь как сделать два шлюза по умолчанию.
route add 10.0.0.0/24 isp1
route add 192.168.1.0/24 isp2
НУУ, немного не так. Предыдущий ответ полный бред.Решение
ipfw add fw isp1 ip from 10.0.0.0/24 to any
ipfw add fw isp2 ip from 192.168.1.0/24 to anyТолько мне кажется тебе нужен еще и NAT.
С ним то и проблема. Если пакет прошел через эти правила, то он не попадет на НАТ или наоборот. Может кто-то знает как этого избежать??
Хотя вот что мне пришло в голову(не знаю правильно или нет ;))1) Разных клиентов заворачиваешь на разные НАТы:
ipfw add divert 8668 ip from 10.0.0.0/24 to any via <сетевая, смотрящая на isp1>
### Пример - ipfw add divert 8668 ip from 10.0.0.0/24 to any via rl1
ipfw add divert 8668 ip from any to <IP сетевой, смотрящей на isp1> via <сетевая, смотрящая на isp1>
### Пример - ipfw add divert 8668 ip from any to 193.234.234.2 via rl1ipfw add divert 8669 ip from 192.168.1.0/24 to any via <сетевая, смотрящая на isp2>
ipfw add divert 8669 ip from any to <IP сетевой, смотрящей на isp2> via <сетевая, смотрящая на isp2>
А потом самое интересное -2) Все запросы, исходящие с интерфейса, смотрящего на isp1 направлять на isp1
ipfw add fw isp1 ip from <IP сетевой, смотрящей на isp1> to any
### Пример ipfw add fw 193.234.234.1 ip from 193.234.234.2 to anyАналогично для isp2 -
ipfw add fw isp2 ip from <IP сетевой, смотрящей на isp2> to anyПолучается так мы вроде как обходим default gateway на FreeBSD,для твоих клиентов (10.0.0.0/24, 192.168.1.0/24). При этом для самой FreeBSD
default gateway остается.(Обрати на это внимание).Попробуй, если получится с тебя Пиво ;).
Если нет, всемогущий All поправь меня. Мне этот вопрос самону интересен.
извиняюсь за ошибки - Везде вместо fw - fwd>ipfw add fw isp1 ip from 10.0.0.0/24 to any
ipfw add fwd isp1 ip from 10.0.0.0/24 to any
>ipfw add fw isp2 ip from 192.168.1.0/24 to any
ipfw add fwd isp2 ip from 192.168.1.0/24 to any
>ipfw add fw isp1 ip from <IP сетевой, смотрящей на isp1> to any
ipfw add fwd isp1 ip from <IP сетевой, смотрящей на isp1> to any
>ipfw add fw isp2 ip from <IP сетевой, смотрящей на isp2> to any
ipfw add fwd isp2 ip from <IP сетевой, смотрящей на isp2> to any
Только-что проверил. С небольшими исправлениями ВСЕ заработало.Вот работающая настройка:
#### NATD ####
ipfw add divert 8668 ip from 10.0.0.0/24 to any
ipfw add divert 8668 ip from any to <IP fxp1> via fxp1
ipfw add divert 8669 ip from 192.168.1.0/24 to any
ipfw add divert 8669 ip from any to <IP fxp2> via fxp2
##### FWD #####
ipfw add fwd <IP isp1> ip from <IP fxp1> to any
ipfw add fwd <IP isp2> ip from <IP fxp2> to anyНу и соответственно, запускаешь natd на 8668 порту для интерфейса fxp1, и natd на 8669 порту для интерфейса fxp2. Никаких дополнительных route add не нужно.
P.S. И пусть мне плюнут в лицо тот кто скажет скажет что Policy Routing может делать только Linux.
И опять ошибки;)
>P.S. И пусть мне плюнут в лицо тот кто скажет скажет что Policy Routing может делать только Linux - Вот это я ВЫРАЗИЛСЯ.P.S. И пусть мне плюнут в лицо те, кто скажут что Policy Routing можно настроить только под Linux'ом.
>Ну и соответственно, запускаешь natd на 8668 порту для интерфейса fxp1, и
>natd на 8669 порту для интерфейса fxp2. Никаких дополнительных route add
>не нужно.
>
>P.S. И пусть мне плюнут в лицо тот кто скажет скажет что
>Policy Routing может делать только Linux.
Не совсем понятно как можно запустить natd с разными интерфейсами
>Не совсем понятно как можно запустить natd с разными интерфейсамиМожно запустить любое количество natd, только у них должен должен быть разный порт и интерфейс. То есть не один natd с разными интерфейсами, а несколько natd.
У меня на сервере работают 3 natd для разных интерфейсов.
Max извини просто у меня проблема. Хотел попробовать решить этим же способом.
Мне нужно пропустить в локальную сеть пользователя с пределенного инетовского адреса.
Первый divert (8668) переправляет пакеты из локалки в инет.
Хотел поставить второй divert (8888), который переправляет c определенного IP на локальную машине. Почему-то не работает.
>Max извини просто у меня проблема. Хотел попробовать решить этим же способом.
>
>Мне нужно пропустить в локальную сеть пользователя с пределенного инетовского адреса.
>Первый divert (8668) переправляет пакеты из локалки в инет.
>Хотел поставить второй divert (8888), который переправляет c определенного IP на локальную
>машине. Почему-то не работает. .
>>Мне нужно пропустить в локальную сеть пользователя с пределенного инетовского адреса.
А это чье??? 8))
Разве это не желание тунеля?????
Тогда выражай свою мысль пояснее...
Пость сюда "ipfw s", "netstat -rn", какие ИП куда пускать...
Вот тогда можно и говорить нормально....P/S
Пишу тебе эти строки из Mozilla 1.1 FreeBSD 4.6.2
И живу я под ней так долго, что про виндовс вспоминаю когда у юзверей что-то падает.
Вот ipfw list00100 allow ip from any to any via lo0
00200 allow ip from any to any via ed0
00300 deny icmp from any to any frag
00400 allow icmp from any to any
00500 divert 8668 ip from any to any via xl0
00540 allow tcp from 213.x.x.x to any out xmit xl0
00541 allow tcp from any to 213.242.27.208 via xl0
00641 allow tcp from any 20 to any
00741 allow tcp from any to any 20
00841 allow tcp from any to any 21
00941 allow tcp from any 21 to any
01041 allow tcp from 192.168.255.51 to any 80
01141 allow tcp from 192.168.255.52 to any 80
01241 allow tcp from 192.168.255.53 to any 80
01341 allow tcp from 192.168.255.54 to any 80
01441 allow tcp from any 80 to 192.168.255.51
01541 allow tcp from any 80 to 192.168.255.52
01641 allow tcp from any 80 to 192.168.255.53
01741 allow tcp from any 80 to 192.168.255.54
01841 allow udp from any to any 53
01941 allow udp from any 53 to any
65535 deny ip from any to any
Мне поставили одну машинку с Win2000. К ней нужно осуществить доступ из интернета.
Кроме того в сети находиться почтовый сервет. С него пользователи тоже должны снимать почту через интеренет.
В принципе это дело трех-четырех строчек. IPFIREWALL, IPDIVERT, IPFIREWAL_FORWARD в ядре есть.
>Мне поставили одну машинку с Win2000. К ней нужно осуществить доступ
>из интернета.
>Кроме того в сети находиться почтовый сервет. С него пользователи тоже должны
>снимать почту через интеренет.
>В принципе это дело трех-четырех строчек. IPFIREWALL, IPDIVERT, IPFIREWAL_FORWARD в ядре есть.
>man natd
<-------->
-redirect_port proto targetIP:targetPORT[-targetPORT]
[aliasIP:]aliasPORT[-aliasPORT]
[remoteIP[:remotePORT[-remotePORT]]]
Redirect incoming connections arriving to given port(s) to
another host and port(s). Argument proto is either tcp or
udp, targetIP is the desired target IP number, targetPORT is
the desired target port number or range, aliasPORT is the
requested port number or range, and aliasIP is the aliasing
address. Arguments remoteIP and remotePORT can be used to
specify the connection more accurately if necessary. The
targetPORT range and aliasPORT range need not be the same
numerically, but must have the same size. If remotePORT is
not specified, it is assumed to be all ports. If remotePORT
is specified, it must match the size of targetPORT, or be 0
(all ports). For example, the argumenttcp inside1:telnet 6666
means that incoming TCP packets destined for port 6666 on
this machine will be sent to the telnet port on the inside1
machine.tcp inside2:2300-2399 3300-3399
will redirect incoming connections on ports 3300-3399 to host
inside2, ports 2300-2399. The mapping is 1:1 meaning port
3300 maps to 2300, 3301 maps to 2301, etc.
<-------->
Классно. С man natd я знаком. Почту по 25 и 110 я могу прокинуть.
Наверно там больше подходит
redirect_addres.
Хотя это я тоже пробовал.
redirect_address 192.168.255.101 <внешний адрес>
natd у меня запускается. Но переброс пакетов на станцию почемуто не идет.
>Классно. С man natd я знаком. Почту по 25 и 110 я
>могу прокинуть.
>Наверно там больше подходит
>redirect_addres.
>Хотя это я тоже пробовал.
>redirect_address 192.168.255.101 <внешний адрес>
>natd у меня запускается. Но переброс пакетов на станцию почемуто не идет.
>
Алексей, ты подумай, если бы твоя настройка работала бы, т.е. при обращении на любой порт роутера запрос пересылался на твою внутреннюю машину, КАК тогда будет работать твой ИНЕТ серез роутер и вообще обращение к твоему роутеру.
Поэтому redirect_address работает только для определенных портов.
Если тебе надо пробрасывать весь трафик - дай серверу win2000 реальный адрес и настрой маршрутизацию.
>Алексей, ты подумай, если бы твоя настройка работала бы, т.е. при обращении
>на любой порт роутера запрос пересылался на твою внутреннюю машину, КАК
>тогда будет работать твой ИНЕТ серез роутер и вообще обращение к
>твоему роутеру.
>Поэтому redirect_address работает только для определенных портов.
>Если тебе надо пробрасывать весь трафик - дай серверу win2000 реальный адрес
>и настрой маршрутизацию.
Абсолютно поддерживаю!!!
Там ведь было написано...
Вот и надо сделать приблизительно так:
-redirect_port tcp 192.168.255.101:2300-2399 3300-3399
А порты поставь те которые тебенужны....
>>Алексей, ты подумай, если бы твоя настройка работала бы, т.е. при обращении
>>на любой порт роутера запрос пересылался на твою внутреннюю машину, КАК
>>тогда будет работать твой ИНЕТ серез роутер и вообще обращение к
>>твоему роутеру.
>>Поэтому redirect_address работает только для определенных портов.
>>Если тебе надо пробрасывать весь трафик - дай серверу win2000 реальный адрес
>>и настрой маршрутизацию.
>
>
>Абсолютно поддерживаю!!!
>Там ведь было написано...
>Вот и надо сделать приблизительно так:
>-redirect_port tcp 192.168.255.101:2300-2399 3300-3399
>А порты поставь те которые тебенужны....Правда можно и с помощью Natd пробросить трафик, но для этого нужен дополнительный Внешний адрес из той же подсети что и у роутера.
Прописываешь алиас на внешний интерфейс и настраиваешь Natd с опцией redirect_address на этот дополнительный адрес. Так называемы Static NAT.
>Max извини просто у меня проблема. Хотел попробовать решить этим же способом.
>
>Мне нужно пропустить в локальную сеть пользователя с пределенного инетовского адреса.
>Первый divert (8668) переправляет пакеты из локалки в инет.
>Хотел поставить второй divert (8888), который переправляет c определенного IP на локальную
>машине. Почему-то не работает.А оно у тебя так и не заработает!
Вопервых для того что бы из инета к тебе в локалку шли пакеты без натинга надо реализовать две вещи:
- тунель между тобой и инетовской машиной
- настроить правила для натинга так что бы они не натили этот трафик.
Натинг здесь противопоказан.
Что-то я не понял. Почему противопоказан natd.
На сдесь же форуме пишут что это работает.
Если у меня за firewall работают два сервера www и почтовый и я к ним не могу пропустить пользователей которые стучаться на ip шлюза, то что это за исполнение серверной системы, ты не в Windows, не путай. В iptable это делается, просто мне надо с помощью freebsd. И freebsd это делает. Я же через redir сделал что бы почту считывал.
Тунель пропускает с определенных ip в сеть и делает машину принадлежаще домену. Мне это вовсе не нужно.
а что прописать в rc.conf что-бы запустить несколько natd c разными интерфейсами,так что-ли:natd_enable="YES"
natd_interface="fxp0"
natd_interface="fxp1"
natd_flag="-u"
>а что прописать в rc.conf что-бы запустить несколько natd c разными интерфейсами,так
>что-ли:
>
>natd_enable="YES"
>natd_interface="fxp0"
>natd_interface="fxp1"
>natd_flag="-u"А что natd можно запускать только из rc.conf??
Просто стартуй natd из командной строки с нужными тебе опциями.
как например из командной строки запустить два natd на разные интерфейсы,у меня например запущен одни на fxp0 ,если я хочу запустить второй :
#/sbin/natd -n fxp1 ,то выдается такое сообщение:
natd: Unable to bind divert socket.: Address already in use
>как например из командной строки запустить два natd на разные интерфейсы,у меня
>например запущен одни на fxp0 ,если я хочу запустить второй :
>
>#/sbin/natd -n fxp1 ,то выдается такое сообщение:
>natd: Unable to bind divert socket.: Address already in use
Да запросто!
natd -interface fxp1 -p 1111
^^^^
порт на который надо переправить нужный трафик!
Привет ВСЕМ!!!!Плиз, кто-нить из спецов по DNSу
постучите в аську 106819115ОЧЕНЬ НУЖНО!!!!
или на мыло gumka@aydit.kiev.ua
Прошу у Всех прощения, но Или я перегрелся или из всего форума так и не понял сути вопроса,
Алексей ты что хотишь чтобы к тебе с инета на win машину сыпалось??
коллеги говорят правильно самое верное решение
natd.conf содерж нечто подобное:
dynamic yes
use_sockets yes
same_ports yes
redirect_port tcp 192.168.0.2:3002 1494
Сразу замечу, что 192.168.0.2 win200Advserv на нём поднят терминальн. Citrix(порт 1494), и все юзера через инет могут работать с любыми предложениями на нём, к примеру 1С, Общие базы; а снаружи на реальном ип открыт порт 3002 по кот юзера ко мне ходят, только для них ещё прописать надо нечто типа
ipfw - f add allow tcp from xxx to 192.168.0.2 1494
Определись что хочешь..!!!