Перейти до

Мультироутинг


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

Здравствуйте , дорогой читатель :)

 

Задача : Распихивать трафик идущий через роутер на Н-ое кол-во шлюзов.

 

Я решил её так :

 

1.Создаем Н таблиц маршрутизации и прописываем для каждой свой шлюз по дефолту.

2.Прописываем вызов скрипта из OnConnect и OnDisconnect для добавления ипа юзера в таблицу с наименьшим количеством и удаления их.

3.Вот скрипт :

 

#!/bin/bash

#Get ip adress and command

ip=$1

com=$2

min=10000

case "$com" in

"add")

for i in 1 2 3 4

do

let num=`ip rule list | grep canal$i | wc -l`

if [ "$num" -lt "$min" ]

then

min=$num

imin=$i

fi

done

ip rule add from $ip table canal$imin

;;

"del")

ntable=`ip rule list|grep "$ip " | cut -d ' ' -f4`

if [ "$ntable" != "" ]

then

ip rule del from $ip table $ntable

fi

;;

esaс

 

В моем случае 4 таблицы с именами canal1-4

 

 

Скрипт конечно не дает полного склеивания для каналов и не дает распределения по фактическому трафику, но зато исправно распихивает по каналам.

 

Я пробовал использовать мультироутинг через

ip route add default equalize scope global nexthop via ... nexthop via ...

 

Но с ним рвется аська и игры и все чему нада постоянный коннект с одного адреса ...

 

Может у когото есть хороший и проверенный способ ?

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

я использую в том числе принудительный заворот на squid с tcp_outgoing_address или набором parent прокси серверов типа 3proxy, которые настроены каждый на свой канал.

Но всё это только для проксируемого трафика (в основном http).

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

Да я тоже юзал сквид ,правда тада еще не было много каналов т.е. и проблемы...

 

Зато Вы меня натолкнули на мысль еще одну хорошую..

 

Маркировать все входящие пакеты с юзерской сети на 80 порт , и с помошью iproute2 по маркировке запихивать их в таблицу для http трафика. А для неё прописать мультироут по дефолту, по идее это не нарушать серфинг ...

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

2dnserg:

В принципе ваша схема - наилучиший вариант в ваших условиях.

Если уж нет своего диапазона адресов, поднятого bgp и т.д., то это самое то.

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

И вешать юзера на наимене загруженный.

Загрузку можно снимать какими-нить скриптами.

Через snmp, через count в ipfw, через данные netstat, через какой-нибудь коллектор трафика наконец.

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

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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити нове...