У вас есть квартира (это компьютер), в ней есть входы - парадный и черный. Люди входят и выходят по обычным правилам.
Обычные правила:
default gw - парадный выход через гостинную (eth0), поскольку везде висят таблички если вам наружу, то выход туда. Поэтому люди которые даже выйдя в кладовку увидят, что на черном входе/выходе (eth1) висит табличка - выход через парадный вход.
Policy routing или свой шлюз для каждого интерфейса. Т.е. везде висят таблички - выход там же где и вход, и соответствеено вход там же где и выход.
Ваша задача. Надо еще повесит везде таблички, что если вы вася, то вы ходите через черный ход....
Если на черном ходе не будет висеть таблички, что если вы хотите уйти из дворницкой (eth1), то через двурь черного хода (default шлюз провайдера).
Иначе вася будет тупо ходить через парадный ход.
вот молодец, как все объяснил путево! можешь же!
у меня таблица маршрутизации подгружается из rc.local и имеет вид:
route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.22.192.1 dev eth0
route add -net 93.157.16.0 netmask 255.255.248.0 gw 172.23.36.65 dev eth1
route add -net 172.16.0.0 netmask 255.240.0.0 gw 172.23.36.65 dev eth1
route add -net 213.142.32.0 netmask 255.255.224.0 gw 172.23.36.65 dev eth1
на мой взгляд здесь всё привязано к конкретной сетевой карте, в частности шлюз 10.22.192.1 на dev eth0, шлюз 172.23.36.65 на dev eth1, не хватает только записи о шлюзе на ppp0. но шлюз на ppp0 - не const. как написать эту строчку (нужна команда)? может еще чего написать, а я не увидел?
police routing у меня, я так понял, настроен. так как сеть поднята на ppp0, но в то же время eth1 является и входом, и выходом одновременно.
/etc/iproute2/rt_tables принимает у меня вид:
#
# reserved values
#
255 local
254 main
253 default
0 unspec
201 T1
202 T2
#
# local
#
#1 inr.ruhep
Далее задаю скрипт:
#!/bin/sh
IP1=172.23.36.66
IP2= #незнаю чего писать, так как ip сети eth0 разное и присваивается автоматом, ip сети ppp0 также наверное переменчив
P1=172.23.36.65
P2=10.22.192.1 #пишу шлюз eth0, т.к. шлюз ppp0 наверное переменчив
# неправильно написал не ходи к гадалке
ip route add default via $P1 table T1
ip route add default via $P2 table T2
ip route add default via $P1
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
Выполняю скрипт под рутом .
Далее под рутом выполняю:
[root@localhost iproute2]# id
uid=0(root) gid=0(root) группы=0(root)
[alex@localhost ~]$ id
uid=500(alex) gid=500(alex) группы=500(alex)
Далее под рутом выполняю:
iptables -I OUTPUT -t nat -m owner --uid-owner 500 -o ppp0
iptables -I OUTPUT -t nat -m owner --uid-owner [цифра пользователя будет, еще его не создал] -o eth1
Еще чего не хватает?
у ppp0, я проверил, нет постоянных ип и шлюзов у меня - все время разные, при каждом его перезапуске.
в то же время текущее значение для eth0 известно:
ip: 10.22.198.162 = ?, вроде const
шлюз:10.22.192.1 = const
timeout до завтра - домашние дела.... Завтра постараюсь дать решение. В вашем случае оно есть, поскольку ip-up никто не отменял и скрипт в dhcp клиенте тоже может дать ip для последующей конфигурации.
timeout до завтра - домашние дела.... Завтра постараюсь дать решение. В вашем случае оно есть, поскольку ip-up никто не отменял и скрипт в dhcp клиенте тоже может дать ip для последующей конфигурации.
Создал нового пользователя и зашел в одном браузере под одним пользователем, а в другом под другим. Выдало при заходе через нового пользователя:
Произошла ошибка при загрузке или сохранении конфигурационной информации для firefox. Некоторые из установок могут не функционировать правильно.
Как заходил под новым юзером? Нужно же перейти полностью в его сеанс для получения его энвиронмента и домашнего каталога.
И вообще, учи матчасть! Тут уже пол форума припяг что бы на тебя работали.
Как заходил под новым юзером? Нужно же перейти полностью в его сеанс для получения его энвиронмента и домашнего каталога.
И вообще, учи матчасть! Тут уже пол форума припяг что бы на тебя работали.
помощь - дело добровольное, кто не хочет, тот не помогает. я и учу, спрашивая. знаю я, что можно отключить текущего пользователя и сменить на другого, вопрос-то не в этом состоит. но по заданной задаче нужна одновременная работа обоих пользователей.
я написал в терминале под рутом
su romka
потом
firefox
Итак, сделано следующее:
/etc/iproute2/rt_tables принимает у меня вид:
#
# reserved values
#
255 local
254 main
253 default
0 unspec
201 T1
202 T2
#
# local
#
#1 inr.ruhep
Далее задаю скрипт, обзываю файл twoprov.sh:
#!/bin/sh
IP1=89.179.65.12 # поставил текущие значения
IP2=172.23.36.66
P1=85.21.66.193 # поставил текущие значения
P2=172.23.36.65
ip route add default via $P1 table T1
ip route add default via $P2 table T2
ip route add default via $P1
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
Выполняю скрипт под рутом .
[alex@localhost ~]$ su
Password:
[root@localhost alex]# sudo bash /home/alex/twoprov.sh
RTNETLINK answers: File exists
[root@localhost alex]#
Далее под рутом выполняю:
[root@localhost /]# iptables -I OUTPUT -t nat -m owner --uid-owner 500 -o ppp0
[root@localhost /]# iptables -I OUTPUT -t nat -m owner --uid-owner 501 -o eth1
Таблица маршрутизации приняла вид:
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
85.21.66.193 10.22.192.1 255.255.255.255 UGH 0 0 0 eth0
85.21.66.193 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
172.23.36.64 0.0.0.0 255.255.255.252 U 5 0 0 eth1
93.157.16.0 172.23.36.65 255.255.248.0 UG 0 0 0 eth1
10.22.192.0 0.0.0.0 255.255.248.0 U 0 0 0 eth0
213.142.32.0 172.23.36.65 255.255.224.0 UG 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 5 0 0 eth1
172.16.0.0 172.23.36.65 255.240.0.0 UG 0 0 0 eth1
10.0.0.0 10.22.192.1 255.0.0.0 UG 0 0 0 eth0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
0.0.0.0 172.23.36.65 0.0.0.0 UG 5 0 0 eth1
Выполняю под рутом:
[root@localhost /]# su - romka
[romka@localhost ~]$ firefox
Смотрю за трафиком. Сетевая карта eth1 бездействует. Где ошибки, подскажите, пожалуйста.
Даю дополнительно:
[root@localhost alex]# ip rule show
0: from all lookup local
32764: from 172.23.36.66 lookup T2
32765: from 89.179.65.12 lookup T1
32766: from all lookup main
32767: from all lookup default
[root@localhost alex]# ip route list
85.21.66.193 via 10.22.192.1 dev eth0 src 10.22.198.162
85.21.66.193 dev ppp0 proto kernel scope link src 89.179.65.12
172.23.36.64/30 dev eth1 proto kernel scope link src 172.23.36.66 metric 5
93.157.16.0/21 via 172.23.36.65 dev eth1
10.22.192.0/21 dev eth0 proto kernel scope link src 10.22.198.162
213.142.32.0/19 via 172.23.36.65 dev eth1
169.254.0.0/16 dev eth1 scope link metric 5
172.16.0.0/12 via 172.23.36.65 dev eth1
10.0.0.0/8 via 10.22.192.1 dev eth0
default dev ppp0 scope link
default via 172.23.36.65 dev eth1 metric 5
/etc/ppp/ip-up
A program or script which is executed when the link is
available for sending and receiving IP packets (that is,
IPCP has come up). It is executed with the parameters
/etc/ppp/ip-down
A program or script which is executed when the link is no
longer available for sending and receiving IP packets.
This script can be used for undoing the effects of the
/etc/ppp/ip-up script. It is invoked in the same manner
and with the same parameters as the ip-up script.
Что это означает...
Надо добавить скрипт, который будет настраивать ваш policy routing, когда поднимается интерфейс pptp. Там кажется еще естьпример....
Решая вопрос распараллеливания трафика от друх провайдеров удалось в качестве побочного эффекта достичь их одновременной работы с ktorrent, получилось сложение скоростей закачки (иногда и отдачи, но закачки - 100%).
Методом научного тыка получилось следующее:
/etc/iproute2/rt_tables принимает у меня вид:
#
# reserved values
#
255 local
254 main
253 default
0 unspec
201 T1
202 T2
#
# local
#
#1 inr.ruhep
Создал скрипт two_prov.sh:
#!/bin/sh
IP1=93.81.105.166 #ip-адрес ppp0, постоянно меняется при каждом перезапуске системы или сетей
IP2=172.23.36.66 #ip-адрес eth1, постоянный
P1=85.21.66.193 #шлюз ppp0, замечена постоянность, но не факт
P2=172.23.36.65 #шлюз eth1, постоянный
ip route add default via $P1 table T1
ip route add default via $P2 table T2
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
ip route add default via $P1
iptables -I OUTPUT -t nat -m owner --uid-owner 501 -o ppp0 #здесь идет закрепление за вспомогательным пользователем
iptables -I OUTPUT -t nat -m owner --uid-owner 500 -o eth1 #здесь идет закрепление за основным пользователем, только этот пользователь по факту в системе и работает
route del default
route add default eth1
загружаемся. поднимаем сеть на ppp0, запускаем ktorrent, выполняем скрипт один или два раза. сеть становится поднятой на eth1, но торрент продолжает качать с обоих интерфейсов (один из интерфейсов преимущественно закачивает, а другой преимущественно отдает, но это не общее правило, они могут и оба качать, а один только отдавать). при пропадании сети eth1 скорость падает до скорости провайдера ppp0, при появлении сети eth1 скорости вновь складываются автоматом. при пропадании сети ppp0 скорость падает до скорости провайдера eth1, при появлении сети ppp0 скорости не складываются, повторный запуск скрипта решает проблему - скорости вновь складываются.
эффект возымеет действие в течении минуты, не сразу.
стабильность работы такого алгоритма пока не протестирована, но уже замечено, что ktorrent, уж коли он запущен, трогать не надо, не нажимать пауз, не выходить из него - сбивается эффект.
кто объяснит полученный результат? я не понимаю почему так получилось, но мне эффект нравится.
IP1=93.81.105.166 #ip-адрес ppp0, постоянно меняется при каждом перезапуске системы или сетей
как в этом месте в скрипте написать не сам адрес, а чтобы он сам подставлялся?
я объясняю такой эффект следующим образом: до запуска торрента сеть была поднята на ppp0 и была активна только одна таблица маршрутизации - главная, теперь запустим торрент, он запускается под пользователем alex (id=500). в момент работы торрента в системе произошла перестройка (запуск скрипта), появились новые таблицы маршрутизации, у пользователя alex стал другой интерфейс - eth1, изменился и шлюз по умолчанию в главной таблице. торрент немного подумал и решил - ему дали 2 установки, не отменив предыдущую: качай под alex с ppp0, а затем качай под alex с eth1, вот он и решил качать с обоих интерфейсов под alex, пользуясь главной таблицей маршрутизации и вновь созданной. а как еще понять?
Я подозреваю, что постоянные посетители данного раздела форума уже исчерпали свои возможности и познания в интересующем Вас предмете. На форуме есть раздел "Администрирование", попробуйте задать свои вопросы там, а чтобы не переписывать заново все, что обсуждалось здесь, дайте там ссылку на этот топик.
А вообще можно и весь этот топик перенести туда, поскольку он не является специфичным для одной только мандривы.
возможно полученный эффект следует растолковать несколько иначе: подняли сеть под пользователем id=500 на интерфейсе ppp0 и запустили торрент под тем же пользователем. далее запустили скрипт:
#!/bin/sh
IP1=`ifconfig ppp0 | grep 'inet addr' | sed 's/inet addr\://' | awk '{print $1}'`
IP2=172.23.36.66 #ip-адрес eth1
P1=85.21.66.193 #шлюз ppp0
P2=172.23.36.65 #шлюз eth1
ip route add default via $P1 table T1
ip route add default via $P2 table T2
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
ip route add default via $P1
iptables -I OUTPUT -t nat -m owner --uid-owner 500 -o ppp0
iptables -I OUTPUT -t nat -m owner --uid-owner 501 -o eth1
route del default
route add default eth1
в результате сеть стала поднята на интерфейсе eth1. Торрент качал под пользователем id=500 с ppp0, и должен был продолжить после запуска скрипта качать с ppp0, так как запустивший торрент пользователь не изменился. Но торрент обязан также качать с текущего рабочего в системе интерфейса - то есть после запуска скрипта также он обязан качать с eth1 (торрент всегда качает с провайдера, установленного по умолчанию, то есть с того, о котором NetAplet показывает "Сеть поднята на интерфейсе таком-то"). Но eth1 принадлежит другому пользователю. Торрент, качая с eth1, качает с пользователя id=501, либо качает в этом случае под пользователем id=500, но пользуется главной таблицей маршрутизации, так как пользователь торрента не изменился (далее поясню почему именно главной) (как правильно в этом месте толковать не знаю, но второе мне больше нравится).
Теперь рассмотрим подробнее использование таблиц маршрутизации.
Таблицы T1 и T2 созданы, но маршрутами не заполнены, а главная таблица не очищена и используется. Когда торрент качает с ppp0 он пользуется таблицей Т1, но так как она пуста, то пользуется главной таблицей. Когда торрент качает с eth1 он пользуется таблицей Т2 либо главной, то так как Т2 незаполнена, то при любом исходе он пользуется главной таблицей. Главная таблица написана так, что какой бы провайдер не был активен, а другой отключен - сеть при любом исходе работала бы одинаково правильно, то есть пакет, пришедший с ppp0, уйдет на ppp0, а пакет, полученный с eth1, уйдет на eth1. Если включить обоих провайдеров, то пакет полученный с ppp0 уйдет либо на ppp0, либо в шлюз по умолчанию, а пакет, полученный с eth1, уйдет либо на eth1, либо в шлюз по умолчанию. Это объясняет почему скорость скачки равна сумме скоростей скачки с обоих провайдеров, а скорость отдачи равна сумме скоростей отдачи с обоих провайдеров; либо скорость скачки равна сумме скоростей скачки с обоих провайдеров, а скорость отдачи равна просто скорости отдачи с одного провайдера.
Управляя этим можно добиться обратного эффекта: когда скорость отдачи будет равна сумме скоростей отдачи с обоих провайдеров, а скорость скачки будет обычной, характерной для одного из провайдеров.
В результате торрент пользуется одной и той же таблицей для одновременно работающих интерфейсов, он также поставлен в такие условия, при которых он вынужден качать с обоих интерфейсов. Вот почему когда ppp0 падает, торрент более не связан обязанностью качать с ppp0 и качает только с eth1; но когда падает eth1, торрент продолжает качать с ppp0, и, когда eth1 восстановится, все вернется на круги своя - скорости просуммируются.
Я подозреваю, что постоянные посетители данного раздела форума уже исчерпали свои возможности и познания в интересующем Вас предмете. На форуме есть раздел "Администрирование", попробуйте задать свои вопросы там, а чтобы не переписывать заново все, что обсуждалось здесь, дайте там ссылку на этот топик.
А вообще можно и весь этот топик перенести туда, поскольку он не является специфичным для одной только мандривы.
В Windows только что заметил одну закономерность, которая меня удивила.
Ниже следующую последовательность действий я сделал случайно:
Подключил одно интернет подключение... затем запустил закачку через uTorrent... закачка пошла, соединение активно использовалось. Только после этого подключил второе подключение. Секунд 30 оно разгонялось от нескольких байт до нормальной скорости и после этого у меня синхронно работали 2 интернет подключения! Скорость в 2 раза больше! Все, как я и хотел... НО! После остановки закачки в uTorrent первое подключение сдохло и больше не активировалось, что бы я ни делал...
Если включить 2 подключения, а лишь затем попытаться загрузить канал (путем старта закачки), то все равно работает только одно из двух подключений...
Ответ: В uTorrent - есть одна великолепная штука (даже две) DHT[1] и Local Peer Discovery[2]
Соответственно - именно в торрентах возможно и такое поведение.
взято с сайта http://otvety.google.ru/otvety/thread?tid=7f25f60623cdc69d