policy routing со мной не дружит:(

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
godlike
рядовой
Сообщения: 43
Зарегистрирован: 2007-09-05 10:13:17
Откуда: Киев
Контактная информация:

policy routing со мной не дружит:(

Непрочитанное сообщение godlike » 2008-09-27 13:29:05

Топология сети такая:
Есть сервер с внешним интерфейсом em0, ip:x.x.x.x gw:x.x.x.x-1
Создан туннель ipip с удаленным роутером, интерфейс: gif0, ip:y.y.y.y gw:y.y.y.y-1
как гетвей по умолчанию установлен y.y.y.y-1
К серверу по OpenVPNу подключаются клиенты. Каждому выдается серый айпишник из подсети/30 аля

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

IP: 192.168.0.6 Mask 255.255.255.252 gw:192.168.0.5
Запущен NAT:

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

ps ax | grep nat
52409  ??  Rs     0:03,05 /sbin/natd -f /etc/natd.conf -n gif0

ipfw add 1000 divert 8668 ip from 192.168.0.0/24 to any out via gif0
ipfw add 1010 divert 8668 ip from any to y.y.y.y  
Все работает, все довольны.

И тут мне потребовалось, чтоб клиент из подсети 192.168.0.8/30
ходил через em0

Запустил еще 1 нат:

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

natd -p 9999 -n em0
в файрвол перед вышеизложенными правилами добавил следующее:

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

ipfw add 970 divert 9999 ip from 192.168.0.10 to any out via em0
ipfw add 980 fwd x.x.x.x-1 ip from 192.168.0.10 to any
ipfw add 990 divert 9999 ip from any to x.x.x.x
И... ничего:(

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

ipfw show:

~~~~~~~~~~~~
00970         0           0 divert 9999 ip from 192.168.0.10 to any out via em0
00980        14        1080 fwd x.x.x.x-1 ip from 192.168.0.10 to any
00990      8751     6481395 divert 9999 ip from any to x.x.x.x
01000      6727     2198670 divert 8668 ip from 192.168.0.0/24 to any out via gif0
01100      8624     6299902 divert 8668 ip from any to y.y.y.y
~~~~~~~~~~~~

netstat -rn
Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            y.y.y.y-1      UGS         0   237128   gif0
x.x.x.x-1         x.x.x.x       UH          1        7    em0

Даже не знаю, кода копать:(

З.Ы. ядро:

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

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options IPFIREWALL_NAT
Извини, zingel, в следующий раз буду внимательнее :oops:
Последний раз редактировалось zingel 2008-09-27 13:56:26, всего редактировалось 1 раз.
Причина: какое мерзкое оформление, юзай кнопочку [code][/code]
Делай, что дожен - и будь, что будет!

Хостинговая компания 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/

Аватара пользователя
uHk
мл. сержант
Сообщения: 134
Зарегистрирован: 2008-05-21 15:16:48
Откуда: Москва
Контактная информация:

Re: policy routing со мной не дружит:(

Непрочитанное сообщение uHk » 2008-09-27 20:52:47

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

ipfw add 900 skipto 9000 ip from 192.168.0.10 to any out via gif0
ipfw add 990 divert 9999 ip from any to x.x.x.x
ipfw add 1000 divert 8668 ip from 192.168.0.0/24 to any out via gif0
ipfw add 1100 divert 8668 ip from any to y.y.y.y

ipfw add 9000 divert 9999 ip from any to any out via gif0
ipfw add 9100 fwd x.x.x.x-1 ip from x.x.x.x to any
может так получится?
надо сразу брать лошадь за рога

Аватара пользователя
godlike
рядовой
Сообщения: 43
Зарегистрирован: 2007-09-05 10:13:17
Откуда: Киев
Контактная информация:

Re: policy routing со мной не дружит:(

Непрочитанное сообщение godlike » 2008-09-27 21:45:35

не помогает, хост 192.168.0.10 ходит "по-умолчанию"
а вот с сервера при
traceroute -s x.x.x.x remote_host
пакеты таки форвардятся
Делай, что дожен - и будь, что будет!

Аватара пользователя
uHk
мл. сержант
Сообщения: 134
Зарегистрирован: 2008-05-21 15:16:48
Откуда: Москва
Контактная информация:

Re: policy routing со мной не дружит:(

Непрочитанное сообщение uHk » 2008-09-28 1:38:08

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

sysctl net.inet.ip.fw.one_pass = 0
надо сразу брать лошадь за рога

Аватара пользователя
godlike
рядовой
Сообщения: 43
Зарегистрирован: 2007-09-05 10:13:17
Откуда: Киев
Контактная информация:

Re: policy routing со мной не дружит:(

Непрочитанное сообщение godlike » 2008-09-28 2:35:10

А вот тут косяк:(
У меня такая система шейпинга, что без one_pass не обойдешся...

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

${fwcmd} add pipe 68 ip from table\(1\) to 192.168.0.90 out via ${intint}
${fwcmd} pipe 68 config bw 512Kbit/s
${fwcmd} add pipe 69 ip from 192.168.0.90 to table\(1\) in via ${intint}
${fwcmd} pipe 69 config bw 256Kbit/s
${fwcmd} add pipe 70 ip from any to 192.168.0.90 out via ${intint}
${fwcmd} pipe 70 config bw 256Kbit/s
${fwcmd} add pipe 71 ip from 192.168.0.90 to any in via ${intint}
${fwcmd} pipe 71 config bw 128Kbit/s
где table(1) - таблица сетей UA-IX
Скоро планирую переделать на динамические пайпы масками, но там тоже придется прогонять пакет через 2 пайпа: 1)украинский 2) мировой

Можно ли как-то организовать роутинг с one_pass=1 ?
Делай, что дожен - и будь, что будет!

Аватара пользователя
uHk
мл. сержант
Сообщения: 134
Зарегистрирован: 2008-05-21 15:16:48
Откуда: Москва
Контактная информация:

Re: policy routing со мной не дружит:(

Непрочитанное сообщение uHk » 2008-09-28 19:02:23

мне кажется, что ваша система шейпинга будет и с

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

one_pass= 0
работать.
надо сразу брать лошадь за рога

Аватара пользователя
godlike
рядовой
Сообщения: 43
Зарегистрирован: 2007-09-05 10:13:17
Откуда: Киев
Контактная информация:

Re: policy routing со мной не дружит:(

Непрочитанное сообщение godlike » 2008-09-28 20:22:38

Нет, к сожалению не будет.
pipe это не правила, с ними такая приоретизация правил по номеру не работает.
Т.е. трафик в любом случае пройдет сначала по 1 пайпу, а потом по второму.
Делай, что дожен - и будь, что будет!

Аватара пользователя
uHk
мл. сержант
Сообщения: 134
Зарегистрирован: 2008-05-21 15:16:48
Откуда: Москва
Контактная информация:

Re: policy routing со мной не дружит:(

Непрочитанное сообщение uHk » 2008-09-29 7:20:21

а если попробовать что-то наподобие такого:

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

${fwcmd} add pipe 68 tag 1 ip from table\(1\) to 192.168.0.90 out via ${intint}
${fwcmd} add skipto XXX tagged 1
${fwcmd} pipe 68 config bw 512Kbit/s
${fwcmd} add pipe 69 tag 1 ip from 192.168.0.90 to table\(1\) in via ${intint}
${fwcmd} add skipto XXX tagged 1
${fwcmd} pipe 69 config bw 256Kbit/s
${fwcmd} add pipe 70 tag 1 ip from any to 192.168.0.90 out via ${intint}
${fwcmd} add skipto XXX tagged 1
${fwcmd} pipe 70 config bw 256Kbit/s
${fwcmd} add pipe 71 tag 1 ip from 192.168.0.90 to any in via ${intint}
${fwcmd} add skipto XXX tagged 1
${fwcmd} pipe 71 config bw 128Kbit/s
либо в пайпах 70, 71 any поменять на "not table\(1\)"

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

${fwcmd} add pipe 70 tag 1 ip from not table\(1\) to 192.168.0.90 out via ${intint}
${fwcmd} add pipe 71 tag 1 ip from 192.168.0.90 to not table\(1\) in via ${intint}
тогда видно, что повторного захода в пайпы не будет
надо сразу брать лошадь за рога

Аватара пользователя
godlike
рядовой
Сообщения: 43
Зарегистрирован: 2007-09-05 10:13:17
Откуда: Киев
Контактная информация:

Re: policy routing со мной не дружит:(

Непрочитанное сообщение godlike » 2008-09-29 19:45:16

ОО, а насчет not table\(1\) я не догадался :)))
Щас попробую...
Делай, что дожен - и будь, что будет!

Аватара пользователя
godlike
рядовой
Сообщения: 43
Зарегистрирован: 2007-09-05 10:13:17
Откуда: Киев
Контактная информация:

Re: policy routing со мной не дружит:(

Непрочитанное сообщение godlike » 2008-10-07 0:05:55

Нет, к сожалению такой способ не работает:( (имеется ввиду шейпинг)
Может, у кого-то есть еще идеи?
Делай, что дожен - и будь, что будет!

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: policy routing со мной не дружит:(

Непрочитанное сообщение paradox » 2008-10-07 10:09:05

00970 0 0 divert 9999 ip from 192.168.0.10 to any out via em0
00980 14 1080 fwd x.x.x.x-1 ip from 192.168.0.10 to any
00990 8751 6481395 divert 9999 ip from any to x.x.x.x
поменяй местами 970 и 990

сначала входящие
потом форвард
потом исходящие
а не наоборот

если ничего не даст
будем смотреть дальше
но политика такая

Аватара пользователя
godlike
рядовой
Сообщения: 43
Зарегистрирован: 2007-09-05 10:13:17
Откуда: Киев
Контактная информация:

Re: policy routing со мной не дружит:(

Непрочитанное сообщение godlike » 2008-10-07 22:47:04

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

00970      4219      2106680 divert 9999 ip from any to x.x.x.x
00980        41         2820 fwd x.x.x.x-1 ip from 192.168.0.10 to any
00990         0            0 divert 9999 ip from 192.168.0.10 to any out via em0

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

# sysctl net.inet.ip.fw.one_pass
net.inet.ip.fw.one_pass: 1
Делай, что дожен - и будь, что будет!

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: policy routing со мной не дружит:(

Непрочитанное сообщение paradox » 2008-10-08 12:35:31

00970 4219 2106680 divert 9999 ip from any to x.x.x.x
00980 41 2820 fwd x.x.x.x-1 ip from 192.168.0.10 to any
00990 0 0 divert 9999 ip from 192.168.0.10 to any out via em0
990 будет срабатывать токо если пакет уходит через em0
а x.x.x.x-1 это роут через em0
если не то и дефолт чрез другой интерфейс то не сработает

попробуй без out via em0

либо нужна будет картинка хотя бы с описанием сколько там интерфейсов
куда дефоулт
и куда какие хождения пакетов