Похоже, мне не удаётся заставить работать IPv6 в Fedora 28 в Amazon EC2 (поэтому использую cloud-init и DHCPv6).
Работает в RHEL 7 с описанной конфигурацией.здесь/etc/sysconfig/network
. Применение той же конфигурации к Fedora 28 , похоже, ничего не дает. В частности,НЕТпереписывается так, чтобы содержать 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):
- добавить
NETWORKING_IPV6=yes
в/etc/sysconfig/network
- добавить
DHCPV6C=yes
в/etc/sysconfig/network-scripts/ifcfg-eth0
- Бегать
sudo systemctl restart network
После этих шагов IPV6 включается и сохраняется между перезагрузками. Однако, если по какой-то причине экземпляр будет создан заново и cloud-init снова посчитает его первой загрузкой, то изменения будут потеряны. Однако cloud-init уже генерирует конфигурацию сети IPV6 из коробки, так что все должно быть в порядке.