Netplan ipv6 "Нет маршрута к хосту"

Я явно неправильно настроил адреса моих слушателей ipv6. Вопрос 1: мне нужно, чтобы кто-то заметил ошибку. И бонус. Вопрос 2: есть ли риск удалить команду "/sbin/ip address add" ниже?

Это на виртуальной машине ubuntu 18.04.

Вот команда curl, показывающая, что маршрутизация ipv6 настроена неправильно:

curl -vvv -L "http://[2600:1303:d000:1::17c3:4571]"
*   Trying 2600:1303:d000:1::17c3:4571...
* TCP_NODELAY set
* Immediate connect fail for 2600:1303:d000:1::17c3:4571: No route to host
* Closing connection 0
curl: (7) Couldn't connect to server

Раньше при запуске программа выдавала родное "/sbin/ip address add". Это оказалось проблемой, потому что при сбросе сетевого интерфейса маршрут терялся.

Итак, я добавил / etc / netplan, потому что настройка маршрутизации ipv6 переживает перезапуск сети. Однако я не удалял "ip addr add" при запуске. В настоящее время для настройки маршрутизации используются две команды: netplan и "/sbin/ip address add". Вот порядок выполнения команд:

1.  Manual one-time command of "/etc/netplan apply" which didn't return any errors.  

2.  "ip addr add" every time the server starts.  So, at least once since the manual netplan command.

Вот адреса ipv6, которые он прослушивает:

netstat -anp | grep redir | grep LISTEN
tcp6       0      0 2600:1303:d000:1::17:80 :::*                    LISTEN      3187/my-service
tcp6       0      0 2600:1303:d000:1::17:80 :::*                    LISTEN      3187/my-service
tcp6       0      0 2600:1303:d000:1::17:80 :::*                    LISTEN      3187/my-service
tcp6       0      0 2600:1303:d000:1::17:80 :::*                    LISTEN      3187/my-service
tcp6       0      0 2600:1303:d000:1::17:80 :::*                    LISTEN      3187/my-service

Вот что я хочу, чтобы он слушал: [2600:1303:c000:1::15d4:456f]:80" [2600:1303:d000:1::17c3:4570]:80" [2600:1303:d000:1::17c3:4571]:80" [2600:1303:d000:1::17c3:4572]:80"

Вот команда "добавить IP-адрес". Обратите внимание, что я использую "/24", и мне интересно, не в этом ли проблема. Или, возможно, использование "ip addr add" и netplan не работает должным образом. Это устаревшее приложение, и поскольку мои сетевые навыки в этой области не очень сильны, я не был уверен, безопасно ли удалить "ip addr add". Я не думал, что будет мешать оставить команду "ip addr add", но, возможно, я ошибался.

out, e = exec.Command("/sbin/ip", "-6", "addr", "add", ip + "/24", "dev", "eth0").CombinedOutput()

Вот мой файл конфигурации netplan. Обратите внимание, что это только часть файла; по соображениям безопасности я не включаю MAC-адрес, серверы имен или шлюз. Однако они верны, потому что мои адреса ipv4 работают. Кроме того, я не опубликовал настоящие адреса ipv6 из соображений безопасности.

root@ubuntu:~# cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    ethernets:
        eth0:
            addresses: [ '2600:1303:d000:1::17c3:456e/24', '2600:1303:d000:1::17c3:4570/24', '2600:1303:d000:1::17c3:4572/24', '2600:1303:d000:1::17c3:4571/24', '2600:1303:d000:1::17c3:456f/24' ]

Заранее спасибо;)

1 ответ

Решение

Возникла пара проблем:

  1. Шлюза не было6.
  2. Битовая маска должна была быть "/64" вместо "/24".

Netplan не удаляет старые маршруты. Мне пришлось проделать следующие шаги:

1.  ip -6 addr del 2600:1303:d000:1::17c3:456f/24 dev eth0
2.  netplan apply
Другие вопросы по тегам