Wirenboard6:InstallingOnTheRemoteSite: различия между версиями

Отметить эту версию для перевода
м
(Отметить эту версию для перевода)
Строка 2: Строка 2:
<translate>
<translate>


<!--T:1-->
{{DISPLAYTITLE:Wirenboard 6: сетевые настройки контроллера на удаленном объекте}}
{{DISPLAYTITLE:Wirenboard 6: сетевые настройки контроллера на удаленном объекте}}




<!--T:2-->
В данной статье освещаются сетевые аспекты профессиональной инсталляции контроллера на производственных и коммерческих объектах.   
В данной статье освещаются сетевые аспекты профессиональной инсталляции контроллера на производственных и коммерческих объектах.   




== Выбор сетевой комплектации контроллера ==
== Выбор сетевой комплектации контроллера == <!--T:3-->


<!--T:4-->
Контроллеры Wiren Board 6 поставляются с разным набором сетевых устройств. Необходимо понять, в каких условиях будет эксплуатироваться контроллер и какая комплектация будет оптимальной.  
Контроллеры Wiren Board 6 поставляются с разным набором сетевых устройств. Необходимо понять, в каких условиях будет эксплуатироваться контроллер и какая комплектация будет оптимальной.  




=== Минимальная комплектация ===
=== Минимальная комплектация === <!--T:5-->


<!--T:6-->
Контроллеры Wiren Board 6 в любой комплектации имеют два Ethernet-интерфейса 100 Мбит/с (eth0, eth1) на борту.  
Контроллеры Wiren Board 6 в любой комплектации имеют два Ethernet-интерфейса 100 Мбит/с (eth0, eth1) на борту.  




=== Расширенные возможности ===
=== Расширенные возможности === <!--T:7-->


<!--T:8-->
Опционально контроллеры поставляются с Wi-Fi-интерфейсом (wlan0) (802.11bgn 2.4G), с 3G-модемом (WCDMA/HSPA, GSM/GPRS/EDGE) или 2G-модемом (GPRS). С помощью любого из них вы можете подключить контроллер к интернету, а с помощью Ethernet и Wi-Fi — еще и к локальной сети. 3G-модем реализован на чипе SIMCom SIM5300E, 2G-модем реализован на чипах SIMCom SIM800 или Neoway M660A, Wi-Fi — на чипе Realtek 8723BU.
Опционально контроллеры поставляются с Wi-Fi-интерфейсом (wlan0) (802.11bgn 2.4G), с 3G-модемом (WCDMA/HSPA, GSM/GPRS/EDGE) или 2G-модемом (GPRS). С помощью любого из них вы можете подключить контроллер к интернету, а с помощью Ethernet и Wi-Fi — еще и к локальной сети. 3G-модем реализован на чипе SIMCom SIM5300E, 2G-модем реализован на чипах SIMCom SIM800 или Neoway M660A, Wi-Fi — на чипе Realtek 8723BU.




== Заводская конфигурация сетевых устройств ==
== Заводская конфигурация сетевых устройств == <!--T:9-->




=== Ethernet ===
=== Ethernet === <!--T:10-->


<!--T:11-->
В заводской конфигурации в контроллере настроены оба Ethernet-интерфейса и Wi-Fi и loopback. Файл сетевых настроек — <code>/etc/network/interfaces</code>. Интерфейсы eth0/1 не имеют фиксированного адреса и получают сетвые настройки по DHCP.  
В заводской конфигурации в контроллере настроены оба Ethernet-интерфейса и Wi-Fi и loopback. Файл сетевых настроек — <code>/etc/network/interfaces</code>. Интерфейсы eth0/1 не имеют фиксированного адреса и получают сетвые настройки по DHCP.  




=== Wi-Fi ===
=== Wi-Fi === <!--T:12-->


<!--T:13-->
На Wi-Fi интерфейсе wlan0 по умолчанию поднята открытая точка доступа, с фиксированным адресом 192.168.42.1, клиенты получают адреса по DHCP, которые раздает демон dnsmasq, в диапазоне <code>192.168.42.50 — 192.168.42.150</code>.
На Wi-Fi интерфейсе wlan0 по умолчанию поднята открытая точка доступа, с фиксированным адресом 192.168.42.1, клиенты получают адреса по DHCP, которые раздает демон dnsmasq, в диапазоне <code>192.168.42.50 — 192.168.42.150</code>.
SSID беспроводной сети контроллера формируется из префикса “WirenBoard-” и серийного номера контроллера, нанесенного на боковой наклейке. В беспроводной сети контроллер имеет не только IP-адрес, но и DNS-алиасы для удобства подключения, <code>wiren</code>, <code>wiren.local</code>, <code>wiren_board</code>, <code>wirenboard.local</code>, <code>wirenboard</code>.  
SSID беспроводной сети контроллера формируется из префикса “WirenBoard-” и серийного номера контроллера, нанесенного на боковой наклейке. В беспроводной сети контроллер имеет не только IP-адрес, но и DNS-алиасы для удобства подключения, <code>wiren</code>, <code>wiren.local</code>, <code>wiren_board</code>, <code>wirenboard.local</code>, <code>wirenboard</code>.  




=== GPRS ===
=== GPRS === <!--T:14-->


<!--T:15-->
Подключение к сети передачи данных сотовых операторов не включено по умолчанию и требует настройки. Контроллер имеет да разъема для установки СИМ-карт, но в настоящее время программно поддерживается только первый.  
Подключение к сети передачи данных сотовых операторов не включено по умолчанию и требует настройки. Контроллер имеет да разъема для установки СИМ-карт, но в настоящее время программно поддерживается только первый.  


<!--T:16-->
Опционально контроллер комплектуется 3G или 2G-модемами (модемы несъемные и распаиваются на плате на производстве).
Опционально контроллер комплектуется 3G или 2G-модемами (модемы несъемные и распаиваются на плате на производстве).




==== 3G-модем ====
==== 3G-модем ==== <!--T:17-->


   
   
<!--T:18-->
Модем представлен в системе двумя устройствами: <code>/dev/ttyGSM</code> (линк на один из консольных портов ttymxc), подключенного к UART-интерфейсу чипа модема, и составного USB-устройства <code>/dev/ttyACM0-6</code>, для коммуникации используется <code>ttyACM0</code>. Ограничения UART-порта не позволяют реализовать весь потенциал скорости передачи данных в 3G-сетях (теоретически до 7,2 Мбит/с на приём и до 5,76 Мбит/с на передачу). Порт ttyACM0 ограничен только скоростью передачи данных интерфейса USB2.0 (теоретически — до 280 Мбит/с).
Модем представлен в системе двумя устройствами: <code>/dev/ttyGSM</code> (линк на один из консольных портов ttymxc), подключенного к UART-интерфейсу чипа модема, и составного USB-устройства <code>/dev/ttyACM0-6</code>, для коммуникации используется <code>ttyACM0</code>. Ограничения UART-порта не позволяют реализовать весь потенциал скорости передачи данных в 3G-сетях (теоретически до 7,2 Мбит/с на приём и до 5,76 Мбит/с на передачу). Порт ttyACM0 ограничен только скоростью передачи данных интерфейса USB2.0 (теоретически — до 280 Мбит/с).


<!--T:19-->
Наличие двух интерфейсов позволяет одновременно использовать первое устройство (<code>/dev/ttyGSM</code>) для отправки AT-команд (узнать уровень сигнала сотовой связи, отправить SMS, USSD-запрос баланса и проч.) через программы minicom или gammu, а второе (<code>/dev/ttyACM0</code>) — для сетевой коммуникации.  
Наличие двух интерфейсов позволяет одновременно использовать первое устройство (<code>/dev/ttyGSM</code>) для отправки AT-команд (узнать уровень сигнала сотовой связи, отправить SMS, USSD-запрос баланса и проч.) через программы minicom или gammu, а второе (<code>/dev/ttyACM0</code>) — для сетевой коммуникации.  


<!--T:20-->
В контроллере доступна аппаратное управление включением/выключением модема через его вход PWRKEY, состояние которого управляется одним из GPIO процессора. Для пользователя интерфейс управления питанием модема предоставляет команда <code>wb-gsm</code> с опциями on, off, reset, restart_if_broken.
В контроллере доступна аппаратное управление включением/выключением модема через его вход PWRKEY, состояние которого управляется одним из GPIO процессора. Для пользователя интерфейс управления питанием модема предоставляет команда <code>wb-gsm</code> с опциями on, off, reset, restart_if_broken.




==== 2G-модем ====
==== 2G-модем ==== <!--T:21-->


<!--T:22-->
Максимальная скорость передачи данных в GPRS составляет 85,6 кбит/с, чего явно недостаточно для передачи больших объемов данных. GPRD-канал может использоваться для доступа к интерфейсу командной строки (ssh) или для отправки SMS. 2G-модемы представлены в системе одним устройством, <code>/dev/ttyGSM</code>. Одновременная передача данных и AT-команд в 2G-модеме не реализована.
Максимальная скорость передачи данных в GPRS составляет 85,6 кбит/с, чего явно недостаточно для передачи больших объемов данных. GPRD-канал может использоваться для доступа к интерфейсу командной строки (ssh) или для отправки SMS. 2G-модемы представлены в системе одним устройством, <code>/dev/ttyGSM</code>. Одновременная передача данных и AT-команд в 2G-модеме не реализована.




==== GSM-антенны ====
==== GSM-антенны ==== <!--T:23-->


<!--T:24-->
Контроллер опционально комплектуется одной из двух GSM-антенн: выносной, на кабеле 2,5м,  с коэффициентом усиления 3,5 дБ, или короткой штыревой антенной, навинчивающейся прямо на SMA(female)-разъем контроллера. При монтаже контроллера в металлических боксах следует использовать выносную антенну. Штатные антенны контроллера обеспечивают связь в условиях хорошего приема. В сложных радиоусловиях необходимо приобретать антенны с бóльшим коэффициентом усиления или направленные антенны. Диапазон частот 3G-антенн — 1900-2100 МГц, 2G — 900/1800 МГц. Разъем кабеля антенны — SMA(male).
Контроллер опционально комплектуется одной из двух GSM-антенн: выносной, на кабеле 2,5м,  с коэффициентом усиления 3,5 дБ, или короткой штыревой антенной, навинчивающейся прямо на SMA(female)-разъем контроллера. При монтаже контроллера в металлических боксах следует использовать выносную антенну. Штатные антенны контроллера обеспечивают связь в условиях хорошего приема. В сложных радиоусловиях необходимо приобретать антенны с бóльшим коэффициентом усиления или направленные антенны. Диапазон частот 3G-антенн — 1900-2100 МГц, 2G — 900/1800 МГц. Разъем кабеля антенны — SMA(male).




== Настройка сетевых интерфейсов ==
== Настройка сетевых интерфейсов == <!--T:25-->


   
   


=== Настройка Ethernet-интерфейсов ===
=== Настройка Ethernet-интерфейсов === <!--T:26-->


<!--T:27-->
Часто возникает необходимость, чтобы контроллер имел постоянный адрес в локальной сети. Это достигается либо настройками DНCP-сервера (привязкой IP-адреса к MAC-адресу сетевого интерфейса контроллера), либо явным указанием IP-адреса в сетевых настройках.  
Часто возникает необходимость, чтобы контроллер имел постоянный адрес в локальной сети. Это достигается либо настройками DНCP-сервера (привязкой IP-адреса к MAC-адресу сетевого интерфейса контроллера), либо явным указанием IP-адреса в сетевых настройках.  


<!--T:28-->
Рассмотрим более подробно, как задать фиксированный адрес на Ethernet-интерфейсе.
Рассмотрим более подробно, как задать фиксированный адрес на Ethernet-интерфейсе.


<!--T:29-->
Для настроек статического адреса задайте следующую конфигурацию:
Для настроек статического адреса задайте следующую конфигурацию:
<pre>       
<pre>       
Строка 85: Строка 102:




<!--T:30-->
По умолчанию, если адрес статический, используются DNS-сервера, перечисленные в файле <code>/etc/resolv.conf</code>, символическая сcылка на <code>/mnt/data/etc/resolv.conf</code>.
По умолчанию, если адрес статический, используются DNS-сервера, перечисленные в файле <code>/etc/resolv.conf</code>, символическая сcылка на <code>/mnt/data/etc/resolv.conf</code>.


<!--T:31-->
Можете добавлять свои DNS-сервера по аналогии:
Можете добавлять свои DNS-сервера по аналогии:
<pre>
<pre>
Строка 101: Строка 120:
</pre>
</pre>


<!--T:32-->
Программа dnsmasq выведет в консоль, какие сервера используются, например:
Программа dnsmasq выведет в консоль, какие сервера используются, например:
<pre>
<pre>
Строка 109: Строка 129:




=== Настройка Wi-Fi ===
=== Настройка Wi-Fi === <!--T:33-->


<!--T:34-->
Параметры точки доступа определяет демон hostapd (файл настроек <code>/etc/hostapd.conf</code>).
Параметры точки доступа определяет демон hostapd (файл настроек <code>/etc/hostapd.conf</code>).
Чтобы подключаться к контроллеру по Wi-Fi по защищенному каналу, допишите в конец файла <code>/etc/hostapd.conf</code> следующую конфигурацию:
Чтобы подключаться к контроллеру по Wi-Fi по защищенному каналу, допишите в конец файла <code>/etc/hostapd.conf</code> следующую конфигурацию:


<!--T:35-->
<pre>
<pre>
wpa=2
wpa=2
Строка 122: Строка 144:
</pre>
</pre>


<!--T:36-->
Перезапустите hostapd: <code>/etc/init.d/hostapd restart</code>, после чего подключение к контроллеру по Wi-Fi будет возможно только с паролем '''your_password'''.
Перезапустите hostapd: <code>/etc/init.d/hostapd restart</code>, после чего подключение к контроллеру по Wi-Fi будет возможно только с паролем '''your_password'''.


<!--T:37-->
Пример настройки Wi_Fi адаптера для подключения к локальной сети можно найти [[Special:MyLanguage/Wi-Fi|в нашей wiki]].
Пример настройки Wi_Fi адаптера для подключения к локальной сети можно найти [[Special:MyLanguage/Wi-Fi|в нашей wiki]].






=== Настройка PPP ===
=== Настройка PPP === <!--T:38-->


<!--T:39-->
На контроллере предустановлен демон pppd, который используется для создания подключения к сети провайдера через 3G/2G-модем. Демон pppd создает при подключении сетевой интерфейс ppp (ppp0 по умолчанию). В заводской конфигурации настройки порта ppp0 закомментированы, и установления соединения с провайдером сотовой связи не происходит. В нашей [[Special:MyLanguage/GSM/GPRS|Wiki]] мы рекомендуем использовать следующие настройки для интерфейса ppp0 в файле <code>/etc/network/interfaces</code>:
На контроллере предустановлен демон pppd, который используется для создания подключения к сети провайдера через 3G/2G-модем. Демон pppd создает при подключении сетевой интерфейс ppp (ppp0 по умолчанию). В заводской конфигурации настройки порта ppp0 закомментированы, и установления соединения с провайдером сотовой связи не происходит. В нашей [[Special:MyLanguage/GSM/GPRS|Wiki]] мы рекомендуем использовать следующие настройки для интерфейса ppp0 в файле <code>/etc/network/interfaces</code>:
<pre>
<pre>
Строка 142: Строка 167:
Даже если модем находится в зависшем или отключенном состояниии, команда <code>pre-up wb-gsm restart_if_broken</code> перед началом установления соединения перезагрузит его и модем будет гарантированно доступен. Десятисекундной задержки (<code>pre-up sleep 10</code>) перед установлением соединения обычно хватает, чтобы сетевое соединение установилось с первого раза.  
Даже если модем находится в зависшем или отключенном состояниии, команда <code>pre-up wb-gsm restart_if_broken</code> перед началом установления соединения перезагрузит его и модем будет гарантированно доступен. Десятисекундной задержки (<code>pre-up sleep 10</code>) перед установлением соединения обычно хватает, чтобы сетевое соединение установилось с первого раза.  


<!--T:40-->
Строка <code>provider</code> заставляет <code>pppd</code> искать файл настроек для конкретного провайдера в директории <code>/etc/ppp/peers</code>, в нашем случае это файл <code>/etc/ppp/peers/mts</code>. В целях совместимости в качестве устройства модема в заводской настройке в этом файле указано использовать устройство <code>/dev/ttyGSM</code>. Если на вашем контроллере установлен 3G-модем, замените это устройство его на более быстрое <code>/dev/ttyACM0</code>.
Строка <code>provider</code> заставляет <code>pppd</code> искать файл настроек для конкретного провайдера в директории <code>/etc/ppp/peers</code>, в нашем случае это файл <code>/etc/ppp/peers/mts</code>. В целях совместимости в качестве устройства модема в заводской настройке в этом файле указано использовать устройство <code>/dev/ttyGSM</code>. Если на вашем контроллере установлен 3G-модем, замените это устройство его на более быстрое <code>/dev/ttyACM0</code>.


<!--T:41-->
Чтобы при обрыве соединения контроллер не прекращал бы попытки установить связь, в файле настроек провайдера <code>/etc/ppp/peers/</code> должны быть раскомментированы опции
Чтобы при обрыве соединения контроллер не прекращал бы попытки установить связь, в файле настроек провайдера <code>/etc/ppp/peers/</code> должны быть раскомментированы опции
<pre>
<pre>
Строка 152: Строка 179:




== PPP — основной и резервный выход в интернет ==
== PPP — основной и резервный выход в интернет == <!--T:42-->


<!--T:43-->
Проще всего обеспечить выход в интернет, если ppp0 — единственный WAN-интерфейс. Интерфейс ppp0 настраивается, как это написано выше, и затем, командой <code>ifup ppp0</code>, устанавливается подключение к интернету через сеть сотового оператора.  
Проще всего обеспечить выход в интернет, если ppp0 — единственный WAN-интерфейс. Интерфейс ppp0 настраивается, как это написано выше, и затем, командой <code>ifup ppp0</code>, устанавливается подключение к интернету через сеть сотового оператора.  


<!--T:44-->
Сложности начинаются, когда контроллер подключен к Ethernet и имеет шлюз по умолчанию в одной сети, а также подключается к сети сотовой передачи данных.  
Сложности начинаются, когда контроллер подключен к Ethernet и имеет шлюз по умолчанию в одной сети, а также подключается к сети сотовой передачи данных.  


<!--T:45-->
В такой конфигурации мы сталкиваемся со следующей особенностью: протокол PPP обеспечивает соединение точка-точка и не предполагает шлюза по умолчанию.  
В такой конфигурации мы сталкиваемся со следующей особенностью: протокол PPP обеспечивает соединение точка-точка и не предполагает шлюза по умолчанию.  


<!--T:46-->
В случае подключения по PPP, когда ни одного шлюза по умолчанию нет (например, мы не подключили Ethernet-кабель), pppd в качестве шлюза по умолчанию добавит в таблицу маршрутизации в системе IP-адрес ppp-партнера. Если шлюз по умолчанию уже задан, то в таблицу маршрутизации новый шлюз по умолчанию не добавляется. И тогда при падении основного Ethernet-канала выход в интернет теряется, несмотря на активное соединение. В этом случае необходимо добавить второй шлюз по умолчанию через интерфейс ppp0. Метрика любого нового шлюза должна отличаться от метрик имеющихся, поэтому мы явно указываем метрику при создании нового шлюза по умолчанию.  
В случае подключения по PPP, когда ни одного шлюза по умолчанию нет (например, мы не подключили Ethernet-кабель), pppd в качестве шлюза по умолчанию добавит в таблицу маршрутизации в системе IP-адрес ppp-партнера. Если шлюз по умолчанию уже задан, то в таблицу маршрутизации новый шлюз по умолчанию не добавляется. И тогда при падении основного Ethernet-канала выход в интернет теряется, несмотря на активное соединение. В этом случае необходимо добавить второй шлюз по умолчанию через интерфейс ppp0. Метрика любого нового шлюза должна отличаться от метрик имеющихся, поэтому мы явно указываем метрику при создании нового шлюза по умолчанию.  


<!--T:47-->
Для обеспечения отказоустойчивого соединения мы должны предусмотреть любой порядок поднятия и падения интерфейсов. Задача — обеспечить связь независимо от порядка поднятия интерфейсов и переключение при падении одного из них.  
Для обеспечения отказоустойчивого соединения мы должны предусмотреть любой порядок поднятия и падения интерфейсов. Задача — обеспечить связь независимо от порядка поднятия интерфейсов и переключение при падении одного из них.  


<!--T:48-->
Для интерфейса eth0, который мы будем считать основным для выхода в интернет, создается шлюз по умолчанию с метрикой 0 в таблице маршрутизации. Зададим для шлюза по умолчанию через интерфейс ppp0 метрику 100 (или любой, отличной от 0).
Для интерфейса eth0, который мы будем считать основным для выхода в интернет, создается шлюз по умолчанию с метрикой 0 в таблице маршрутизации. Зададим для шлюза по умолчанию через интерфейс ppp0 метрику 100 (или любой, отличной от 0).
Для выполнения команд после инициализации любого ppp-интерфейса pppd демон использует директорию <code>/etc/ppp/ip-up.d</code>. В качестве параметров командной строки скрипту передается и имя ppp-интерфейса (в нашем случае такой интерфейс один — это ppp0).
Для выполнения команд после инициализации любого ppp-интерфейса pppd демон использует директорию <code>/etc/ppp/ip-up.d</code>. В качестве параметров командной строки скрипту передается и имя ppp-интерфейса (в нашем случае такой интерфейс один — это ppp0).


<!--T:49-->
Создадим скрипт add_routes в директории <code>/etc/ppp/ip-up.d</code> и сделаем его исполняемым (<code>chmod +x /etc/ppp/ip-up.d/add_routes</code>):
Создадим скрипт add_routes в директории <code>/etc/ppp/ip-up.d</code> и сделаем его исполняемым (<code>chmod +x /etc/ppp/ip-up.d/add_routes</code>):
<pre>
<pre>
#!/bin/sh
#!/bin/sh


<!--T:50-->
route del default dev ppp0 2>/dev/null
route del default dev ppp0 2>/dev/null
route add default dev ppp0 metric 100 2>/dev/null
route add default dev ppp0 metric 100 2>/dev/null
Строка 177: Строка 212:
Таким образом мы имеем два шлюза по умолчанию с разными метриками:
Таким образом мы имеем два шлюза по умолчанию с разными метриками:


<!--T:51-->
[[Special:MyLanguage/Файл:Two_def_gateways.png|||| ]]
[[Special:MyLanguage/Файл:Two_def_gateways.png|||| ]]


<!--T:52-->
При падении одного из их трафик будет передаваться через другой и наоборот.
При падении одного из их трафик будет передаваться через другой и наоборот.
Запустим ping 8.8.8.8, а затем  вынем и вставим вилку RJ-45:  
Запустим ping 8.8.8.8, а затем  вынем и вставим вилку RJ-45:  


<!--T:53-->
[[Special:MyLanguage/Файл:Channel_switch.png|||| ]]
[[Special:MyLanguage/Файл:Channel_switch.png|||| ]]


<!--T:54-->
Как показал опыт, иногда возникает проблема с доступностью DNS-серверов провайдера. Для всех соединений прописываем общедоступные сервера Google и OpenDNS.
Как показал опыт, иногда возникает проблема с доступностью DNS-серверов провайдера. Для всех соединений прописываем общедоступные сервера Google и OpenDNS.


<!--T:55-->
'''eth0:''' Из файла <code>/etc/dhcp/dhclient.conf</code> из параметра request удаляем параметр <code>domain-name-servers</code>, а после параметра request указываем открытые DNS-сервера Google и OpenDNS:  
'''eth0:''' Из файла <code>/etc/dhcp/dhclient.conf</code> из параметра request удаляем параметр <code>domain-name-servers</code>, а после параметра request указываем открытые DNS-сервера Google и OpenDNS:  
<pre>prepend domain-name-servers 8.8.4.4, 8.8.8.8, 208.67.222.222, 208.67.220.220;</pre>
<pre>prepend domain-name-servers 8.8.4.4, 8.8.8.8, 208.67.222.222, 208.67.220.220;</pre>


<!--T:56-->
'''ppp0:''' В директории <code>/etc/ppp/ip-up.d</code> создаем скрипт (и даем ему права на выполнение), который добавит DNS-сервера Google и OpenDNS в файл <code>resolv.conf</code> при поднятии интерфейса.
'''ppp0:''' В директории <code>/etc/ppp/ip-up.d</code> создаем скрипт (и даем ему права на выполнение), который добавит DNS-сервера Google и OpenDNS в файл <code>resolv.conf</code> при поднятии интерфейса.


<!--T:57-->
<pre>
<pre>
if [ ! -e /etc/resolv.conf ]; then
if [ ! -e /etc/resolv.conf ]; then
Строка 196: Строка 238:
fi
fi


<!--T:58-->
#OpenDNS
#OpenDNS
printf '%s\n%s\n' "nameserver 208.67.222.222" "$(cat /etc/resolv/conf)" >/etc/resolv.conf
printf '%s\n%s\n' "nameserver 208.67.222.222" "$(cat /etc/resolv/conf)" >/etc/resolv.conf
Строка 203: Строка 246:
printf '%s\n%s\n' "nameserver 8.8.4.4" "$(cat /etc/resolv.conf)" >/etc/resolv.conf
printf '%s\n%s\n' "nameserver 8.8.4.4" "$(cat /etc/resolv.conf)" >/etc/resolv.conf


<!--T:59-->
</pre>
</pre>




== VPN ==
== VPN == <!--T:60-->


<!--T:61-->
Для удаленного доступа к контроллеру будем использовать OpenVPN. Предполагается, что сервер уже есть и настроен, необходимо установить и настроить клиент на контроллере.  
Для удаленного доступа к контроллеру будем использовать OpenVPN. Предполагается, что сервер уже есть и настроен, необходимо установить и настроить клиент на контроллере.  


<!--T:62-->
Чтобы обеспечить большую надежность, на сервере с 2 IP-адресами запускается два серверных процесса, один из которых слушает на порту 1194 TCP на IP1, а второй  — на порту 1194 UDP на IP2. (Это не обязательно, вы можете использовать один серверный процесс).
Чтобы обеспечить большую надежность, на сервере с 2 IP-адресами запускается два серверных процесса, один из которых слушает на порту 1194 TCP на IP1, а второй  — на порту 1194 UDP на IP2. (Это не обязательно, вы можете использовать один серверный процесс).


<!--T:63-->
На контроллере мы поднимаем 2 OpenVPN-клиента и явно задаем маршрут для IP2 через интерфейс <code>ppp0</code> для одного из них.  
На контроллере мы поднимаем 2 OpenVPN-клиента и явно задаем маршрут для IP2 через интерфейс <code>ppp0</code> для одного из них.  


<!--T:64-->
Установка OpenVPN — стандартная, с использованием <code>open-rsa</code>.
Установка OpenVPN — стандартная, с использованием <code>open-rsa</code>.


<!--T:65-->
Для этого на контроллере устанавливаем <code>openvpn</code> и <code>easy-rsa</code>:
Для этого на контроллере устанавливаем <code>openvpn</code> и <code>easy-rsa</code>:


<!--T:66-->
<pre>apt-get install openvpn easy-rsa</pre>
<pre>apt-get install openvpn easy-rsa</pre>


<!--T:67-->
Копируем  
Копируем  
<pre>cp -R /usr/share/easy-rsa /etc/openvpn/</pre>
<pre>cp -R /usr/share/easy-rsa /etc/openvpn/</pre>


<!--T:68-->
Копируем сертификат удостоверяющего центра <code>ca.crt</code> на контроллер в директорию <code>/etc/openvpn/easy-rsa/keys</code>
Копируем сертификат удостоверяющего центра <code>ca.crt</code> на контроллер в директорию <code>/etc/openvpn/easy-rsa/keys</code>


<!--T:69-->
В директории  
В директории  
<code>/etc/openvpn/easy-rsa</code>
<code>/etc/openvpn/easy-rsa</code>
Строка 231: Строка 284:
<pre>mkdir keys && chmod 600 keys && cd keys</pre>
<pre>mkdir keys && chmod 600 keys && cd keys</pre>


<!--T:70-->
Создаем запрос на подписывание сертификата (с именем, соответствующим серийному номеру контроллера, в данном случае A7ZO7UCC):
Создаем запрос на подписывание сертификата (с именем, соответствующим серийному номеру контроллера, в данном случае A7ZO7UCC):
<pre>
<pre>
Строка 246: Строка 300:
Подписанный сертификат <code>A7ZO7UCC.crt</code> копируем на контроллер в директорию <code>/etc/openvpn/easy-rsa/keys</code>.
Подписанный сертификат <code>A7ZO7UCC.crt</code> копируем на контроллер в директорию <code>/etc/openvpn/easy-rsa/keys</code>.


<!--T:71-->
На сервере в конфигурационном файле (<code>/etc/vpn/server.conf</code>) смотрим, какой файл соответствия клиент-адрес указан в параметре <code>ifconfig-pool-persists</code> и в этот файл добавляем адрес для клиента-контроллера из диапазона сетевых адресов, описанного в параметре <code>server</code> конфигурационного файла.
На сервере в конфигурационном файле (<code>/etc/vpn/server.conf</code>) смотрим, какой файл соответствия клиент-адрес указан в параметре <code>ifconfig-pool-persists</code> и в этот файл добавляем адрес для клиента-контроллера из диапазона сетевых адресов, описанного в параметре <code>server</code> конфигурационного файла.


<!--T:72-->
Например,  
Например,  
<pre>
<pre>
Строка 257: Строка 313:




<!--T:73-->
Для второго экземпляра сервера такую же операцию выполняем с его конфигурационными файлами, IP-адреса должны различаться, например, добавляем запись
Для второго экземпляра сервера такую же операцию выполняем с его конфигурационными файлами, IP-адреса должны различаться, например, добавляем запись
<code>A7ZO7UCC,10.9.0.48</code>
<code>A7ZO7UCC,10.9.0.48</code>




<!--T:74-->
Конфигурационные файлы для клиента на контроллере для двух соединений будем хранить в файлах <code>/etc/openvpn/client.conf</code> и <code>/etc/openvpn/client1.conf</code>.
Конфигурационные файлы для клиента на контроллере для двух соединений будем хранить в файлах <code>/etc/openvpn/client.conf</code> и <code>/etc/openvpn/client1.conf</code>.


<!--T:75-->
Содержимое файла настройки клиента:
Содержимое файла настройки клиента:
<pre>
<pre>
Строка 283: Строка 342:
</pre>
</pre>


<!--T:76-->
В файле конфигурации второго vpn-подключения <code>сlient1.conf</code> замените <code>proto udp</code> на <code>proto tcp</code> и укажите второй IP-адрес сервера в параметре <code>remote</code>.  
В файле конфигурации второго vpn-подключения <code>сlient1.conf</code> замените <code>proto udp</code> на <code>proto tcp</code> и укажите второй IP-адрес сервера в параметре <code>remote</code>.  


<!--T:77-->
Автозагрузка сервиса OpenVPN на контроллере включается командой:
Автозагрузка сервиса OpenVPN на контроллере включается командой:
<pre>update-rc.d openvpn defaults</pre>
<pre>update-rc.d openvpn defaults</pre>
Строка 292: Строка 353:




== AutoSSH ==
== AutoSSH == <!--T:78-->


<!--T:79-->
Еще одно резервное подключение к контроллеру сделаем на основе <code>AutoSSH</code>. Механизм работы таков: с контроллера устанавливается ssh-соединение к серверу, при этом ssh-порт контроллера пробрасывается на один из свободных портов на localhost сервера. Сервис аutossh следит за тем, что ssh-соединение не разорвано, и в случае разрыва восстанавливает его. Восстановление происходит не мгновенно — какое-то время порт, используемый на <code>localhost</code> сервера удерживается демоном <code>sshd</code>.  
Еще одно резервное подключение к контроллеру сделаем на основе <code>AutoSSH</code>. Механизм работы таков: с контроллера устанавливается ssh-соединение к серверу, при этом ssh-порт контроллера пробрасывается на один из свободных портов на localhost сервера. Сервис аutossh следит за тем, что ssh-соединение не разорвано, и в случае разрыва восстанавливает его. Восстановление происходит не мгновенно — какое-то время порт, используемый на <code>localhost</code> сервера удерживается демоном <code>sshd</code>.  


<!--T:80-->
Устанавливаем на контроллере <code>apt-get install autossh</code>. Генерируем пару ключей для пользователя <code>root</code>:
Устанавливаем на контроллере <code>apt-get install autossh</code>. Генерируем пару ключей для пользователя <code>root</code>:
<pre>ssh-keygen </pre>
<pre>ssh-keygen </pre>
Пароль — пустой.
Пароль — пустой.


<!--T:81-->
Для обслуживания удаленных подключений создаем пользователя <code>remote</code> на сервере с оболочкой <code>/bin/false</code>:  
Для обслуживания удаленных подключений создаем пользователя <code>remote</code> на сервере с оболочкой <code>/bin/false</code>:  


<!--T:82-->
<pre>adduser --home /home/remote --shell /bin/false remote </pre>
<pre>adduser --home /home/remote --shell /bin/false remote </pre>


<!--T:83-->
В файл <code>/home/remote/.ssh/authorized_keys</code> на сервере добавляем созданный на контроллере ключ <code>/root/.ssh/id_rsa.pub</code> с преамбулой  
В файл <code>/home/remote/.ssh/authorized_keys</code> на сервере добавляем созданный на контроллере ключ <code>/root/.ssh/id_rsa.pub</code> с преамбулой  


<!--T:84-->
<code>no-agent-forwarding,no-X11-forwarding,permitopen="localhost:62001" </code>
<code>no-agent-forwarding,no-X11-forwarding,permitopen="localhost:62001" </code>


<!--T:85-->
что обеспечит дополнительную безопасность сервера при подключении контроллера. Порт 62001 — порт localhost-сервера, на который будет перенаправлен ssh-порт данного контроллера.  
что обеспечит дополнительную безопасность сервера при подключении контроллера. Порт 62001 — порт localhost-сервера, на который будет перенаправлен ssh-порт данного контроллера.  


<!--T:86-->
Первый раз подключаемся с контроллера на сервер вручную:
Первый раз подключаемся с контроллера на сервер вручную:
<pre>ssh remote@vpn.mydomain.com </pre>
<pre>ssh remote@vpn.mydomain.com </pre>


<!--T:87-->
На контроллере создаем файл <code>\etc\systemd\system\autossh.service</code> для запуска <code>autossh</code> в качестве сервиса:
На контроллере создаем файл <code>\etc\systemd\system\autossh.service</code> для запуска <code>autossh</code> в качестве сервиса:




<!--T:88-->
<pre>
<pre>
[Unit]
[Unit]
Строка 321: Строка 392:
After=network.target
After=network.target


<!--T:89-->
[Service]
[Service]
User=root
User=root
Строка 333: Строка 405:
Restart=always
Restart=always


<!--T:90-->
[Install]
[Install]
WantedBy=multi-user.target
WantedBy=multi-user.target
Строка 339: Строка 412:
<pre>systemctl enable autossh.service</pre>
<pre>systemctl enable autossh.service</pre>


<!--T:91-->
После запуска сервиса мы можем подключиться к контроллеру на сервере с помощью команды  
После запуска сервиса мы можем подключиться к контроллеру на сервере с помощью команды  
<pre>ssh 127.0.0.1 -p 62001</pre>
<pre>ssh 127.0.0.1 -p 62001</pre>




== Передача данных  с контроллера в облако ==
== Передача данных  с контроллера в облако == <!--T:92-->


<!--T:93-->
Для передачи MQTT-сообщений с контроллера в облачный сервис используется MQTT-бридж, конфигурация которого настраивается на контроллере в файле <code>\mnt\data\etc\mosquitto\conf.d\bridge.conf</code>
Для передачи MQTT-сообщений с контроллера в облачный сервис используется MQTT-бридж, конфигурация которого настраивается на контроллере в файле <code>\mnt\data\etc\mosquitto\conf.d\bridge.conf</code>
<pre>
<pre>
Строка 352: Строка 427:
notification_topic /client/wb_A7ZO7UCC/bridge_status
notification_topic /client/wb_A7ZO7UCC/bridge_status


<!--T:94-->
topic /devices/#  both 2 "" /client/wb_A7ZO7UCC
topic /devices/#  both 2 "" /client/wb_A7ZO7UCC
topic /config/#  both 2 "" /client/wb_A7ZO7UCC
topic /config/#  both 2 "" /client/wb_A7ZO7UCC
topic /rpc/#  both 2 "" /client/wb_A7ZO7UCC
topic /rpc/#  both 2 "" /client/wb_A7ZO7UCC


<!--T:95-->
username wb_A7ZO7UCC
username wb_A7ZO7UCC
password your_mqtt_cloud_password
password your_mqtt_cloud_password
</pre>
</pre>


<!--T:96-->
Затем выполните команду
Затем выполните команду


<!--T:97-->
<pre>
<pre>
service mosquitto restart
service mosquitto restart
Строка 367: Строка 446:




<!--T:98-->
Если вы хотите передавать данные на несколько серверов одновременно, создайте несколько разделов <code>connection</code>.
Если вы хотите передавать данные на несколько серверов одновременно, создайте несколько разделов <code>connection</code>.




== Возможные неполадки GPRS-соединения ==
== Возможные неполадки GPRS-соединения == <!--T:99-->


<!--T:100-->
Возможных причин отсутствия GPRS-подключения может быть несколько.  
Возможных причин отсутствия GPRS-подключения может быть несколько.  
* Закончился оплаченный лимит трафика.  
* Закончился оплаченный лимит трафика.  
Строка 380: Строка 461:
* Ваш тарифный план не предусматривает пакетную передачу данных.  
* Ваш тарифный план не предусматривает пакетную передачу данных.  


<!--T:101-->
Прежде чем идти в личный кабинет и звонить провайдеру, можно выполнить ряд простых проверок.
Прежде чем идти в личный кабинет и звонить провайдеру, можно выполнить ряд простых проверок.




<!--T:102-->
Запустите команду  
Запустите команду  


<!--T:103-->
<pre>gammu networkinfo</pre>
<pre>gammu networkinfo</pre>


<!--T:104-->
<pre>
<pre>
Network state        : home network
Network state        : home network
Строка 397: Строка 482:
</pre>
</pre>


<!--T:105-->
Важно, что контроллер подключен к пакетной сети передачи данных <pre>(GPRS                : attached)</pre> и GPRS-соединение установлено.  
Важно, что контроллер подключен к пакетной сети передачи данных <pre>(GPRS                : attached)</pre> и GPRS-соединение установлено.  


<!--T:106-->
После этого оцените уровень сигнала в minicom командой <code>AT+CSQ</code>
После этого оцените уровень сигнала в minicom командой <code>AT+CSQ</code>
Вы получите результат в виде <code>13,99</code>
Вы получите результат в виде <code>13,99</code>


<!--T:107-->
Первая цифра показывает мощность сигнала: > 9 — удовлетворительный, > 14 — хороший, > 19 — отличный. Низкие и нестабильные значения CSQ означают, что антенна плохо расположена, неаккуратно подключена, радиообстановка неблагоприятная.
Первая цифра показывает мощность сигнала: > 9 — удовлетворительный, > 14 — хороший, > 19 — отличный. Низкие и нестабильные значения CSQ означают, что антенна плохо расположена, неаккуратно подключена, радиообстановка неблагоприятная.


<!--T:108-->
Если обе проверки пройдены, но связи нет, обратитесь к провайдеру (загляните в личный кабинет), можете проверить СИМ-карту в смартфоне.
Если обе проверки пройдены, но связи нет, обратитесь к провайдеру (загляните в личный кабинет), можете проверить СИМ-карту в смартфоне.
</translate>
</translate>
12 063

правки