Перейти до

Iptables Per-Connection-Classifier


Рекомендованные сообщения

Заметил в микротике прикольную фичу - PCC.

Позволяет разделить трафик на несколько потоков, причем равномерно.

Очень полезно для overload NAT-а кучи сеток через несколько внешних адресов, например

/ip firewall mangle
add action=mark-connection chain=prerouting new-connection-mark=nat-1 passthrough=yes per-connection-classifier=src-address:8/0 \
    src-address=10.100.0.0/16
add action=mark-connection chain=prerouting new-connection-mark=nat-2 passthrough=yes per-connection-classifier=src-address:8/1 \
    src-address=10.100.0.0/16
add action=mark-connection chain=prerouting new-connection-mark=nat-3 passthrough=yes per-connection-classifier=src-address:8/2 \
    src-address=10.100.0.0/16
add action=mark-connection chain=prerouting new-connection-mark=nat-4 passthrough=yes per-connection-classifier=src-address:8/3 \
    src-address=10.100.0.0/16
add action=mark-connection chain=prerouting new-connection-mark=nat-5 passthrough=yes per-connection-classifier=src-address:8/4 \
    src-address=10.100.0.0/16
add action=mark-connection chain=prerouting new-connection-mark=nat-6 passthrough=yes per-connection-classifier=src-address:8/5 \
    src-address=10.100.0.0/16
add action=mark-connection chain=prerouting new-connection-mark=nat-7 passthrough=yes per-connection-classifier=src-address:8/6 \
    src-address=10.100.0.0/16
add action=mark-connection chain=prerouting new-connection-mark=nat-8 passthrough=yes per-connection-classifier=src-address:8/7 \
    src-address=10.100.0.0/16
/ip firewall nat
add action=src-nat chain=srcnat connection-mark=nat-1 out-interface=vlan452 to-addresses=194.44.166.xxx
add action=src-nat chain=srcnat connection-mark=nat-2 out-interface=vlan452 to-addresses=194.44.166.xxx
add action=src-nat chain=srcnat connection-mark=nat-3 out-interface=vlan452 to-addresses=194.44.166.xxx
add action=src-nat chain=srcnat connection-mark=nat-4 out-interface=vlan452 to-addresses=194.44.166.xxx
add action=src-nat chain=srcnat connection-mark=nat-5 out-interface=vlan452 to-addresses=194.44.166.xxx
add action=src-nat chain=srcnat connection-mark=nat-6 out-interface=vlan452 to-addresses=194.44.166.xxx
add action=src-nat chain=srcnat connection-mark=nat-7 out-interface=vlan452 to-addresses=194.44.166.xxx
add action=src-nat chain=srcnat connection-mark=nat-8 out-interface=vlan452 to-addresses=194.44.166.xxx

Есть вопрос - а как реализовать такой же рулсет с помощью iptables?

 

 

Відредаговано mr.Scamp
Ссылка на сообщение
Поделиться на других сайтах

В iptables такие костыли вообще не нужны, делайте обычный snat в диапазон адресов с ключиком persistent или как оно там.

Ссылка на сообщение
Поделиться на других сайтах
$ipt -t nat -A POSTROUTING -s 172.16.0.128/26 -o vlanXXX -j SNAT --to-source Y.Y.Y.195

$ipt -t nat -A POSTROUTING -s 172.16.0.192/26 -o vlanXXX -j SNAT --to-source Y.Y.Y.196

$ipt -t nat -A POSTROUTING -s 172.16.1.0/26 -o vlanXXX -j SNAT --to-source Y.Y.Y.197

У меня так

Ссылка на сообщение
Поделиться на других сайтах

SNAT в диапазон адресов не катит, соединения одного и того же юзера размываются по всему диапазону.

Ключик --persistent добавляет хэширование src-dst ip при выборе внешнего адреса, но тоже не то немного, насколько я понимаю, один и тот же юзер будет иметь разные исходящие IP при посещении разных ресурсов.

 

Пока что присматриваюсь к DNETMAP, штука интересная, но нужно много внешних адресов, по адресу на каждого активного клиента.

Ссылка на сообщение
Поделиться на других сайтах
  В 09.08.2014 в 14:42, twg сказав:

 

У меня так

 

 

Тут недостаток в том, что пользователи получают неизменный внешний адрес, что не всегда есть желательно.

Да и при большом количестве внутренних подсетей таким рулсетом неудобно управлять из-за его громоздкости.

 

Мне вот нравиться решение задачи NAT-а в пул адресов с помощью pf на FreeBSD

nat on vlan210 from 10.200.0.0/16 to any -> 193.106.147.zzz/28 source-hash
Ссылка на сообщение
Поделиться на других сайтах
  В 09.08.2014 в 14:45, mr.Scamp сказав:

Ключик --persistent добавляет хэширование src-dst ip при выборе внешнего адреса, но тоже не то немного, насколько я понимаю, один и тот же юзер будет иметь разные исходящие IP при посещении разных ресурсов.

А не факт что будут разные, проверьте. И даже если будут - что с того? Распределение равномерное работает как и требовалось.
Ссылка на сообщение
Поделиться на других сайтах

 

 

  В 09.08.2014 в 14:55, mr.Scamp сказав:
Тут недостаток

Ну не самый изящный способ. )) Но телега тянет, сети каждый день не добавляются. При большом количестве сетей на баше можно разребать.

Ссылка на сообщение
Поделиться на других сайтах
  В 09.08.2014 в 15:01, KaYot сказав:
А не факт что будут разные, проверьте. И даже если будут - что с того? Распределение равномерное работает как и требовалось.

Могут быть проблемы с сайтами, где фронт и контент находятся за разными IP-адресами, они требуют, чтобы скачивание/стриминг контента было с того же адреса, откуда был загружен плеер.

Обязательно проверю, кстати.

Ссылка на сообщение
Поделиться на других сайтах
  В 09.08.2014 в 15:11, mr.Scamp сказав:

 

  В 09.08.2014 в 15:01, KaYot сказав:

А не факт что будут разные, проверьте. И даже если будут - что с того? Распределение равномерное работает как и требовалось.

Могут быть проблемы с сайтами, где фронт и контент находятся за разными IP-адресами, они требуют, чтобы скачивание/стриминг контента было с того же адреса, откуда был загружен плеер.

Обязательно проверю, кстати.

 

Насколько я помню при persistent как раз таки по src ip идет хеширование, и проблем не возникает.
Ссылка на сообщение
Поделиться на других сайтах

Проверил, действительно хэшируется по src-ip, причем даже после ребута внешний адрес остается тем же.

Как все просто оказалось на самом деле ;-) Спасибо всем за советы.

Ссылка на сообщение
Поделиться на других сайтах

Кстати может кто знает, как в Debian реализовать Per Connection Classifier, а именно балансировку каналов по src адресу? Разбивать трафик по src допустим так - первый ip пошел через isp1, второй ip пошел через isp2, третий снова по isp1 и так далее.

Ссылка на сообщение
Поделиться на других сайтах
  В 10.08.2014 в 20:21, fet4 сказав:

Кстати может кто знает, как в Debian реализовать Per Connection Classifier, а именно балансировку каналов по src адресу? Разбивать трафик по src допустим так - первый ip пошел через isp1, второй ip пошел через isp2, третий снова по isp1 и так далее.

а два дефолта с одинаковым весом не работают?

Ссылка на сообщение
Поделиться на других сайтах
  В 10.08.2014 в 20:31, rsst сказав:

 

  В 10.08.2014 в 20:21, fet4 сказав:

Кстати может кто знает, как в Debian реализовать Per Connection Classifier, а именно балансировку каналов по src адресу? Разбивать трафик по src допустим так - первый ip пошел через isp1, второй ip пошел через isp2, третий снова по isp1 и так далее.

а два дефолта с одинаковым весом не работают?

 

Не работают. И nexthop тоже не работает корректно. Пример - заходишь в вк, вроде зашло, а музыка не играет, потом во все авторизацию сбрасывает, все потому что последующее соединение идет через другой шлюз.

 

Надо как-то маркировать и направлять в нужные таблицы.

 

Вот если бы к этому привязать как-то src адрес, цены не было б.

iptables -t mangle -N NEW_OUT_CONN

iptables -t mangle -A NEW_OUT_CONN -j CONNMARK --set-mark 1

iptables -t mangle -A NEW_OUT_CONN -m statistic --mode random --probability 0.50 -j RETURN

iptables -t mangle -A NEW_OUT_CONN -j CONNMARK --set-mark 2

Відредаговано fet4
Ссылка на сообщение
Поделиться на других сайтах

нашел релевантную ссылку по теме

http://serverfault.com/questions/237867/iptables-match-for-hashing-ip-addresses

Ссылка на сообщение
Поделиться на других сайтах
  В 10.08.2014 в 20:21, fet4 сказав:

Кстати может кто знает, как в Debian реализовать Per Connection Classifier, а именно балансировку каналов по src адресу? Разбивать трафик по src допустим так - первый ip пошел через isp1, второй ip пошел через isp2, третий снова по isp1 и так далее.[/size]

Решение классическое, через ip rule.

1) создаете 2 таблицы маршрутизации (t1 и t2 к примеру). Как создавать искать лень, ищите. Добавить строчку в /etc/iproute/rt_tables или где-то рядом.

2) Делаете

ip rule add from 192.168.1.0/24 table t1

ip rule add from 192.168.2.0/24 table t2

Классификаторов в rule много, можно задать любые условия. Например по меткам как вы выше делали, хоть это и не тру вей.

3) В таблицы добавляете нужные default GW

ip route add deafult via xx.xx.xx.xx table t1

ip route add deafult via yy.xx.xx.xx table t2

 

Profit.

Відредаговано KaYot
Ссылка на сообщение
Поделиться на других сайтах

Не вы не поняли. То что вы написали все есть и работает бомба.

 

Нужно сбалансировать нагрузку от активных клиентов по двум таблицам допустим 50/50. И не просто сбалансировать, а по src адресу. Чтоб часть ip пошла через первую табличку, вторая часть во вторую. До окончания сесси

Відредаговано fet4
Ссылка на сообщение
Поделиться на других сайтах
  В 11.08.2014 в 07:00, Abram сказав:

KaYot, ему хочется динамически от нагрузки разбрасывать.

В таком случае нужно прикрутить скрипт к ip-up (pppoe) или к ДХЦП при выдаче ип маркировать или рулить. Но это опять же не динамически по нагрузке.

Ссылка на сообщение
Поделиться на других сайтах
  В 11.08.2014 в 07:00, Abram сказав:

KaYot, ему хочется динамически от нагрузки разбрасывать.

Хотя бы по очереди пихать то в одну то в другую табличку.

 

 
  В 11.08.2014 в 07:20, twg сказав:

 

  В 11.08.2014 в 07:00, Abram сказав:

KaYot, ему хочется динамически от нагрузки разбрасывать.

В таком случае нужно прикрутить скрипт к ip-up (pppoe) или к ДХЦП при выдаче ип маркировать или рулить. Но это опять же не динамически по нагрузке.

 

Думаю так и придется, делать костыль. А как лучше реализовать на bash выборку ip, чтобы чередовать таблицы маршрут.? 

Відредаговано fet4
Ссылка на сообщение
Поделиться на других сайтах
  В 13.08.2014 в 09:42, NiTr0 сказав:

ip-down - удление правила из таблички, ip-up - добавление правила в ту табличку, где меньше всего записей...

Так лучше всего. Но, опять же, больше записей не означает бОльшую нагрузку на канал.

ИМХО нормально эту задачу не решить.

 

Если речь об аналоге микротиковских правил, то тут уже ответили. Если о динамически по нагрузке, то нормально никак. Нагрузка сама по себе динамическая.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від Игорь2025
      Требуется ремонт  внешней точки доступа Mikrotik
      Точка доступа RBwAPG-5HacD2HnD
    • Від fitros
      Вітаю всіх!
      Професійно займаюсь ремонтом зварювальних апаратів, сколювачів, обладнання MikroTik та Ubiquiti. Маю великий досвід і ґрунтовні знання в ремонті та обслуговуванні вказаного обладнання. Звертайтесь із запитаннями — завжди радий допомогти!
       
       
    • Від zababaha
      Всем привет.
      В один прекрасный день отвалился MikroTik RB4011GS+RM. При включении загорается индикация питания и всё. 
      Попытки сбросить до заводских настроек, играться с netisntall в надежде перезалить в него прошивку никак не помогли. Поведение не меняется.
      Пробежался по интернетам в попытках найти авторизованный сервис для диагностики и, если живой, то ремонта - не помогли.
      Несколько лет назад покупал его на ntema, позвонил им, но ребята сказали, что негарантийным ремонтом не занимаются.
       
      Подскажите, плиз, кого-нибудь, кто возьмётся за диагностику и ремонт, если он ремонтопригоден? Цацка не копеечная, сразу в утиль отправлять будет грустно.
       
      З.Ы.: За 15 лет дружбы с тиками у меня этот первый, кто взял - и сдох на ровном месте(
    • Від alexeya
      Контроллер TP-Link OC200 - 2700 грн (є 4 штуки)
      Точка доступа TP-Link EAP245 - 2900 грн
      Mimosa C5x - 5000 грн (є 2 штуки)
      Mikrotik Groove A-52HPn - 1500 грн
       
      Mikrotik Groove A-52HPn вживана без POE-адаптера - 990 грн

    • Від GMelик
      Вітання! Наперед вибачаюсь з тупі питання! Але мені потрібна допомога з вирішенням проблеми роботи wifi. Загалом ситуація наступна: є офіс куди заведений інтернет, роль маршрутизатора виконує Mikrotik hap ac2 з вимкненими wifi інтерфейсами до якого через кабель підключено кілька пк підмережа та до нього ж підключена точка доступу Mikrotik cAP ax (з своїм dhcp) до якої і підключається більшість ноутбуків/телефонів та інших пристроїв з підтримкою wifi. Проблема наступна: регулярно відбуваються збої в роботі інтернету на пристроях які підключені до точки доступу, інколи просто вилітає віддалений робочий стіл (підключений через vpn), а інколи техніка переключається з 5г мережі на 2г. Спроби пінгувати точку показують що є регулярні стрибки пінга від 1-2 мс до 400-500-600+ мс (міряв як через cmd так і pingplotter) на різних пк, через netmonitor видно що стрибає якість сигналу від 40 до 70-80 і назад, при тому що телефон не переміщається і знаходиться за 2-3м від точки. 



      Спочатку думав на налаштування точки - перепробував різні частоти, нічого не змінилось. Переміщав точку в різні місця - результату 0. Вмикав wifi інтерфейс на прихідному тіку, картина та ж що і на точці. 
      І на 2г і на 5г ситуація плюс мінус однакова. 

      Допоможіть зрозуміти, що може спричиняти такі збої та головне як з цим боротись?
×
×
  • Створити нове...