On 24.11.2012 01:10, Oleksii Tsvietnov wrote:
Приветствую всех.

Продолжая настраивать сервер для "сервиса", возникла новая проблема, которую
объяснить у меня не получается.
Видимо я не до конца понимаю механизм работы dummynet...

Имеется:
2 jail'a с vimage, в каждый из которых помещена первая часть epair
интерфейса и по одному IP из одной "честной" сети.
Вторые части epair вместе с физическими сетевухами (ext0 и ext1) объединены
bridge интерфейсами в основной системе.
На ext0 есть дополнительный 3й IP из той же сети, привязанный в основной
системе.
В итоге, всего 3 IP из одной сети (в системе и каждом jail'e).
Через ext0 ходит трафик основной системы и jail1, через ext1 - только трафик
jail2.

Здесь неплохо бы еще и показывать актуальную конфигурацию.

Кто-то может разглядеть мою ошибку? Система 9.1-PRERELEASE (недели 2 назад
обновлялся)

Здесь неплохо бы указывать SVN-ревизию.

Это всё работает замечательно. Решил добавить shaper (ipfw, dummynet) в
основной системе. В jail'ах ipfw не настраивал.
Создал в по 1 трубе для исходящего в интернет трафика на ext0 и ext1, и по 1
трубе исходящего в jail'ы - на epair1 и epair2.

Проблема заключается в том, что как только я направляю трафик в dummynet, он
всегда выходит из сетевухи ext0.
Специально поставил log на "add queue" правиле, в логах пишется что трафик
вылетает с ext1, а я его вижу tcpdump'ом на ext0.
Пока работает ipfw с любыми правилами, но без направления в трубу - всё
правильно (трафик идёт с интерфейса, соответствующего нужному jail'у),
включаю - ответный трафик вылетает из ext0, даже если он идёт из jail'а,
который связан бриджом с ext1.
one_pass и включал, и выключал. Пробовал направлять в исходящую трубу только
внутри jail'a. Сперва подумал, что намудрил с динамическими
правилами, но переписав статическими, получил тот же результат.

Из конкретики: привожу пример правил ipfw (всю заготовку, чтобы не
потерялась логика, или может я где-то ошибся)...
Как только включаю правило 20100, физически трафик начинает вылетать из
ext0, выключаю - из ext1.
Более того, если выключаю one_pass, создаётся какая-то петля, и один раз
влетевший в трубу трафик, всё время в ней крутится (запускаю 1 icmp пакет, а
он в tcpdump'e с громадной скоростью отображается как вновь и вновь
входящим). Включаю one_pass - уже на 20199 правило не попадает, трафик не
множится, но по прежнему вылетает с ext0.

# ext0: ${iphost}
# bridge0: ext0 + hgold0
# bridge1: ext1 + hguest0
# ${ipgold} and ${ipguest} on the other side of epairs (jgold0, jguest0)

${fw} pipe 200 config bw 256Kbit/s # Out
${fw} pipe 201 config bw 256Kbit/s # In
${fw} queue 1200 config pipe 200 weight 25 queue 70 mask dst-ip 0xffffffff
gred 0.002/10/30/0.1 # Out
${fw} queue 1201 config pipe 201 weight 25 queue 70 mask src-ip 0xffffffff
gred 0.002/10/30/0.1 # In

${fw} add 1000 skipto 10000 in recv ext0
${fw} add 1100 skipto 10100 in recv ext1

[...]

${fw} add 20499 pass proto ip

А где PBR-то? Не видно ни fwd, ни setfib, ни даже просто таблицы роутинга. Дебажить по таким данным не представляется возможным.

--
Vadim Goncharov     <[email protected]>           RU-Center
NET Department                            http://www.nic.ru
NET-SYS Group             phone:+7(495)737-7646  (ext.4019)

Ответить