Рейтинг:0

Вторичный IP-адрес не пингуется из Интернета — Ubuntu 20.04 с использованием сетевого плана на сервере Hetzner

флаг in

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

Я заказал корневой сервер hetzner и установил Ubuntu 20.04. Сразу после того, как я заказал дополнительный IP-адрес, так как он мне нужен для настройки докера, где я хочу, чтобы два контейнера были доступны непосредственно на этих двух IP-адресах? Оба IP-адреса являются общедоступными адресами /32, назначенными Hetzner. Мой основной IP-адрес доступен из Интернета, я могу пропинговать его извне.

После запроса второго IP-адреса я получил письмо от Hetzner о том, что мой заказ прошел успешно, и я могу настроить свой второй IP-адрес. В документах Hetzner я прочитал, что это должно быть так же просто, как добавить второй IP-адрес в адреса часть в /etc/netplan/01-netcfg.yaml. Этот файл сейчас выглядит так:

сеть:
  версия: 2
  визуализатор: сетевой
  Ethernet:
    enp9s0:
      адреса:
        - 50.50.50.201/32
        - 50.50.50.199/32
      маршруты:
        - по ссылке: правда
          до: 0.0.0.0/0
          через: 50.50.50.193
      серверы имен:
        адреса:
          - ...

Сразу после сохранения файла я запустил netplan попробовать который сообщил об успехе и попал войти чтобы сохранить новый конфиг. Бег IP-адрес дает мне:

...
2: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
    ссылка/эфир a8:a1:22:1f:22:82 brd ff:ff:ff:ff:ff:ff
    инет 50.50.50.201/32 глобальный охват enp9s0
       valid_lft навсегда
    инет 50.50.50.199/32 глобальный охват enp9s0
       valid_lft навсегда
...

Теперь я могу успешно пропинговать второй ip (.199) с сервера, но не с www. Любые идеи, почему это так? Я хочу убедиться, что мой второй IP-адрес также доступен из Интернета. Что мне не хватает в этой конфигурации? Спасибо заранее!

Редактировать: Я использую докер, но на данный момент все, что я здесь указал, находится на хост-машине. Так что Docker пока не участвует...

ip -br ссылка дает мне:

$ip -br ссылка
lo НЕИЗВЕСТНО 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> 
enp9s0 UP a8:a1:22:1f:22:82 
docker0 DOWN 02:42:f8:c5:ee:a9 <NO-CARRIER,BROADCAST,MULTICAST,UP>
br-ef57c188e0de DOWN 02:42:dc:79:c6:f6 <NO-CARRIER,Broadcast,MULTICAST,UP>

и...

$ ip -4 -br адрес
ло НЕИЗВЕСТНО 127.0.0.1/8 
enp9s0 УП 50.50.50.201/32 50.50.50.199/32 
докер0 ВНИЗ 172.17.0.1/16
br-ef57c188e0de ВНИЗ 172.18.0.1/16

и...

$ IP-маршрут
по умолчанию через 50.50.50.193 dev enp9s0 proto static onlink 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.18.0.0/16 dev br-ef57c188e0de ссылка на область действия ядра src 172.18.0.1 linkdown 

и...

$ IP-правило
0: из всех локальных поисковых систем
32766: из всех основных поисковых запросов
32767: из всех поисковых запросов по умолчанию

и...

$ ip ржет
172.18.0.2 dev br-ef57c188e0de ОШИБКА
50.50.50.193 dev enp9s0 lladdr a8:a1:22:1f:22:82 ДОСТУПНО
fe80::1 dev enp9s0 lladdr a8:a1:22:1f:22:82 маршрутизатор УСТАРЕВШИЙ

и наконец...

$ iptables-сохранить -c
# Сгенерировано iptables-save v1.8.4 в субботу, 14 мая, 17:40:11 2022 г.
*фильтр
:ВВОД ПРИНЯТ [1021:88276]
:ВПЕРЕД КАПИТЬ [233:12218]
: ВЫВОД ПРИНЯТ [920:161517]
:ДОКЕР - [0:0]
:ДОКЕР-ИЗОЛЯЦИЯ-ЭТАП-1 - [0:0]
:ДОКЕР-ИЗОЛЯЦИЯ-ЭТАП-2 - [0:0]
:ДОКЕР-ПОЛЬЗОВАТЕЛЬ - [0:0]
[12631:643908] -A FORWARD -j DOCKER-USER
[12631:643908] -A ВПЕРЕД -j DOCKER-ISOLATION-STAGE-1
[105:5500] -A FORWARD -o br-ef57c188e0de -m conntrack --ctstate СВЯЗАННО,УСТАНОВЛЕНО -j ПРИНЯТЬ
[0:0] -A ВПЕРЕД -o br-ef57c188e0de -j ДОКЕР
[6:324] -A ВПЕРЕД -i br-ef57c188e0de ! -o br-ef57c188e0de -j ПРИНЯТЬ
[0:0] -A ВПЕРЕД -i br-ef57c188e0de -o br-ef57c188e0de -j ПРИНЯТЬ
[521962:778892991] -A FORWARD -o docker0 -m conntrack --ctstate СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
[0:0] -A ВПЕРЕД -o docker0 -j DOCKER
[132612:7158451] -A ВПЕРЕД -i docker0 ! -o docker0 -j ПРИНЯТЬ
[0:0] -A ВПЕРЕД -i docker0 -o docker0 -j ПРИНЯТЬ
[6:324] -A DOCKER-ISOLATION-STAGE-1 -i br-ef57c188e0de ! -o br-ef57c188e0de -j DOCKER-ИЗОЛЯЦИЯ-ЭТАП-2
[132612:7158451] -A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
[686521:790836880] -A DOCKER-ISOLATION-STAGE-1 -j ВОЗВРАТ
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-ef57c188e0de -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
[132618:7158775] -A DOCKER-ISOLATION-STAGE-2 -j ВОЗВРАТ
[709846:791932195] -A DOCKER-USER -j ВОЗВРАТ
СОВЕРШИТЬ
# Завершено в субботу, 14 мая, 17:40:11 2022 г.
# Сгенерировано iptables-save v1.8.4 в субботу, 14 мая, 17:40:11 2022 г.
*натуральный
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [585:28528]
:ВВОД ПРИНЯТЬ [357:16571]
: ВЫВОД ПРИНЯТ [12:720]
:ОТПРАВКА ПРИНЯТИЯ [12:720]
:ДОКЕР - [0:0]
[25260:1227195] -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
[3:252] -ВЫВОД ! -d 127.0.0.0/8 -m тип_адреса --dst-тип ЛОКАЛЬНЫЙ -j DOCKER
[3:180] -A POSTOUTING -s 172.18.0.0/16 ! -o br-ef57c188e0de -j МАСКАРАД
[64:3912] -A POSTOUTING -s 172.17.0.0/16 ! -o docker0 -j МАСКАРАД
[0:0] -A ДОКЕР -i br-ef57c188e0de -j ВОЗВРАТ
[0:0] -A DOCKER -i docker0 -j ВОЗВРАТ
СОВЕРШИТЬ
# Завершено в субботу, 14 мая, 17:40:11 2022 г.

Кроме того, я еще не установил никаких правил брандмауэра на стороне Hetzner. Спасибо за ваше время!

A.B avatar
флаг cl
A.B
Это должно работать (потому что есть параметр onlink, позволяющий иметь шлюз без маршрута LAN). Поскольку это не так, вам следует предоставить дополнительную информацию: `ip -br link; ip -4 -br адрес; ip-маршрут; IP-правило; ип поржать.Также на всякий случай проверьте правила брандмауэра. Итак: `iptables-save -c` тоже. Примечание. Docker никогда не помогает при устранении неполадок в сети. Если вы забыли сказать, что за Docker стоит ваш сервис, самое время рассказать об этом и описать: это может иметь значение.
AGI_rev avatar
флаг in
Я отредактировал вопрос с дополнительной информацией, которую вы спросили. Спасибо за ваше время ;)
A.B avatar
флаг cl
A.B
Это должно работать. Вы должны сравнить со стороны сервера, так как это проще, чем с удаленного сервера: `ping 50.50.50.193` и `ping -I 50.50.50.199 50.50.50.193` и `traceroute -n 8.8.8.8` и `traceroute -s 50.50.50.199 8.8. .8.8`. Вы можете одновременно запустить что-то вроде `traceroute -l -n -s0 -e -p -i enp9s0 arp или icmp` и посмотреть, не выглядит ли что-то не так или отличается в обоих случаях.
Рейтинг:0
флаг in

Спасибо за помощь всем и особенно А.Б.

Пинг по-прежнему не работал. Я прочитал все документы Hetzner и не мог найти никаких подсказок, пока не наткнулся на этот пост. Hetzner дополнительный ip. Я ранее активировал MAC-адрес для дополнительного IP-адреса, который я запросил, потому что я думал, что будет необходимо создать macvlan в докере. я отключил виртуальный MAC-адрес на портале сервера Hetzner, и теперь я могу пинговать с и на дополнительный IP. То, что я еще не понял, описано в другом посте: назначение 32 IP-адреса контейнеру докеров. Любая помощь более чем приветствуется. Ваше здоровье!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.