The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Policy routing FreeBSD"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Policy routing FreeBSD"
Сообщение от Alexander Искать по авторуВ закладки on 30-Авг-02, 08:42  (MSK)
Извините за повторение вопроса, но тема очень важная.
И так. Есть машина, на ней 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-ого провайдера. Адреса реальные. То бишь как сделать два шлюза по умолчанию.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Policy routing FreeBSD"
Сообщение от Asmerald emailИскать по авторуВ закладки on 30-Авг-02, 15:32  (MSK)
route add 10.0.0.0/24 isp1
route add 192.168.1.0/24 isp2
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Policy routing FreeBSD"
Сообщение от Max Искать по авторуВ закладки on 31-Авг-02, 17:34  (MSK)
НУУ, немного не так. Предыдущий ответ полный бред.

Решение

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 rl1

ipfw 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 поправь меня. Мне этот вопрос самону интересен.

  

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Policy routing FreeBSD"
Сообщение от Max Искать по авторуВ закладки on 31-Авг-02, 17:39  (MSK)
извиняюсь за ошибки - Везде вместо 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

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: Policy routing FreeBSD"
Сообщение от Max Искать по авторуВ закладки on 31-Авг-02, 18:38  (MSK)
Только-что проверил. С небольшими исправлениями ВСЕ заработало.

Вот работающая настройка:

####  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.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: Policy routing FreeBSD"
Сообщение от Max Искать по авторуВ закладки on 31-Авг-02, 18:45  (MSK)
И опять ошибки;)
>P.S. И пусть мне плюнут в лицо тот кто скажет скажет что Policy Routing может делать только Linux - Вот это я ВЫРАЗИЛСЯ.

P.S. И пусть мне плюнут в лицо те, кто скажут что Policy Routing можно настроить только под Linux'ом.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: Policy routing FreeBSD"
Сообщение от Алексей emailИскать по авторуВ закладки on 03-Сен-02, 15:50  (MSK)

>Ну и соответственно, запускаешь natd на 8668 порту для интерфейса fxp1, и
>natd на 8669 порту для интерфейса fxp2. Никаких дополнительных route add
>не нужно.
>
>P.S. И пусть мне плюнут в лицо тот кто скажет скажет что
>Policy Routing может делать только Linux.


Не совсем понятно как можно запустить natd  с разными интерфейсами

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: Policy routing FreeBSD"
Сообщение от Max Искать по авторуВ закладки on 04-Сен-02, 09:09  (MSK)

>Не совсем понятно как можно запустить natd  с разными интерфейсами

Можно запустить любое количество natd, только у них должен должен быть разный порт и интерфейс. То есть не один natd с разными интерфейсами, а несколько natd.
У меня на сервере работают 3 natd для разных интерфейсов.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "RE: Policy routing FreeBSD"
Сообщение от Алексей emailИскать по авторуВ закладки on 04-Сен-02, 12:02  (MSK)
Max извини просто у меня проблема. Хотел попробовать решить этим же способом.
Мне нужно пропустить в локальную сеть пользователя с пределенного инетовского адреса.
Первый divert (8668) переправляет пакеты из локалки в инет.
Хотел поставить второй divert (8888), который переправляет c определенного IP на локальную машине. Почему-то не работает.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "RE: Policy routing FreeBSD"
Сообщение от sergey emailИскать по авторуВ закладки on 04-Сен-02, 13:50  (MSK)
>Max извини просто у меня проблема. Хотел попробовать решить этим же способом.
>
>Мне нужно пропустить в локальную сеть пользователя с пределенного инетовского адреса.
>Первый divert (8668) переправляет пакеты из локалки в инет.
>Хотел поставить второй divert (8888), который переправляет c определенного IP на локальную
>машине. Почему-то не работает. .


  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "RE: Policy routing FreeBSD"
Сообщение от Defender emailИскать по авторуВ закладки on 04-Сен-02, 14:50  (MSK)
>>Мне нужно пропустить в локальную сеть пользователя с пределенного инетовского адреса.
А это чье??? 8))
Разве это не желание тунеля?????
Тогда выражай свою мысль пояснее...
Пость сюда "ipfw s", "netstat -rn", какие ИП куда пускать...
Вот тогда можно и говорить нормально....

P/S

Пишу тебе эти строки из Mozilla 1.1 FreeBSD 4.6.2
И живу я под ней так долго, что про виндовс вспоминаю когда у юзверей что-то падает.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "RE: Policy routing FreeBSD"
Сообщение от Алексей emailИскать по авторуВ закладки on 04-Сен-02, 15:49  (MSK)
Вот ipfw list

00100 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 в ядре есть.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "RE: Policy routing FreeBSD"
Сообщение от Defender emailИскать по авторуВ закладки on 04-Сен-02, 15:59  (MSK)
>Мне  поставили одну машинку с 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 argument

                       tcp 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.
<-------->

  Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "RE: Policy routing FreeBSD"
Сообщение от Алексей emailИскать по авторуВ закладки on 04-Сен-02, 16:19  (MSK)
Классно. С man natd я знаком. Почту по 25 и 110 я могу прокинуть.
Наверно там больше подходит
redirect_addres.
Хотя это я тоже пробовал.
redirect_address 192.168.255.101 <внешний адрес>
natd у меня запускается. Но переброс пакетов на станцию почемуто не идет.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

16. "RE: Policy routing FreeBSD"
Сообщение от Max Искать по авторуВ закладки on 05-Сен-02, 18:15  (MSK)
>Классно. С man natd я знаком. Почту по 25 и 110 я
>могу прокинуть.
>Наверно там больше подходит
>redirect_addres.
>Хотя это я тоже пробовал.
>redirect_address 192.168.255.101 <внешний адрес>
>natd у меня запускается. Но переброс пакетов на станцию почемуто не идет.
>
Алексей, ты подумай, если бы твоя настройка работала бы, т.е. при обращении на любой порт роутера запрос пересылался на твою внутреннюю машину, КАК тогда будет работать твой ИНЕТ серез роутер и вообще обращение к твоему роутеру.
Поэтому redirect_address работает только для определенных портов.
Если тебе надо пробрасывать весь трафик - дай серверу win2000 реальный адрес и настрой маршрутизацию.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

18. "RE: Policy routing FreeBSD"
Сообщение от Defender emailИскать по авторуВ закладки on 06-Сен-02, 14:52  (MSK)
>Алексей, ты подумай, если бы твоя настройка работала бы, т.е. при обращении
>на любой порт роутера запрос пересылался на твою внутреннюю машину, КАК
>тогда будет работать твой ИНЕТ серез роутер и вообще обращение к
>твоему роутеру.
>Поэтому redirect_address работает только для определенных портов.
>Если тебе надо пробрасывать весь трафик - дай серверу win2000 реальный адрес
>и настрой маршрутизацию.


Абсолютно поддерживаю!!!
Там ведь было написано...
Вот и надо сделать приблизительно так:
-redirect_port tcp 192.168.255.101:2300-2399 3300-3399
А порты поставь те которые тебенужны....

  Рекомендовать в FAQ | Cообщить модератору | Наверх

24. "RE: Policy routing FreeBSD"
Сообщение от Max Искать по авторуВ закладки on 19-Сен-02, 17:50  (MSK)
>>Алексей, ты подумай, если бы твоя настройка работала бы, т.е. при обращении
>>на любой порт роутера запрос пересылался на твою внутреннюю машину, КАК
>>тогда будет работать твой ИНЕТ серез роутер и вообще обращение к
>>твоему роутеру.
>>Поэтому redirect_address работает только для определенных портов.
>>Если тебе надо пробрасывать весь трафик - дай серверу win2000 реальный адрес
>>и настрой маршрутизацию.
>
>
>Абсолютно поддерживаю!!!
>Там ведь было написано...
>Вот и надо сделать приблизительно так:
>-redirect_port tcp 192.168.255.101:2300-2399 3300-3399
>А порты поставь те которые тебенужны....

Правда можно и с помощью Natd пробросить трафик, но для этого нужен дополнительный Внешний адрес из той же подсети что и у роутера.
Прописываешь алиас на внешний интерфейс и настраиваешь Natd с опцией redirect_address на этот дополнительный адрес. Так называемы Static NAT.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "RE: Policy routing FreeBSD"
Сообщение от Defender emailИскать по авторуВ закладки on 04-Сен-02, 14:00  (MSK)
>Max извини просто у меня проблема. Хотел попробовать решить этим же способом.
>
>Мне нужно пропустить в локальную сеть пользователя с пределенного инетовского адреса.
>Первый divert (8668) переправляет пакеты из локалки в инет.
>Хотел поставить второй divert (8888), который переправляет c определенного IP на локальную
>машине. Почему-то не работает.

А оно у тебя так и не заработает!
Вопервых для того что бы из инета к тебе в локалку шли пакеты без натинга надо реализовать две вещи:
- тунель между тобой и инетовской машиной
- настроить правила для натинга так что бы они не натили этот трафик.
Натинг здесь противопоказан.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "RE: Policy routing FreeBSD"
Сообщение от Алексей emailИскать по авторуВ закладки on 04-Сен-02, 14:41  (MSK)
Что-то я не понял. Почему противопоказан natd.
На сдесь же форуме пишут что это работает.
Если у меня за firewall работают два сервера www и почтовый и я к ним не могу пропустить пользователей которые стучаться на ip шлюза, то что это за исполнение серверной системы, ты не в Windows, не путай. В iptable это делается, просто мне надо с помощью freebsd. И freebsd это делает. Я же через redir сделал что бы почту считывал.  
Тунель пропускает с определенных ip в сеть и делает машину принадлежаще домену. Мне это вовсе не нужно.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

17. "RE: Policy routing FreeBSD"
Сообщение от sergey emailИскать по авторуВ закладки on 05-Сен-02, 18:54  (MSK)
а что прописать в rc.conf что-бы запустить несколько natd c разными интерфейсами,так что-ли:

natd_enable="YES"
natd_interface="fxp0"
natd_interface="fxp1"
natd_flag="-u"

  Рекомендовать в FAQ | Cообщить модератору | Наверх

19. "RE: Policy routing FreeBSD"
Сообщение от Max Искать по авторуВ закладки on 09-Сен-02, 11:26  (MSK)
>а что прописать в rc.conf что-бы запустить несколько natd c разными интерфейсами,так
>что-ли:
>
>natd_enable="YES"
>natd_interface="fxp0"
>natd_interface="fxp1"
>natd_flag="-u"

А что natd можно запускать только из rc.conf??

Просто стартуй natd из командной строки с нужными тебе опциями.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

20. "RE: Policy routing FreeBSD"
Сообщение от sergey emailИскать по авторуВ закладки on 09-Сен-02, 17:06  (MSK)
как например из командной строки запустить два natd на разные интерфейсы,у меня например запущен одни на fxp0 ,если я хочу запустить второй :
#/sbin/natd -n fxp1 ,то выдается такое сообщение:
natd: Unable to bind divert socket.: Address already in use
  Рекомендовать в FAQ | Cообщить модератору | Наверх

21. "RE: Policy routing FreeBSD"
Сообщение от Defender emailИскать по авторуВ закладки on 09-Сен-02, 17:52  (MSK)
>как например из командной строки запустить два natd на разные интерфейсы,у меня
>например запущен одни на fxp0 ,если я хочу запустить второй :
>
>#/sbin/natd -n fxp1 ,то выдается такое сообщение:
>natd: Unable to bind divert socket.: Address already in use


Да запросто!
natd  -interface fxp1 -p 1111
                         ^^^^
                         порт на который надо переправить нужный трафик!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

22. "RE: Policy routing FreeBSD"
Сообщение от Gumka emailИскать по авторуВ закладки on 09-Сен-02, 17:56  (MSK)
Привет ВСЕМ!!!!

Плиз, кто-нить из спецов по DNSу
постучите в аську 106819115

ОЧЕНЬ НУЖНО!!!!
или на мыло gumka@aydit.kiev.ua

  Рекомендовать в FAQ | Cообщить модератору | Наверх

23. "RE: Policy routing FreeBSD"
Сообщение от leonadmin emailИскать по авторуВ закладки on 09-Сен-02, 20:18  (MSK)
Прошу у Всех прощения, но Или я перегрелся или из всего форума так и не понял сути вопроса,
Алексей ты что хотишь чтобы к тебе с инета на 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
Определись что хочешь..!!!

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру