К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Ubuntu и два pppoe к провайдеру

Гость
0 - 07.02.2014 - 11:05
Ситуация:
Автоматом поднимаются два подключения pppoe через разные eth интерфейсы к одному провайдеру(бывает так, что шлюз одинаковый!)

Задача:
Необходимо иметь доступ к машине одновременно по двум внешним подключениям и из локалки в интернет.
И так же не терять выход в интернет, если одно из подключений отвалилось. Сейчас оба подключения забирают на себя одеяло при подключении.
В итоге работает только одно, то что подключилось последним и стало шлюзом по умолчанию, если его отключить работает первое.

Пробовал маркировать в iptables и рулить через таблицы, но что-то не получилось. Можно как то дебажить маркирование пакетов и работу правил?
Так же не понимаю как разрулить если шлюз одинаковый, переподключаться пока они не станут разные? =).

Хотел бы получить возможные варианты реализации и чем подробнее тем лучше =)



Гость
1 - 07.02.2014 - 11:45
сколько платишь?
Гость
2 - 07.02.2014 - 14:35
Цитата:
Сообщение от 40KHYTbIU Посмотреть сообщение
Можно как то дебажить маркирование пакетов и работу правил?
Код:
-j LOG
или тупо смотришь количество пакетов в статистике
Код:
iptables -n -L -v -t nat
Цитата:
Сообщение от 40KHYTbIU Посмотреть сообщение
Хотел бы получить возможные варианты реализации
посоветую вот это, ибо с нуля маркировать/маршрутить будет тяжко
Гость
3 - 07.02.2014 - 22:31
давай так. настраиваем подключение, а за фаервол отдельно платишь.
Гость
4 - 08.02.2014 - 00:29
Набросал такое скрипт

#!/bin/bash

echo "1">/proc/sys/net/ipv4/ip_forward
echo "0">/proc/sys/net/ipv4/conf/all/rp_filter

iptables -t nat -F
iptables -t filter -F
iptables -t mangle -F

ip rule delete table dsl1
ip rule delete table dsl2
ip route delete table dsl1
ip route delete table dsl2

iptables -t mangle -A PREROUTING -i ppp0 -j MARK --set-mark 0x1111
iptables -t mangle -A PREROUTING -i ppp1 -j MARK --set-mark 0x2222

ip rule add fwmark 0x1111 table dsl1
ip rule add fwmark 0x2222 table dsl2
ip route add 0.0.0.0/0 dev ppp0 table dsl1
ip route add 0.0.0.0/0 dev ppp1 table dsl2
ip route flush cache


Но вот чето не работает.

2-droidman > судя по статистике пакеты маркируются, но не ходят куда надо.
Гость
5 - 09.02.2014 - 23:31
Не хватало маршрута по умолчанию в таблице
ip route add default via $P0 table dsl1
Гость
6 - 10.02.2014 - 00:52
чета не вкурил как оно у вас заработало....
у вас же mark вроде маркирует просто пакет входящий, откуда ответ знает как лететь, а не просто по порядку по таблицам маршрутизации шлындрает ? и насчет балансировки изнутри на "новые адреса" как-то сомнительно...
Гость
7 - 10.02.2014 - 12:31
таблицы есть в /etc/iproute2/rt_tables ?)
Гость
8 - 10.02.2014 - 15:34
так это...мож всеже заменить
Код:
iptables -t mangle -A PREROUTING -i ppp0 -j MARK --set-mark 0x1111
iptables -t mangle -A PREROUTING -i ppp1 -j MARK --set-mark 0x2222
на
Код:
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i ppp0 -j CONNMARK --set-mark 0x1111
iptables -A PREROUTING -t mangle --match mark --mark 0x1111 -j ACCEPT
iptables -t mangle -A PREROUTING -i ppp1 -j CONNMARK --set-mark 0x2222
iptables -A PREROUTING -t mangle --match mark --mark 0x2222 -j ACCEPT
iptables -t mangle -A PREROUTING -j CONNMARK --save-mark
CONNMARK он в отличие от mrak - connection tracking, ну т.е. относится ко все сессии собсно верхнее правило востанавливает метку на related , т.е. ответ от сервака полетит по нужному маршруту
Гость
9 - 10.02.2014 - 15:41
просто марк имеет смысл когда для исходящих надо пустить в завис-и от чего-то например от сурса на нужный маршрут, а ответ и так прилетит куда надо ну на тот интерфейс с которого вылетело....
и ещё надо сбалансировать исходящий в вашем случае, а то оно все полетит одним линком...
или я все таки не прально вкуриваю ? я просто практически почти не сталкивался с двумя линками и балансировкой, если было то почти всегда фейловер
Гость
10 - 10.02.2014 - 15:42
8-701054 >mrak=mark )))))))))
Гость
11 - 12.02.2014 - 23:37
10-701054 >
Мне не надо балансировать исходящий трафик, мне необходимо только иметь доступ по обоим каналам.

Решил через скрипт в ip-up.d, который выставляет правило и маршрут для предыдущего активного подключения.


ip rule add from $IPL1 table $TABLE1;
ip route add default via $IPR1 table $TABLE1;

ip rule delete table $TABLE2;
ip route delete table $TABLE2;

ip route flush cache;


К списку вопросов






Copyright ©, Все права защищены