PF и диапазоны IP

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
ArtCont
рядовой
Сообщения: 13
Зарегистрирован: 2009-12-06 13:13:29
Откуда: Украина, Киев
Контактная информация:

PF и диапазоны IP

Непрочитанное сообщение ArtCont » 2010-10-16 12:28:42

Добрый День Господа!
Вроде вопрос дурной, но пытаясь реализовать одну задачку, не могу найти правильное её решение.

Нужно за Натить 2-а диапазона IP один серверный 2-й так сказать ВИП список. И другой кусок сети пробросить вебу на Squid.
Все это делается на PF.

Код: Выделить всё

FreeBSD corp.domain.com 8.1-RELEASE-p1 FreeBSD 8.1-RELEASE-p1 #0: Mon Oct 11 19:37:57 EEST 2010     root@corp.domain.com:/usr/obj/usr/src/sys/corp-r3  amd64
Ядро собрано с:

Код: Выделить всё

device          pf
device          pflog
device          pfsync

options         ALTQ
options         ALTQ_CBQ
options         ALTQ_RED
options         ALTQ_RIO
options         ALTQ_HFSC
options         ALTQ_CDNR
options         ALTQ_PRIQ
Диапазон ИП серверной части: 192.168.0.1-192.168.0.15
Диапазон ИП Випов: 192.168.0.20 - 192.168.0.35, 192.168.0.240 - 192.168.0.254
Диапазон форварда на Сквид: 192.168.0.51 - 192.168.0.210

Пытаюсь задать в pf таким образом:

Код: Выделить всё

squid_ip = "{ 192.168.0.51/25, 192.168.0.178/27 }"
serv_ip = "{ 192.168.0.1/28 }"
vip_ip = "{ 192.168.0.20/28, 192.168.0.240/28 }"
В итоге получаю:

Код: Выделить всё

pfctl -vnf /etc/pf.wall
squid_ip = "{ 192.168.0.51/25, 192.168.0.178/27 }"
serv_ip = "{ 192.168.0.1/28 }"
vip_ip = "{ 192.168.0.20/28, 192.168.0.240/28 }"
...
scrub in all fragment reassemble
nat on fxp1 inet from 192.168.0.0/24 to any -> (fxp1) round-robin
nat on fxp1 inet from 192.168.0.16/28 to any -> 111.111.111.111
nat on fxp1 inet from 192.168.0.240/28 to any -> 111.111.111.111
nat on fxp1 inet from 192.168.0.0/28 to any -> 111.111.111.111
......
rdr pass on fxp0 inet proto tcp from 192.168.0.0/25 to any port = ftp -> 127.0.0.1 port 3128
rdr pass on fxp0 inet proto tcp from 192.168.0.0/25 to any port = http -> 127.0.0.1 port 3128
rdr pass on fxp0 inet proto tcp from 192.168.0.0/25 to any port = 8080 -> 127.0.0.1 port 3128
rdr pass on fxp0 inet proto tcp from 192.168.0.160/27 to any port = ftp -> 127.0.0.1 port 3128
rdr pass on fxp0 inet proto tcp from 192.168.0.160/27 to any port = http -> 127.0.0.1 port 3128
rdr pass on fxp0 inet proto tcp from 192.168.0.160/27 to any port = 8080 -> 127.0.0.1 port 3128
А реально получаю проброс вообще непонятно чего и каким макаром :(
Заранее Спасибо за помощь!
Hет понятий "Правильно" и "Hеправильно" - ты не знаешь, что есть что.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.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/

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: PF и диапазоны IP

Непрочитанное сообщение schizoid » 2010-10-18 9:47:26

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

Аватара пользователя
ArtCont
рядовой
Сообщения: 13
Зарегистрирован: 2009-12-06 13:13:29
Откуда: Украина, Киев
Контактная информация:

Re: PF и диапазоны IP

Непрочитанное сообщение ArtCont » 2010-10-19 0:53:25

Это я пытался реализовать диапазоны чтоб руками не вбивать их, но увы времени совсем нет, посему пришлось создать с пару десятков групп чтоб хоть немонго был читабелен конфиг pf.
А маски я такие ставил, чтоб не строчить каждый IP в конфиг, что-то в роде: Диапазон ИП Випов: 192.168.0.20 - 192.168.0.35, заменить на /28 маску :)
Если поделиться знаниями по этому вопросу, я буду очень благодарен :)
Hет понятий "Правильно" и "Hеправильно" - ты не знаешь, что есть что.

Аватара пользователя
BlackCat
прапорщик
Сообщения: 469
Зарегистрирован: 2007-10-16 22:40:42

Re: PF и диапазоны IP

Непрочитанное сообщение BlackCat » 2010-10-20 9:52:10

ArtCont, у вас пересекаются указанные диапазоны, а некоторые вообще странно заданы (как например 192.168.0.1/28).
Почитайте хотя бы эту статью http://ru.wikipedia.org/wiki/Бесклассовая_адресация В маске не должно быть единичных бит стоящих после нулевых (если смотреть слева на право), т.е. не должно быть разрывов. Так-же при указании диапазона в виде address/len, в адресе не должно быть единичных бит после бита с номером len.
=====
Что касается решения поставленной задачи, то вам необходимо перепланировать адресацию в сети, что бы подсети были с маской одинаковой длины, тогда они не будут перекрываться и вы спокойно сможете указывать подсети в правилах МСЭ. Но учтите, что создавая подсеть вы резервируете в ней два адреса (самой подсети и широковещательный). Это вариант для случая, когда вам действительно нужны отдельные подсети.
Второй вариант - использовать таблицы и хранить их в отдельных файлах или заполнять адресами после загрузки правил, это поможет упростить конфигурационный файл сохраняя гибкость управления. А запись адресов в файл всегда возможно автоматизировать.

Аватара пользователя
ArtCont
рядовой
Сообщения: 13
Зарегистрирован: 2009-12-06 13:13:29
Откуда: Украина, Киев
Контактная информация:

Re: PF и диапазоны IP

Непрочитанное сообщение ArtCont » 2010-10-22 11:52:25

Спасибо за помощь! Сижу читаю про таблицы, пока немного не ясно, но думаю осилю. :)
Hет понятий "Правильно" и "Hеправильно" - ты не знаешь, что есть что.