Вопрос или проблема
У меня есть два виртуальных сервера с Ubuntu 20.04, оба работают до сих пор. Но моя проблема в том, что Server1 не может пинговать Server2 и наоборот. Я получаю ошибку ‘Хост назначения недоступен’. Это касается как доменного имени, так и IP-адреса.
Насколько я вижу, это неправильный или отсутствующий маршрут между этими серверами.
Я нашел этот учебник https://contabo.com/blog/creating-static-routes/
Но это не сработало для меня, и моя конфигурация кажется другой.
Мой /etc/netplan/01-netcfg.yaml выглядит так:
network:
version: 2
renderer: networkd
ethernets:
ens18:
match:
macaddress: 00:50:56:46:a3:de
addresses:
- 38.242.229.xx/19
#- 2a02:c206:3009:2902:0000:0000:0000:0001/64
#gateway6: fe80::1
routes:
- to: 0.0.0.0/0
via: 38.242.224.1
on-link: true
nameservers:
search: [ invalid ]
addresses:
- 161.97.189.52
- 161.97.189.51
#- 2a02:c206:5028::2:53
#- 2a02:c206:5028::1:53
Может быть, кто-то сможет помочь мне, чтобы я мог достичь другого (второго) сервера из этой инстанции.
Мои знания о сетях в Linux не настолько хороши, чтобы я мог адаптировать учебник под свои нужды.
Спасибо.
ip addr:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:50:56:46:a3:de brd ff:ff:ff:ff:ff:ff
inet 38.242.229.72/19 brd 38.242.255.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe46:a3de/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:e1:f9:bb:15 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
ip route:
default via 38.242.224.1 dev eth0 proto static onlink
38.242.224.0/19 dev eth0 proto kernel scope link src 38.242.229.72
ip addr второго сервера:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:50:56:46:a3:dd brd ff:ff:ff:ff:ff:ff
inet 38.242.229.63/19 brd 38.242.255.255 scope global eth0
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:5f:77:59:e9 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
55: br-195a84347f94: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:a6:46:7a:27 brd ff:ff:ff:ff:ff:ff
inet 172.25.0.1/16 brd 172.25.255.255 scope global br-195a84347f94
valid_lft forever preferred_lft forever
57: vethb13ec38@if56: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-195a84347f94 state UP group default
link/ether 92:e8:8a:e0:f1:7c brd ff:ff:ff:ff:ff:ff link-netnsid 1
59: veth21971c4@if58: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-195a84347f94 state UP group default
link/ether 4e:95:40:7d:78:93 brd ff:ff:ff:ff:ff:ff link-netnsid 2
68: br-d0ad0289f7c7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ef:83:ac:3e brd ff:ff:ff:ff:ff:ff
inet 172.28.0.1/16 brd 172.28.255.255 scope global br-d0ad0289f7c7
valid_lft forever preferred_lft forever
70: veth07b736d@if69: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-d0ad0289f7c7 state UP group default
link/ether f6:85:f1:48:45:8e brd ff:ff:ff:ff:ff:ff link-netnsid 3
74: br-c2c3481624b2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:e8:3c:59:c0 brd ff:ff:ff:ff:ff:ff
inet 172.30.0.1/16 brd 172.30.255.255 scope global br-c2c3481624b2
valid_lft forever preferred_lft forever
76: veth98745d8@if75: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-c2c3481624b2 state UP group default
link/ether 2a:70:8d:58:de:e8 brd ff:ff:ff:ff:ff:ff link-netnsid 0
enter code here
ip route второго сервера:
default via 38.242.224.1 dev eth0 proto static onlink
38.242.224.0/19 dev eth0 proto kernel scope link src 38.242.229.63
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.25.0.0/16 dev br-195a84347f94 proto kernel scope link src 172.25.0.1
172.28.0.0/16 dev br-d0ad0289f7c7 proto kernel scope link src 172.28.0.1
172.30.0.0/16 dev br-c2c3481624b2 proto kernel scope link src 172.30.0.1
ping до шлюза работает, также ping до yahoo.com работает.
Моя цель состоит в том, чтобы первый сервер мог клонировать/получать репозиторий git с gitlab, который работает на втором сервере.
Каждый сервер может пинговать все, кроме другого. Провайдер говорит мне, что это происходит потому, что оба IP-адреса находятся в одной подсети, и поэтому мне нужно сделать статический маршрут, чтобы это решить. Но я не могу успешно следовать инструкциям из вышеуказанной ссылки для Ubuntu 20.04.
Согласно https://contabo.com/blog/creating-static-routes/, несмотря на то, что говорится о том, что другие серверы находятся в одной подсети, вы не можете достичь их, не пройдя через маршрутизатор. Поэтому правильная конфигурация должна выглядеть так:
network:
version: 2
renderer: networkd
ethernets:
ens18:
match:
macaddress: 00:50:56:46:a3:de
addresses:
- 38.242.229.xx/32
#- 2a02:c206:3009:2902:0000:0000:0000:0001/64
#gateway6: fe80::1
routes:
- to: 38.242.224.1/32
on-link: true
- to: 0.0.0.0/0
via: 38.242.224.1
nameservers:
search: [ invalid ]
addresses:
- 161.97.189.52
- 161.97.189.51
#- 2a02:c206:5028::2:53
#- 2a02:c206:5028::1:53
Обратите внимание на использование масок сети хоста (/32), которые представляют вашу истинную сетевую топологию.
Просто не забудьте добавить конфигурацию НА КАЖДОМ УСТРОЙСТВЕ, чтобы все заработало. Не запускайте “ping”, пока netplan не будет настроен и перезапущен НА КАЖДОМ УСТРОЙСТВЕ.
Ответ или решение
Добавление статического маршрута в Ubuntu 20.04
Если у вас возникли проблемы с подключением двух серверов на Ubuntu 20.04, и вы получаете ошибку ‘Destination Host Unreachable’, это может указывать на неправильную маршрутизацию сети. В случае виртуальных серверов иногда необходимо устанавливать статические маршруты для обеспечения связи между ними, даже если они находятся в одной подсети. В этом ответе мы рассмотрим, как правильно настроить статическую маршрутизацию на каждом сервере.
Шаг 1: Проверка конфигурации сети
Согласно информации, которую вы предоставили, у вас есть два сервера с IP-адресами:
- Сервер 1: 38.242.229.72/19
- Сервер 2: 38.242.229.63/19
Оба сервера имеют общий шлюз – 38.242.224.1. Это указывает на то, что вам нужно настроить статическую маршрутизацию, чтобы они могли видеть друг друга.
Шаг 2: Настройка файла Netplan
На каждом из серверов вам нужно отредактировать файл Netplan для добавления статического маршрута. Откройте файл /etc/netplan/01-netcfg.yaml
с помощью любого текстового редактора, например, nano
или vim
:
sudo nano /etc/netplan/01-netcfg.yaml
На Сервере 1 сконфигурируйте файл следующим образом:
network:
version: 2
renderer: networkd
ethernets:
eth0:
match:
macaddress: 00:50:56:46:a3:de
addresses:
- 38.242.229.72/32
routes:
- to: 38.242.229.63/32
via: 38.242.224.1
on-link: true
- to: 0.0.0.0/0
via: 38.242.224.1
nameservers:
addresses:
- 161.97.189.52
- 161.97.189.51
На Сервере 2 измените файл аналогично, чтобы включить маршрут к первому серверу:
network:
version: 2
renderer: networkd
ethernets:
eth0:
match:
macaddress: 00:50:56:46:a3:dd
addresses:
- 38.242.229.63/32
routes:
- to: 38.242.229.72/32
via: 38.242.224.1
on-link: true
- to: 0.0.0.0/0
via: 38.242.224.1
nameservers:
addresses:
- 161.97.189.52
- 161.97.189.51
Шаг 3: Применение настроек
После редактирования файла нужно применить изменения с помощью следующей команды:
sudo netplan apply
Шаг 4: Проверка соединения
Теперь вы можете проверить соединение между серверами с помощью команды ping
. Сначала выполните на Сервере 1:
ping 38.242.229.63
A затем на Сервере 2:
ping 38.242.229.72
Шаг 5: Устранение неполадок
Если после этих изменений вы всё ещё не можете достучаться до другого сервера, проверьте следующее:
- Убедитесь, что файрвол на обоих серверах настроен так, чтобы разрешить необходимые соединения.
- Проверьте настройки сети вашего хостинга на предмет дополнительных ограничений.
Заключение
Добавление статического маршрута может решить ваши проблемы с подключением между серверами. Этот процесс требует особого внимания к деталям конфигурации. Если у вас возникли сложности, рассмотрите возможность обратиться за помощью к специалисту по сетям.
Следуя приведённым шагам, вы сможете восстановить связь между вашими серверами и продолжить работу с git-репозиториями.