Крымский форум (Crimea-Board) Поиск Участники Помощь Текстовая версия Crimea-Board.Net
Здравствуйте Гость .:: Вход :: Регистрация ::. .:: Выслать повторно письмо для активации  
 
> Рекламный блок.
 

Реклама на форуме

 
> Ваша реклама, здесь
 
 
 

  Start new topic Start Poll 

> ubuntu и 2 входящих канала
Sammael |
Дата 21 Марта, 2011, 2:23
Quote Post



Unregistered









и так что есть:
ubunta 10.10
3 сетевых интрфейса
eth0 - провайдер № 1 (адрес получам по dhcp)
eth1 - провайдер № 2 (адрес получам по dhcp)
eth2 - внутренняя сеть
настроен nat с eth2 на eth0, установлен bind9

для чего всё это нужно и чего я хочу:
провайдер № 1 - даёт хорошую скорость по приемлемой цене и ip адрес даже белый но к сожалению он не статичен (((
провайдер № 2 - даёт не широки канал, но совсем недорого и самое главное даёт внешний статический ip
И собственно нужно совсем ничего - чтобы оно работало, а вот блин не получается...
При подключении сразу обоих провайдеров всё становится плохо - то дхцп по кому-нибуть не подтянится, то nat падает.
Отдельно друг от друга они заразы работают а вот вместе censored.gif

Жду умных советов...
8/   
Бобер | Бездомный
Реклама двигатель прогресса       
Quote Post



А кому сча лехко?
Group Icon
















_________________
Желающим разместить рекламу смотреть сюдой
/   
parasapiens | Профиль
Дата 21 Марта, 2011, 14:09
Quote Post




Group Icon

Группа: Старожил
Сообщений: 2014
Регистрация: 29.10.10
Авторитет: 158
Вне форума

Предупреждения:
(0%) -----


не силен в линухах, но пытался подобный вопрос под виндой решить - не получилось, ибо нужен был софт для bgp-сервера(или может кто знает, есть другой способ заставить винду использовать 2 канала одновременно?), а под убунтой я так понимаю есть

Отредактировал parasapiens - 21 Марта, 2011, 14:12


____________________
+7978-883-56-26(ТГ,viber, whatsapp)
parasapiens[@]mail.ru
19/3108   
Sammael |
Дата 21 Марта, 2011, 14:34



Unregistered











[Этот пост удален пользователем Sammael]
Top
Пэтро |
Дата 21 Марта, 2011, 16:01
Quote Post



Unregistered









А в чем собственно заключается проблема?
Выложите что-ли настройки - /etc/network/interfaces

скрипт запуска iptables

по поводу dhcp выложите логи... не очень понимаю, как это, "по кому-нибуть не подтянится"?
1/   
Sammael |
Дата 21 Марта, 2011, 17:34



Unregistered











[Этот пост удален пользователем Sammael]
Top
Sammael |
Дата 21 Марта, 2011, 19:28



Unregistered











[Этот пост удален пользователем Sammael]
Top
Пэтро |
Дата 21 Марта, 2011, 21:15
Quote Post



Unregistered









при подключении по dhcp каждый интерфейс создает роут на 0.0.0.0
и инет будет идти через тот роут который прописан последним..

поэтому, надо в нате четко прописать, какой трафик куда пропускать.

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

iptables -t nat -A PREROUTING -d {белый айпи} -p tcp --dport 80 -j DNAT --to-destination {внутренний сервер}


Цитата(Sammael @ 21 Марта, 2011, 15:34)
iptables -A FORWARD -i eth0 -o eth0 -j REJECT

ИМХО бред forward значит пакеты из одного интерфейса в другой не может быть -i и -o одинаковыми.
13/   
SlavaD | Профиль
Дата 21 Марта, 2011, 23:20
Quote Post



Тех. Админ
Group Icon

Группа: Admin
Сообщений: 503
Регистрация: 13.08.03
Авторитет: 21
Вне форума



Цитата(Sammael @ 21 Марта, 2011, 15:34)
# Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
тут есть 3 варианта:
1. у вас FORWARD по умолчанию ACCEPT и тогда смысла в этих строках нет, т.к. и без них все открыто
2. у вас FORWARD по умолчанию DENY/DROP и тогда толку от этих строк 0, т.к. они открыли только в одну сторону, а именно от клиента наружу, а кто откроет обратно ?
3. вы показали не весь фаервол (iptables -L -n; iptables -t nat -L -n; iptables -t mangle -L -n)


Цитата(Пэтро @ 21 Марта, 2011, 19:15)
поэтому, надо в нате четко прописать, какой трафик куда пропускать.
указать что с белого айпи ломится на сервер
iptables -t nat -A PREROUTING -d {белый айпи} -p tcp --dport 80 -j DNAT --to-destination {внутренний сервер}
пакеты обратно пойдут согласно таблице маршрутизации, тоесть через "чужой" интерфейс, соотвественно смысла в данном DNAT нет, надо строить маршрутизацию

с dhclient почти не работал, но общую логику думаю описать получится:
во первых вам при получении по DHCP данных от второго провайдера надо вызвать скрипт, в котором:
1. Определить маршрут по умолчанию, который дает второй провайдер
2. Определить какой IP выдал этот провайдер
3. Снести этот маршрут
4. Прописать данный маршрут так, чтобы он работал, только для пакетов приходящих на интерфейс второго провайдера

скриптик думаю можно вызвать почитав man dhclient.conf на предмет опции script

ну и пример скриптика:
Код
#!/bin/bash

# Если почитать man, думаю следующие 3 строки можно получить из переменных окружения
eth=eth3 # интерфейс второго провайдера
def='ip ro ls | grep "dev $eth" | grep default | cut -d " " -f 3' # шлюз второго провайдера
ip='ip ro get $def | head -n 1 | sed "s/^.* src //g"' # ip выданный вторым провайдером

if [ "$def" = "" ]; then
  exit
fi

# сносим лишний маршрут по умолчанию
ip ro del default via $def

# чистим на всякий случай наши рулезы и маршрут в таблице 20
# которые могли остаться от предыдущего запуска скрипта
ip ru del table 20
ip ro del default table 20

# создаем в таблице 20 маршрут по умолчанию через второго провайдера
ip ro add default via $def table 20

# отправляем все пакеты идущие от IP выданного вторым провайдером, в таблицу 20
ip ru add from $ip table 20
PMEmail Poster
17/7191   
Sammael |
Дата 22 Марта, 2011, 14:26



Unregistered











[Этот пост удален пользователем Sammael]
Top
SlavaD | Профиль
Дата 22 Марта, 2011, 15:30
Quote Post



Тех. Админ
Group Icon

Группа: Admin
Сообщений: 503
Регистрация: 13.08.03
Авторитет: 21
Вне форума



Sammael
Скрипт, в том, виде, что я дал, можно пробовать выполнить вручную, если не пойдет, для диагностики показать вывод команд до и после запуска:
ip ro ls
ip ru ls
ip ro ls table 20
ip a ls dev eth3

eth3 заменить на интерфейс, на котором висит второй провайдер, в скрипте разумеется тоже.
PMEmail Poster
13/7191   
Sammael |
Дата 22 Марта, 2011, 22:35



Unregistered











[Этот пост удален пользователем Sammael]
Top
SlavaD | Профиль
Дата 22 Марта, 2011, 22:54
Quote Post



Тех. Админ
Group Icon

Группа: Admin
Сообщений: 503
Регистрация: 13.08.03
Авторитет: 21
Вне форума



добавляй к скрипту echo и смотри, на каком этапе проблема

например воткни после
ip='ip ro ge .......

echo "def=$def"
echo "ip=$ip"

и как то это
Цитата(Sammael @ 22 Марта, 2011, 20:35)
inet 10.12.106.98/29 brd 10.12.106.103 scope global eth3
не похоже на
Цитата(Sammael @ 21 Марта, 2011, 0:23)
внешний статический ip

PMEmail Poster
7/7191   
Sammael |
Дата 23 Марта, 2011, 1:23



Unregistered











[Этот пост удален пользователем Sammael]
Top
SlavaD | Профиль
Дата 23 Марта, 2011, 2:29
Quote Post



Тех. Админ
Group Icon

Группа: Admin
Сообщений: 503
Регистрация: 13.08.03
Авторитет: 21
Вне форума



Sammael
выполняй по одной строке ручками и смотри когда возникнет ошибка и почему
там где идет присваивание, проверяй, что присвоилось в результате
PMEmail Poster
3/7191   
SlavaD | Профиль
Дата 23 Марта, 2011, 2:33
Quote Post



Тех. Админ
Group Icon

Группа: Admin
Сообщений: 503
Регистрация: 13.08.03
Авторитет: 21
Вне форума



Все, понял в чем дело, форум покоцал кавычки, точнее подменил одни на другие
в строках
def='ip ro ls | grep "dev $eth" | grep default | cut -d " " -f 3' # шлюз второго провайдера
ip='ip ro get $def | head -n 1 | sed "s/^.* src //g"' # ip выданный вторым провайдером

одинарные кавычки должны быть обратными, теми, что под ~ на клавиатуре
PMEmail Poster
5/7191   
Sammael |
Дата 23 Марта, 2011, 2:39



Unregistered











[Этот пост удален пользователем Sammael]
Top
SlavaD | Профиль
Дата 23 Марта, 2011, 2:41
Quote Post



Тех. Админ
Group Icon

Группа: Admin
Сообщений: 503
Регистрация: 13.08.03
Авторитет: 21
Вне форума



Цитата(Sammael @ 23 Марта, 2011, 0:39)
возможно я чтото делаю не так, но при выполнении:

см. мое предыдущее сообщение
PMEmail Poster
Sammael |
Дата 23 Марта, 2011, 2:47



Unregistered











[Этот пост удален пользователем Sammael]
Top
SlavaD | Профиль
Дата 23 Марта, 2011, 2:59
Quote Post



Тех. Админ
Group Icon

Группа: Admin
Сообщений: 503
Регистрация: 13.08.03
Авторитет: 21
Вне форума



Скрипт отработал правильно и маршрутизация после него именно такая, как и задумывалось.
Но раз не работает то:
1. Что-то все таки не так с маршрутизацией, но я ошибок не вижу
2. Что-то не так с firewall, например DNAT воткнут, который не нужен, или просто закрыто.
3. Провайдер в реальности ничего не прокидывает

Рекомендую воспользоваться командой tcpdump -ni eth3 для просмотра, приходят ли вообще пакеты из вне и куда они потом уходят (если на eth3 уходящих нет, поискать их на других интерфейсах).
Так же посмотреть, что там в реальности с firewall, iptables -L -n; iptables -t nat -L -n; iptables -t mangle -L -n

если не поможет, показать вывод, попробуем дальше телепатией позаниматься, но уже завтра.
iptables -L -n
iptables -t nat -L -n
iptables -t mangle -L -n
PMEmail Poster
12/7191   
Sammael |
Дата 23 Марта, 2011, 3:07



Unregistered











[Этот пост удален пользователем Sammael]
Top

Topic Options Start new topic Start Poll 

 



[ Script Execution time: 0.0152 ]   [ 12 queries used ]   [ GZIP включён ]






Политика конфиденциальности

Top