Kernel nat и диапазон ип адресов
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Kernel nat и диапазон ип адресов
Вопрос вроде такой довольно простой, но ответа я чет не могу нарыть. Реально ли заставить kernel nat работать с несколькими внешними адресами, например одному клиенту один другому другой и тп. Ну и как это правильно реализовать. Если нет, то как мне добиться желательного результата? Пробовал вешать алиасы на интерфейс, нат использует последний ип.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- ---nebo---
- старшина
- Сообщения: 424
- Зарегистрирован: 2008-11-01 21:06:23
- Откуда: Киев
- Контактная информация:
Re: Kernel nat и диапазон ип адресов
В PF такое точно можно сделать и даже больше
п.2.2.5

Код: Выделить всё
http://house.hcn-strela.ru/BSDCert/BSDA-course/apcs02.html
...участки под застройку в живописном месте Интернет
-
- сержант
- Сообщения: 234
- Зарегистрирован: 2009-08-11 15:48:32
- Откуда: Питер
-
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Re: Kernel nat и диапазон ип адресов
Либо плохо читал либо там нет такой возможности. Везде один адрес внешний, а в одном примере есть 2 и для этого создается второй нат, ну и суть там другая. У меня больше 20 ипов...ivan__ писал(а):http://www.lissyara.su/?id=1967
pf конешно красиво, но вот как себя поведут два фаервола, у мну через ipfw идет зарезка скорости клиентам(ng_car).
-
- проходил мимо
Re: Kernel nat и диапазон ип адресов
В моих примерах такого нет, и сам ipfw nat так не умеет, но есть способ.
Можно модифицировать пятый пример заменив в нем setfib на tag, а в секциях где происходит направление в наты, проверять теги через опцию tagged - таким образом получиться раскидывать трафик на несколько экземпляров натов.
Сами сможете это сделать? Если нет, то ждите - вечером нарисую пример.
Интернсно было бы такое попробовать?
Можно модифицировать пятый пример заменив в нем setfib на tag, а в секциях где происходит направление в наты, проверять теги через опцию tagged - таким образом получиться раскидывать трафик на несколько экземпляров натов.
Сами сможете это сделать? Если нет, то ждите - вечером нарисую пример.
Интернсно было бы такое попробовать?
-
- проходил мимо
Re: Kernel nat и диапазон ип адресов
Хотя стоп. Уточните что именно надо - вы хотите пул из внешних адресов отдать для подсети, или вам надо просто по отдельному нату для каждого клиента? Если пул, то модифицировать 5й пример, если по отдельному нато то это еще проще.
-
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Re: Kernel nat и диапазон ип адресов
Мне надо что бы клиенты выходившие в инет с внутренними ип адресами использовали пул внешних ип, причем таким образом, что бы один ип закреплялся за клиентом. Вот для pf подобное правило.
Тут если клиентский ип внешний, тогда я не натирую его и отправляю в другой шлюз, туда идет весь не натированный траф.
И еще такой вопрос, нужно ли вешать внешники на ифес что бы их натировать? Или достаточно в нате указать?
А вот сейчас как заруливаются правила в нат.nat on vlan202 inet from any to any -> 192.0.2.4/31 source-hash
Код: Выделить всё
#-> out
fwd 172.25.0.254 ip from внешние.ипишники to any
nat 123 ip from any to any
#in->
nat 123 ip from any to any in recv vlan202
И еще такой вопрос, нужно ли вешать внешники на ифес что бы их натировать? Или достаточно в нате указать?
-
- проходил мимо
Re: Kernel nat и диапазон ип адресов
Сколько всего внешних адресов? предположим 10?
Настройте 10 экземпляров натов
а потом заварачиваете каждого кдиента в его нат
Настройте 10 экземпляров натов
Код: Выделить всё
nat 1 config log ip 1.2.3.4 reset same_ports deny_in
nat 2 config log ip 1.2.3.5 reset same_ports deny_in
nat 3 config log ip 1.2.3.6 reset same_ports deny_in
nat 4 config log ip 1.2.3.7 reset same_ports deny_in
...
Код: Выделить всё
ipfw add nat 1 ip from 192.168.1.0/24 to any out
ipfw add nat 1 ip from any to 1.2.3.4 in
ipfw add nat 2 ip from 192.168.2.0/24 to any out
ipfw add nat 2 ip from any to 1.2.3.5 in
...
-
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Re: Kernel nat и диапазон ип адресов
Это конешно вариант, но тут если грубо 20 внешников, то добавится 40 правил дополнительных (хотя ту таблички наверное можно прикрутить ), а так же придется разбивать клиентскую подсеть на несколько и как бы проводить аналитику, какие адреса используются, какие подсетки в нат закинуть, а с течением времени новые начнут пользоваться и тп. Не очень красиво получается, да и балансировки не добится, на одном ип будет 100 клиентов, а на другом 10. К тому же в будущем будут еще наты по разным направлениям.
- schizoid
- подполковник
- Сообщения: 3228
- Зарегистрирован: 2007-03-03 17:32:31
- Откуда: Украина, Чернигов
- Контактная информация:
Re: Kernel nat и диапазон ип адресов
ниче собсна не мешает использовать 2 фаервола...
на одном чисто НАТ, на втором все остальное
на одном чисто НАТ, на втором все остальное
ядерный взрыв...смертельно красиво...жаль, что не вечно...
-
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Re: Kernel nat и диапазон ип адресов
То есть я заменяю свои правила наschizoid писал(а):ниче собсна не мешает использовать 2 фаервола...
на одном чисто НАТ, на втором все остальное
Код: Выделить всё
#-> out vlan202
fwd 172.25.0.254 ip from внешние.ипишники to any
allow ip from any to any
#in->
allow ip from any to any in recv vlan202
pf.conf
Код: Выделить всё
pass all
nat on vlan202 inet from ng* to any -> 192.0.2.4/31 source-hash
Вся фильтрация будет проходить на ipfw.
- ---nebo---
- старшина
- Сообщения: 424
- Зарегистрирован: 2008-11-01 21:06:23
- Откуда: Киев
- Контактная информация:
Re: Kernel nat и диапазон ип адресов
допустим правила фильтрации будут на ipfw, а нат на PF. Куда будет попадать приходящий пакет с начала, на фильтрующие правила или на НАТ? Как разруливается такая ситуация вообще?schizoid писал(а):ниче собсна не мешает использовать 2 фаервола...
на одном чисто НАТ, на втором все остальное
...участки под застройку в живописном месте Интернет
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Kernel nat и диапазон ип адресов
нарисовал как "сделать пул" из внешних адресов.
http://www.lissyara.su/?id=1967#example_7
---
на счет 2х фаерволов - nuclight рассказывал, что в сетевом стеке FreeBSD они вызываются как фильтры - один после другого. В какой именно очередности будет вызываться ipfw и pf я незнаю, но наверное, если вкомпилить ipfw в ядро, а pf вызывать как модуль, то приоритет будет у ipfw.
http://smotri.com/video/view/?id=v9864889761#none

http://www.lissyara.su/?id=1967#example_7
---
на счет 2х фаерволов - nuclight рассказывал, что в сетевом стеке FreeBSD они вызываются как фильтры - один после другого. В какой именно очередности будет вызываться ipfw и pf я незнаю, но наверное, если вкомпилить ipfw в ядро, а pf вызывать как модуль, то приоритет будет у ipfw.
http://smotri.com/video/view/?id=v9864889761#none

Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
-
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Re: Kernel nat и диапазон ип адресов
Решение довольно таки интересное получается. Есть пара вопросов. Как поведет себя prob с одними одинаковым ип. Может получится такое, что например первый пакет пошел во внешку через один ип, а второй через другой, хотя оба эти пакета из одной сессии. Ну и вапще будет ли привязка внутреннего ип к внешнему в данном случае.
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Kernel nat и диапазон ип адресов
prob поведет себя отлично так как там еще и keep-state используется. Я пока поленился расписывать полное, нудное описание прохождения трафика, но идея там такая же как пятом примере. Для пятого расписано. Фишка в том, что keep-state запоминают через какое правило оно в первые было вызвано и потом всегда перепрыгивает на него. То есть сессии (а конкретно назначение тега для пакета) не должны ломаться - если раз пошло через второй нат, то и весь последующий трафик в рамках сессии тоже пойдет через него.
На привязку внутреннего к внешнему этот пример не расчитан - тут просто динамическое использование пула адресов для внутренней подсети. Один и тот же внутренний IP может выходить в мир через все внешние адреса пула.
Уточните вашу задачу более детально.
Просто, если надо именно "привязать" 1:1, то тогда надо делать по схеме как я днем написал (свой нат для конкретных клиентских IP), а если нужна комбинация и привязки, и динамического распределения, то тут надо мозговать...
На привязку внутреннего к внешнему этот пример не расчитан - тут просто динамическое использование пула адресов для внутренней подсети. Один и тот же внутренний IP может выходить в мир через все внешние адреса пула.
Уточните вашу задачу более детально.
Просто, если надо именно "привязать" 1:1, то тогда надо делать по схеме как я днем написал (свой нат для конкретных клиентских IP), а если нужна комбинация и привязки, и динамического распределения, то тут надо мозговать...
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
-
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Re: Kernel nat и диапазон ип адресов
Нужна комбинация и привязки, и динамического распределения. Можно конешно и так обойтись, но если еще к ип удастся привязать будет посто славно.
-
- мл. сержант
- Сообщения: 106
- Зарегистрирован: 2009-04-16 0:28:05
Re: Kernel nat и диапазон ип адресов
В таком раскладе пакетики у меня идут так.terminus писал(а):нарисовал как "сделать пул" из внешних адресов.
на счет 2х фаерволов - nuclight рассказывал, что в сетевом стеке FreeBSD они вызываются как фильтры - один после другого. В какой именно очередности будет вызываться ipfw и pf я незнаю, но наверное, если вкомпилить ipfw в ядро, а pf вызывать как модуль, то приоритет будет у ipfw.
http://smotri.com/video/view/?id=v9864889761#none
Исход ipfw->pf_nat
Вход pf_nat->ipfw
ipfw:
Код: Выделить всё
00104 allow ip from any to 10.25.0.0/16 in recv vlan202
00105 skipto 4000 ip from any to any out xmit vlan202
04005 allow ip from 10.25.0.0/16 to any
04999 deny ip from any to any
Код: Выделить всё
nat on vlan202 inet from 10.25.0.0/16 to any -> out_net source-hash
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Kernel nat и диапазон ип адресов
Доделал описание движения трафика через 7-й пример.
Пока писал, нашел ошибки в первоначальном варианте
все же "нудное описалово" имеет свои плюсы - ошибки отлавливаются.
Пока писал, нашел ошибки в первоначальном варианте

Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.