NSG logo
NSG heading
Сделано в России 
+7 495 727–19–59

Документы в формате PDF, архив (FTP) и Web-справка открываются в новом окне

Размер шрифта AAA

  

Требуется подключить банкомат с портом Ethernet к процессинговому серверу через двух поставщиков услуг, с сохранением сессии при переходе с одного оператора на другого. Используется фирменная технология NSG uiTCP. Основной канал связи — наземная сеть Ethernet. Для резервирования используется сотовая сеть 3G (оператор — Мегафон). В качестве клиента используется устройство NSG–1700 с опцией opt.LTE/3G. В качестве сервера используется устройство NSG–1000/GW, NSG–2031 или NSG–5260 (для построения опытной зоны из нескольких устройств достаточно NSG–1700 с такой же конфигурацией).

Бесперебойное подключение банкомата к процессинговому центру по Ethernet с резервированием через LTE или 3G

Предварительные настройки:

  • SIM-карта установлена в верхнее гнездо
  • Запрос PIN-кода на карте отключён

Основные принципы настройки и отладки современных интерейсов LTE/3G в устройствах NSG см. в базовом примере.

Конфигурация туннеля:

Клиент
ip
: route
: : 1
: : : network = "8.8.8.8/32"
: : : device = "m1"
: filter
: : OUTPUT
: : : 1
: : : : destination = "8.8.8.8/32"
: : : : out-interface = "eth1"
: : : : target = "DROP"
port
: m1
: : type = "lte"
: : adm-state = "up"
: eth0
: : ifAddress
: : : prefix = "192.168.1.1/24"
: eth1 
: : ifAddress 
: : : prefix = "98.76.54.30/30" 
system
: hostname = "ATM001"
: ntp
: : enable = true
services
: netping
: : check_m1
: : : adm-state	= "up"
: : : destination = "8.8.8.8"
: : : packets = 3
: : : timeout = 10
: : : retry = 5
: : : failure-script = "nsgsh -qr port.m1.restart=nil;"
tunnel
: uitcp
: : configure
: : : tunnel
: : : : name = "ATM001"
: : : : description = "Pr.Lenina,1"
: : : : servers
: : : : : 1 = "123.45.67.89:50005"
: : : : keepalive = 10
: : : : links
: : : : : 1
: : : : : : description = "Ethernet"
: : : : : : gw = "98.76.54.29"
: : : : : 2
: : : : : : description = "MEGAFON"
: : : : : : dev = "m1"
: : : : : : restart
: : : : : : : 1
: : : : : : : : script = "nsgsh -qr .port.m1.restart"
: : : : : priority = 300
: : enable = true
Сервер
ip
: route
: : 1
: : : gateway = "123.45.67.90"
: : : network = "0.0.0.0/0"
port
: eth0
: : ifAddress
: : : prefix = "10.0.0.7/8"
: eth1
: : ifAddress
: : : prefix = "123.45.67.89/30"
system
: hostname = "uitcp_srv"
: ntp
: : enable = true
tunnel
: uitcp
: : configure
: : : mode = "server"
: : : clients
: : : : ATM001
: : : : : description = "Pr.Lenina,1"
: : enable = true

Предполагается, что ключи и сертификаты X.509 расположены в папках, установленных по умолчанию. Для генерации самоподписанных сертификатов можно воспользоваться скриптами cert-root, cert-server, cert-client имя.

Маршрут по умолчанию требуется для работы клиента NTP, поскольку адрес сервера NTP априори неизвестен. Служба NTP нужна для установки точного времени на устройствах, поскольку без установки времени сертификаты могут оказаться недействительными. Если воспользоваться ею нет возможности, то системное время на устройствах можно установить вручную командой .system.clock-set .

Конфигурация полезной нагрузки:

Предполагается, что для работы системы могут потребоваться до 3 TCP-соединений:

  • От банкомата к процессингу. На процессинге данный банкомат зарегистрирован под IP-адресом 10.0.1.1 и должен обращаться на порт TCP 20001; в то же время в типовой конфигурации всех банкоматов записаны адрес процессинга 192.168.1.1 и порт 20000.
  • От рабочей станции администратора в центральном офисе к банкомату по RDP ("удалённый рабочий стол Майкрософт") по адресу 10.0.0.7 (это сервер uiTCP) и номеру порта TCP 30001.
  • От рабочей станции администратора к устройству NSG по Telnet по адресу 10.0.0.7 и номеру порта TCP 40001.
Клиент
tunnel
: uitcp
: : configure
: : : tunnel
: : : : localListener
: : : : : 1
: : : : : : host = "192.168.1.1"
: : : : : : port = 20000
: : : : nat
: : : : : 1
: : : : : : inDstPort = 30001
: : : : : : outDstAddr = "192.168.1.2"
: : : : : : outDstPort = 3389
: : : : : 2
: : : : : : inDstPort = 40001
: : : : : : outDstAddr = "127.0.0.1"
: : : : : : outDstPort = 23
Сервер
tunnel
: uitcp
: : configure
: : : clients
: : : : ATM001
: : : : : nat
: : : : : : 1
: : : : : : : inDstPort = 20000
: : : : : : : outDstAddr = "10.0.0.1"
: : : : : : : outDstPort = 20001
: : : : : : : outSrcAddr = "10.0.1.1"
: : : : : localListener
: : : : : : 1
: : : : : : : host = "10.0.0.7"
: : : : : : : port = 30001
: : : : : : 2
: : : : : : : host = "10.0.0.7"
: : : : : : : port = 40001

Дополнительные замечания:

Для мониторинга сотового соединения используется netping. Поскольку бóльшую часть времени uiTCP работает через наземный канал, то контролировать работу сотового необходимо всё это время. Выключать его на то время, когда uiTCP переходит на сотовый канал, в данном случае нет почти никакого смысла. Однако время срабатывания netping установлено существенно бóльшим: чем uiTCP keepalive, чтобы в случае, когда сотовое соединение разрывается во время работы uiTCP по нему, uiTCP реагировало первым.

Поскольку параметр priority больше нуля, то каналы связи считаются неравноценными, в порядке их нумерации (первый — приоритетный). При работе по резервному каналу uiTCP будет регулярно проверять состояние основного и при восстановлении его работоспособности вернётся на него.

В локальном соединении между сервером uiTCP и процессингом IP-адрес источника (адрес, по которому процессинг видит банкомат) и/или TCP-порт назначения (на процессинге) могут быть как одинаковыми для всех банкоматов, так и уникальными, в зависимости от возможностей и настроек программного обеспечения процессинга. (Если одинаково то и другое, то процессинг всё равно имеет возможность различать входящие соединения по номеру TCP-порта источника, который всегда выбирается системой автоматически, уникальным образом.) IP-адреса источника могут как принадлежать к той же подсети, что и процессинговый сервер (10.0.0.0/8), так и не принадлежать ей; в последнем случае на процессинге должен быть задан маршрут на эти адреса (или по умолчанию) через сервер uiTCP (10.0.0.7).

В случае, если одна или обе стороны контролируют наличие соединения с помощью TCP keepalive, следует дополнительно включить генерацию TCP keepalive на той стороне, которая их ожидает, например:

tunnel
....................
: : : : : nat
: : : : : : 1
: : : : : : : tcpKeepaliveInterval = 300
: : : : : : : tcpkeepaliveRetry = 3

или, соответственно

....................
: : : : : localListener
: : : : : : 1
: : : : : : : tcpKeepaliveInterval = 300
: : : : : : : tcpkeepaliveRetry = 3

© ООО "ЭН–ЭС–ДЖИ" 2004–2019Web-master