Yellow leaf - статті - автоматичне перемикання на резервний інтернет-канал на шлюзі невеликого

Внесемо трохи ясності:

Для початку уточнимо (про всяк випадок) як саме прив'язати ppp-з'єднання до ppp-інтерфейсу з конкретним номером. Для цього потрібно до відповідного файлі в "/ etc / ppp / peers&quto; додати рядок:

Далі додамо ще один параметр в той же файл: мітку з'єднання:

Крім того цей інтерфейс не повинен при підйомі чіпати маршрут за замовчуванням. Це досягається приблизно ось так:

Це нам стати в нагоді трохи пізніше. Зараз нам потрібно описати дві додаткові таблиці роутінга (по одній для кожного провайдера). Для цього в файл "/ etc / iproute2 / rt_tables" додамо наступні рядки:

Тепер нам треба явно вказати з якого інтерфейсу через яку таблицю роутінга шукати маршрути. Для цього потрібно виконати ось такі команди (і заодно додати в "/etc/rc.local" щоб виконувалися при завантаженні):

Зрозуміло треба щоб в потрібних таблицях були і потрібні маршрути (як мінімум маршрут за замовчуванням). Для резервного каналу це досягається створенням скрипта "/etc/ppp/ip-up.d/tbt" приблизно такого змісту:

Для eth0 все ще простіше: відкриваємо файл "/ etc / network / interfaces" і наводимо конфігурацію eth0 до такого виду:

Тепер потрібно перезавантажити сервер і після цього сервер буде за замовчуванням йти в інтернет через eth0, але при цьому зовні буде доступний по обох каналах. Тепер створимо скрипт "/usr/local/scripts/check_internet.sh" такого змісту:

Цей скрипт потрібно запускати кожну хвилину. Для цього в "/ etc / crontab" потрібно додати рядок:

Далі ще потрібно включити пересилку пакетів (forwarding) і підняти NAT для локальної мережі на обох інтерфейсах. Приклади можна знайти наприклад тут і тут.

На цьому все. Приємної роботи!


спробував ще раз вникнути в завдання і зрозумів що її не зрозумів. що в результаті хочете отримати?

зміна набору правил на льоту зробити легко. в крайньому випадку при перемиканні можна тупо flush'іть всіх правил і набивати заново.

поки не зрозуміло що саме ви хочете отримати і тому важко щось радити. що за ланцюжок TRY-SNAT?

спробував ще раз вникнути в завдання і зрозумів що її не зрозумів. що в результаті хочете отримати?

зміна набору правил на льоту зробити легко. в крайньому випадку при перемиканні можна тупо flush'іть всіх правил і набивати заново.

поки не зрозуміло що саме ви хочете отримати і тому важко щось радити. що за ланцюжок TRY-SNAT?


Згоден, flush'іть правила, це найперше що приходить в голову!
TRY-SNAT це призначена для користувача ланцюжок!
Завдання, з точки зору розуміння, абсолютно проста: потрібно при зміні маршруту за замовчуванням змінювати -A TRY-SNAT -j SNAT --to-source 192.168.0.1 на -A TRY-SNAT -j SNAT --to-source 192.168.20.1

Проблемка хоч і не сильно велика але підкажіть куди дивитися щоб зрозуміти причину.
Зроблено все як тут, тільки крім інтерфейсу ppp
У мене eth0 основний eth1 резервний eth2 локалка
перемикання проходить на ура!
Але коли працює на основному все пучком працює особливо! Пінг! йдуть
але при перемиканні на резервне сайти відкриваються начебто як би працює але пінг не йдуть. Пробував застосовувати за новою iptables з очищенням таблиць. не допомагає.
Іноді зауважив йдуть після перемикання з хвилинної приблизно затримкою.
У чому може бути проблема підкажіть плиз.

Проблемка хоч і не сильно велика але підкажіть куди дивитися щоб зрозуміти причину.
Зроблено все як тут, тільки крім інтерфейсу ppp
У мене eth0 основний eth1 резервний eth2 локалка
перемикання проходить на ура!
Але коли працює на основному все пучком працює особливо! Пінг! йдуть
але при перемиканні на резервне сайти відкриваються начебто як би працює але пінг не йдуть. Пробував застосовувати за новою iptables з очищенням таблиць. не допомагає.
Іноді зауважив йдуть після перемикання з хвилинної приблизно затримкою.
У чому може бути проблема підкажіть плиз.


А до того як підуть пінг сторінки відкриваються? Тут же перевірка з'єднання відбувається раз в хвилину. Тобто якщо скінчився основний канал то перемикання на резерв відбудеться протягом хвилини. В цей час інтернету не буде.

Добридень!
Поясніть ситуацію

Є два канали інтернет з IPoE
domru основний
beeline резервний

sudo cat / etc / iproute2 / rt_tables
Код: [Виділити]

#
# Reserved values
#
255 local
254 main
253 default
195 beeline
190 domru
0 unspec
#
# local
#
# 1 inr.ruhep


sudo cat /etc/rc.local
Код: [Виділити]


sudo cat / etc / network / interfaces

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address IP1
netmask 255.255.255.0
gateway GW1
mertic 100
dns-nameservers 127.0.0.1
post-up / sbin / ip route add default via GW1 table domru
post-up / sbin / ip route del default via GW2 dev eth2 metric 100
post-up / sbin / ip route add default via GW1 dev eth0 metric 100

# The primary network interface
auto eth1
iface eth1 inet static
address 192.168.0.250
netmask 255.255.255.0
dns-nameservers 127.0.0.1
dns-search domen.ru

auto eth2
iface eth2 inet static
address IP2
netmask 255.255.255.252
#gateway GW2
dns-nameservers 127.0.0.1
post-up / sbin / ip route add default via GW2 table beeline


При таких налаштуваннях шлюз доступний по обох каналах

default via GW1 dev eth0 metric 100
10.10.40.0/24 via 10.10.40.2 dev tun0
10.10.40.2 dev tun0 proto kernel scope link src 10.10.40.1
NETWORK_IP2 / 30 dev eth2 proto kernel scope link src IP2
NETWORK_IP1 / 24 dev eth0 proto kernel scope link src IP1
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.250


Використовую скрипт перемикання на резервний канал

При падінні основного каналу, перемикається чудово.
АЛЕ назад не включається, не можу зрозуміти чому?


Питання два, але такий же!

sudo ifconfig eth0 down

пропадає зв'язок по основному каналу. Чекаю виконання скрипта
отримую

sudo ip r
Код: [Виділити]

default via GW2 dev eth2 metric 100
10.10.40.0/24 via 10.10.40.2 dev tun0
10.10.40.2 dev tun0 proto kernel scope link src 10.10.40.1
NETWORK_IP2 / 30 dev eth2 proto kernel scope link src IP2
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.250


роблю sudo ifconfig eth0 up
отримую

default via GW2 dev eth2 metric 100
10.10.40.0/24 via 10.10.40.2 dev tun0
10.10.40.2 dev tun0 proto kernel scope link src 10.10.40.1
NETWORK_IP2 / 30 dev eth2 proto kernel scope link src IP2
NETWORK_IP1 / 24 dev eth0 proto kernel scope link src IP1
192.168.0.0/24 dev eth1 proto kernel scope link src 192.168.0.250


інтернет йде з резервного каналу, але шлюз по основному каналу не доступний. тільки по резервному.

якщо роблю
Код: [Виділити]

sudo ip r del default via GW2 dev eth2 metric 100 sudo ip r add default via GW1 dev eth0 metric 100

Те інтернет йде по основному каналу і шлюз доступний по обох каналах.

Чому так? Чому не зберігається доступність по основному каналу при падінні і подальшому підйомі eth0?

Тобто самі прибираємо доступність, відбувається перемикання. потім включаємо доступність і тут облом. не працює!