URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 89921
[ Назад ]

Исходное сообщение
"ipfw исходящие пакеты"

Отправлено xservices , 29-Сен-10 19:36 
Ребята ну не могу я освоить эту стезю.

Как все таки отправлять исходящии пакеты от сервера через определенный интерфейс.

Тоесть в компе 2 сетевухи и 1 виртуальный интерфейс (ВПН)

пусть впн (tap1) 192.168.137.2 а его шлюз 137.1
первая сетевуха (rl1) 192.168.10.1 смотри к серверам (сервера 10.5, 10.6, 10.7)
второя сетевуха (rl2) 10.10.10.1 (провайдер, пусть будет 10.10.10.1)

На ВПН сервере 137.1 стоит редирект 80 порта на 137.2.
На своем компе я сделал что с 137.2 он форвардит на сервер 10.5 на 80 порт.
Тоесть при обращение на ип ВПС нормально отображаеться инфа с 10.5

Но сейчас у меня прописан default-gateway 192.168.137.1, что бы пакеты от 10.5 заворачивались в ВПН - и это не правильно.
И есстественно интернета на серверах нету, потому что все в впн идет.

Попробывал ipfw

Сделал дефаулт гатевей 10.10.10.1

прописал правило типа ipfw fwd 192.168.137.1 tcp from 192.168.10.5 80 to any out via tap1
но пакеты усердно идут через 10.10.10.1 а не в впн.

tcpdump смотрел. ответы от сервера идут через провайдера.

Как быть?


Содержание

Сообщения в этом обсуждении
"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 19:55 
UP

"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 19:58 
>[оверквотинг удален]
> Но сейчас у меня прописан default-gateway 192.168.137.1, что бы пакеты от 10.5
> заворачивались в ВПН - и это не правильно.
> И есстественно интернета на серверах нету, потому что все в впн идет.
> Попробывал ipfw
> Сделал дефаулт гатевей 10.10.10.1
> прописал правило типа ipfw fwd 192.168.137.1 tcp from 192.168.10.5 80 to any
> out via tap1
> но пакеты усердно идут через 10.10.10.1 а не в впн.
> tcpdump смотрел. ответы от сервера идут через провайдера.
> Как быть?

посмотреть в ответы тебе.


"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 19:59 
>[оверквотинг удален]
>> заворачивались в ВПН - и это не правильно.
>> И есстественно интернета на серверах нету, потому что все в впн идет.
>> Попробывал ipfw
>> Сделал дефаулт гатевей 10.10.10.1
>> прописал правило типа ipfw fwd 192.168.137.1 tcp from 192.168.10.5 80 to any
>> out via tap1
>> но пакеты усердно идут через 10.10.10.1 а не в впн.
>> tcpdump смотрел. ответы от сервера идут через провайдера.
>> Как быть?
> посмотреть в ответы тебе.

https://www.opennet.ru/openforum/vsluhforumID1/89904.html#14



"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 20:01 
>[оверквотинг удален]
>>> И есстественно интернета на серверах нету, потому что все в впн идет.
>>> Попробывал ipfw
>>> Сделал дефаулт гатевей 10.10.10.1
>>> прописал правило типа ipfw fwd 192.168.137.1 tcp from 192.168.10.5 80 to any
>>> out via tap1
>>> но пакеты усердно идут через 10.10.10.1 а не в впн.
>>> tcpdump смотрел. ответы от сервера идут через провайдера.
>>> Как быть?
>> посмотреть в ответы тебе.
> https://www.opennet.ru/openforum/vsluhforumID1/89904.html#14

Если коротко: то сначала заверни пакет на нат, а потом уже форвард, основывающийся на соурс-адресе пакета.

Вкуривай мой ответ. там всё разжевано, полностью рабочая схема,  кроме вырезанной  фильтрации, которую докрутить - ....


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 20:14 
Давай разберем твой конфиг что бы понять, я лично не вкурю

Сначало идут правило natd
Потом идет заворот пакета на сервер
Потом идет заворот пакета от сервера на впн так?


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 20:15 
Начнем с того что сделаем natd
ipfw add divert natd ip from 192.168.10.0/24 to any out via tap1
ipfw add divert natd ip from any to 192.168.137.2 in via tap1

Так?


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 20:17 
Далее заворачиваем на сервер как у меня
ipfw fwd 192.168.10.5 tcp from 192.168.137.1 to any 80

Так?


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 20:19 
Ты смотри что пишу!

Начнем с того что сделаем natd /// ИХ ДВАААААААААА!!!!!!!!!!!
ipfw add divert natd ip from 192.168.10.0/24 to any out via tap1
ipfw add divert natd ip from any to 192.168.137.1 in via tap1

Так?

Далее заворачиваем на сервер как у меня
ipfw fwd 192.168.10.5 tcp from 192.168.137.1 to any 80

Так?

Далее заворачиваем ответ от сервера 80 порт

ipfw fwd 192.168.137.1 tcp from 192.168.10.5 80 to any

Так?

Я не прошу разжовывать.. Не работает прошу помоши!



"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 20:34 
> Начнем с того что сделаем natd /// ИХ ДВАААААААААА!!!!!!!!!!!
> ipfw add divert natd ip from 192.168.10.0/24 to any out via tap1

правильно, но натд должен быть правильно запущен, с опциями dnat, типа -redirect_address  или -redirect_port  -  я уж и не помню.


> ipfw add divert natd ip from any to 192.168.137.1 in via tap1

а это - бред. потому что на обратный нат надо заводить обратные пакеты, правильно их идентифицируя. читай мой текст выше.


> Далее заворачиваем на сервер как у меня
> ipfw fwd 192.168.10.5 tcp from 192.168.137.1 to any 80
> Так?

натд заменит дестинейшн адрес, и пакет потом отправится по новому маршруту, безо всяких фвд.


> Далее заворачиваем ответ от сервера 80 порт
> ipfw fwd 192.168.137.1 tcp from 192.168.10.5 80 to any
> Так?

куда заворачиваем ? :-)

> Я не прошу разжовывать.. Не работает прошу помоши!

Дык не понимаешь же основ... Вцепился в fwd и отпустить не хочешь.

настрой сначала простой проброс порта, без "два провайдера" и забудь про fwd, кто ему тебя научил-то.


"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 20:36 
>[оверквотинг удален]
> натд заменит дестинейшн адрес, и пакет потом отправится по новому маршруту, безо
> всяких фвд.
>> Далее заворачиваем ответ от сервера 80 порт
>> ipfw fwd 192.168.137.1 tcp from 192.168.10.5 80 to any
>> Так?
> куда заворачиваем ? :-)
>> Я не прошу разжовывать.. Не работает прошу помоши!
> Дык не понимаешь же основ... Вцепился в fwd и отпустить не хочешь.
> настрой сначала простой проброс порта, без "два провайдера" и забудь про fwd,
> кто ему тебя научил-то.

повторяю: настрой проброс порта с использованием _только_ натд или ipfw nat
fwd - костыль для особых случаев, типа "два провайдера", и вовсе не для проброса портов.


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 20:36 
>[оверквотинг удален]
> натд заменит дестинейшн адрес, и пакет потом отправится по новому маршруту, безо
> всяких фвд.
>> Далее заворачиваем ответ от сервера 80 порт
>> ipfw fwd 192.168.137.1 tcp from 192.168.10.5 80 to any
>> Так?
> куда заворачиваем ? :-)
>> Я не прошу разжовывать.. Не работает прошу помоши!
> Дык не понимаешь же основ... Вцепился в fwd и отпустить не хочешь.
> настрой сначала простой проброс порта, без "два провайдера" и забудь про fwd,
> кто ему тебя научил-то.

Хер с ним с fwd!!! хЕР!

Пусть я запушю Natd.
в нем укажу
-redirect-port На внутренний сервер!!
Работает!!

ОБЬЯСНИТЕ мне как завернуть обратный пакет на ВПН от порта 80???


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 20:38 
>[оверквотинг удален]
>>> Я не прошу разжовывать.. Не работает прошу помоши!
>> Дык не понимаешь же основ... Вцепился в fwd и отпустить не хочешь.
>> настрой сначала простой проброс порта, без "два провайдера" и забудь про fwd,
>> кто ему тебя научил-то.
> Хер с ним с fwd!!! хЕР!
> Пусть я запушю Natd.
> в нем укажу
> -redirect-port На внутренний сервер!!
> Работает!!
> ОБЬЯСНИТЕ мне как завернуть обратный пакет на ВПН от порта 80???

Ведь с помошью natd Обратный пакет не завернешь?

мне же надо указать что from 192.168.10.5 80 to any

Что именно от сервера с порта 80. отвечает он то по другому порту клиента.

ХЕЛП!



"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 20:47 
>[оверквотинг удален]
>> Хер с ним с fwd!!! хЕР!
>> Пусть я запушю Natd.
>> в нем укажу
>> -redirect-port На внутренний сервер!!
>> Работает!!
>> ОБЬЯСНИТЕ мне как завернуть обратный пакет на ВПН от порта 80???
> Ведь с помошью natd Обратный пакет не завернешь?
> мне же надо указать что from 192.168.10.5 80 to any
> Что именно от сервера с порта 80. отвечает он то по другому
> порту клиента.

Для этого натд и используется, он хранит в себе таблицы портов соответствий.

входящий пакет:  2.3.4.5 - router ip, 1.2.3.4 - some remote client ip

1.2.3.4-4444 -> 2.3.4.5-80

рутер делает днат, и с рутера в локалку летит пакет

1.2.3.4-4444 -> 10.60.0.3-80

локальный серв отвечает пакетом

10.60.0.3-80 -> 1.2.3.4-4444

рутер ловит пакет от  10.60.0.3  ====== from 10.60.0.3 80 to any

делает ему обратную часть днат

и с рутера  летит пакет

2.3.4.5-80  -> 1.2.3.4-4444


-----------

если тебе сильно хочется, чтобы ответный пакет полетел не по дефолтному маршруту, а в сеть впн-провайдера, то после заворота на обратный nat ты делаешь еще и fwd

для пакетов вида, kakto-tak,   fwd 2.3.4.1 tcp from 2.3.4.5 80 to any out

только блин, все пакеты с src 2.3.4.5 должны идти в сеть провайдера впна, поэтому уточнять тут протокол и порт нафиг не сдалось.
поэтому я пишу

fwd 2.3.4.1 all from 2.3.4.5 to any out

для всех исходящих пакетов.

> ХЕЛП!

А ты читать не хочешь.

как тебе помочь если ты  не читаешь ?


"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 20:51 

и еще один момент - транзитные пакеты попадают в  ипфв два раза - когда пакет попадает в рутер из локалки по внутренней сетевой, и когда он покидает рутер через сетевой интерфейс в сторону провайдера.


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 21:02 
Сейчас попробую все размыслить.


ТЫ пишешь
-------
если тебе сильно хочется, чтобы ответный пакет полетел не по дефолтному маршруту, а в сеть впн-провайдера, то после заворота на обратный nat ты делаешь еще и fwd

для пакетов вида, kakto-tak,   fwd 2.3.4.1 tcp from 2.3.4.5 80 to any out

только блин, все пакеты с src 2.3.4.5 должны идти в сеть провайдера впна, поэтому уточнять тут протокол и порт нафиг не сдалось.
поэтому я пишу

fwd 2.3.4.1 all from 2.3.4.5 to any out

для всех исходящих пакетов.

Я не могу так написать

fwd 2.3.4.1 all from 2.3.4.5 to any out

Тогда ВСЕ пакеты полетят от сервера в ВПН, а мне надо только определнные порты.
типа 80,21,110,25
А остальные пакеты типа интернета на сервере шли через дефаулт гатевей?
Я понятно говорю или нет? а то мне кажеться меня не понимают ))


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 21:14 
Для этого натд и используется, он хранит в себе таблицы портов соответствий.

входящий пакет:  2.3.4.5 - router ip, 1.2.3.4 - some remote client ip

1.2.3.4-4444 -> 2.3.4.5-80

рутер делает днат, и с рутера в локалку летит пакет

1.2.3.4-4444 -> 10.60.0.3-80

локальный серв отвечает пакетом

10.60.0.3-80 -> 1.2.3.4-4444

рутер ловит пакет от  10.60.0.3  ====== from 10.60.0.3 80 to any

делает ему обратную часть днат

и с рутера  летит пакет

2.3.4.5-80  -> 1.2.3.4-4444


Это я понимаю что он подменяет заголовок.


"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 21:21 
> Для этого натд и используется, он хранит в себе таблицы портов соответствий.
> входящий пакет:  192.168.137.1 - router ip, 1.2.3.4 - some remote client
> ip
> 1.2.3.4-4444 -> 192.168.137.1-80
> рутер делает днат, и с рутера в локалку летит пакет

это делается в :

ipfw add divert natd ip from any to 192.168.137.1 in via tap1

> 1.2.3.4-4444 -> 10.60.0.3-80
> локальный серв отвечает пакетом
> 10.60.0.3-80 -> 1.2.3.4-4444
> рутер ловит пакет от  10.60.0.3  ====== from 10.60.0.3 80 to
> any

а это делается в :

ipfw add divert natd tcp from 10.60.0.3 80 to any

> делает ему обратную часть днат
> и с рутера  летит пакет
> 192.168.137.1-80  -> 1.2.3.4-4444
> Это я понимаю что он подменяет заголовок.

а потом тебе не нравится, что пакет летит в шлюз по дефолту и ты делаешь fwd/

Но как это сделать я уже много много раз написал, а тебе лишь прочитать осталось.


"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 21:22 
> а это делается в :
>  ipfw add divert natd tcp from 10.60.0.3 80 to any

ipfw add divert natd tcp from 10.60.0.3 80 to any out

ну и входящий нат надо сделать адекватным.

Короче, устал я разжовывать и вдалбливать - смотри мой скрипт и вкуривай, там возле каждой строки - комменты.


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 21:47 
Вот посмотри прокомментируй..
немного внизу не понял.

Включаем nat на tap1
ipfw nat 1 config ip 192.168.137.1 same_ports

Делаем проброс порта на веб сервер
redirect_port tcp 192.168.10.5:80 80

Натить оттовсюду приходящие на 192.168.137.2 Через входящий интерфейс Tap1
ipfw add 04410 nat 1 all from any to 192.168.137.1 in via tap1

Разрешить прохождения пакета если он пришел откуда угодно на подсеть 192.168.10.0/24 входящий через интерфейс tap1
ipfw add 04800 allow all from any to 192.168.10.0/24 in via tap1

Запретить все остально через tap1 (входящее)
ipfw add 04998 deny log  ip from any to any in via tap

Натить все пакеты от 192.168.137.1 куда угодно выходящий через tap1
ipfw add 06050 nat 1 all from 192.168.137.1 to any out via tap1

Заворачиваем на нат 1 tcp пакеты от 192.168.10.5 порт 80 (исходящий)
ipfw add 06100 nat 1 tcp from 10.60.0.122 80 to any out

Заворчиваем подсеть 192.168.10.0/24 на провайдера (все остальные пакеты - ведь правило выше если бы это был порт 80 уже завернуло ответ и запрос на 80 порт веб сервера)
ipfw add 06110 nat 1 all from 10.60.0.0/24 to any out via $IFACE

Разрешаем
ipfw add 06910 allow ip from 192.168.137.1 to 192.168.10.0/24 out via tap1

------------------------------------
Вот тут мне не понятно
ipfw add 06911 fwd $IFACE_GW ip from $IP_NATD1 to any out via $IFACE


"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 21:54 
> ------------------------------------
> Вот тут мне не понятно
> ipfw add 06911 fwd $IFACE_GW ip from $IP_NATD1 to any out via
> $IFACE

Исходно пакеты маршрутизируются только правилами маршрутизации. Таблицей маршрутизации.
По адресу назначения.


В файрволле, основываясь на адрес источника, ты принимаешь решение изменить маршрут пакета.
В нужное тебе местоназначение - шлюз.

fwd 1.2.3.4 - директива нужна только для того, чтобы определить интерфейс, и отправить пакет в этот интерфейс. Ну если у тебя эзернет - то мак адрес на основе 1.2.3.4 определится, и отправится куда надо. В заголовках айпи пакета от этого ничего не изменится. Изменится только интерфейс и шлюз, куда рутер отправит пакет. Неизменный пакет.


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 21:57 
>[оверквотинг удален]
>> $IFACE
> Исходно пакеты маршрутизируются только правилами маршрутизации. Таблицей маршрутизации.
> По адресу назначения.
> В файрволле, основываясь на адрес источника, ты принимаешь решение изменить маршрут пакета.
> В нужное тебе местоназначение - шлюз.
> fwd 1.2.3.4 - директива нужна только для того, чтобы определить интерфейс, и
> отправить пакет в этот интерфейс. Ну если у тебя эзернет -
> то мак адрес на основе 1.2.3.4 определится, и отправится куда надо.
> В заголовках айпи пакета от этого ничего не изменится. Изменится только
> интерфейс и шлюз, куда рутер отправит пакет. Неизменный пакет.

Тоесть fwd мне вообще не нужен!

А так вот конфиг по твоему привел верно?


"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 22:03 
>[оверквотинг удален]
>> По адресу назначения.
>> В файрволле, основываясь на адрес источника, ты принимаешь решение изменить маршрут пакета.
>> В нужное тебе местоназначение - шлюз.
>> fwd 1.2.3.4 - директива нужна только для того, чтобы определить интерфейс, и
>> отправить пакет в этот интерфейс. Ну если у тебя эзернет -
>> то мак адрес на основе 1.2.3.4 определится, и отправится куда надо.
>> В заголовках айпи пакета от этого ничего не изменится. Изменится только
>> интерфейс и шлюз, куда рутер отправит пакет. Неизменный пакет.
> Тоесть fwd мне вообще не нужен!
> А так вот конфиг по твоему привел верно?

В простых конфигурациях - не нужен.
ты же сам нахер послал fwd, забыл уже ?

Но в первом сообщении ты сказал, что тебя не устраивает что шлюз по дефолту смотрит в туннель.

И тогда вступает в силу тема - "фряха и два провайдера", в которой используется fwd.


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 22:06 
И скажи мне зачем мне вообще нат? если у меня впн и где сервера серые адреса? эзернет?

У меня впн 192.168.137.1
А сервера 10.5

Смотри на впн сервере у меня внешний ип.

Там я указываю что заворачивать пакет на 80 порт на 192.168.10.5
И прописываю
route add 192.168.10.5 gw 192.168.137.1
Он попадает на шлюз на шлюзе прописываю
route add 192.168.10.5 192.168.10.1
Хотя он и так это уже знает! даже прописывать не надо и пакет летит на 10.5
Все просто маршрутизацией. Значи проброс внутрь отменяеться зачем он?

Далее ответ идет от 10.5 на 10.1 попадет далее надо подменить его на 137.2 так чтоли?
Почему если он летит на 10.1 где работает ipfw нельзя просто так - же указать что бы он летел в впн? а  впн сервер уже  подменит ip на внешний и отдаст клиенту?


----------------

А если брать по моей ситуации и твои обьяснениям ната у меня будет два?

Тоесть один будет висеть на tap1 Тоесть на впн
А второй на rl1 тоесть провайдер?



"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 22:17 
И по правилу.
# 6000 - исходящий траффик.
  в соответствии с таблицей маршрутизации, пакет собирается идти по дефолтному маршруту в первый ифейс. Если вдруг дефолтный маршрут будет переключен, то он задумает пойти во второй ифейс. Поэтому правил два. На всякий случай.

пакеты от сервера, первый ип
ipfw add 06050 nat 1 all from (тут ип провайдера) to any out via $IFACE
ipfw add 06051 nat 1 all from (тут ип впн) to any out via $IFACE2

что значи если он будет переключен и как пакет поймет что ему допустим по второй ифайсе?


"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 22:23 
> что значи если он будет переключен и как пакет поймет что ему
> допустим по второй ифайсе?

я захочу и сделаю

route delete default
route add default something.new.ip

А пакет поймет - в соответствии с таблицей маршрутизации системной,

netstat -rn


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 22:35 
Блин да простят меня твои нервы!!!
Но я запутался
Смотри я попытаюсь обяснить

Вот мой шлюз
На нем 2 сетевухи и 1 впн
первая сетевуха ты уже понял смотрит в сеть с серверам 10.5
вторая это провайдер мой там тоже сервый ип! так как за шлюзом стоит циска на которой нат на реальный ип.
И так же  тут стоит впн клиент имеет адрес 192.168.137.2
А впн сервер имеет адрес  192.168.137.1

На впн сервере реальный ип xx.xx.xx.xx

Да при обращение на него делаеться нат и меняет его на 10.5
и попадая через тунель на шлюз попадает на 10.5 без проблемм.

Но вот ответы от сервера надо разделить на два как бы прова

Тоесть на впн сервере стоит нат портов 21,80,110,25

тоесть надо что бы по этим порта сервер отвечал в впн а по другим в провайдера моего.
тоесть что бы был инет на серверах... а его нет сейчас так как дефайл гатевей стоит впн.


Ты пишешь

-------------
можно сделать. сделай.

ipfw add XXXX fwd 192.168.137.2 tcp from 192.168.10.5 80 to any out

(ipfw add XXXX fwd 192.168.137.2 tcp from 192.168.10.5 80 to any out via DEF_GW_IFACE)


Ну я же в самом начале так показывал ты говорил нельзя???

Я и добавляю это правила а не пашет он все равно рветься в провайдера пакет от 80 порта...


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 22:39 
Тоесть если я укажу вот так

ipfw add 1000 fwd 192.168.137.1 tcp from 192.168.10.5 80 to any out via tap1

то поидее все работает??

Тоесть это правило скажет ТЫ СЦУКО паке от 10.5 с 80 порта вали через tap1 Так?


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 22:53 
Сейчас сделал вот так.
stat# sh firewall.sh
stat# ipfw show
00100    0      0 fwd 192.168.137.1 tcp from 192.168.20.4 80 to any out via tap1
00200   14   1101 allow ip from any to any
stat#

И не работает.


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 22:57 
> Сейчас сделал вот так.
> stat# sh firewall.sh
> stat# ipfw show
> 00100    0      0 fwd
> 192.168.137.1 tcp from 192.168.20.4 80 to any out via tap1
> 00200   14   1101 allow ip from any to
> any
> stat#
> И не работает.

Вернее идут через прова!


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 23:10 
Так как все таки сделать что бы данное правило работало??
Или требуеться нат?

"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 23:11 
Подменять не надо. В этой точке пакет содержит адреса вида:

192.168.10.5:80 -> real.ip.addr:someport


Да в это точке он точно так и содержит!


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 23:15 
> Подменять не надо. В этой точке пакет содержит адреса вида:
> 192.168.10.5:80 -> real.ip.addr:someport
> Да в это точке он точно так и содержит!

В вот когда он в это точке и должно приминиться правило fwd как ты пишешь тоесть перенаправить его в tap1.
Но он усердно идет к провайдеру по дефолт гатевею!


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 23:31 
stat# ipfw show
00200    0      0 fwd 192.168.137.1 tcp from 192.168.20.4 to any
65535 1142 107452 allow ip from any to any
Даже так не срабатывает

"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 23:56 
И что больше не кто не подскажет где именно я не понимаю чего7

"ipfw исходящие пакеты"
Отправлено xservices , 30-Сен-10 00:03 
> И что больше не кто не подскажет где именно я не понимаю
> чего7

А не может из за отсутствия я в ядре
options         IPFIREWALL_FORWARD_EXTENDED?


"ipfw исходящие пакеты"
Отправлено xservices , 30-Сен-10 00:12 
>> И что больше не кто не подскажет где именно я не понимаю
>> чего7
> А не может из за отсутствия я в ядре
> options         IPFIREWALL_FORWARD_EXTENDED?

Хотя нет это опцию убрали уже


"ipfw исходящие пакеты"
Отправлено PavelR , 30-Сен-10 07:35 
> stat# ipfw show
> 00200    0      0 fwd
> 192.168.137.1 tcp from 192.168.20.4 to any
> 65535 1142 107452 allow ip from any to any
> Даже так не срабатывает

ты на какой адрес пробрасывал порт на впн-рутере ? на 192.168.20.4 ?

Повторяю еще раз - правила по отдельности - ничто. Только в комплексе. Иначе - развлекайся сам с тем, что у тебя выше 200го правила - там еще 199 правил и больше может быть.


"ipfw исходящие пакеты"
Отправлено xservices , 30-Сен-10 11:29 
Начем с того что я на ВПН сервер пробрасывал на 20.4
А на шлюзе у меня сейчас два правила!
fwd и разрешить все!

"ipfw исходящие пакеты"
Отправлено xservices , 30-Сен-10 11:29 
Как организовать Policy Routing на FreeBSD     [исправить]

ipfw add 100 fwd 10.0.0.2 ip from 10.0.2.0/24 to any

Если нужно использовать 2 шлюза, то можно воспользоваться:
  ipfw add  fwd $ext_gw_ip ip from $ext_net to any out xmit $ext_int

Я точно так-же и делаю!


"ipfw исходящие пакеты"
Отправлено xservices , 30-Сен-10 11:31 
Пример настройки NAT для двух сетей в FreeBSD 5.3

Читал, не моя ситуация.


"ipfw исходящие пакеты"
Отправлено xservices , 30-Сен-10 11:33 
Пример разделения трафика для использования двух каналов в FreeBSD


А вот это да то..
Но тут сначало срабатывает нат и потом fwd..
Я в самом начале спрасил так ли надо делать???
или хватает просто fwd?

Если сначало требуеться превратить 20.4 в 137.2 а потом его уже fwd 192.168.137.1
ТО  это уже другое!


"ipfw исходящие пакеты"
Отправлено xservices , 30-Сен-10 11:57 
Вот схема того что есть.
http://s001.radikal.ru/i194/1009/3d/916e137d3180.jpg


"ipfw исходящие пакеты"
Отправлено xservices , 30-Сен-10 14:30 
up

"ipfw исходящие пакеты"
Отправлено PavelR , 30-Сен-10 20:06 
> Пример разделения трафика для использования двух каналов в FreeBSD
> А вот это да то..
> Но тут сначало срабатывает нат и потом fwd..
> Я в самом начале спрасил так ли надо делать???

Да только ты знаешь все феньки своей сети. Если впн-сервер знает маршрут ко внутренней сети, то второго ната не надо и хватает просто фвд.

> или хватает просто fwd?
> Если сначало требуеться превратить 20.4 в 137.2 а потом его уже fwd
> 192.168.137.1
> ТО  это уже другое!

походу не надо магических превращений...



"ipfw исходящие пакеты"
Отправлено PavelR , 30-Сен-10 07:33 
>[оверквотинг удален]
> На нем 2 сетевухи и 1 впн
> первая сетевуха ты уже понял смотрит в сеть с серверам 10.5
> вторая это провайдер мой там тоже сервый ип! так как за шлюзом
> стоит циска на которой нат на реальный ип.
> И так же  тут стоит впн клиент имеет адрес 192.168.137.2
> А впн сервер имеет адрес  192.168.137.1
> На впн сервере реальный ип xx.xx.xx.xx
> Да при обращение на него делаеться нат и меняет его на 10.5
> и попадая через тунель на шлюз попадает на 10.5 без проблемм.
> Но вот ответы от сервера надо разделить на два как бы прова

Ну дык и дели, на основании айпи адреса сервера делается отправка пакета в соответствующую сеть.

Прекрати решать свою проблему. Начни читать теорию. Потом начни решать свою проблему, дробя её на более мелкие части. Всё сразу - недостижимо никому.


ЧИТАЙ!

Раздел: https://www.opennet.ru/tips/sml/92.shtml

https://www.opennet.ru/tips/378_rule_route_ip_policy_vi_linux...
https://www.opennet.ru/tips/158_ipf_freebsd_ip_route_policy_i...

И в том числе, как это бывает на линуксе:

https://www.opennet.ru/tips/2009_policy_route_linux.shtml
https://www.opennet.ru/tips/1651_route_iptables_linux_nat.shtml


ЭТО ВСЁ НАДО ЧТОБЫ ПОНЯТЬ ПРИНЦИПЫ. Реализацию - чуть позже.

> Тоесть на впн сервере стоит нат портов 21,80,110,25
> тоесть надо что бы по этим порта сервер отвечал в впн а
> по другим в провайдера моего.

Достало, че ты в порты прицепился ?

Я тебе уже всю схему нарисовал блин, в сообщении первом, про проброс портов, там тоже
по дефолту сервера в инет одним провайдером ходят, а проброс портов на них, на сервисы серверов, делается от другого провайдера. НО, ЛЯ, ТЕБЯ ЖЕ ЛОМАЕТ ПОСМОТРЕТЬ ВНИМАТЕЛЬНО, ТЫ ЖЕ СВОЮ ПРОБЛЕМУ РЕШАЕШЬ, А УЧИТЬСЯ И РАЗБИРАТЬСЯ - ВЛОМЫ ?


> тоесть что бы был инет на серверах... а его нет сейчас так
> как дефайл гатевей стоит впн.
> Ты пишешь
> можно сделать. сделай.
> ipfw add XXXX fwd 192.168.137.2 tcp from 192.168.10.5 80 to any out
> (ipfw add XXXX fwd 192.168.137.2 tcp from 192.168.10.5 80 to any out
> via DEF_GW_IFACE)
> Ну я же в самом начале так показывал ты говорил нельзя???

да понимаю я это, давно уже понимаю чего тебе надо. Только ты не говорил о том, что впн сервер - тебе подконтроллен, и ты маршрутизацию на нем править можешь.


> Я и добавляю это правила а не пашет он все равно рветься
> в провайдера пакет от 80 порта...

Правило само по себе ничего не значит. Значат - наборы правил.
Что значит - "все равно рветься в провайдера пакет от 80 порта..." - а куда "рваться он должен" ?

Терминологию исправь. кто ясно мыслит, тот ясно излагает.


"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 22:22 
> И скажи мне зачем мне вообще нат? если у меня впн и
> где сервера серые адреса? эзернет?
> У меня впн 192.168.137.1
> А сервера 10.5
> Смотри на впн сервере у меня внешний ип.
> Там я указываю что заворачивать пакет на 80 порт на 192.168.10.5

Вот тут, на впн-сервере где внешний ип ты и делаешь нат.
Может ты думаешь, что ты делаешь заворот пакета, но ты делаешь нат.
Потому что меняется дестинейшн адрес пакета. На 192.168.10.5.


> И прописываю
> route add 192.168.10.5 gw 192.168.137.1
> Он попадает на шлюз

Всё ок.

>на шлюзе прописываю
> route add 192.168.10.5 192.168.10.1
> Хотя он и так это уже знает! даже прописывать не надо и
> пакет летит на 10.5
> Все просто маршрутизацией. Значи проброс внутрь отменяеться зачем он?

Да, всё ок. маршрут не нужен, всё маршрутизируется.

> Далее ответ идет от 10.5 на 10.1 попадет далее надо подменить его
> на 137.2 так чтоли?

Подменять не надо. В этой точке пакет содержит адреса вида:

192.168.10.5:80 -> real.ip.addr:someport

> Почему если он летит на 10.1 где работает ipfw нельзя просто так
> - же указать что бы он летел в впн? а
> впн сервер уже  подменит ip на внешний и отдаст клиенту?

можно сделать. сделай.

ipfw add XXXX fwd 192.168.137.2 tcp from 192.168.10.5 80 to any out

(ipfw add XXXX fwd 192.168.137.2 tcp from 192.168.10.5 80 to any out via DEF_GW_IFACE)


где 192.168.137.2 - адрес "того конца впн-туннеля"


> ----------------
> А если брать по моей ситуации и твои обьяснениям ната у меня
> будет два?

нет нафиг, трансляции адресов достаточно одной. На рутере, где реальный айпишник.
Благодаря тому, что ты на этом самом рутере можешь задать маршрут к своей внутренней сети сквозь впн-туннель.

Если бы такой возможности не было бы, то тогда да - по факту было бы две трансляции адресов - на впн-сервере и на твоем рутере.


"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 22:01 
> Вот посмотри прокомментируй..
> немного внизу не понял.
> Включаем nat на tap1
> ipfw nat 1 config ip 192.168.137.1 same_ports
> Делаем проброс порта на веб сервер
> redirect_port tcp 192.168.10.5:80 80

ipfw nat 1 config ip 192.168.137.1 same_ports \
redirect_port tcp 192.168.10.5:80 80

Это одна команда, а не несколько.


> Натить оттовсюду приходящие на 192.168.137.2 Через входящий интерфейс Tap1
> ipfw add 04410 nat 1 all from any to 192.168.137.1 in via
> tap1

+1

> Разрешить прохождения пакета если он пришел откуда угодно на подсеть 192.168.10.0/24 входящий
> через интерфейс tap1
> ipfw add 04800 allow all from any to 192.168.10.0/24 in via tap1

Пакет не может "откуда угодно" придти на подсеть. Но после нат-а некий входящий пакет может оказаться пакетом, в эту сеть. Это надо понимать.


> Запретить все остально через tap1 (входящее)
> ipfw add 04998 deny log  ip from any to any in
> via tap

via tap1.

Возможно, что тебя это устроит.


> Натить все пакеты от 192.168.137.1 куда угодно выходящий через tap1
> ipfw add 06050 nat 1 all from 192.168.137.1 to any out via
> tap1

Нет. Пакеты, попадая в файрволл, маршрутизируются по таблице маршрутизации.
При отсутствии маршрутов - они идут в дефолт.
ЕСЛИ БЫ ТЫ ВНИМАТЕЛЬНО ПОСМОТРЕЛ И ПРОЧИТАЛ МОЙ СКРИПТ, ТО ТЫ БЫ УЖЕ УВИДЕЛ,
что правил там два. И СООТВЕТСТВУЮЩИЙ КОММЕНТАРИЙ.

> Заворачиваем на нат 1 tcp пакеты от 192.168.10.5 порт 80 (исходящий)
> ipfw add 06100 nat 1 tcp from 10.60.0.122 80 to any out

это сработает благодаря тому, что исходящий пакет в любой интерфейс (без указания via NETDEV) вероятнее всего будет уходить в сторону провайдера. Но в общем случае - это не верно - может быть второй локальный сетевой интерфейс / подсеть.


> Заворчиваем подсеть 192.168.10.0/24 на провайдера (все остальные пакеты - ведь правило
> выше если бы это был порт 80 уже завернуло ответ и
> запрос на 80 порт веб сервера)
> ipfw add 06110 nat 1 all from 10.60.0.0/24 to any out via
> $IFACE

парой строк выше был уже коммент про маршрутизацию пакета.

> Разрешаем
> ipfw add 06910 allow ip from 192.168.137.1 to 192.168.10.0/24 out via tap1

Предполагаю, что это бред. Что за сеть 192.168.10.0/24 ?
2) Вы точно знаете, с какой подсети к вам приходят запросы на ваш пробрасываемый сервис, или всё-таки запросы приходят "отовсюду" ?


> ------------------------------------
> Вот тут мне не понятно
> ipfw add 06911 fwd $IFACE_GW ip from $IP_NATD1 to any out via
> $IFACE

ну там ниже объяснил уже много раз.

Прошу перечитать всё.


"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 21:16 
> Сейчас попробую все размыслить.
> Я не могу так написать
> fwd 2.3.4.1 all from 2.3.4.5 to any out
> Тогда ВСЕ пакеты полетят от сервера в ВПН, а мне надо только
> определнные порты.
> типа 80,21,110,25
> А остальные пакеты типа интернета на сервере шли через дефаулт гатевей?
> Я понятно говорю или нет? а то мне кажеться меня не понимают
> ))

Мне кажется что не понимают меня. Твои задачи для меня понятны и прозрачны. А ты читать отказываешься.

Все пакеты с айпи, принадлежащего провайдеру, полетят в сеть провайдера.
Как будто других провайдеров, кроме него и нет, и это правильно.

Ибо провайдерА не обязан пропускать пакеты, в которых значение айпи отправителя - айпи другого провайдера.

===
Остальные пакеты типа интернета на сервере изначально не имеют айпи отправителя, и это значение впоследствии выставляется на основании значения дефолтного маршрута, из адреса интерфейса, через который дефолтный маршрут пролегает. Соответственно, форвардиться оно никуда не будет, поскольку под правило не подпадет.

А если и подпадет под правило, как в случае моего конфига, то это ничего не изменит, потому что в правиле будет написано "все пакеты с локального адреса в сети провайдера отправить на шлюз провайдера".

===

Ты устал меня, чел, короче читай мой ответ, ибо это то, что тебе надо, поймешь ты это или
нет - решать тебе. Попробуй научиться читать. Это полезно.

=====

PS:

> Я не могу так написать
> fwd 2.3.4.1 all from 2.3.4.5 to any out
> Тогда ВСЕ пакеты полетят от сервера в ВПН, а мне надо только
> определнные порты.

@$!, ну какого ^%# "ВСЕ пакеты полетят" ?

все пакеты - это from any to any

all from any to any out - это исходящие пакеты

all from 2.3.4.5 to any out - это исходящие пакеты с адресом отправителя 2.3.4.5, и это далеко не "ВСЕ ПАКЕТЫ".


"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 20:39 
>[оверквотинг удален]
>>> Я не прошу разжовывать.. Не работает прошу помоши!
>> Дык не понимаешь же основ... Вцепился в fwd и отпустить не хочешь.
>> настрой сначала простой проброс порта, без "два провайдера" и забудь про fwd,
>> кто ему тебя научил-то.
> Хер с ним с fwd!!! хЕР!
> Пусть я запушю Natd.
> в нем укажу
> -redirect-port На внутренний сервер!!
> Работает!!
> ОБЬЯСНИТЕ мне как завернуть обратный пакет на ВПН от порта 80???

я тебе что, просто так свой конфиг привожу, упрощая его под твою задачу ??


Читать, читать, и пытаться думать много много раз, до просветления.
я его комментирую спецом чтобы ты его чи-та-л!

цитирую избранное:

==============
пакеты из внутренней локалки, которые были днат-нуты, их всегда надо завернуть на их родной нат - второй
ipfw add 06100 nat 2 tcp from 10.60.0.122 3389 to any out
ipfw add 06105 nat 2 tcp from 10.60.0.122 4899 to any out
==========

.
далее по тексту, делается форвард пакетов с айпишника провайдера в сеть именно этого провайдера.



"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 20:30 
> Давай разберем твой конфиг что бы понять, я лично не вкурю
> Сначало идут правило natd
> Потом идет заворот пакета на сервер
> Потом идет заворот пакета от сервера на впн так?

#Конфигурим инстанции ядерного ната. Вторая - не только нат локалки, но и днат 2х-
#сервисов на сервер во внутренней сети
ipfw nat 1 config ip $IP_NATD1 same_ports
ipfw nat 2 config ip $IP_NATD2 same_ports \
redirect_port tcp 10.60.0.122:3389 3389 \
redirect_port tcp 10.60.0.122:4899 4899
#
#Тут мы делаем некоторое подобие айпитаблеса, оптимизируем число проверок пакетов, разделяя входящие и исходящие потоки. 6000-е правила - исходящие, до них - входящие пакеты (4000-е для ифейс, 5000-е для ифейс2).
#
ipfw add 03000 skipto 06000 all from any to any out via $IFACE
ipfw add 03010 skipto 06000 all from any to any out via $IFACE2
#
ipfw add 04000 skipto 05000 all from any to any in via $IFACE2


# Входящие пакеты первого провайдера. Заворачиваем на нат
ipfw add 04410 nat 1 all from any to $IP_NATD1 in via $IFACE
#После ната можно пофильтровать там всё и т п
# у меня так:

ipfw add 04800 allow all from any to 10.60.0.0/24 in via $IFACE
ipfw add 04998 deny log  ip from any to any in via $IFACE


#5000 - Входящие пакеты второго провайдера. Заворачиваем на нат


при обращении к IP_NATD2:4899 тут будут пакеты вида
1.2.3.4:4899 -> IP_NATD2:4899

ipfw add 05410 nat 2 all from any to any in via $IFACE2

нат 2 сделает трасформацию заголовков, и на этом этапе
тут где-то появятся пакеты вида 1.2.3.4 -> 10.60.0.122-4899
далее мы тут всё разрешаем, и пакет дальше не идет.

ipfw add 05900 allow all from any to 10.60.0.0/24 in via $IFACE2
ipfw add 05999 deny log ip from any to any in via $IFACE2

# 6000 - исходящий траффик.
  в соответствии с таблицей маршрутизации, пакет собирается идти по дефолтному маршруту в первый ифейс. Если вдруг дефолтный маршрут будет переключен, то он задумает пойти во второй ифейс. Поэтому правил два. На всякий случай.

пакеты от сервера, первый ип
ipfw add 06050 nat 1 all from $IP_NATD1 to any out via $IFACE
ipfw add 06051 nat 1 all from $IP_NATD1 to any out via $IFACE2
#
пакеты от сервера, второй ип
ipfw add 06060 nat 2 all from $IP_NATD2 to any out via $IFACE
ipfw add 06061 nat 2 all from $IP_NATD2 to any out via $IFACE2
#
пакеты из внутренней локалки, которые были днат-нуты, их всегда надо завернуть на их родной нат - второй
ipfw add 06100 nat 2 tcp from 10.60.0.122 3389 to any out
ipfw add 06105 nat 2 tcp from 10.60.0.122 4899 to any out
#

пакеты из одной локалки идут одним провайдером (да, правил должно быть два, но дефолтный маршрут меняется не часто :-) )
ipfw add 06110 nat 1 all from 10.60.0.0/24 to any out via $IFACE
#

маршруты из второй локалки идут другим провайдером

ipfw add 06310 nat 2 all from 10.60.4.0/24 to any out via $IFACE
ipfw add 06315 nat 2 all from 10.60.4.0/24 to any out via $IFACE2
#
#

а поскольку onepass у нас выключен, то теперь у нас пакеты есть тут, после обработки натами, каждый с реальным исходящим адресом источника. Остается "промаршрутизировать" их путем применения ipfw fwd. На setfib пока лень переделывать.

Если пакет идет в провайдерскую сетку - не будем ему мешать. Всех остальных - жестко forward-им.
#
ipfw add 06910 allow ip from $IP_NATD1 to $IFACE_NET out via $IFACE
ipfw add 06911 fwd $IFACE_GW ip from $IP_NATD1 to any out via $IFACE
ipfw add 06912 fwd $IFACE_GW ip from $IP_NATD1 to any out via $IFACE2
#
ipfw add 06930 allow ip from $IP_NATD2 to $IFACE2_NET out via $IFACE2
ipfw add 06931 fwd $IFACE2_GW ip from $IP_NATD2 to any out via $IFACE
ipfw add 06932 fwd $IFACE2_GW ip from $IP_NATD2 to any out via $IFACE2


В списке правил есть еще много drop и allow, но на схему они влияют мало :-) Только на безопасность и прочие политики.


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 20:34 
Павел ты не приводи своих конфиги помоги по моему, там все просто или я что то не так там пишу?
Этих правил что я написал достаточно?

"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 20:03 
> На своем компе я сделал что с 137.2 он форвардит на сервер
> 10.5 на 80 порт.

поподробнее - как сделал. Больше инфы, упрости свои правила файрволла, если не получается сделать рабочий вариант, а потом показывай ipfw sh.
В простынях ipfw sh разбираться никто не будет, предупреждаю.


"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 20:11 
>> На своем компе я сделал что с 137.2 он форвардит на сервер
>> 10.5 на 80 порт.
> поподробнее - как сделал. Больше инфы, упрости свои правила файрволла, если не
> получается сделать рабочий вариант, а потом показывай ipfw sh.
> В простынях ipfw sh разбираться никто не будет, предупреждаю.

Да не важно как я сделал внутрь... тем же ipfw все ок работает
Пока в фаерволе 1 правило редиректа пакета на сервер 80 порт.
все остальное по дефолту разрешенно!!!
Не может ничего припятсвовать!



"ipfw исходящие пакеты"
Отправлено xservices , 29-Сен-10 20:12 
>>> На своем компе я сделал что с 137.2 он форвардит на сервер
>>> 10.5 на 80 порт.
>> поподробнее - как сделал. Больше инфы, упрости свои правила файрволла, если не
>> получается сделать рабочий вариант, а потом показывай ipfw sh.
>> В простынях ipfw sh разбираться никто не будет, предупреждаю.
> Да не важно как я сделал внутрь... тем же ipfw все ок
> работает
> Пока в фаерволе 1 правило редиректа пакета на сервер 80 порт.
> все остальное по дефолту разрешенно!!!
> Не может ничего припятсвовать!

Поправка не дно правило еще правило natd



"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 20:16 
>[оверквотинг удален]
>>>> 10.5 на 80 порт.
>>> поподробнее - как сделал. Больше инфы, упрости свои правила файрволла, если не
>>> получается сделать рабочий вариант, а потом показывай ipfw sh.
>>> В простынях ipfw sh разбираться никто не будет, предупреждаю.
>> Да не важно как я сделал внутрь... тем же ipfw все ок
>> работает
>> Пока в фаерволе 1 правило редиректа пакета на сервер 80 порт.
>> все остальное по дефолту разрешенно!!!
>> Не может ничего припятсвовать!
> Поправка не дно правило еще правило natd

да сколько можно вдалбливать, что правил должно быть по два штуки, одно для пакета когда он идет ТУДА, и одно еще когда пакет идет ОБРАТНО.


пакеты ТУДА + пакеты ОБРАТНО - вот оно, ТСР-соединение.


"ipfw исходящие пакеты"
Отправлено PavelR , 29-Сен-10 20:15 
>>> На своем компе я сделал что с 137.2 он форвардит на сервер
>>> 10.5 на 80 порт.
>> поподробнее - как сделал. Больше инфы, упрости свои правила файрволла, если не
>> получается сделать рабочий вариант, а потом показывай ipfw sh.
>> В простынях ipfw sh разбираться никто не будет, предупреждаю.
> Да не важно как я сделал внутрь... тем же ipfw все ок
> работает
> Пока в фаерволе 1 правило редиректа пакета на сервер 80 порт.
> все остальное по дефолту разрешенно!!!
> Не может ничего припятсвовать!

ну ты смешной. Сделал непонятно как, а хочешь чтобы было вот и ага - и чтобы все всё поняли.