I have a server that I'm pulling my hair out with. After total a reinstall, ipv6 works fine until I reboot the system. After that, it only ever picks up the suffix address:
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 0c:c4:7a:8f:66:10 brd ff:ff:ff:ff:ff:ff
inet removed/23 brd 45.77.111.255 scope global dynamic enp1s0
valid_lft 86365sec preferred_lft 86365sec
inet6 fe80::ec4:7aff:fe8f:6610/64 scope link
valid_lft forever preferred_lft forever
:ec4:7aff:fe8f:6610
is the correct suffix of the ipv6 address that has been assigned to this server. But no matter what I do, after the reboot, I cannot get it to pick up the full address from the router again.
My /etc/sysconfg/network-scripts/enp1s0 file is pretty simple:
DEVICE="enp1s0"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
NM_CONTROLLED="no"
IPV6_AUTOCONF="yes"
IPV6INIT="yes"
NOZEROCONF="yes"
ZONE=public
This is unmodified from the "out of the box" working state, so I expect it to be correct.
I do run some commands in my setup script to prepare the firewall, which is the only thing I suspect could be to blame:
firewall-cmd --zone=public --change-interface=enp1s0 --permanent;
firewall-cmd --zone=public --remove-service=ssh --permanent;
firewall-cmd --zone=public --add-port=<other port for ssh>/tcp --permanent;
firewall-cmd --reload;
But unless changing the zone on the interface removes vital information from ifcfg-enp1s0, I don't see how this could be to blame.
I really don't want to use static addressing because dynamic addressing works fine out of the box, I want to figure out how I'm breaking it.
Update: Output of firewall-cmd --list-all
is
public (active)
target: default
icmp-block-inversion: no
interfaces: enp1s0
sources:
services: dhcpv6-client http https
ports: <redacted>/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules: