Требуется подключить банкомат с портом Ethernet к процессинговому серверу через двух сотовых операторов LTE/3G, с минимальным временем переключения с канала на канал. Используется устройство NSG–1700 с двумя опциями opt.LTE/3G (физическими приёмопередатчиками), установленными в позиции m1 и m2. В качестве контрольных хостов для проверки работы портов LTE используются два DNS Яндекса.
Предварительные настройки:
ВНИМАНИЕ! В устройствах NSG–1700 выпуска 2019 г. и позже, NSG–1750 имеются ДВА выреза на лицевой панели, за каждым из которых находятся по ДВА гнезда для SIM-карт: верхнее main и нижнее aux. Нижеприведённая конфигурация предполагает, что обе SIM-карты установлены в гнёзда main. (Всего в устройство можно установить до 4 SIM-карт, из которых одновременно будут работать 2.)
Основные принципы настройки и отладки современных интерейсов LTE/3G в устройствах NSG см. в базовом примере. Существенные настройки, установленные по умолчанию, выделены курсивом.
ip : route : : 1 : : : network = "77.88.8.8/32" : : : device = "m1" : : 2 : : : network = "77.88.8.1/32" : : : device = "m2" : filter : : OUTPUT : : : 1 : : : : destination = "77.88.8.8/32" : : : : out-interface = "m2" : : : : target = "DROP" : : : 2 : : : : destination = "77.88.8.1/32" : : : : out-interface = "m1" : : : : target = "DROP" : nat : : POSTROUTING : : : 1 : : : : out-interface = "m1" : : : : target = "MASQUERADE" : : : 2 : : : : out-interface = "m2" : : : : target = "MASQUERADE" port : m1 : : type = "lte" : : adm-state = "up" : : provider : : : main : : : : attempts = 1 : : : aux : : : : attempts = 0 : m2 : : type = "lte" : : adm-state = "up" : : ifAddress : : : dhcp-options : : : : default-gw-metric = 10 : : provider : : : main : : : : attempts = 1 : : : aux : : : : attempts = 0 : eth0 : : ifAddress : : : prefix = "192.168.1.1/24" services : netping : : check_m1 : : : adm-state = "up" : : : destination = "77.88.8.8" : : : packets = 3 : : : timeout = 10 : : : retry = 1 : : : failure-script = "nsgsh -qr port.m1.restart=nil; conntrack -F;" : : : restore-script = "conntrack -F" : : check_m2 : : : adm-state = "up" : : : destination = "77.88.8.1" : : : packets = 3 : : : timeout = 10 : : : retry = 1 : : : failure-script = "nsgsh -qr port.m2.restart=nil"
Дополнительные замечания:
В данной аппаратной конфигурации оба интерфейса подключены к сетям операторов одновременно. Таким образом, максимальное время перехода с одного оператора на другого практически равно времени, необходимому для детектирования отказа средствами netping (при указанных выше значениях, 3×10 сек). При наличии обоих соединений используется интерфейс с меньшей метрикой (m1).
Для контроля работоспособности каждого из интерфесов LTE используются две отдельные процедуры netping с разными контрольными хостами. Маршрут на каждый из контрольных хостов прописан явным образом через соответствующий интерфейс; на случай, если этот интерфейс переходит в down и контрольные пакеты отправляются по маршруту по умолчанию, выход их через другой интерфейс запрещён фильтрами. После изменения состояния основного интерфейса ( а следовательно, и маршрутизации) производится очистка таблиц NAT с помощью утилиты conntrack.
Сверх этого, каждый из интерфейсов может быть настроен, независимо от другого, на работу с 2 SIM-картами попеременно, т.е. в общей сложности с 3 или 4 SIM-картами.
ПРИМЕЧАНИЕ. Интерфейсы LTE работают в режиме NDIS — широковещательной Ethernet-подобной сети. Указание маршрута черезdevice
без указанияgateway
в данном случае не вполне корректно, но для используемых чипов и прошивок LTE является допустимым (и, возможно, в будущем такое поведение модулей LTE станет стандартом де-факто).
Устройства NSG–1700 ранних выпусков (до 2019 г.) и NSG–18xx имеют общий пул из 2 SIM-карт, которые необходимо распределить между сотовыми интерфейсами вручную. По умолчанию, интерфейс m1 работает с картой main, а для m2 необходимо указать работу с картой aux явным образом:
port : m2 : : provider : : : main : : : : attempts = 1 : : : aux : : : : attempts = 0