Переключение на резервный канал интернета
Добрый день! Есть шлюз_01 Ubuntu 16, два интерфейса, соединение с провайдером PPPoE, iptables. В сети имеется еще один шлюз_02 резервный на обычном роутере dlink но физическое его местоположение очень далеко и перенести линию от этого провайдера в серверу к основному шлюзу нет никакой возможности.
Возможно ли сделать на убунте переключение при пропадании основного канала на шлюзе_01 на шлюз_02 и при появлении вернуть все обратно?
Может при помощи скриптов и крона. Подскажите кто встречал решение спасибо!
Hint: у тебя могут быть много `default route`, но с разными приоритетами (metrics).
Помогите разобраться от простого к сложному, решил разобраться на своей машине с metric
Ubuntu 16 ip 192.168.0.92 и два шлюза 192.168.0.8, 192.168.0.5
auto lo iface lo inet loopback auto enp3s0 iface enp3s0 inet static address 192.168.0.92 netmask 255.255.255.0 gateway 192.168.0.8 metric 10 dns-nameservers 192.168.0.2 8.8.8.8
таблица такая default 192.168.0.8 0.0.0.0 UG 0 0 0 enp3s0 link-local * 255.255.0.0 U 1000 0 0 enp3s0 192.168.0.0 * 255.255.255.0 U 0 0 0 enp3s0
Добавляю маршрут route add default gw 192.168.0.5 metric 20
теперь такая таблица default 192.168.0.8 0.0.0.0 UG 10 0 0 enp3s0 default 192.168.0.5 0.0.0.0 UG 20 0 0 enp3s0 link-local * 255.255.0.0 U 1000 0 0 enp3s0 192.168.0.0 * 255.255.255.0 U 0 0 0 enp3s0
Отключаю 192.168.0.8 и нечего не происходит просто пропадает интернет
нет тут ни цисок ни vlan
меня больше интересует почему metric не срабатывает
Каким образом вы его отключаете? В ссылке, что привели вам выше, есть хорошее замечание: If you add 2 default routes with different metrics, this will switch the route only the case when main link is down and the other is up. Т.е. линк должен «упасть», а не просто интернет на нем пропасть. Вообще вы сказали, что интернет у вас через PPPoE, значит вы устанавливаете соединение каким-нибудь pon/poff. Я бы поступил так: без pppoe default route смотрит на вторичный шлюз с метрикой 20, а соединение pppoe посредством ip-up добавляет default с метрикой 10.
Я добавил в Коментарии ниже что решил с начало попробовать разобраться на своей машине а потом уже на рабочем шлюзе.
имитируемую пропажу интернета, просто тупа из 0.8 машины выдергиваю линк!!
VLAN сейчас только ленивый не умеет. Просто любой управляемый коммутатор надо.
А так оно и не будет работать, т.к. на сервере, где у вас 2 default маршрута, линк для этих маршрутов остается поднятым.
то есть metric срабатывает если у меня было два интерфейса и для каждого был бы определен metric и один из них упал?!
Да. В случае с pppoe, т.к. он является отдельным интерфейсом, это должно сработать.
Спасибо! Прописал точно такойже маршрут на сервере где ppp и все сразу заработало , правда переключается он с одного шлюза на другой примерно 2 минуты
Источник
2-й Вариант Failover на Микротике лишенный недостатков первого способа.
В Микротик встроен Netwatch, (находится в меню Tools). Вкратце эта утилита позволяет пинговать какой-либо ip и выполнять команды если меняется доступность ip адреса, в Up — вписываем команды которые выполняются когда ip стал нова доступен, в Down соответственно вписываем команды которые надо выполнить когда ip стал недоступен.
Суть понятна из картинки, жмем синий плюс, вписываем ip по которому будем проверять работоспособность канала, интервал проверки, я ставлю около минуты, можно меньше или больше.
Да, предварительно нужно задать комментарии для маршрутов. Мне удобнее всего настраивать Микротик через Winbox, для задания комментария маршруту заходим в IP-Routes, откроется окно со списком маршрутом, кружком обведена кнопка задания комментария, выделяем нужный маршрут, жмем на кнопку, вписываем комментарий для маршрута, жмем ок.
На картинке видно работу скрипта, маршрут к провайдеру ISP2 (У меня это Utel) не активен, он серого цвета, а маршрут к ISP1 (у меня Stels) активен. Ниже можно увидеть маршрут с комментарием Stels88, это нужно чтоб пинги к 8.8.4.4 который мы используем в скриптах шли только с ISP1, это нужно для контроля работоспособности ISP1, пинги идут -все впорядке, если ответов на пинги нет, то надо переключаться на ISP2. Как это делается видно на картинке ниже:
В раздел UP пишем:
/ip route set disabled=no /ip route set disabled=yes
В раздел Down пишем:
/ip route set disabled=yes /ip route set disabled=no
Для того чтоб схема корректно работало, нужно разрешить пинговать этот ip только с ISP1, для этого желательно добавить правило в IP-Firewall запрещающее доступ к 8.8.4.4 с ISP2, и прописать статический маршрут к 8.8.4.4 через шлюз ISP1 (в штатном режиме так сделать не получится если ISP1 выдает динамический ip и придется писать скрипт, который будет определять ip шлюза и прописывать маршрут).
Спонсор статьи:
Видеоинструкция
В данном ролике мы показываем установку VPN на смартфон под управлением операционной системы Android.
Программы для смены IP
В последнее время наблюдается тенденция, согласно которой программа для смены IP адреса скоро будет установлена на каждом компьютере, смартфоне, планшете и вообще на всех устройствах, где это только возможно.
Дело в том, что на просторах СНГ действует все больше запретов на различные сайты, поэтому люди ищут способы для обхода этих блокировок. Да и жителям других стран подобные программы также время от времени очень нужны.
Мы собрали 10 наиболее удобных, популярных и просто лучших программ, которые помогают сменить IP адрес. Они используют VPN, прокси и другие технологии для выполнения своей функции. Некоторые из них работают на Андроид, а не только на компьютерах.
Программы для скрытия IP на ПК
Итак, начнем наш обзор. Мы будем приводить краткое описание программы, ее возможности, системные требование и стоимость (если нет бесплатной версии).
SafeIP – простенькая программа, позволяющая подменить ваш IP, тем самым обеспечив доступ к любым сайтам и стопроцентную анонимность.
Скачать SafeIP
CyberGhost 5
Данное приложение позволяет изменить свой АйПи-адрес через предоставляемый VPN. Иначе говоря, отследить вас уже не получится, в то время как все заблокированные сайты станут доступными. Кроме смены IP тут есть ряд дополнительных функций, таких как:
- автоматический запуск браузера в режиме Инкогнито
; - блокировка рекламы;
- компрессия данных;
- перенаправление https.
Скачать CyberGhost 5
Tor Browser
Tor Browser Bundle – это пакет программ, благодаря которому не нужно разбираться с настройками, вы берете браузер и начинаете пользоваться. В основе технологии Tor лежат так называемые туннели. Именно они объединяют все ПК на планете. В комплект утилит входит как сам Tor, так и графическая часть – Vidalia. Также есть портативная версия на основе Mozilla Firefox.
В самом браузере есть специальный ползунок безопасности, который позволяет настроить уровень приватности.
Всего тут 3 режима:
- стандартный. Все функции Tor браузера и сайтов активны;
- более безопасный. Отключен Java Script на сайтах без https, отключены некоторые шрифты и символы, видео HTML5 и другой медиаконтент воспроизводится только после предупреждения;
- наиболее безопасный. Java Script отключен везде, отключен ряд шрифтов, значков и символов, добавлен запрос на воспроизведение HTML5 медиа.
Скачать Tor Browser
Еще одно полезное приложение, которое путем подмены способно скрыть ваш настоящий IP. Это сделает серфинг анонимным и навсегда отобьет охоту у хакеров и других злоумышленников. В результате вы получаете доступ абсолютно ко всем сайтам.
Hide ALL IP отличается удобством работы, хотя тут и нет русского языка. Все что нужно сделать, это выбрать АйПи и кликнуть по Connect
. Дальше просто сворачиваете приложение и наслаждаетесь интернетом.
Скачать Hide All IP
Маленькая программа всего с одной функцией – скрывать ваш реальный IP. Для того чтобы это стало возможным тут применяются прокси из самых разных точек планеты (в бесплатной версии только США). Для тог очтобы получить полную анонимность просто жмите Hide IP
.
Скачать Super Hide IP
Приложение, которое «на лету» меняет свои прокси. При первом запуске скачивается список всех доступных IP, потом программа меняет ваш реальный адрес на один из них. И Вуаля! Полная анонимность гарантирована.
Переключать разные IP тут очень просто. Для этого вам потребуется всего один клик. Также поддерживается режим автоматического переключения.
Скачать Super Hide IP
В программе есть список IP разных стран, отсортированных по стабильности соединения. Интерфейс программы довольно прост. Все, что тут нужно сделать, это выбрать АйПи из списка и нажать Conect
.
Скачать Easy Hide IP
Одно из лучших приложений, позволяющих сменить ваш IP-адрес. Тут есть бесплатный режим, выбор местоположения прокси и одна-единственная кнопка, нажав которую, вы получите доступ ко всем сайтам и полную анонимность на них.
Скачать HideMe VPN
Программа обладает приятным интерфейсом в стиле macOS, однако, есть тут и недостаток – иногда приложение подключается к «мертвым» прокси. В результате, конечно же, вы отключаетесь от интернета.
В целом утилита понравилась, для подключения к прокси и скрытию IP тут нужно просто кликнуть по кнопке.
Скачать Platinum Hide IP
Это точно такое же приложение для смены IP как и предыдущее Platinum Hide IP, отличающееся лишь интерфейсом и своей полной бесплатностью. После запуска программы вы кликаете по Hide IP
и наслаждаетесь безопасным и анонимным серфингом.
Скачать Free Hide IP
Очередное приложение в нашем списке отличается минималистичным интерфейсом и достойным функционалом. В верхней части отображается ваш IP, а ниже него кнопка, которая включает или отключает сервис.
Скачать Hide My IP
Бесплатная программа для смены IP в один клик. Тут есть ваш реальный адрес (если сервис отключен) и измененный (когда активен). Львиную долю программного интерфейса занимает реклама и склонение к покупке платной версии. Нам программа не понравилась именно из-за своего внешнего вида.
Скачать Surf Anonymous
Данное приложение мы включили в наш перечень в особом режиме.
Скачать Hotspot Shield
два провайдера + резервирование
Приветствую! Есть два провайдера eth1, eth2, один основной (eth1), второй (eth2) нужен для резерва в случае падения основного. Как лучше данную схему реализовать? Правильно ли я понимаю, что необходимо сделать следующее: 1) Добавить в таблицу iproute записи для двух провайдеров: /etc/iproute2/rt_tables Например: T1 T2 2) Написать скрипт с правилами ip route и ip rule для добавления шлюзов по умолчанию и маршрутов для T1 и T2 + iptables для ната. 3) Написать скрипт который будет опрашивать (например ping’ом) и в случае падения основного, поднимать резервный канал?
Или есть более элегантное решение? Например назначить приоритет по весу для каждого прова? Последнее не совсем понимаю как правильно реализовать, чтобы резервный провайдер был задействован только в случае полного отказа основного.
Есть. Называется BGP, требует наличие AS и своего блока IP-адресов
какой у вас дистрибутив?
Да, но в моем случае такой способ не подойдет.
Мне вас сам бог послал! :))) Я вам скажу что нужно сделать. Обкатаем одну схему.
Я вам сегодня позже дам скрипт для автоматического переключения шлюзов двух каналов + скажу как это реализовать конкретно на ценос-е.
У меня было проще — оба провадера раздают через PPP (один PPtP, второй PPPoE) — в результате я просто держу оба канала и выставляю два default route с разными метриками (10 и 20 в моем случае). Когда провайдер отваливается, ppp-интерфейс ложится и его маргрут пропадает, после чего всё автоматически отправлятьс со второго канала.
а у вас был прозрачный прокси сервер(squid)? И как он на это реагировал? Я к тому что у меня с двумя каналами — pppoe и ethernet, при отключении pppoe прокси начинает блокировать все по http, канал естественно второй работает. Приходится удалять правило по перенаправлению трафика на squid (по нату все пашет).
Источник
13.8. Корректная процедура выполнения практического задания: технология резервирования каналов передачи данных
1. Вместе с сидящим рядом студентом примите решение о том, кто на своем компьютере будет настраивать целевой сервер iSCSI, а кто — инициатор iSCSI и демон резервирования каналов передачи данных. Осуществите настройку программных компонентов, необходимых для задействования механизма резервирования каналов передачи данных таким образом, как описано в разделах с теоретической информацией.
Обратитесь к разделу с теоретической информацией.
2. Раскомментируйте большую секцию ‘defaults’ в файле конфигурации /etc/multipath.conf и деактивируйте параметр friendly_names в этом же файле. Проверьте, работоспособен ли после этих манипуляций механизм резервирования каналов передачи данных. Вам наверняка придется обратиться к страницам руководства для утилиты /lib/dev/scsi_id и файла конфигурации multipath.conf .
Удалите символ # перед объявлением большой секции defaults .
Добавьте символ # перед строкой friendly_names active .
Добавьте параметр —replace-whitespace в список параметров утилиты scsi_id .
Теперь (после перезапуска системной службы) список соединений и устройств будет выглядеть следующим образом:
Источник
Настройки в Betaflight
В Betaflight Configurator’е переходим на закладку Port, в столбце Peripherals (периферия) нужного последовательного порта выбираем протокол для вашего видеопередатчика.
- Для Unify Pro и AKK выбираем “TBS SmartAudio“
- Для Tramp Telemetry выбираем «IRC Tramp“
Сохраняем настройки (кнопка Save), контроллер должен перезагрузиться.
Теперь переходим на вкладку Configuration, и включаем OSD. Если вы новичок, то вот руководство по использованию Betaflight OSD.
Сохраняем настройки (Save), на этом всё. Теперь у вас должен быть доступ к Betaflight OSD и вы сможете увидеть настройки видеопередатчика.
Чтобы попасть в Betaflight OSD, просто нужно перевести газ в центр, курс влево (yaw влево), а тангаж (pitch) от себя (в mode 2: левый стик влево-в центр, правый — вперед).
Выбираем «Feature» в меню.
«VTX SA» для SmartAudio и «VTX TR» для Tramp Telemetry, выбирайте нужный вам вариант.
На этом экране вы должны видеть настройки видеопередатчика.
Если данные не отображаются, тогда что-то не так с подключением или с настройками порта. Попробуйте другой последовательный порт. Если ничего не помогло, тогда можно попробовать программную эмуляцию последовательного порта (SoftSerial).
Интерфейс не требует объяснений, тут вы можете поменять сетку частот, канал и выходную мощность. Чтобы сохранить настройки выберите «SET» и затем «Confirm«.
Если у вас нет Betaflight OSD, то знайте, что управление видеопередатчиком работает и через MnimOSD, вот руководство на английском: http://intofpv.com/t-control-vtx-through-minimosd
2-й провайдер через lte usb модем
В качестве резервного провайдера было принято решение использовать lte модемы. Качество связи через них было приемлемое. Тарифные планы доступные, стоимость модемов невысокая. Mikrotik поддерживает большое количество usb модемов, так что не составляет труда подобрать подходящий вариант. Лично я сами модели 4g модемов не видел, так как настраивал все удаленно. Использовались различные устройства и производители. В рамках задачи по настройке резервирования это не принципиально, так как предложенный мной метод работает одинаково успешно практически с любым резервным провайдером
Не важно, будет ли он через usb модем или по проводу
Пример одного из таких модемов, который использую лично я сам, и он отлично работает в Mikrotik. Модель — HUAWEI E3372h или МегаФон M150-2.
А вообще, список гарантированно поддерживаемых usb модемов можно посмотреть в официальной wiki — https://wiki.mikrotik.com/wiki/Manual:Peripherals. Прежде чем настраивать резервирвоание, рекомендую выполнить базовую настройку mikrotik.
Настройка LAN портов 3-5 и Wi-Fi
LAN порты 3-5 будут объединены с Wi-Fi интерфейсом в единую локальную сеть, к которой будут подключаться компьютеры.
Объединяем LAN порты 3-5 в свитч
- Откройте меню Interface
; - Сделайте двойной щелчок мыши по интерфейсу ether4;
- В списке Master Port
выберите ether3
(главный порт нашего свитча); - Нажмите кнопку ОК
.
Повторите тоже самое для интерфейса ether5
.
Напротив портов ether4 и ether5 появится буква S (Slave — ведомый).
Создаем интерфейс Bridge-local
и объединяем в нем LAN порты и Wi-Fi
Чтобы LAN порты 3-5 объединить с Wi-Fi в одну сеть, нужно создать bridge интерфейс, и добавить в него мастер порт свитча ether3
и Wi-Fi интерфейс wlan1
.
Создаем интерфейс bridge-local
:
- Откройте меню Bridge
; - Нажмите кнопку Add
(синий крестик); - В поле Name
пропишите имя интерфейса bridge-local
; - Нажмите кнопку OK
.
Добавляем главный порт свитча ether3
в bridge-local
:
- Перейдите на вкладку Ports
и нажмите кнопку Add
(синий крестик); - В списке Interface
выберите главный ethernet порт свитча ether3
; - В списке Bridge
выберите интерфейс bridge-local
; - Нажмите кнопку OK
.
Добавляем Wi-Fi
интерфейс в bridge-local
:
- На вкладке Ports
нажмите кнопку Add
(синий крестик); - В списке Interface
выберите беспроводной интерфейс wlan1
; - В списке Bridge
выберите интерфейс bridge-local
; - Нажмите кнопку OK
.
Назначаем IP-адрес интерфейсу bridge-local
:
- Откройте меню IP —
Addresses
; - Нажмите кнопку Add
(синий крестик); - В поле Address
введите IP-адрес и маску локальной сети 192.168.88.1/24
; - В списке Interface
выберите интерфейс локальной сети bridge-local
; - Нажмите кнопку OK
.
Настраиваем DHCP сервер локальной сети.
Чтобы компьютеры, подключенные к роутеру, получали сетевые настройки автоматически, настроим DHCP сервер:
Настройка Wi-Fi
Сначала включим Wi-Fi:
- Откройте меню Wireless
; - Нажмите левой кнопкой мыши на интерфейсе wlan1
и нажмите кнопку Enable
(синяя галочка).
Создаем пароль для подключения к точке доступа MikroTik:
- Откройте вкладку Security Profiles
и сделайте двойной щелчок левой кнопкой мыши по default
; - В появившемся окне в списке Mode
выберите dynamic keys
; - Поставьте галочку напротив регистрации по протоколу WPA2 PSK
; - В поле WPA2 Pre-Shared Key
введите пароль для подключения к Wi-Fi точке; - Нажмите кнопку OK
.
Настраиваем параметры Wi-Fi точки MikroTik:
- Откройте вкладку Interfaces
и сделайте двойной щелчок левой кнопкой мыши на Wi-Fi интерфейсе wlan1
, чтобы зайти в его настройки; - Перейдите на вкладку Wireless
; - В списке Mode
выберите режим работы ap bridge
; - В списке Band
выберите 2GHz-B/G/N
(в каких стандартах будет работать Wi-Fi точка); - В списке Channel Width
укажите ширину канала 20/40Mhz HT Above
, чтобы беспроводные устройства смогли подключиться на максимальной скорости с шириной канала 40 МГц; - В списке Frequency
укажите, на какой частоте будет работать Wi-Fi; - В поле SSID
укажите имя Wi-Fi сети; - Нажмите кнопку OK
.
Написание скрипта
Ниже привожу сам скрипт
#!/bin/sh # Указываем путь к log-файлу log="/var/log/routing.log" # Задаем периодичность опроса шлюзов. # 30s - 30 секунд # 10m - 10 минут # 1h - 1 час check_period="30s" # Если log-файл не найден, создаем его, иначе отчищаем clear_log () { if then touch ${log} else cat /dev/null > ${log} fi } # Инициализируем переменные init () { gw1="192.168.1.1" gw2="192.168.2.1" prefered_gw=${gw1} dev_if1="eth1" dev_if2="eth2" if1=`ifconfig ${dev_if1} | awk -F ' *|:' '/inet addr/{print $4}'` if2=`ifconfig ${dev_if2} | awk -F ' *|:' '/inet addr/{print $4}'` # Текущие статусы шлюзов: 0 - шлюз недоступен, 1 - шлюз работает gw1_curr_status=0 gw2_curr_status=0 # Текущие потери пакетов на шлюзе gw1_curr_packet_loss=0 gw2_curr_packet_loss=0 # Максимальный процент потерь пакетов, при превышении данного числа, шлюз считается недоступным gw1_max_packet_loss=35 gw2_max_packet_loss=40 # Отчищаем log-файл и сохраняем значения основных переменных clear_log echo `date +"%T %d.%m.%Y"`." Init environment OK. Check gateways status every ${check_period}." >> ${log} echo `date +"%T %d.%m.%Y"`." ISP1 , ISP2 " >> ${log} } # Данная функция определяет текущее состояние каждого из шлюзов. # Если текущий процент потерь меньше максимально допустимого, то считаем, что шлюз доступен. get_current_status () { echo `date +"%T %d.%m.%Y"`." Get current status ISP gateways." >> ${log} # Get current status default gateway ISP1 gw1_curr_packet_loss=`ping -I ${dev_if1} -c20 -l20 -q -W3 ${gw1} | grep loss | awk '{print $(NF-4)}' | cut -d"%" -f1` if then echo `date +"%T %d.%m.%Y"`. "ISP1. . Current packet loss on ${gw1} via ${dev_if1} is ${gw1_curr_packet_loss}%." >> ${log} gw1_curr_status=1 else echo `date +"%T %d.%m.%Y"`. "ISP1. . Current packet loss on ${gw1} via ${dev_if1} is ${gw1_curr_packet_loss}%." >> ${log} gw1_curr_status=0 fi # Get current status default gateway ISP2 gw2_curr_packet_loss=`ping -I ${dev_if2} -c20 -l20 -q -W3 ${gw2} | grep loss | awk '{print $(NF-4)}' | cut -d"%" -f1` if then echo `date +"%T %d.%m.%Y"`. "ISP2. . Current packet loss on ${gw2} via ${dev_if2} is ${gw2_curr_packet_loss}%." >> ${log} gw2_curr_status=1 else echo `date +"%T %d.%m.%Y"`. "ISP2. . Current packet loss on ${gw2} via ${dev_if2} is ${gw2_curr_packet_loss}%." >> ${log} gw2_curr_status=0 fi } # Данная функция производит переключение шлюза по умолчанию в зависимости от результатов полученных в get_current_status () # На данный момент предпочитаемым шлюзом может быть только ${gw1} switch_default_gw () { curr_gw=`ip route show | grep default | awk '{print $3}'` if then echo `date +"%T %d.%m.%Y"`. ". Current default gateway is prefered and running up. Nothing to do." >> ${log} return fi if then echo `date +"%T %d.%m.%Y"`. "Prefered gw ${gw1} is down. Change default gw to ${gw2}" >> ${log} echo `date +"%T %d.%m.%Y"`. "ip route replace default via ${gw2} dev ${dev_if2}" >> ${log} /sbin/ip route replace default via ${gw2} dev ${dev_if2} return fi if then echo `date +"%T %d.%m.%Y"`. "Prefered gw ${prefered_gw} is running up now. Change default gw ${curr_gw} to prefered ${prefered_gw}" >> ${log} echo `date +"%T %d.%m.%Y"`. "ip route replace default via ${gw1} dev ${dev_if1}" >> ${log} /sbin/ip route replace default via ${gw1} dev ${dev_if1} return fi if then echo `date +"%T %d.%m.%Y"`. "Prefered gw ${prefered_gw} is still down. Current default gw is ${gw2}" >> ${log} return fi if then echo "*************************************************************************" >> ${log} echo `date +"%T %d.%m.%Y"`. "CRITICAL. Two gateways is down. Try again later." >> ${log} echo "*************************************************************************" >> ${log} return fi } # Инициализируем переменные init # "Заходим" в вечный цикл, в котором по очереди вызываем функции get_current_status () и switch_default_gw () # После этого делаем паузу, время паузы задается в переменной ${check_period} while do get_current_status switch_default_gw sleep ${check_period} done
Для запуска самого скрипта достаточно выполнить следующую команду
# ./check_gateways.sh &
Для автоматического запуска скрипта во время загрузки добавляем следующую строку в /etc/rc.d/rc.local
# cat /etc/rc.d/rc.local #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local /usr/local/bin/check_gateways.sh &
Для того, чтобы данная реализация работало вам необходимо будет использовать MASQUERADE без указания выходного интерфейса вместо SNAT.
# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
Настройка сети
На компьютере установлена ОС Ubuntu Server, настройка сети выполнена с использованием Netplan:
# nano /etc/netplan/01-netcfg.yaml
network version 2 renderer networkd ethernets enp0s3 addresses 192.168.50.2/24 routes # маршрут по умолчанию для таблицы main, метрика 100 (основной) - to 0.0.0.0/0 from 192.168.50.2 via 192.168.50.1 metric 100 # маршрут по умолчанию для таблицы primary (идентификатор 10) - to 0.0.0.0/0 via 192.168.50.1 table 10 routing-policy # если отправитель 192.168.50.2, просматривать таблицу primary - from 192.168.50.2 table 10 priority 31000 nameservers addresses 8.8.8.8, 8.8.4.4 enp0s8 addresses 192.168.150.2/24 routes # маршрут по умолчанию для таблицы main, метрика 200 (резервный) - to 0.0.0.0/0 from 192.168.150.2 via 192.168.150.1 metric 200 # маршрут по умолчанию для таблицы secondary (идентификатор 20) - to 0.0.0.0/0 via 192.168.150.1 table 20 routing-policy # если отправитель 192.168.150.2, просматривать таблицу secondary - from 192.168.150.2 table 20 priority 32000 nameservers addresses 8.8.8.8, 8.8.4.4 enp0s9 addresses 192.168.250.1/24 nameservers addresses 8.8.8.8, 8.8.4.4
После загрузки системы смотрим маршруты таблицы :
$ ip route show default via 192.168.50.1 dev enp0s3 proto static src 192.168.50.2 metric 100 default via 192.168.150.1 dev enp0s8 proto static src 192.168.150.2 metric 200 192.168.50.0/24 dev enp0s3 proto kernel scope link src 192.168.50.2 192.168.150.0/24 dev enp0s8 proto kernel scope link src 192.168.150.2 192.168.250.0/24 dev enp0s9 proto kernel scope link src 192.168.250.1
Здесь два маршрута по умолчанию, но с разными значениями метрики — один маршрут основной (метрика 100), другой резервный (метрика 200).
Поднимаем web-сервер
Установим на машине пакет :
# apt install apache2
С компьютера проверим, что сервер работает:
Чтобы обеспечить доступ к web-серверу из интернета, выполняем на команду (подробности здесь):
# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 80 -j DNAT --to-destination 192.168.250.254
И сохраняем правила, чтобы они восстановилось после перезагрузки:
# iptables-save > /etc/iptables/rules.v4
Проверяем, что web-сервер теперь доступен, набирая в адресной строке :
В принципе, мы можем выполнить эти две команды и на — тогда web-сервер будет доступен по двум ip-адресам. В этом случае при настройке DNS надо будет добавить две A-записи для домена (round-robin). Преобразование доменного имени в ip-адрес производится в произвольном порядке с равной вероятностью распределения. Некоторые DNS-сервера могут регулярно опрашивать серверы для проверки их доступности и нагруженности. Если сервер не отвечает, он временно удаляется из пула DNS, пока не будет готов к работе. Но это уже совсем другая история.
Организация резервного канала
Привет всем! Стоит ADSL-модем в режиме роутера, на нём крутится НАТ и раздаёт интернет на всю локалку.
Задача: организовать резервный канал связи для обеспечения отказоустойчивости.
Было закуплено след. оборудование:
1х сервер-роутер со среднепоршивой конфигурацией
1х сервер для выполнения apahce, postfix, squid, mysql нормальной конфигурации.
1х АДСЛ-модем и подключение к другому провайдеру.
В итоге имеем 2 подключения к нашему серверу-роутеру от 2х разных модемов, настроенных бриджами.
От модема 1 получаем динамический адрес, который при каждом подключениии меняется. От модема 2 получаем статический адрес.
Есть группа клиентов, которые все подключены в свитч, куда и воткнут наш прокси-сервер, на котором крутятся ВВВ, Почта, MySQL. Этот сервак соединен с нашим сервером-роутером. В итоге имеем сервер-роутер с 3мя интерфейсами:
ip ro add via 10.0.0.1
У всех клиентов шлюзом стоит 10.0.0.3, где прозрачно проксируются запросы на 80 порт. Остальные пакеты уходят на шлюз по умолчанию: 10.0.0.1, там НАТятся и уходят в инет.
Тут же на сервере-роутере 10.0.0.1 работает ДНАТ на 80 и 25 порт для обработки запросов из вне.
Можно взять ещё один статический ИП адрес от второго провайдера и тогда схема упростится, но если этот провайдер отвалится, то тогда не будет работать ни почта ни ВЭБ.
В другом случае если использовать только один статический адрес при отваливании канала, остаётся ещё один канал с динамическим ИП, который можно зарегать в ddns и всё равно будет работать ВЭБ-сервер при досупе по адресу.
В общем я набросал схемку того как я это всё представляю —
Будет ли так работать или может есть более эффективные решения?
Источник