Ubuntu 20.04 добавление статического маршрута

Вопрос или проблема

У меня есть два виртуальных сервера с 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-репозиториями.

Оцените материал
Добавить комментарий

Капча загружается...