Петербургская городская оптическая IP сеть «InterZet» Главная Mail Карта сайта и поиск
InterZet
О компании Лицензии Карта скидок Контакты
Интернет Телевидение Телефония Новости Акции Зона охвата Ресурсы сети Личный кабинет
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )

Новости: Уважаемые пользователи!

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

Обращаем Ваше внимание на то, что в целях защиты от спам-рассылок через ЛС введены ограничения: если Вы находитесь в группе "Новички", то можете отправлять не более 1 ЛС в течение 10 минут. По набору определённого кол-ва сообщений Вы автоматически будете переведены в другую группу, где данные ограничения не действуют.
Будьте внимательны: после регистрации воздержитесь от включения ссылок в ваши первые сообщения. Иначе форум примет вас за спамбота и вы будете забанены.

О любых фактах спама в ЛС просьба сообщать администрации форума.
2 страниц V   1 2 >  
Closed TopicStart new topic
> Балансировка трафика в Linux на примере 2-х провайдеров, Увеличения скорости одновременным использованием 2-х каналов в инет
gav17
сообщение Dec 16 2007, 23:25
Сообщение #1





Группа: Пользователи
Сообщений: 1 373
Регистрация: 11.11.2006
Из: Автово, ул.Новостроек
Пользователь №: 5 741
Район: Кировский, СПб



Репутация:   2  


Настройка балансировки трафика в Linux на примере двух провайдеров

История изменений.
16.12.2007. Версия 1.0, начальная


1. Имеется компьютер, подключенный одновременно к двум провайдерам, предоставляющим выделенные каналы
связи с интернетом (Interzet и Твое ТВ). Один из провайдеров (Interzet) также предоставляет доступ к
внутренним ресурсам его локальной сети:
Код
                                                                   I----------------> Локальная сеть
                              +-------------------+                I                  (192.168.x.x,
                              | роутер 1          |                |                  10.x.x.x;
+------------------+     I--->| (ip 172.16.0.97)  |---> Interzet---+
|                  |     |    +-------------------+                I----------------> Интернет
| компьютер        |-----|                                                            (1.5 мбит/сек)
| (ip 172.16.0.4)  |     |    +-------------------+    +-----------------+
| с gentoo linux   |     I--->| роутер 2          |    | кабельный модем |
|                  |          | (ip 172.16.0.96)  |--->|                 |--> Твое ТВ --> Интернет
+------------------+          +-------------------+    +-----------------+                (1.0 мбит/сек)

Скорость доступа в интернет отличается: в Интерзете оплачен тариф с безлимитным доступом на скорости
1.5 мб/сек, в Твоем ТВ - безлимитный на скорости 1.0 мб/сек.

Необходимо обеспечить примерно равномерную загрузку одновременно обоих каналов в интернет (получить
суммарную скорость примерно 2.5мбит/сек), сохранить при этом возможность использования локальной сети
Interzet.

2. Идея решения была найдена тут: http://litec.ru/wiki/index.php/%D0%A8%D0%B...B0_%D0%B2_Linux и
адаптирована под описанную выше задачу.

В общих чертах решение сводится к следующему:
1) все исходящие соединения с интернетом, устанавливаемые софтом, отмечаются (маркируются) двумя разными метками - 1 и 2.
Для маркировки пакетов используется модуль CONNMARK пакета iptables. Модуль CONNMARK не входит в стандарное
(vanilla) ядро с kernel.org и в штатный состав пакета iptabels. Если в используемом дистрибутиве не наложены
необходимые патчи, придется их наложить самостоятельно из репозитория patch-o-matic и с ними скомпилировать
ядро и пакет iptables.

2) при маркировке метка 1 ставится в 60% случаев, а метка 2 - в 40%, чтобы через более быстрый канал (1.5 мбит/сек)
устанавливалось в 1.5 раза больше соединений, чем через более медленный канал (1.0 мбит/сек). Это достигается
за счет модуля statistic пакета iptables.

2) в зависимости от метки (1 или 2) пакет направляется соответственно либо на роутер 1, либо на роутер 2. Для
этого используются таблицы маршрутизации, настраиваемые через утилиту ip пакета iproute2;

3.Детальное описание необходимых настроек.

3.1. Проверяем, есть ли в дистрибутиве модуль CONNMARK пакета iptables.
В gentoo linux этого модуля нет в gentoo-sources и iptables, поэтому необходимо наложить патчи и пересобрать
ядро и пакет iptables. Если модуль CONNMARK уже есть на компьютере, можно пропустить пункт 3.2.

3.2. Накладываем на gentoo linux патчи из patch-o-matic, собираем ядро и пакет iptables с поддержкой CONNMARK.

3.2.1. Заходим пользователем root и создаем временный каталог.
Код
su -
cd
mkdir patch-o-matic
cd patch-o-matic/


3.2.2. Скачиваем набор патчей из репозитория patch-o-matic, проверяем их целостность и распаковываем их.
Код
wget http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-o-matic-ng-20071211.tar.bz2
wget http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-o-matic-ng-20071211.tar.bz2.md5sum
md5sum -c patch-o-matic-ng-20071211.tar.bz2.md5sum
# если все ок, то видим: patch-o-matic-ng-20071211.tar.bz2: Успех
tar xfjv patch-o-matic-ng-20071211.tar.bz2


3.2.3. Настраиваем компиляцию iptables с расширенным набором модулей (потребуется дальше) и распаковываем
исходные тексты iptables (потребуется для накладывания патчей patch-o-matic).
Код
echo net-firewall/iptables ipv6 extensions -imq -l7filter -static>>/etc/portage/package.use
ebuild  /usr/portage/net-firewall/iptables/iptables-1.3.8-r2.ebuild fetch
ebuild  /usr/portage/net-firewall/iptables/iptables-1.3.8-r2.ebuild unpack


3.2.4. Накладываем патчи patch-o-matic и удаляем распакованные исходники iptables (они в дальнейшем
не нужны).
Код
cd patch-o-matic-ng-20071211
KERNEL_DIR=/usr/src/linux IPTABLES_DIR=/var/tmp/portage/net-firewall/iptables-1.3.8-r2/work/iptables-1.3.8/ ./runme
rm -Rv /var/tmp/portage/net-firewall/iptables-1.3.8-r2/work/iptables-1.3.8/


3.2.5. Конфигурируем ядро для компиляции модуля CONNMARK.
Код
cd /usr/src/linux
make clean
make mrproper
cp /proc/config.gz .
gunzip config.gz
make menuconfig
    Networking  --->
        Networking options  --->
             [*] Network packet filtering framework (Netfilter)  --->
                Core Netfilter Configuration  --->
                    <M>   "CONNMARK" target support
                IP: Netfilter Configuration  --->
                    <M> IPv4 connection tracking support (required for NAT)


3.2.6. Компилируем и устанавливаем пропатченное ядро, перезагружаемся.
Код
make
mount /boot
make install
make modules_install
reboot


3.2.7. Компилируем iptables с расширениями (используя в качестве заголовков файлы из пропатченного
ядра).
Код
emerge iptables


3.3. Настройка балансировки.

3.3.1. Настраиваем правила для маркировки
- создаем новую цепочку NEW_OUT_CONN, в которую дальше будем направлять первый пакет каждого
нового исходящего соединения с интернетом:
Код
iptables -t mangle -N NEW_OUT_CONN

- маркируем пакеты меткой 1. Далее для 60% пакетов выходим из цепочки с сохранением метки 1, а
для оставшихся 40% перезаписываем метку значением 2:
Код
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.60 -j RETURN
iptables -t mangle -A NEW_OUT_CONN -j CONNMARK --set-mark 2


3.3.2. Разбиваем исходящие пакеты на группы (локалка или интернет), маркируем соединения с интернетом и
индивидуальные пакеты из таких соединений:
- пакеты, идущие в локальную сеть (с адресами из диапазонов 172.16.0.0/24, 192.168.0.0/16 и
10.0.0.0/8) никак не маркируются:
Код
iptables -t mangle -A OUTPUT -d 172.16.0.0/24 -j RETURN
iptables -t mangle -A OUTPUT -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A OUTPUT -d 10.0.0.0/8 -j RETURN

- пакеты, начинающие новые соединения с интернетом, напраляются для маркировки в цепочку_NEW_OUT_CONN:
Код
iptables -t mangle -A OUTPUT -s 172.16.0.0/24 -m state --state new,related -j NEW_OUT_CONN

- пакеты, входящие в состав установленных с интернетом соединений, маркируются той же меткой,
которая при была назначена для соединения в целом:
Код
iptables -t mangle -A OUTPUT -s 172.16.0.0/24 -j CONNMARK --restore-mark

Примечание. В кажлом пакете имеются две метки: поле "метка соединения" и поле "метка пакета"
В цепочке NEW_OUT_CONN заносится 1 или 2 в "метку соединения", затем эта метка копируется в
поле "метка пакета". Это необходимо, поскольку решение о маршрутизации принимается на основе
поля "метка пакета"

3.3.3. Настраиваем дополнительные таблицы маршрутизиции 101 и 102 и направляем в них пакеты
с метками 1 и 2 соответственно.
3.3.3.1. Настраиваем таблицу 101 (для Interzet):
- выполняем команду ip route и переносим из нее правила (кроме строки с default) в новую таблицу:
Код
ip route add 172.16.0.0/24 dev eth0 proto kernel scope link src 172.16.0.4 table 101
ip route add 127.0.0.0/8 dev lo scope link table 101

- добавляем строку, в которой в качестве шлюза по умолчанию задан роутер 1 (подключенный к Interzet):
Код
ip route add default via 172.16.0.97 table 101

- направляем пакеты с меткой 1 в таблицу 101 (Interzet):
Код
ip rule add prio 51 fwmark 1 table 101


3.3.3.2. Аналогично настраиваем таблицу 102 (пакеты с меткой 2, для Твоего ТВ):
Код
ip route add 172.16.0.0/24 dev eth0 proto kernel scope link src 172.16.0.4 table 102
ip route add 127.0.0.0/8 dev lo scope link table 102
ip route add default via 172.16.0.96 table 102
ip rule add prio 52 fwmark 2 table 102


3.3.3.3. Очищаем кэш маршрутов.
Код
ip route flush cache


4. Пробуем запустить софт, умеющий качать файлы в несколько потоков, для проверки что все работает.
Например, axel, aria2 - для закачки с ftp, http; ctorrent - для закачки из торрент-сетей.
Скорость соединения должна превышать скорость любого отдельного канала (Interzet, Твое ТВ), если
выбран достаточно быстрый ресурс.

Результат проверки закачкой в 60 потоков ядра с kernel.org:
Код
axel -n 60 ftp://204.152.191.37/pub/linux/kernel/v2.6/linux-2.6.23.9.tar.gz
...
[ 20%]  .......... .......... .......... .......... ..........  [ 279,6KB/s]
[ 20%]  .......... .......... .......... .......... ..........  [ 279,9KB/s]
[ 20%]  .......... .......... .......... .......... ..........  [ 279,8KB/s]
...
Connection 38 finished
        ,,,,,,,,,, ,,,,,..... .......... .......... ..........  [ 215,7KB/s]
[100%]  .......... ..
Connection 54 finished

Downloaded 22,4 megabytes in 1:46 seconds. (214,85 KB/s)

Видно, что все ОК, так как достигнутая скорость (279 кбайт/сек) выше любой из скоростей
отдельных каналов (180кбайт/сек=1.5мбит/сек у Interzet; 120кбайт/сек=1.0мбит/сек у Твоего ТВ).

5. Оформляем настройку балансировки в виде скрипта (например, как в приложении 2). И наслаждаемся
возросшей скоростью инета :smile:

Приложение 1. Шпаргалка по выполненным командам для включения поддержки CONNMARK в gentoo linux
Код
su -
cd
mkdir patch-o-matic
cd patch-o-matic/
wget http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-o-matic-ng-20071211.tar.bz2
wget http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/patch-o-matic-ng-20071211.tar.bz2.md5sum
md5sum -c patch-o-matic-ng-20071211.tar.bz2.md5sum
# если все ок, то видим: patch-o-matic-ng-20071211.tar.bz2: Успех
tar xfjv patch-o-matic-ng-20071211.tar.bz2
echo net-firewall/iptables ipv6 extensions -imq -l7filter -static>>/etc/portage/package.use
ebuild  /usr/portage/net-firewall/iptables/iptables-1.3.8-r2.ebuild fetch
ebuild  /usr/portage/net-firewall/iptables/iptables-1.3.8-r2.ebuild unpack
cd patch-o-matic-ng-20071211
KERNEL_DIR=/usr/src/linux IPTABLES_DIR=/var/tmp/portage/net-firewall/iptables-1.3.8-r2/work/iptables-1.3.8/ ./runme
rm -Rv /var/tmp/portage/net-firewall/iptables-1.3.8-r2/work/iptables-1.3.8/
cd /usr/src/linux
make clean
make mrproper
cp /proc/config.gz .
gunzip config.gz
make menuconfig
    Networking  --->
        Networking options  --->
             [*] Network packet filtering framework (Netfilter)  --->
                Core Netfilter Configuration  --->
                    <M>   "CONNMARK" target support
                IP: Netfilter Configuration  --->
                    <M> IPv4 connection tracking support (required for NAT)
make
mount /boot
make install
make modules_install
reboot
emerge iptables


Приложение 2. Полный текст скрипта для включения балансировки.
gav4 ~ # cat loadbalance
Код
#! /bin/sh

( . ./delbal ) > /dev/null

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.60 -j RETURN
iptables -t mangle -A NEW_OUT_CONN -j CONNMARK --set-mark 2

iptables -t mangle -A PREROUTING -d 172.16.0.0/24 -j RETURN
iptables -t mangle -A PREROUTING -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A PREROUTING -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A PREROUTING -s 172.16.0.0/24 -m state --state new,related -j NEW_OUT_CONN
iptables -t mangle -A PREROUTING -s 172.16.0.0/24 -j CONNMARK --restore-mark

iptables -t mangle -A OUTPUT -d 172.16.0.0/24 -j RETURN
iptables -t mangle -A OUTPUT -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A OUTPUT -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A OUTPUT -s 172.16.0.0/24 -m state --state new,related -j NEW_OUT_CONN
iptables -t mangle -A OUTPUT -s 172.16.0.0/24 -j CONNMARK --restore-mark

iptables -t mangle -L -n

ip route add 172.16.0.0/24 dev eth0 proto kernel scope link src 172.16.0.4 table 101
ip route add 127.0.0.0/8 dev lo scope link table 101
ip route add default via 172.16.0.97 table 101
ip rule add prio 51 fwmark 1 table 101
ip route add 172.16.0.0/24 dev eth0 proto kernel scope link src 172.16.0.4 table 102
ip route add 127.0.0.0/8 dev lo scope link table 102
ip route add default via 172.16.0.96 table 102
ip rule add prio 52 fwmark 2 table 102
ip route flush cache

ip rule ls
echo "interzet (table 101)"
ip route ls table 101
echo "tvoetv (table 102)"
ip route ls table 102


Текст вспомогательного скрипта, удаляющего настройки (например, если балансировку надо на время
выключить). Он же выполняется автоматически перед настройкой балансировки.
gav4 ~ # cat delbal
Код
#! /bin/sh

iptables -t mangle -F NEW_OUT_CONN
iptables -t mangle -F PREROUTING
iptables -t mangle -F OUTPUT
iptables -t mangle -X NEW_OUT_CONN
iptables -t mangle -L -n
ip route flush table 102
ip rule del table 102
ip route flush table 101
ip rule del table 101
ip route flush cache


Сообщение отредактировал gav17 - Dec 16 2007, 23:47


--------------------
ftp://anonymous@gav17.zet, http://gav17.zet, DC (ник gav17),
ftp://anonymous@gav17.no-ip.org, http://gav17.no-ip.org,
icq: 15426772, jabber: gav17@jabber.org,
пользователь "Интерзет" (тариф Unlim-6Мбит/c), "Твое ТВ" (тариф 2048-ультра), "Корбина" (тариф неогр. 9216Кбит/с)
Go to the top of the page
 
+Quote Post
Rustam
сообщение Dec 16 2007, 23:31
Сообщение #2





Группа: Пользователи
Сообщений: 1 541
Регистрация: 23.12.2006
Из: Выборгский р-н
Пользователь №: 6 906



Репутация:   10  


И все это вместе называется "Policy Based Routing". smile.gif


--------------------
Go to the top of the page
 
+Quote Post
Alchemist
сообщение Dec 16 2007, 23:51
Сообщение #3





Группа: Пользователи
Сообщений: 594
Регистрация: 15.8.2006
Из: Юго-Запад
Пользователь №: 4 139
Район: Красносельский, СПб



Репутация:   0  


Нужная статья, спасибо!
Go to the top of the page
 
+Quote Post
gerix
сообщение Dec 16 2007, 23:53
Сообщение #4





Группа: Пользователи
Сообщений: 785
Регистрация: 18.2.2006
Пользователь №: 1 550
Район: Красногвардейский, СПб



Репутация:   0  


а если в shorewall?
Go to the top of the page
 
+Quote Post
gav17
сообщение Dec 17 2007, 00:05
Сообщение #5





Группа: Пользователи
Сообщений: 1 373
Регистрация: 11.11.2006
Из: Автово, ул.Новостроек
Пользователь №: 5 741
Район: Кировский, СПб



Репутация:   2  


Цитата(gerix @ Dec 16 2007, 23:53) *
а если в shorewall?

В смысле?


--------------------
ftp://anonymous@gav17.zet, http://gav17.zet, DC (ник gav17),
ftp://anonymous@gav17.no-ip.org, http://gav17.no-ip.org,
icq: 15426772, jabber: gav17@jabber.org,
пользователь "Интерзет" (тариф Unlim-6Мбит/c), "Твое ТВ" (тариф 2048-ультра), "Корбина" (тариф неогр. 9216Кбит/с)
Go to the top of the page
 
+Quote Post
gerix
сообщение Dec 17 2007, 08:50
Сообщение #6





Группа: Пользователи
Сообщений: 785
Регистрация: 18.2.2006
Пользователь №: 1 550
Район: Красногвардейский, СПб



Репутация:   0  


Сайт

Очевидный плюс - нету жёсткой привязки к gentoo.
Go to the top of the page
 
+Quote Post
gav17
сообщение Dec 17 2007, 13:21
Сообщение #7





Группа: Пользователи
Сообщений: 1 373
Регистрация: 11.11.2006
Из: Автово, ул.Новостроек
Пользователь №: 5 741
Район: Кировский, СПб



Репутация:   2  


Цитата(gerix @ Dec 17 2007, 08:50) *
Сайт

Очевидный плюс - нету жёсткой привязки к gentoo.

Там совсем другое решение, намного более ограниченное.
Читаем: Balancing will not be perfect, as it is route based, and routes are cached. This means that routes to often-used sites will always be over the same provider. (Балансировка не будет совершенной, так как базируется на маршрутах, а маршруты кэшируются. Это означает, что маршруты к часто исользуемым сайтам будут всегда через того же провайдера).

В моем варианте это не так: каждое новое соединение балансируется независимо от кэша маршрутов и маршруты к сайту "приклеиваться к провайдеру" из-за кэша не будут.

Сообщение отредактировал gav17 - Dec 17 2007, 13:42


--------------------
ftp://anonymous@gav17.zet, http://gav17.zet, DC (ник gav17),
ftp://anonymous@gav17.no-ip.org, http://gav17.no-ip.org,
icq: 15426772, jabber: gav17@jabber.org,
пользователь "Интерзет" (тариф Unlim-6Мбит/c), "Твое ТВ" (тариф 2048-ультра), "Корбина" (тариф неогр. 9216Кбит/с)
Go to the top of the page
 
+Quote Post
gerix
сообщение Dec 17 2007, 21:00
Сообщение #8





Группа: Пользователи
Сообщений: 785
Регистрация: 18.2.2006
Пользователь №: 1 550
Район: Красногвардейский, СПб



Репутация:   0  


Цитата(gav17 @ Dec 17 2007, 13:21) *
В моем варианте это не так: каждое новое соединение балансируется независимо от кэша маршрутов и маршруты к сайту "приклеиваться к провайдеру" из-за кэша не будут.

Чуть ниже там также написано что это фича ядра и её можно отключить... если это ещё не сделали дистрибуторы
Цитата
Important

If you specify 'balance' and still find that all traffic is going out through only one provider, you may need to install a kernel built with CONFIG_IP_ROUTE_MULTIPATH_CACHED=n. Several users have reported that this change has corrected similar problems.

The SuSE 10.0 kernel is subject to this problem, and a kernel oops may result in this circumstance. SUSE 10.1 and SLES 10 have CONFIG_IP_ROUTE_MULTIPATH_CACHED=n set by default. The source of the problem seems to be an incompatibility between the LARTC patches and CONFIG_IP_ROUTE_MULTIPATH_CACHED.


Или это не то что я понял?
Go to the top of the page
 
+Quote Post
gav17
сообщение Dec 17 2007, 22:25
Сообщение #9





Группа: Пользователи
Сообщений: 1 373
Регистрация: 11.11.2006
Из: Автово, ул.Новостроек
Пользователь №: 5 741
Район: Кировский, СПб



Репутация:   2  


Цитата(gerix @ Dec 17 2007, 21:00) *
Или это не то что я понял?

Угумс.
Речь идет про две разные проблемы:
1. "If you specify 'balance' and still find that all traffic is going out through only one provider,..." - про то, что балансировка вовсе не работает из-за багов (фич?) в ядре, для устранения которых в документации на shorewall предлагается отключить ряд параметров в конфиге ядра.

2. "Balancing will not be perfect, as it is route based,..." - балансировка в shorewall примитивная (основана на назначении двух шлюзов по умолчанию с присвоением каждому весового коэффициента).
Например, так:
Код
ip route add default scope global nexthop via 172.16.0.97 dev eth1 weight 1 nexthop via 172.16.0.96 eth2 weight 1

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

В итоге мой скрипт при закачке в несколько потоков одного и того же файла ftp://204.152.191.37/pub/linux/kernel/v2....2.6.23.9.tar.gz (с kernel.org) создает 60 потоков (ключ -n 60 команды axel), из которых примерно 36 пойдет через шлюз в Interzet, а 24 потока - через шлюз в Твое ТВ.

А shorewall в той же ситуации случайно выберет шлюз Interzet или Твоего ТВ и далее все 59 последующих потоков пойдут через этот выбранный вначале шлюз. В итоге весь трафик на kernel.org пойдет через одного провайдера. И все последующие обращения к этому ресурсу также будут "прилипать" к тому же провайдеру - пока не очиститься кэш.

Если:
- идет много обращений к разным адресам в интернете и
- ни к какому адресу пользователь повторно не обращается, то
оба решения дадут примерно одинаковый результат.
Правда, для домашнего пользования такая ситуация не является типичной

Сообщение отредактировал gav17 - Dec 17 2007, 22:32


--------------------
ftp://anonymous@gav17.zet, http://gav17.zet, DC (ник gav17),
ftp://anonymous@gav17.no-ip.org, http://gav17.no-ip.org,
icq: 15426772, jabber: gav17@jabber.org,
пользователь "Интерзет" (тариф Unlim-6Мбит/c), "Твое ТВ" (тариф 2048-ультра), "Корбина" (тариф неогр. 9216Кбит/с)
Go to the top of the page
 
+Quote Post
gerix
сообщение Dec 19 2007, 00:10
Сообщение #10





Группа: Пользователи
Сообщений: 785
Регистрация: 18.2.2006
Пользователь №: 1 550
Район: Красногвардейский, СПб



Репутация:   0  


Спасибо за столь полный и развёрнутый ответ, хотя у меня появилось ещё больше сомнений после того как я обнаружил русский перевод на Сайт

Цитата(gav17 @ Dec 17 2007, 22:25) *
про то, что балансировка вовсе не работает из-за багов (фич?) в ядре, для устранения которых в документации на shorewall предлагается отключить ряд параметров в конфиге ядра.

про то что в документации предлагается отключить что-то в ядре я тоже ничего не увидел:
Цитата
Вы должны установить современный дистрибутив, который обновляется поставщиком, прежде чем пытаться настроить работу в этом режиме.


Я думал балансировка идёт именно по трафику... странно, IMHO
Go to the top of the page
 
+Quote Post
Rustam
сообщение Dec 19 2007, 00:58
Сообщение #11





Группа: Пользователи
Сообщений: 1 541
Регистрация: 23.12.2006
Из: Выборгский р-н
Пользователь №: 6 906



Репутация:   10  


Цитата(gerix @ Dec 19 2007, 00:10) *
Я думал балансировка идёт именно по трафику... странно, IMHO

Предложите алгоритм "по трафику"? smile.gif Ведь мы не знаем прогноза по загрузке каналов и реакция на трафик всегда будет запаздывать.


--------------------
Go to the top of the page
 
+Quote Post
Dyck
сообщение Jan 21 2008, 02:16
Сообщение #12





Группа: Пользователи
Сообщений: 92
Регистрация: 21.1.2008
Пользователь №: 18 671



Репутация:   0  


Приветствую линуксойдов smile.gif
Подскажите как надо изменить скрипт smile.gif я както в роутенге слабоват sad.gif
Есть
eth0 с адресом 10.204.96.94 маской 255,255,252,0 и шлюзом 10.204.96.94
смотрят в интерзет
eth2 с адресом 87,237,119,60 маской 255,255,255,0 и шлюзом 87,237,119,1 смотрят в ТвоеТВ.
eth1 имеет 192,168,0,1 адресс и работает на внутренюю сеть, держит nat.
как надо перебратьс крипты чтобы это все заработало ??? прсото я не понял основной темы с роутингом.

З.Ы. надо ли оставлять дефолтный шлюз?
будут ли работать входящие подключения по обоим интерфейсам смотрящим в сеть? smile.gif
у меня дистр Suse 10,3 вроде модуль файра конмарк присутствует, но как понять он работает или нет?
сори за ламерские вопросы smile.gif))

Помогите кому не лень, три дня мучаюсь..чето никак не катит.

Сообщение отредактировал Dyck - Jan 21 2008, 02:18


--------------------
Данные пришедшие от пользователя всегда нужно проверять.
Все фигня, кроме пчел - пчелы тоже фигня, но их много.
Езжу на: Amd AtlonII x4 + x4 64b, 8128MB brains, GTS250, 1.8Tb HDD, 2x3Gbit lan
Go to the top of the page
 
+Quote Post
gav17
сообщение Jan 21 2008, 02:22
Сообщение #13





Группа: Пользователи
Сообщений: 1 373
Регистрация: 11.11.2006
Из: Автово, ул.Новостроек
Пользователь №: 5 741
Район: Кировский, СПб



Репутация:   2  


Цитата(Dyck @ Jan 21 2008, 02:16) *
Есть
eth0 с адресом 10.204.96.94 маской 255,255,252,0 и шлюзом 10.204.96.94
смотрят в интерзет
eth2 с адресом 87,237,119,60 маской 255,255,255,0 и шлюзом 87,237,119,1 смотрят в ТвоеТВ.
eth1 имеет 192,168,0,1 адресс и работает на внутренюю сеть, держит nat.
...
Помогите кому не лень, три дня мучаюсь..чето никак не катит.

В изете активно используются адреса 198.168.xxx.yyy и 10.xxx.yyy.zzz.
На eth1 и на компы внутренней сети надо айпи из диапазона 172.16.0.xxx с маской 255.255.255.0.

А с вашими настройками все компы изета с адресами 192.168.xxx.yyy ошибочно будут считаться находящимися во внутренней сети и пакеты с инфой не будут маршрутизироваться

Сообщение отредактировал gav17 - Jan 21 2008, 02:26


--------------------
ftp://anonymous@gav17.zet, http://gav17.zet, DC (ник gav17),
ftp://anonymous@gav17.no-ip.org, http://gav17.no-ip.org,
icq: 15426772, jabber: gav17@jabber.org,
пользователь "Интерзет" (тариф Unlim-6Мбит/c), "Твое ТВ" (тариф 2048-ультра), "Корбина" (тариф неогр. 9216Кбит/с)
Go to the top of the page
 
+Quote Post
Dyck
сообщение Jan 21 2008, 02:43
Сообщение #14





Группа: Пользователи
Сообщений: 92
Регистрация: 21.1.2008
Пользователь №: 18 671



Репутация:   0  


а ОО smile.gif) понял smile.gif)) сделаем smile.gif)))

я прсото немного на самом деле не понял схему подключения, на роутерах NAT поднят или как? smile.gif

и что насчет шлюза по умолчанию smile.gif

Сообщение отредактировал Dyck - Jan 21 2008, 02:45


--------------------
Данные пришедшие от пользователя всегда нужно проверять.
Все фигня, кроме пчел - пчелы тоже фигня, но их много.
Езжу на: Amd AtlonII x4 + x4 64b, 8128MB brains, GTS250, 1.8Tb HDD, 2x3Gbit lan
Go to the top of the page
 
+Quote Post
Dyck
сообщение Jan 21 2008, 20:14
Сообщение #15





Группа: Пользователи
Сообщений: 92
Регистрация: 21.1.2008
Пользователь №: 18 671



Репутация:   0  


все равно както нефига не работает sad.gif(((

скрипт получился следующий если я все верно вкурил

Код
#! /bin/sh

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.60 -j RETURN
iptables -t mangle -A NEW_OUT_CONN -j CONNMARK --set-mark 2

iptables -t mangle -A PREROUTING -d 172.16.0.0/24 -j RETURN
iptables -t mangle -A PREROUTING -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A PREROUTING -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A PREROUTING -s 172.16.0.0/24 -m state --state new,related -j NEW_OUT_CONN
iptables -t mangle -A PREROUTING -s 172.16.0.0/24 -j CONNMARK --restore-mark

iptables -t mangle -A OUTPUT -d 172.16.0.0/24 -j RETURN
iptables -t mangle -A OUTPUT -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A OUTPUT -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A OUTPUT -s 172.16.0.0/24 -m state --state new,related -j NEW_OUT_CONN
iptables -t mangle -A OUTPUT -s 172.16.0.0/24 -j CONNMARK --restore-mark

iptables -t mangle -L -n

ip route 10.204.96.0/22 dev eth0  proto kernel  scope link  src 10.204.96.94 table 101
ip route add 127.0.0.0/8 dev lo scope link table 101
ip route add default via 10.204.96.1 table 101
ip rule add prio 51 fwmark 1 table 101

ip route add 87.237.119.0/24 dev eth2  proto kernel  scope link  src 87.237.119.59 table 102
ip route add 127.0.0.0/8 dev lo scope link table 102
ip route add default via 87.237.119.1 table 102
ip rule add prio 52 fwmark 2 table 102
ip route flush cache

ip rule ls
echo "interzet (table 101)"
ip route ls table 101
echo "tvoetv (table 102)"
ip route ls table 102



P/S/ адреса 172,16 тоже активно юзаються в интерзете уже sad.gif

Сообщение отредактировал Dyck - Jan 21 2008, 20:22


--------------------
Данные пришедшие от пользователя всегда нужно проверять.
Все фигня, кроме пчел - пчелы тоже фигня, но их много.
Езжу на: Amd AtlonII x4 + x4 64b, 8128MB brains, GTS250, 1.8Tb HDD, 2x3Gbit lan
Go to the top of the page
 
+Quote Post
Svin
сообщение Jan 21 2008, 20:56
Сообщение #16





Группа: Пользователи
Сообщений: 9 568
Регистрация: 23.4.2006
Из: ныне не существующей страны и города
Пользователь №: 2 644
Район: Кировский, СПб



Репутация:   83  


Цитата(Dyck @ Jan 21 2008, 20:14) *
P/S/ адреса 172,16 тоже активно юзаються в интерзете уже sad.gif

почемуто у меня другая инфа http://forum.interzet.ru/index.php?showtop...mp;#entry490989

а её источнику я склонен верить куда больше, чем вам! yes.gif


--------------------
Go to the top of the page
 
+Quote Post
Dyck
сообщение Jan 21 2008, 22:48
Сообщение #17





Группа: Пользователи
Сообщений: 92
Регистрация: 21.1.2008
Пользователь №: 18 671



Репутация:   0  


пардон был неправ.


--------------------
Данные пришедшие от пользователя всегда нужно проверять.
Все фигня, кроме пчел - пчелы тоже фигня, но их много.
Езжу на: Amd AtlonII x4 + x4 64b, 8128MB brains, GTS250, 1.8Tb HDD, 2x3Gbit lan
Go to the top of the page
 
+Quote Post
gav17
сообщение Jan 21 2008, 23:31
Сообщение #18





Группа: Пользователи
Сообщений: 1 373
Регистрация: 11.11.2006
Из: Автово, ул.Новостроек
Пользователь №: 5 741
Район: Кировский, СПб



Репутация:   2  


Цитата(Dyck @ Jan 21 2008, 02:43) *
я прсото немного на самом деле не понял схему подключения, на роутерах NAT поднят или как? smile.gif

В моей схеме да, на роутерах поднят NAT

Цитата(Dyck @ Jan 21 2008, 02:16) *
eth0 с адресом 10.204.96.94 маской 255,255,252,0 и шлюзом 10.204.96.94
смотрят в интерзет
eth2 с адресом 87,237,119,60 маской 255,255,255,0 и шлюзом 87,237,119,1 смотрят в ТвоеТВ.
eth1 имеет .... адресс и работает на внутренюю сеть, держит nat.
...
З.Ы. надо ли оставлять дефолтный шлюз?

Только у Вас есть серьезное отличие от моей схемы: у Вас 3 сетевые карты и, значит, 3 шлюза по умолчанию, которые настраиваются на каждой из них по отдельности. И у Вас поэтому сложнее ситуация с маршрутизацией.

Резюме: в скрипте в Вашей редакции чего-то не хватает.
Как Вы говорите компу, что пакеты в локалку Изета (192.168.xxx.yyy, 10.xxx.yyy.zzz) должны пойти именно через интерфейс eth0?

Сообщение отредактировал gav17 - Jan 21 2008, 23:34


--------------------
ftp://anonymous@gav17.zet, http://gav17.zet, DC (ник gav17),
ftp://anonymous@gav17.no-ip.org, http://gav17.no-ip.org,
icq: 15426772, jabber: gav17@jabber.org,
пользователь "Интерзет" (тариф Unlim-6Мбит/c), "Твое ТВ" (тариф 2048-ультра), "Корбина" (тариф неогр. 9216Кбит/с)
Go to the top of the page
 
+Quote Post
Dyck
сообщение Jan 22 2008, 00:01
Сообщение #19





Группа: Пользователи
Сообщений: 92
Регистрация: 21.1.2008
Пользователь №: 18 671



Репутация:   0  


хм у меня нетакое и отличие...у меня реально в инет смотрят две сетевые карты, третья самая являеться шлюзом.... та буду курить.... просто я н е понимаю как у вас с одной карты воткнуто два роутера smile.gif)) у меня тока один роутер есть который я в данный момент и каовыряю smile.gif думаю разберусь


--------------------
Данные пришедшие от пользователя всегда нужно проверять.
Все фигня, кроме пчел - пчелы тоже фигня, но их много.
Езжу на: Amd AtlonII x4 + x4 64b, 8128MB brains, GTS250, 1.8Tb HDD, 2x3Gbit lan
Go to the top of the page
 
+Quote Post
gav17
сообщение Jan 22 2008, 01:11
Сообщение #20





Группа: Пользователи
Сообщений: 1 373
Регистрация: 11.11.2006
Из: Автово, ул.Новостроек
Пользователь №: 5 741
Район: Кировский, СПб



Репутация:   2  


Цитата(Dyck @ Jan 22 2008, 00:01) *
просто я н е понимаю как у вас с одной карты воткнуто два роутера smile.gif))

Есть еще свитч, через который соединены комп и роутеры. Или можно было бы воткнуть комп и локальный порт одного роутера в локальные 2 порта второго роутера... Все это неважно, как физически они соединены.
Важно другое - все они имеют адреса одной из подсетки 172.16.0.xxx, что в моем случае упрощает маршрутизацию.

А Вам надо маршруты хитрее делать, поскольку Ваш комп сам выполняет функцию маршрутизатора (через него включены другие компы, как я понял). Т.е. надо перекидывать пакеты с eth1 на eth0 и eth2.

А шлюзом по умолчанию напрашивается 10.204.96.1 (в итоге весь немаркированный трафик пойдет на eth0).

И вот тут ошибка: eth0 с адресом 10.204.96.94 маской 255,255,252,0 и шлюзом 10.204.96.94.
Надо eth0 с адресом 10.204.96.94, маской 255.255.252.0 и шлюзом 10.204.96.1 (в изете в каждой подсетке домашней сети шлюз имеет 1 в конце адреса).


--------------------
ftp://anonymous@gav17.zet, http://gav17.zet, DC (ник gav17),
ftp://anonymous@gav17.no-ip.org, http://gav17.no-ip.org,
icq: 15426772, jabber: gav17@jabber.org,
пользователь "Интерзет" (тариф Unlim-6Мбит/c), "Твое ТВ" (тариф 2048-ультра), "Корбина" (тариф неогр. 9216Кбит/с)
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 9 January 2018 - 19:20
194044, Санкт-Петербург, Финляндский проспект, дом 4а, бизнес-центр "Петровский Форт"
Контактный телефон: (812) 640 5 640
Copyright © 2005-2014