Как включить IPv6 на Fedora 28 на Amazon EC2

Я не могу заставить IPv6 работать в Fedora 28 в Amazon EC2 (поэтому использую cloud-init и DHCPv6).

Он работает в RHEL 7 с конфигурацией, описанной здесь. Применение той же конфигурации к Fedora 28, похоже, ничего не дает. Особенно, /etc/sysconfig/network НЕ переписывается, чтобы содержать NETWORKING_IPV6=yesи не делает /etc/sysconfig/network-scripts/ifcfg-eth0 содержать любые вещи IPv6.

мой /etc/cloud/cloud.cfg.d/56-custom-networking.cfg содержит:

network:
  version: 1
  config:
  - type: physical
    name: eth0
    subnets:
      - type: dhcp
      - type: dhcp6

Сгенерированный /etc/sysconfig/network является:

NOZEROCONF=yes
DEVTIMEOUT=10

# Created by cloud-init on instance boot automatically, do not edit.
#
NETWORKING=yes

Сгенерированный /etc/sysconfig/network-scripts/ifcfg-eth0 является:

# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=dhcp
DEVICE=eth0
HWADDR=0e:79:0a:22:60:26
ONBOOT=yes
TYPE=Ethernet
USERCTL=no

мой ifconfig -a:

[aram@eden ~]$ ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
        inet 172.31.35.163  netmask 255.255.240.0  broadcast 172.31.47.255
        inet6 fe80::c79:aff:fe22:6026  prefixlen 64  scopeid 0x20<link>
        ether 0e:79:0a:22:60:26  txqueuelen 1000  (Ethernet)
        RX packets 498  bytes 45355 (44.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 332  bytes 38967 (38.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Версии ОС:

[aram@eden ~]$ cat /etc/os-release 
NAME=Fedora
VERSION="28 (Cloud Edition)"
ID=fedora
VERSION_ID=28
PLATFORM_ID="platform:f28"
PRETTY_NAME="Fedora 28 (Cloud Edition)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:28"
HOME_URL="https://fedoraproject.org/"
SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=28
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=28
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
VARIANT="Cloud Edition"
VARIANT_ID=cloud
[aram@eden ~]$ 

1 ответ

Это происходит потому, что текущая версия cloud-init (я тестировал с 17.1) не восстанавливает сетевые настройки при каждой загрузке. Сетевые настройки генерируются только при первой загрузке. Вы можете наблюдать это, войдя в лог-файлы cloud-init:

$ grep 'network config' /var/log/cloud-init.log

2018-09-18 22:13:26,089 - stages.py[INFO]: Applying network configuration from ds bringup=False: {'version': 1, 'config': [{'type': 'physical', 'name': 'eth0', 'subnets': [{'type': 'dhcp4'}], 'mac_address': '12:64:78:dd:c8:62'}]}
2018-09-18 22:13:29,211 - stages.py[DEBUG]: not a new instance. network config is not applied.
2018-09-26 10:08:08,367 - stages.py[DEBUG]: not a new instance. network config is not applied.
2018-09-26 10:08:11,458 - stages.py[DEBUG]: not a new instance. network config is not applied.
2018-09-26 11:01:12,917 - stages.py[DEBUG]: not a new instance. network config is not applied.
2018-09-26 11:01:16,011 - stages.py[DEBUG]: not a new instance. network config is not applied.
2018-09-26 11:10:38,782 - stages.py[DEBUG]: not a new instance. network config is not applied.
2018-09-26 11:10:41,871 - stages.py[DEBUG]: not a new instance. network config is not applied.
2018-09-26 11:12:10,407 - stages.py[DEBUG]: not a new instance. network config is not applied.
2018-09-26 11:12:13,475 - stages.py[DEBUG]: not a new instance. network config is not applied.

Как видите, конфигурация сети была применена только при первой загрузке (в то время экземпляр еще не имел IPV6).

Существует проблема, требующая сделать это поведение настраиваемым: https://bugs.launchpad.net/cloud-init/+bug/1765801


Вот шаги, которые я предпринял, чтобы включить IPV6 в существующем экземпляре на Amazon EC2 для Fedora 28 (Cloud Edition):

  1. добавлять NETWORKING_IPV6=yes в /etc/sysconfig/network
  2. добавлять DHCPV6C=yes в /etc/sysconfig/network-scripts/ifcfg-eth0
  3. Бежать sudo systemctl restart network

После этих шагов IPV6 включается, и он также сохраняется между перезагрузками. Однако, если по какой-то причине экземпляр создается заново, и cloud-init считает, что это будет первая загрузка снова, изменения будут потеряны. Однако cloud-init уже генерирует сетевую конфигурацию IPV6 из коробки, так что у вас все должно быть в порядке.

Другие вопросы по тегам