Начало работы с программно-определяемой сетью и создание VPN с ZeroTier One

Вступление

В наши дни все больше и больше программных проектов создаются командами, члены которых работают вместе из разных географических мест. Хотя этот рабочий процесс имеет много явных преимуществ, в некоторых случаях такие группы могут захотеть связать свои компьютеры вместе через Интернет и обращаться с ними так, как будто они находятся в одной комнате. Например, вы можете тестировать распределенные системы, такие как Kubernetes, или создавать сложное мультисервисное приложение. Иногда это просто помогает повысить производительность, если вы можете относиться к машинам так, как будто они находятся рядом друг с другом, поскольку вам не нужно рисковать, предоставляя свои незаконченные услуги Интернету. Эта парадигма может быть достигнута с помощью программно-определяемой сети (SDN), относительно новой технологии, которая обеспечивает динамическую сетевую структуру, существование которой полностью состоит из программного обеспечения.

ZeroTier One - это приложение с открытым исходным кодом, которое использует некоторые из последних разработок в SDN, чтобы позволить пользователям создавать безопасные, управляемые сети и обрабатывать подключенные устройства, как если бы они находились в одном и том же физическое местонахождение. ZeroTier предоставляет клиентам веб-консоль для управления сетью и программное обеспечение конечных точек. Это зашифрованная технология Peer-to-Peer, означающая, что в отличие от традиционных решений VPN, связь не должна проходить через центральный сервер или маршрутизатор - сообщения отправляются напрямую с хоста на хост. В результате он очень эффективен и обеспечивает минимальную задержку. Другие преимущества включают простой процесс развертывания и настройки ZeroTier, простое обслуживание и возможность централизованной регистрации и управления авторизованными узлами через веб-консоль.

Следуя этому руководству, вы соедините клиент и сервер в простой сети точка-точка. Поскольку в программно-определяемой сети не используется традиционная схема клиент / сервер, отсутствует центральный VPN-сервер для установки и настройки; это упрощает развертывание инструмента и добавление любых дополнительных узлов. Как только соединение будет установлено, у вас будет возможность использовать VPN-функцию ZeroTier, используя некоторые умные функциональные возможности Linux, чтобы позволить трафику покинуть вашу сеть ZeroTier с вашего сервера и дать клиенту команду отправлять трафик в этом направлении.

Предпосылки

Перед началом работы с этим учебником вам понадобятся следующие ресурсы:

  • Сервер под управлением Ubuntu 16.04. На этом сервере вам также потребуется пользователь без полномочий root с привилегиями sudo, которые можно настроить с помощью нашего https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16- 04 [Руководство по первоначальной настройке сервера для Ubuntu 16.04].

  • Учетная запись в ZeroTier One, которую вы можете настроить, перейдя по адресу My ZeroTier. Для целей данного руководства вы можете использовать бесплатную версию этого сервиса, которая предоставляется без каких-либо затрат или обязательств.

  • Локальный компьютер для подключения к SDN в качестве клиента. В примерах, приведенных в этом руководстве, и сервер, и локальный компьютер работают под управлением Ubuntu Linux, но любая операционная система, указанная на странице загрузки ZeroTier, будет работать на клиенте.

Имея эти предварительные условия, вы готовы настроить программную сеть для вашего сервера и локального компьютера.

Шаг 1 - Создание программно-определяемой сети с использованием ZeroTier One

Платформа ZeroTier обеспечивает центральную точку контроля для вашей программно-определяемой сети. Там вы можете авторизовать и деавторизовать клиентов, выбрать схему адресации и создать сетевой идентификатор, по которому вы сможете направлять своих клиентов при их настройке.

Войдите в свою учетную запись ZeroTier, нажмите * Сети * в верхней части экрана, а затем нажмите * Создать *. Автоматически сгенерированное имя сети появится. Нажмите на него, чтобы просмотреть экран конфигурации вашей сети. Запишите * Network ID *, показанный желтым, так как вам понадобится обратиться к нему позже.

Если вы предпочитаете изменить имя сети на что-то более описательное, отредактируйте имя в левой части экрана; Вы также можете добавить описание, если хотите. Любые сделанные вами изменения будут сохранены и применены автоматически.

Затем выберите диапазон адресов IPv4, с которым будет работать SDN. В правой части экрана в области, озаглавленной * IPv4 Auto-Assign *, выберите диапазон адресов, под который будут попадать ваши узлы. Для целей данного учебного пособия может использоваться любой диапазон, но важно оставить флажок * Auto-Assign from Range *.

Убедитесь, что для * Access Control * слева установлено значение * Certificate (Private Network) *. Это гарантирует, что только одобренные машины могут подключаться к вашей сети, а не только тот, кто знает ваш сетевой идентификатор!

После завершения ваши настройки должны выглядеть примерно так:

изображение: https: //assets.digitalocean.com/articles/zerotier-1604/ZeroTierSettings-updated.png [Конфигурация настроек ZeroTier]

К этому моменту вы успешно собрали основу Программно-определяемой сети ZeroTier. Затем вы установите программное обеспечение ZeroTier на сервер и клиентские компьютеры, чтобы они могли подключаться к вашей SDN.

Шаг 2 - Установка клиента ZeroTier One на ваш сервер и локальный компьютер

Поскольку ZeroTier One является относительно новым программным продуктом, он еще не включен в основные программные репозитории Ubuntu. По этой причине ZeroTier предоставляет сценарий установки, который мы будем использовать для установки программного обеспечения. Эта команда представляет собой сценарий с подписью GPG, означающий, что загружаемый код будет проверен как опубликованный ZeroTier. Этот скрипт состоит из четырех основных частей, и вот пошаговое объяснение каждой из них:

  • + curl -s 'https: //pgp.mit.edu/pks/lookup? op = get & search = 0x1657198823E52A61' + - импортирует открытый ключ ZeroTier из MIT.

  • + gpg --import + - этот раздел команды добавляет открытый ключ ZeroTier в вашу локальную цепочку ключей полномочий, чтобы доверять пакетам, которые вы пытаетесь установить. Следующая часть команды будет выполнена только в случае успешного завершения импорта GPG

  • `+ if z = $ (curl -s 'https://install.zerotier.com/' | gpg); затем выведите «$ z» + `- в этом разделе происходит несколько вещей, но по сути это означает:« Если скрипт установки с криптографической подписью, загруженный с ZeroTier.com, проходит через GPG и не отклоняется как неподписанный ZeroTier, вставить эту информацию на экран ».

  • `+ sudo bash; fi + `- этот раздел берет недавно проверенный установочный скрипт и фактически выполняет его перед завершением процедуры.

Используйте консоль SSH для подключения к вновь созданному серверу и выполните следующую команду от имени обычного пользователя (объяснение этой команды приведено ниже). Убедитесь, что вы * не * запускаете его как root, так как скрипт автоматически запрашивает ваш пароль для повышения уровня привилегий, и не забывайте держать консоль ZeroTier открытой в вашем браузере, чтобы вы могли взаимодействовать с ней при необходимости.

curl -s 'https://pgp.mit.edu/pks/lookup?op=get&search=0x1657198823E52A61' | gpg --import && if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi

После завершения сценария вы увидите две строки вывода, аналогичные показанным ниже. Запишите свой адрес ZeroTier (без квадратных скобок) и название системы, которая сгенерировала этот адрес, оба из которых вам понадобятся позже:

Output*** Waiting for identity generation...

*** Success! You are ZeroTier address [  ].

Повторите этот шаг на локальном компьютере, если вы используете Ubuntu, или выполните соответствующие шаги для вашей операционной системы на странице Download веб-сайта ZeroTier. Опять же, обязательно запишите адрес ZeroTier и машину, которая сгенерировала этот адрес. Эта информация понадобится вам на следующем шаге этого руководства, когда вы на самом деле подключите свой сервер и клиента к сети.

Шаг 3 - Присоединение к вашей сети ZeroTier

Теперь, когда на сервере и клиенте установлено программное обеспечение ZeroTier, вы готовы подключить их к сети, созданной вами в веб-консоли ZeroTier.

Используйте следующую команду, чтобы указать клиенту запрашивать доступ к сети ZeroTier через его платформу. Первоначальный запрос клиента будет отклонен и оставлен без ответа, но мы исправим это в ближайшее время. Обязательно замените идентификатор сети, который вы указали ранее в окне конфигурации вашей сети.

sudo zerotier-cli join
Output200 join OK

Вы получите сообщение «+200 join OK +», подтверждающее, что служба ZeroTier на вашем сервере поняла команду. Если вы этого не сделаете, дважды проверьте введенный вами сетевой идентификатор ZeroTier.

Поскольку вы еще не создали общедоступную сеть, к которой может присоединиться кто-либо в мире, теперь вам необходимо авторизовать своих клиентов. Перейдите в веб-консоль ZeroTier и прокрутите страницу вниз, где находится раздел * Members *. Вы должны заметить две записи, помеченные как * Online *, с теми же адресами, которые вы отметили ранее.

В первом столбце, помеченном * Auth? *, Установите флажки, чтобы разрешить им присоединяться к сети. Контроллер Zerotier назначит IP-адрес серверу и клиенту из диапазона, который вы выбрали ранее при следующем вызове SDN.

Выделение IP-адресов может занять некоторое время. Во время ожидания вы можете указать * Короткое имя * и * Описание * для своих узлов в разделе * Участники *.

При этом вы будете подключать две системы к вашей определенной программной сети.

До сих пор вы получили базовое представление о панели управления ZeroTier, использовали интерфейс командной строки для загрузки и установки ZeroTier, а затем подключили сервер и клиента к этой сети. Затем вы проверите, что все было применено правильно, выполнив тест подключения.

Шаг 4 - Проверка подключения

На этом этапе важно убедиться, что два хоста действительно могут общаться друг с другом. Существует вероятность того, что, хотя хосты утверждают, что они подключены к сети, они не могут общаться. Проверяя подключение сейчас, вам не придется беспокоиться о базовых проблемах подключения, которые могут вызвать проблемы в дальнейшем.

Простой способ найти IP-адрес ZeroTier каждого хоста - это посмотреть в разделе * Members * веб-консоли ZeroTier. Вам может потребоваться обновить его после авторизации сервера и клиента, прежде чем появятся их IP-адреса. Кроме того, вы можете использовать командную строку Linux, чтобы найти эти адреса. Используйте следующую команду на обоих компьютерах - первый IP-адрес, показанный в списке, будет использоваться. В примере, показанном ниже, этот адрес + 203.0.113.0 +.

ip addr sh zt0 | grep 'inet'
Outputinet 203.0.113.0/24 brd 203.0.255.255 scope global zt0
inet6 fc63:b4a9:3507:6649:9d52::1/40 scope global
inet6 fe80::28e4:7eff:fe38:8318/64 scope link

Чтобы проверить соединение между хостами, выполните команду + ping + с одного хоста, а затем IP-адрес другого. Например, на клиенте:

ping

И на сервере:

ping

Если ответы возвращаются с противоположного хоста (как показано в выходных данных, показанных ниже), то эти два узла успешно обмениваются данными через SDN.

OutputPING 203.0.113.0 (203.0.113.0) 56(84) bytes of data.
64 bytes from 203.0.113.0: icmp_seq=1 ttl=64 time=0.054 ms
64 bytes from 203.0.113.0: icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from 203.0.113.0: icmp_seq=3 ttl=64 time=0.043 ms

Вы можете добавить столько компьютеров, сколько захотите, к этой конфигурации, повторив установку ZeroTier и присоединившись к процессам, описанным выше. Помните, что эти машины никоим образом не должны быть ближе друг к другу.

Теперь, когда вы подтвердили, что ваш сервер и клиент могут взаимодействовать друг с другом, читайте дальше, чтобы узнать, как настроить сеть, чтобы обеспечить выходной шлюз и создать свой собственный VPN.

Шаг 5 - Включение возможности VPN ZeroTier

Как упоминалось во введении, можно использовать ZeroTier в качестве инструмента VPN. Если вы не планируете использовать ZeroTier в качестве решения VPN, то вам не нужно выполнять этот шаг, и вы можете перейти к шагу 6.

Использование VPN скрывает источник вашего общения с веб-сайтами через Интернет. Это позволяет обойти фильтры и ограничения, которые могут существовать в используемой сети. В более широком Интернете вы будете просматривать общедоступный IP-адрес вашего сервера. Чтобы использовать ZeroTier в качестве инструмента VPN, вам потребуется внести еще несколько изменений в конфигурации вашего сервера и клиента.

Включение трансляции сетевых адресов и пересылки IP

Трансляция сетевых адресов, чаще называемая «NAT», - это метод, с помощью которого маршрутизатор принимает пакеты на одном интерфейсе, помеченном IP-адресом отправителя, а затем заменяет этот адрес на адрес маршрутизатора. Запись об этом обмене хранится в памяти маршрутизатора, поэтому, когда обратный трафик возвращается в обратном направлении, маршрутизатор может преобразовать IP-адрес обратно в свой первоначальный адрес. NAT обычно используется, чтобы позволить нескольким компьютерам работать за одним публичным IP-адресом, что удобно для VPN-сервиса. Примером NAT на практике является внутренний маршрутизатор, который ваш интернет-провайдер дал вам для подключения всех устройств в вашем доме к Интернету. Похоже, что ваш ноутбук, телефон, планшеты и любые другие устройства, подключенные к Интернету, используют один и тот же общедоступный IP-адрес в Интернете, поскольку маршрутизатор выполняет NAT.

Хотя NAT обычно выполняется маршрутизатором, сервер также способен выполнять его. На этом этапе вы будете использовать эту функцию на своем сервере ZeroTier, чтобы включить его возможности VPN.

IP forwarding - это функция, выполняемая маршрутизатором или сервером, в которой он пересылает трафик с одного интерфейса на другой, если эти IP-адреса находятся в разных зонах. Если маршрутизатор был подключен к двум сетям, переадресация IP позволяет ему пересылать трафик между ними. Это может показаться простым, но может быть на удивление сложным для успешной реализации. В случае с этим учебником, это всего лишь вопрос редактирования нескольких файлов конфигурации.

Включив переадресацию IP, VPN-трафик от вашего клиента в сети ZeroTier будет поступать через интерфейс ZeroTier сервера. Без этих изменений конфигурации ядро ​​Linux (по умолчанию) выбрасывает все пакеты, не предназначенные для интерфейса, на который они приходят. Это нормальное поведение для ядра Linux, поскольку обычно любые пакеты, поступающие на интерфейс с адресом назначения для другой сети, могут быть вызваны неправильной настройкой маршрутизации в другом месте сети.

Полезно рассматривать пересылку IP как информирование ядра Linux о том, что пересылка пакетов между интерфейсами приемлема. По умолчанию установлено значение «+ 0 » - эквивалентно «Выкл.». Вы переключите его на « 1 +» - эквивалентно «Вкл».

Чтобы увидеть текущую конфигурацию, выполните следующую команду:

sudo sysctl net.ipv4.ip_forward
Outputnet.ipv4.ip_forward = 0

Чтобы включить переадресацию IP, измените файл + / etc / sysctl.conf + на вашем сервере и добавьте в нужную строку. Этот файл конфигурации позволяет администратору переопределить параметры ядра по умолчанию и всегда будет применяться после перезагрузок, поэтому вам не нужно беспокоиться о его повторной настройке. Используйте + nano + или ваш любимый текстовый редактор, чтобы добавить следующую строку в конец файла.

sudo nano /etc/sysctl.conf

/etc/sysctl.conf

. . .

Сохраните и закройте файл, затем выполните следующую команду, чтобы запустить принятие новой конфигурации ядром.

sudo sysctl -p

Сервер примет любые новые директивы конфигурации в файле и немедленно их применяет, без перезагрузки. Выполните ту же команду, что и ранее, и вы увидите, что IP-переадресация включена.

sudo sysctl net.ipv4.ip_forward
Outputnet.ipv4.ip_forward = 1

Теперь, когда IP-переадресация включена, вы сможете эффективно использовать ее, предоставив серверу некоторые основные правила маршрутизации. Поскольку ядро ​​Linux уже имеет встроенную возможность сетевой маршрутизации, все, что вам нужно сделать, это добавить некоторые правила, чтобы сообщить встроенному брандмауэру и маршрутизатору, что новый трафик, который он будет видеть, является приемлемым и куда его отправлять. ,

Чтобы добавить эти правила из командной строки, вам сначала нужно будет узнать имена, которые Ubuntu присвоил как интерфейсу Zerotier, так и обычному интерфейсу Ethernet с выходом в Интернет. Обычно это + zt0 + и + eth0 + соответственно, хотя это не всегда так.

Чтобы найти имена этих интерфейсов, используйте команду + ip link show +. Эта утилита командной строки является частью + iproute2 +, набора утилит для пользовательского пространства, который по умолчанию устанавливается в Ubuntu:

ip link show

В выходных данных этой команды имена интерфейсов находятся непосредственно рядом с числами, которые идентифицируют уникальный интерфейс в списке. Эти имена интерфейсов выделены в следующем примере вывода. Если ваше имя отличается от имен, показанных в примере, то соответствующим образом подставьте имя вашего интерфейса в этом руководстве.

Output1: : <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
   link/ether 72:2d:7e:6f:5e:08 brd ff:ff:ff:ff:ff:ff
3: : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2800 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
   link/ether be:82:8f:f3:b4:cd brd ff:ff:ff:ff:ff:ff

Имея эту информацию в руках, используйте + iptables +, чтобы включить трансляцию сетевых адресов и маскировку IP:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Разрешить переадресацию трафика и отслеживать активные соединения:

sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

Затем разрешите пересылку трафика из + zt0 + в + eth0 +. Обратное правило не требуется, так как в этом руководстве предполагается, что клиент всегда вызывает через сервер, а не наоборот:

sudo iptables -A FORWARD -i zt0 -o eth0 -j ACCEPT

Важно помнить, что правила iptables, которые вы установили для сервера, не сохраняются автоматически между перезагрузками. Вам нужно будет сохранить эти правила, чтобы обеспечить их возобновление при перезагрузке сервера. На вашем сервере выполните приведенные ниже команды, следуя кратким инструкциям на экране для сохранения текущих правил IPv4, IPv6 не требуется.

sudo apt-get install iptables-persistent
sudo netfilter-persistent save

После запуска + sudo netfilter-persistent save + может оказаться целесообразным перезагрузить сервер, чтобы проверить правильность сохранения правил iptables. Простой способ проверить это - запустить + sudo iptables-save +, который выведет текущую конфигурацию, загруженную в память, на ваш терминал. Если вы видите правила, аналогичные приведенным ниже в отношении маскировки, пересылки и интерфейса + zt0 +, то они были правильно сохранены.

sudo iptables-save
Output# Generated by iptables-save v1.6.0 on Tue Apr 17 21:43:08 2018
. . .
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
. . .
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i zt0 -o eth0 -j ACCEPT
COMMIT
. . .

Теперь, когда эти правила были применены к вашему серверу, он готов перетасовать трафик между сетью ZeroTier и общедоступным Интернетом. Однако VPN не будет функционировать, если сама сеть ZeroTier не будет проинформирована о том, что сервер готов к использованию в качестве шлюза.

Включение вашего сервера для управления глобальным маршрутом

Чтобы ваш сервер обрабатывал трафик от любого клиента, вы должны убедиться, что другие клиенты в сети ZeroTier знают, что им следует отправлять свой трафик. Это можно сделать, установив глобальный маршрут в консоли ZeroTier. Люди, знакомые с компьютерными сетями, могут также описать это как маршрут по умолчанию. Это где любой клиент отправляет свой трафик по умолчанию, т.е. любой трафик, который не должен идти в любое другое конкретное место.

Перейдите в верхний правый угол вашей страницы ZeroTier Networks и добавьте новый маршрут со следующими параметрами. Вы можете найти ZeroTier IP для вашего сервера в разделе * Members * на странице конфигурации сети ZeroTier. В поле * network / bits * введите + 0.0.0.0 / 0 +, в поле * (LAN) * введите IP-адрес сервера ZeroTier.

Когда детали будут на месте, нажмите символ «* + *», и вы увидите новое правило, которое появится под существующим. Там будет оранжевый глобус, чтобы показать, что это действительно глобальный маршрут:

изображение: https: //assets.digitalocean.com/articles/zerotier-1604/zerotierGlobalRouteRule-updated.png [Правило глобального маршрута]

Когда ваша сеть ZeroTier готова к работе, остается только одна конфигурация, прежде чем VPN заработает: сеть клиентов.

Настройка клиентов Linux

Если ваш клиент работает под управлением Linux, вам нужно будет вручную изменить его файл + / etc / sysctl.conf +. Это изменение конфигурации требуется для изменения представления ядра о том, каков приемлемый путь возврата для вашего клиентского трафика. Из-за того, как настроен ZeroTier VPN, трафик, возвращающийся с вашего сервера на ваш клиент, может иногда казаться поступающим с сетевого адреса, отличного от того, на который он был отправлен. По умолчанию ядро ​​Linux считает их недействительными и отбрасывает их, что делает необходимым переопределить это поведение.

Откройте + / etc / sysctl.conf + на своем клиентском компьютере:

sudo nano /etc/sysctl.conf

Затем добавьте следующую строку:

Output. . .

Сохраните и закройте файл, затем запустите + sudo sysctl -p +, чтобы принять изменения.

sudo sysctl -p

Затем сообщите клиенту ZeroTier Client, что вашей сети разрешено передавать маршрутный трафик по умолчанию. Это исправляет маршрутизацию клиента и поэтому считается привилегированной функцией, поэтому ее необходимо включить вручную. Команда выведет на экран структуру конфигурации. Проверьте это, чтобы подтвердить, что он показывает ++ вверху:

sudo zerotier-cli set  allowDefault=1

Если в какой-то момент вы хотите прекратить использовать ZeroTier в качестве VPN, через который проходит весь ваш трафик, установите + allowDefault + обратно в + 0 +:

sudo zerotier-cli set  allowDefault=0

Каждый раз, когда служба ZeroTier на клиенте перезапускается, значение + allowDefault = 1 + сбрасывается в 0, поэтому не забудьте повторно выполнить его, чтобы активировать функцию VPN.

По умолчанию служба ZeroTier настроена на автоматический запуск при загрузке как для клиента Linux, так и для сервера. Если вы не хотите, чтобы это имело место, вы можете отключить процедуру запуска с помощью следующей команды.

sudo systemctl disable zerotier-one

Если вы хотите использовать другие операционные системы в сети ZeroTier, прочитайте следующий раздел. В противном случае перейдите к разделу «Управление потоками».

Настройка клиентов не-Linux

Клиентское программное обеспечение ZeroTier доступно для многих систем, а не только для ОС Linux - поддерживаются даже смартфоны. Клиенты существуют для Windows, macOS, Android, iOS и даже специализированных операционных систем, таких как QNAP, Synology и WesternDigital NAS.

Чтобы присоединить клиентов MacOS и Windows к сети, запустите инструмент ZeroTier (который вы установили на шаге 1) и введите свой NetworkID в соответствующем поле, прежде чем нажимать * Присоединиться *. Не забудьте проверить в консоли ZeroTier, чтобы отметить кнопку * Разрешить *, чтобы авторизовать новый хост в вашей сети.

Обязательно установите флажок * Маршрутизировать весь трафик через ZeroTier *. Если вы этого не сделаете, ваш клиент будет подключен к вашей сети ZeroTier, но не будет пытаться отправить через него свой интернет-трафик.

Используйте инструмент проверки IP, такой как ICanHazIP, чтобы убедиться, что ваш трафик поступает в Интернет с IP вашего сервера. Чтобы проверить это, вставьте следующий URL в адресную строку вашего браузера. На этом веб-сайте будет отображаться IP-адрес, который видит ваш сервер (и остальная часть интернета) для доступа к сайту:

http://icanhazip.com

Выполнив эти шаги, вы можете начать использовать VPN, как вам угодно. В следующем дополнительном разделе рассматривается технология, встроенная в ZeroTier SDN, известная как «правила потока», но они никоим образом не требуются для работы функций VPN.

Шаг 6 - Управление потоками (необязательно)

Одним из преимуществ программно-определяемой сети является централизованный контроллер. Что касается ZeroTier, то централизованным контроллером является веб-интерфейс пользователя, который располагается поверх общего сервиса ZeroTier SDN. Из этого интерфейса можно написать правила, известные как flow rules, которые определяют, что может или не может делать трафик в сети. Например, вы можете указать общий запрет для определенных сетевых портов, по которым передается трафик по сети, ограничить количество узлов, с которыми можно общаться друг с другом, и даже перенаправлять трафик.

Это чрезвычайно мощная возможность, которая вступает в силу практически мгновенно, поскольку любые изменения, внесенные в таблицу потоков, передаются членам сети и вступают в силу через несколько секунд. Чтобы отредактировать правила потока, вернитесь в веб-интерфейс ZeroTier, щелкните вкладку * Networking * и прокрутите вниз, пока не увидите поле с названием * Flow Rules * (оно может быть свернуто и нуждается в расширении). Откроется текстовое поле, в котором вы можете ввести любые правила, которые захотите. Полное руководство доступно в консоли ZeroTier в поле чуть ниже поля ввода * Flow Rules *, озаглавленном * Справка движка правил *.

Вот несколько примеров правил, которые помогут вам изучить эту функциональность.

Чтобы заблокировать любой трафик, привязанный к DNS-серверу Google + 8.8.8.8 +, добавьте это правило:

drop
   ipdest 8.8.8.8/32
;

Чтобы перенаправить любой трафик, связанный с общедоступным DNS-сервером Google, на один из ваших узлов ZeroTier, добавьте следующее правило. Это может быть отличным средством для переопределения поиска DNS:

redirect
   ipdest 8.8.8.8/32
;

Если ваша сеть предъявляет особые требования безопасности, вы можете отбросить любое действие на портах FTP, Telnet и незашифрованном HTTP, добавив следующее правило:

drop
   dport 80,23,21,20
;

Когда вы закончите добавлять правила потока, нажмите кнопку * Сохранить изменения *, и ZeroTier запишет ваши изменения.

Заключение

В этом руководстве вы сделали первый шаг в мир программно-определяемых сетей, а работа с ZeroTier дает некоторое представление о преимуществах этой технологии. Если вы следовали примеру VPN, то, хотя первоначальная настройка может отличаться от других инструментов, которые вы могли использовать в прошлом, простота добавления дополнительных клиентов может стать веской причиной для использования этой технологии в других местах.

Подводя итог, вы узнали, как использовать ZeroTier в качестве поставщика SDN, а также настраивать и подключать узлы к этой сети. Элемент VPN даст вам более глубокое понимание того, как работает маршрутизация в такой сети, и любой путь в этом руководстве позволит вам использовать мощную технологию правил потока.

Теперь, когда существует сеть точка-точка, вы можете объединить ее с другой функциональностью, такой как Общий доступ к файлам. Если у вас дома есть NAS или файловый сервер, вы можете связать его с ZeroTier и получать к нему доступ на ходу. Если вы хотите поделиться им со своими друзьями, вы можете показать им, как присоединиться к вашей сети ZeroTier. Сотрудники, которые распределены по большой площади, могут даже подключиться к одному и тому же центральному хранилищу. Чтобы приступить к созданию общего файлового ресурса для любого из этих примеров, взгляните на https://www.digitalocean.com/community/tutorials/how-to-set-up-a-samba-share-for-a- small-organization-on-ubuntu-16-04 [Как настроить общий ресурс Samba для небольшой организации в Ubuntu 16.04].

Related