lan-viper Опубликовано 8 апреля, 2012 (изменено) · Жалоба Всех приветствую. Столкнулся со следующей проблемкой: сделал 4 виртуальных интерфейса imq0 imq1 imq2 imq3, первые два работают уже год на благо QoS аплинка для vpn-щиков. Вторые два (imq2, imq3) пытаюсь со вчерашнего дня прикрутить для целей шейпа ipoe юзеров (да, да, только сейчас начали переходить потихоньку). На этой же машине NAT - это и является причиной использования IMQ, к сожалению, других вариантов пока нет. Итак, интерфейсы по команде ip link set imq[2|3] up поднимаются, в iptables стоят соотв. правила $IPT -t mangle -A PREROUTING -i $IF_LAN -m set --set IPOEUSERNETS src -j IMQ --todev 3 $IPT -t mangle -A POSTROUTING -o $IF_LAN -m set --set IPOEUSERNETS dst -j IMQ --todev 2 По правилам счётчики пакетов шевелятся, а вот на интерфейсах по команде ifconfig imq2 или imq3 счётчики стоят в нулях. Пробую экспериментировать: убираю полностью использование QoS на imq0 и imq1 и отдаю их под мой новый шейпер и всё зашевелилось. Скорость у абонентов режется туда сюда отлично! Отсюда делаю предварительный вывод, что проблема в количестве этих самых устройств, прописываю в /etc/modules imq numdevs=4, перезагружаю модуль и все свои настройки (снова с 4-мя устройствами) - а не тут-то было, снова ничего не работает... Коллеги, подскажите, в чём может быть дело? Если нужны какие-нибудь ещё данные по моей конфигурации для уточнения, спрашивайте. Буду рад любым комментариям. Изменено 8 апреля, 2012 пользователем lan-viper Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
m0xf Опубликовано 8 апреля, 2012 · Жалоба к сожалению, других вариантов пока нет. Как это нет? А ifb? Меня вообще удивляет, почему все так уверены, что ifb+nat не будет работать. Нужно redirect делать с внутреннего интерфейса, и можно будет фильтровать по серым адресам. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
lan-viper Опубликовано 8 апреля, 2012 · Жалоба к сожалению, других вариантов пока нет. Как это нет? А ifb? Меня вообще удивляет, почему все так уверены, что ifb+nat не будет работать. Нужно redirect делать с внутреннего интерфейса, и можно будет фильтровать по серым адресам. А мне imq больше нравится. ))) Немного разобрался со своей проблемой, оказалось, что уткнулся в неприятную особенность работы модуля для iptables (причём в забугорном инете тоже попадались теже самые симптомы, проблему в явном виде так никто там и не решил...). Я думал сделать так (часть правил для исходящего трафика): $IPT -t mangle -A PREROUTING -i $IF_LAN -m set --set IPOEUSERIPS src -j IMQ --todev 3 $IPT -t mangle -A PREROUTING -i $IF_LAN -m set --set IPOEUSERNETS src -j IMQ --todev 3 $IPT -t mangle -A PREROUTING -i $IF_LAN -m set --set IPOEUSERIPS src -j IMQ --todev 1 $IPT -t mangle -A PREROUTING -i $IF_LAN -m set --set IPOEUSERNETS src -j IMQ --todev 1 $IPT -t mangle -A PREROUTING -i ppp+ -j IMQ --todev 1 где imq1 - это устройство с дисциплинами для приоритезации общего канала для всех, а imq3 - устройство, где находятся шейпы для счастливых абонентов без vpn-а. Так вот, петрушка вся в том, что нельзя сделать перенаправление в одной цепочке (в данном случае PREROUTING) для одного конкретного интерфейса ($IF_LAN) на несколько imq устройств. Перенаправление будет работать только для последнего по цепочке правил imq устройства, т.е. imq1. imq3 идёт лесом... Если оставить следующую цепочку правил, то всё работает: $IPT -t mangle -A PREROUTING -i $IF_LAN -m set --set IPOEUSERIPS src -j IMQ --todev 3 $IPT -t mangle -A PREROUTING -i $IF_LAN -m set --set IPOEUSERNETS src -j IMQ --todev 3 $IPT -t mangle -A PREROUTING -i ppp+ -j IMQ --todev 1 Вот такие вот пироги. Остались мои ipoe-шники без приоритезации общего канала, а это огорчает... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bos9 Опубликовано 9 апреля, 2012 · Жалоба Используйте физические интерфейсы для части задачи. Например $IF_LAN для шейпера входящего для абонентов трафика (при этом imqX для приоретизации). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
lan-viper Опубликовано 9 апреля, 2012 (изменено) · Жалоба Используйте физические интерфейсы для части задачи. Например $IF_LAN для шейпера входящего для абонентов трафика (при этом imqX для приоретизации). По физ. интерфейсам: допустим, что $IF_WAN - интерфейс аплинка. На нём NAT => на физ интерфейс смысла нет что-либо вешать, т.е. мы лишаемся контроля над исходящим трафиком. Смысл использования IMQ как раз и заключается в том, что мы можем до NAT контролировать трафик с ещё серыми абонентскими адресами. UPD ... хотяя, если речь вести только о приоритезации общего канала, где нет необходимости учёта ip абонентов, то идея с физ интерфейсами годная. Надо подумать. Изменено 9 апреля, 2012 пользователем lan-viper Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...