Помощник
| |||||||||||||||
| |||||||||||||||
|
Здравствуйте, гость ( Вход | Регистрация )
| Новости: Уважаемые пользователи! Напоминаем, что на форуме запрещен флуд и оффтопик в темах (см. Правила форума). Нарушителям будет запрещено оставлять сообщения и создавать новые темы в течение одной недели. Обращаем Ваше внимание на то, что в целях защиты от спам-рассылок через ЛС введены ограничения: если Вы находитесь в группе "Новички", то можете отправлять не более 1 ЛС в течение 10 минут. По набору определённого кол-ва сообщений Вы автоматически будете переведены в другую группу, где данные ограничения не действуют. Будьте внимательны: после регистрации воздержитесь от включения ссылок в ваши первые сообщения. Иначе форум примет вас за спамбота и вы будете забанены. О любых фактах спама в ЛС просьба сообщать администрации форума. |
![]()
|
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Кбит/с) |
|
|
|
Dec 16 2007, 23:31
Сообщение
#2
|
|
|
Группа: Пользователи Сообщений: 1 541 Регистрация: 23.12.2006 Из: Выборгский р-н Пользователь №: 6 906 Репутация: 10
|
И все это вместе называется "Policy Based Routing".
-------------------- |
|
|
|
Dec 16 2007, 23:51
Сообщение
#3
|
|
![]() Группа: Пользователи Сообщений: 594 Регистрация: 15.8.2006 Из: Юго-Запад Пользователь №: 4 139 Район: Красносельский, СПб Репутация: 0
|
Нужная статья, спасибо!
|
|
|
|
Dec 16 2007, 23:53
Сообщение
#4
|
|
![]() Группа: Пользователи Сообщений: 785 Регистрация: 18.2.2006 Пользователь №: 1 550 Район: Красногвардейский, СПб Репутация: 0
|
а если в shorewall?
|
|
|
|
Dec 17 2007, 00:05
Сообщение
#5
|
|
![]() Группа: Пользователи Сообщений: 1 373 Регистрация: 11.11.2006 Из: Автово, ул.Новостроек Пользователь №: 5 741 Район: Кировский, СПб Репутация: 2
|
-------------------- 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Кбит/с) |
|
|
|
Dec 17 2007, 08:50
Сообщение
#6
|
|
![]() Группа: Пользователи Сообщений: 785 Регистрация: 18.2.2006 Пользователь №: 1 550 Район: Красногвардейский, СПб Репутация: 0
|
|
|
|
|
Dec 17 2007, 13:21
Сообщение
#7
|
|
![]() Группа: Пользователи Сообщений: 1 373 Регистрация: 11.11.2006 Из: Автово, ул.Новостроек Пользователь №: 5 741 Район: Кировский, СПб Репутация: 2
|
Там совсем другое решение, намного более ограниченное. Читаем: 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Кбит/с) |
|
|
|
Dec 17 2007, 21:00
Сообщение
#8
|
|
![]() Группа: Пользователи Сообщений: 785 Регистрация: 18.2.2006 Пользователь №: 1 550 Район: Красногвардейский, СПб Репутация: 0
|
В моем варианте это не так: каждое новое соединение балансируется независимо от кэша маршрутов и маршруты к сайту "приклеиваться к провайдеру" из-за кэша не будут. Чуть ниже там также написано что это фича ядра и её можно отключить... если это ещё не сделали дистрибуторы Цитата 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. Или это не то что я понял? |
|
|
|
Dec 17 2007, 22:25
Сообщение
#9
|
|
![]() Группа: Пользователи Сообщений: 1 373 Регистрация: 11.11.2006 Из: Автово, ул.Новостроек Пользователь №: 5 741 Район: Кировский, СПб Репутация: 2
|
Или это не то что я понял? Угумс. Речь идет про две разные проблемы: 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Кбит/с) |
|
|
|
Dec 19 2007, 00:10
Сообщение
#10
|
|
![]() Группа: Пользователи Сообщений: 785 Регистрация: 18.2.2006 Пользователь №: 1 550 Район: Красногвардейский, СПб Репутация: 0
|
Спасибо за столь полный и развёрнутый ответ, хотя у меня появилось ещё больше сомнений после того как я обнаружил русский перевод на Сайт
про то, что балансировка вовсе не работает из-за багов (фич?) в ядре, для устранения которых в документации на shorewall предлагается отключить ряд параметров в конфиге ядра. про то что в документации предлагается отключить что-то в ядре я тоже ничего не увидел: Цитата Вы должны установить современный дистрибутив, который обновляется поставщиком, прежде чем пытаться настроить работу в этом режиме. Я думал балансировка идёт именно по трафику... странно, IMHO |
|
|
|
Dec 19 2007, 00:58
Сообщение
#11
|
|
|
Группа: Пользователи Сообщений: 1 541 Регистрация: 23.12.2006 Из: Выборгский р-н Пользователь №: 6 906 Репутация: 10
|
Я думал балансировка идёт именно по трафику... странно, IMHO Предложите алгоритм "по трафику"? -------------------- |
|
|
|
Jan 21 2008, 02:16
Сообщение
#12
|
|
![]() Группа: Пользователи Сообщений: 92 Регистрация: 21.1.2008 Пользователь №: 18 671 Репутация: 0
|
Приветствую линуксойдов
Подскажите как надо изменить скрипт Есть 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. как надо перебратьс крипты чтобы это все заработало ??? прсото я не понял основной темы с роутингом. З.Ы. надо ли оставлять дефолтный шлюз? будут ли работать входящие подключения по обоим интерфейсам смотрящим в сеть? у меня дистр Suse 10,3 вроде модуль файра конмарк присутствует, но как понять он работает или нет? сори за ламерские вопросы Помогите кому не лень, три дня мучаюсь..чето никак не катит. Сообщение отредактировал Dyck - Jan 21 2008, 02:18 -------------------- Данные пришедшие от пользователя всегда нужно проверять.
Все фигня, кроме пчел - пчелы тоже фигня, но их много. Езжу на: Amd AtlonII x4 + x4 64b, 8128MB brains, GTS250, 1.8Tb HDD, 2x3Gbit lan |
|
|
|
Jan 21 2008, 02:22
Сообщение
#13
|
|
![]() Группа: Пользователи Сообщений: 1 373 Регистрация: 11.11.2006 Из: Автово, ул.Новостроек Пользователь №: 5 741 Район: Кировский, СПб Репутация: 2
|
Есть 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Кбит/с) |
|
|
|
Jan 21 2008, 02:43
Сообщение
#14
|
|
![]() Группа: Пользователи Сообщений: 92 Регистрация: 21.1.2008 Пользователь №: 18 671 Репутация: 0
|
а ОО
я прсото немного на самом деле не понял схему подключения, на роутерах NAT поднят или как? и что насчет шлюза по умолчанию Сообщение отредактировал Dyck - Jan 21 2008, 02:45 -------------------- Данные пришедшие от пользователя всегда нужно проверять.
Все фигня, кроме пчел - пчелы тоже фигня, но их много. Езжу на: Amd AtlonII x4 + x4 64b, 8128MB brains, GTS250, 1.8Tb HDD, 2x3Gbit lan |
|
|
|
Jan 21 2008, 20:14
Сообщение
#15
|
|
![]() Группа: Пользователи Сообщений: 92 Регистрация: 21.1.2008 Пользователь №: 18 671 Репутация: 0
|
все равно както нефига не работает
скрипт получился следующий если я все верно вкурил Код #! /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 тоже активно юзаються в интерзете уже Сообщение отредактировал Dyck - Jan 21 2008, 20:22 -------------------- Данные пришедшие от пользователя всегда нужно проверять.
Все фигня, кроме пчел - пчелы тоже фигня, но их много. Езжу на: Amd AtlonII x4 + x4 64b, 8128MB brains, GTS250, 1.8Tb HDD, 2x3Gbit lan |
|
|
|
Jan 21 2008, 20:56
Сообщение
#16
|
|
![]() Группа: Пользователи Сообщений: 9 568 Регистрация: 23.4.2006 Из: ныне не существующей страны и города Пользователь №: 2 644 Район: Кировский, СПб Репутация: 83
|
P/S/ адреса 172,16 тоже активно юзаються в интерзете уже почемуто у меня другая инфа http://forum.interzet.ru/index.php?showtop...mp;#entry490989 а её источнику я склонен верить куда больше, чем вам! -------------------- |
|
|
|
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 |
|
|
|
Jan 21 2008, 23:31
Сообщение
#18
|
|
![]() Группа: Пользователи Сообщений: 1 373 Регистрация: 11.11.2006 Из: Автово, ул.Новостроек Пользователь №: 5 741 Район: Кировский, СПб Репутация: 2
|
я прсото немного на самом деле не понял схему подключения, на роутерах NAT поднят или как? В моей схеме да, на роутерах поднят NAT 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Кбит/с) |
|
|
|
Jan 22 2008, 00:01
Сообщение
#19
|
|
![]() Группа: Пользователи Сообщений: 92 Регистрация: 21.1.2008 Пользователь №: 18 671 Репутация: 0
|
хм у меня нетакое и отличие...у меня реально в инет смотрят две сетевые карты, третья самая являеться шлюзом.... та буду курить.... просто я н е понимаю как у вас с одной карты воткнуто два роутера
-------------------- Данные пришедшие от пользователя всегда нужно проверять.
Все фигня, кроме пчел - пчелы тоже фигня, но их много. Езжу на: Amd AtlonII x4 + x4 64b, 8128MB brains, GTS250, 1.8Tb HDD, 2x3Gbit lan |
|
|
|
Jan 22 2008, 01:11
Сообщение
#20
|
|
![]() Группа: Пользователи Сообщений: 1 373 Регистрация: 11.11.2006 Из: Автово, ул.Новостроек Пользователь №: 5 741 Район: Кировский, СПб Репутация: 2
|
просто я н е понимаю как у вас с одной карты воткнуто два роутера Есть еще свитч, через который соединены комп и роутеры. Или можно было бы воткнуть комп и локальный порт одного роутера в локальные 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Кбит/с) |
|
|
|
![]() ![]() |
|
Текстовая версия | Сейчас: 9 January 2018 - 19:20 |
![]() |
194044, Санкт-Петербург, Финляндский проспект, дом 4а, бизнес-центр "Петровский Форт" Контактный телефон: (812) 640 5 640 |
Copyright © 2005-2014 |