Основы работы с частной сетью
Многие хостинг-провайдеры предлагают поддержку общей частной сети во всех ЦОД. Чаще всего частную сеть можно включить автоматически, сразу во время создания сервера. Если же вы создали сервер без поддержки частной сети, вы сможете добавить ее поддержку позже с помощью этого мануала.
Серверы с поддержкой частной сети могут взаимодействовать с другими серверами в этой частной сети.
В этом мануале вы научитесь определять адрес сервера в частной сети, передавать по ней файлы и обновлять файл /etc/hosts.
Для работы вам понадобятся серверы с поддержкой частной сети. В мануале используются условные серверы pnv1 (111.222.333.444) и pnv2 (123.456.78.90).
1: Определение адреса сервера в частной сети
Запустите оба сервера. Войдите на один из них:
ssh root@123.456.78.90
Чтобы узнать адрес, используйте утилиту ifconfig:
ifconfig
eth0 Link encap:Ethernet HWaddr 04:01:06:a7:6f:01
inet addr:123.456.78.90 Bcast:123.456.78.255 Mask:255.255.255.0
inet6 addr: fe80::601:6ff:fea7:6f01/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:168 errors:0 dropped:0 overruns:0 frame:0
TX packets:137 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:18903 (18.9 KB) TX bytes:15024 (15.0 KB)
eth1 Link encap:Ethernet HWaddr 04:01:06:a7:6f:02
inet addr:10.128.2.25 Bcast:10.128.255.255 Mask:255.255.0.0
inet6 addr: fe80::601:6ff:fea7:6f02/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:468 (468.0 B) TX bytes:398 (398.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Обратите внимание на раздел eth1, найдите в нем inet addr. В этом случае адрес частной сети – 10.128.2.25. Этот адрес доступен только с других серверов в том же регионе, где включены частные сети.
2: Обмен файлами по частной сети
Передать файлы по частной сети можно с помощью rsync.
Читайте также: Как копировать файлы при помощи rsync через SSH
Оставаясь на сервере pnv2, создайте новый файл:
touch test_file
Теперь попробуйте передать его на сервер pnv1 с помощью rsync:
rsync -va test_file 10.128.1.70:/tmp
Запустив эту команду, вы, скорее всего, увидите запрос пароля:
root@10.128.2.18's password:
Вы можете указать пароль, но гораздо безопаснее было бы использовать ключи.
Читайте также: Как настроить SSH-ключи
Независимо от того, что вы используете при передаче файла – пароль или ключи ssh – вы должны увидеть аналогичный результат:
sent 73 bytes received 31 bytes 18.91 bytes/sec
total size is 0 speedup is 0.00
Войдите на сервер pnv1:
ssh root@111.222.333.444
При входе в систему вы увидите, что тестовый файл действительно находится на новом сервере:
ls /tmp/
test_file
3: Добавление записи в файл /etc/hosts
Также при использовании частной сети нужно настроить файл /etc/hosts и указать в нем имя хоста, которое вы хотите использовать для подключения к другому серверу через адрес частной сети. Это позволит вам подключаться через частную сеть, не вводя адрес частной сети сервера.
Для этого сначала откройте файл /etc/hosts в любом удобном текстовом редакторе:
nano /etc/hosts
Внутри файла укажите адрес сервера в частной сети, к которому вы хотите подключиться, и имя хоста, которое нужно присвоить этому адресу:
127.0.0.1 localhost pnv2
10.128.2.18 pnv1
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Пока что информацию о IPv6 можно проигнорировать. Сохраните и закройте файл.
Заключение
Итак, вы успешно подключили частную сеть. Вы можете убедиться, что изменения в файле hosts вступили в силу, с помощью команды:
ping pnv1
PING pnv1 (10.128.2.18) 56(84) bytes of data.
64 bytes from pnv1 (10.128.2.18): icmp_req=1 ttl=64 time=0.742 ms
64 bytes from pnv1 (10.128.2.18): icmp_req=2 ttl=64 time=0.395 ms
64 bytes from pnv1 (10.128.2.18): icmp_req=3 ttl=64 time=0.368 ms
64 bytes from pnv1 (10.128.2.18): icmp_req=4 ttl=64 time=0.361 ms