стартап скрипты, метрики и fwmark

12 views
Skip to first unread message

Shubert

unread,
Jul 22, 2010, 8:11:58 AM7/22/10
to madwimax-dev
День добрый
Возникла задача, казалось бы, довольно простая: задействовать йоту,
как резервный канал, отправив на него всех пользователей портов 80 и
443. Платформа Ubuntu 9.10, сетевых карт 2
192.168.0.1 локаль
76.12.22.34 - шлюз на оптику

первый звоночек прозвучал при старте madwimax -do: почему-то он
решительно присвоил себе метрику 0. Разумеется, она дефолтовая, но
идея плохая - тут же дохнет все, что висело на предыдущем роуте.
Назначить на старте метрику невозможно.

Отследить, проявилось ли устройство wimax0 нельзя - madwimax уже
отрапортовал о счастливом старте, а ifconfig wimax0 кажет дулю, ip
route show не показывает в таблицы добавления нового маршрута (не
отработал еще dhcpd)

Ладно, руками (ifmetric) прибиваем метрику 100 и далее

iptables -t mangle -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -
j MARK --set-mark 4

и далее
ip route flush table 4
ip route show table main | grep -Ev ^default \
> | while read ROUTE ; do
> ip route add table 4 $ROUTE
> done

ip route add table 4 default via heregoesyotaip
ip rule add from heregoesyotaip via 4

Перегружаем правила iptables, проверяем их -L цепочки. Вроде бы,
должно наступить счастье. Не наступает. пакеты в йоту уходят. Йота
лезет на тот же яндекс. но вот обратно ничего не отдает. то есть, в
дампе
-> SYN
-< SYN-ACK
и молчание. Повторяется трижды.

Ок, откатил правила в iptables, задачу решил через сквид, назначив
аутбаунд йотовский и пакеты зарулив в таблицу 4.

Выжимка:
1. нельзя ни назначить метрику, ни выяснить, в какой стадии находится
подключение мопеда к сети
2. попытка использовать fwmark с тресокм провалилась (contract есть,
сиходящие пакеты видны, tcpdump -i wimax0 показывает, что "туда"
пакеты уходят, RP_FILTER = 0, для чистоты эксперимента в скрипте
iptables оставил всего 5 правил: 3 на разрешение всего через INPUT,
OUTPUT, FORWARD, PREROUTING 80 порта и маскарадинг - не помогает )
3. Скрипт в /etc/wimax/event.sh не выполняется ((

Если я все сделал неправильно, то подскажите, если не сложно, как
именно пустить скрипт сразу после того, как wimax закончил
регистрироваться в сети и добавил свои маршруты в route

Спасибо за терпение ;)

Shubert

unread,
Aug 2, 2010, 3:56:27 AM8/2/10
to madwimax-dev
Описанные проблемы не закончились.

1. на ядре 2.6.31-22-server правила udev не срабатывают. то есть,
вставив свисток, автоматического запуска madwimax не происходит
http://github.com/ago/madwimax/commit/a6f1d42b26f939f0bea3dedf269d9251b1fb097e
пока не пробовал

2. Если свисток теряет связь (антена глюканула, вышку ребутнули), то
происходит подключение заново и ... таблица маршрутизации опять
обновляется, опять метрика 0, опять все улетает в свисток и все
сервисы лежат.

Alexander Gordeev

unread,
Aug 3, 2010, 6:26:40 AM8/3/10
to madwim...@googlegroups.com, alex.s...@gmail.com
Добрый день!

Такие вещи, как запуск ifmetric и тд нужно делать в скрипте event.sh.
Других нормальных вариантов нет.

В Thu, 22 Jul 2010 05:11:58 -0700 (PDT)
Shubert <alex.s...@gmail.com> пишет:

Проблема именно в этом.

> Если я все сделал неправильно, то подскажите, если не сложно, как
> именно пустить скрипт сразу после того, как wimax закончил
> регистрироваться в сети и добавил свои маршруты в route

Должно само пускаться. Если нет, значит вы как-то неправильно
собрали/установили.
Причин может быть много разных. Например, не выставлен бит разрешения
выполнения.

--
Alexander

Reply all
Reply to author
Forward
0 new messages