Netplan ipv6 "Нет маршрута к хосту" - PullRequest
0 голосов
/ 31 марта 2020

Я явно неверно настроил свои адреса слушателей 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". Это оказалось проблематичным c, потому что, когда сетевой интерфейс был сброшен, маршрут был бы потерян.

Итак, я добавил / 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 address add ". Обратите внимание, что я использую "/ 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. Обратите внимание, что это только часть файла; по соображениям безопасности я не включаю адрес ma c, серверы имен или шлюз. Тем не менее, они верны, потому что мои адреса 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 Ответ

0 голосов
/ 02 апреля 2020

Было несколько проблем:

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

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

1.  ip -6 addr del 2600:1303:d000:1::17c3:456f/24 dev eth0
2.  netplan apply
...