Здравствуйте, уважаемые эксперты. Вопрос, наверное, тривиальный, но всё же. Есть 2 провайдера: один через ADSL модем(хотя это врядли важно) другой обычный. Оба работают по dhcp. Проблема в том, что я хочу использовать локалку от первого, а интеренет от второго ОДНОВРЕМЕННО. Уже реально пол года бьюсь, но так и не смог заставить их работать вместе. Курил кучу манов, статей и книг по маршрутизации - ничего не заработало. По одиночке всё работает чётко, а вместе никак. Привожу свой скрипт и параметры провайдеров.
Это мой файл для роутинга:
ETH_ALTAIR=eth0
ETH_TTK=eth1
##IP_ALTAIR=192.168.1.9
IP_TTK=192.168.10.2
ip route add 10.0.0.0/8 dev $ETH_ALTAIR proto kernel
ip route add 89.107.196.35 dev $ETH_ALTAIR proto kernel
ip route add 89.107.196.36 dev $ETH_ALTAIR proto kernel
ip route add 89.107.196.44 dev $ETH_ALTAIR proto kernel
ip route add 10.248.0.0/13 dev $ETH_TTK proto kernel
ip route add 212.12.0.0/19 dev $ETH_TTK proto kernel
ip route add default dev $ETH_ALTAIR metric 10 proto kernel
ip route add default dev $ETH_TTK metric 0 proto kernel
#ip route delete default
#ip route delete default
##dhclient3 eth0
ip route flush cache
##dhclient3 eth1
Задача следующая:
1)через eth0 должен идти весь трафик с 10.0.0.0/8 и в добавок 89.107.196.35, 89.107.196.36, 89.107.196.44
2)через eth1 должен идти весь трафик с интернет + 10.248.0.0/13 + 212.12.0.0/19.
Пожалуйста подскажите, как это сделать. И очень бы хотелось, чтобы подробно объяснили почему, чтобы впредь, не задавать подобных вопросов. Вполне вероятно, что в этом скрипте куча ошибок. Не судите строго. Я в этом ещё не очень.
С Уважением, frees
Вот это убрать:
ip route add default dev $ETH_ALTAIR metric 10 proto kernel
Если балансировки нет, то и таблица маршрутизации одна дефолтная, а в ней может быть один дефолтный маршрут.
Однако, если хотите балансировку каналов инета, то
http://www.opennet.ru/docs/RUS/LARTC/
если коротко, будет несколько таблиц маршрутизации с определенной последовательностью обращения к ним, весами и тд.
Спасибо, но это проблему не решает. Хабы не работают через $ETH_ALTAIR, а работают через default маршрут.
Какие хабы? ДС? Какие у них адреса?
Вообще, у каждого вашего провайдера есть шлюз (вероятно 192.168.1.1 и 192.168.10.1). И для того чтоб ходить на определенные сети через определенных провайдеров, стоит просто прописать маршрут через его шлюз, где-то так:
GW_ALTAIR="192.168.1.1"
GW_TTK="192.168.10.1"
ip route del default
ip route add default via $GW_ALTAIR
ip route add 10.248.0.0/13 via $GW_TTK
ip route add 212.12.0.0/19 via $GW_TTK
хм... а почему бы не попробовать через локальный прокси ? например squid ? и указать ему что инет доступен только по eth1 , а остальной траффик гнать на eth0. а нужные маршруты он сам прокинет
Во-первых, squid умеет только http(s),ftp(s), так что надо будет забыть про торренты и тп.. Во-вторых, то что инет доступен только по eth1 вы сможете сообщить ему именно маршрутами, сам он ничего прокидывать не будет (ну, на крайняк, надо иметь прокси выше по иерархии в сети к которой принадлежит адрес интерфейса eth1 + днс там же, а default роут отдать eth0). Извращаться можно долго, но, в итоге, получаем набор костылей, и вообще, надежность системы обратно пропорциональна количеству элементов в системе... вот:)
Адреса хабов:
89.107.196.35
89.107.196.36
Попробуйте, что я писал выше (17 Июнь, 2009 - 19:29). Эти адреса пойдут преспокойно по дефаулт роуту. Другое дело если один из пиров случайно окажется в такой же сети, которую мы маршрутим через другого провайдера, тогда скачать файл - борода.
Ок.спасибо большое.
Отправить комментарий