Linux

您所在的位置:网站首页 linuxipv6地址配置 Linux

Linux

2024-03-13 13:48| 来源: 网络整理| 查看: 265

Linux_ipv6_无状态_设置为_eui64_有状态ipv6更改后缀

转载注明来源: 本文链接 来自osnosn的博客,写于 2019-08-22.

目的 设置eui64,是为了更安全的开放内网服务,设置防火墙的ipv6转发。 见【设置openwrt路由器的防火墙_允许从外网访问_ipv6服务_ipv4端口映射】 设置ddns,见【Linux中获取本机的最新IPv6地址_更新ddns的脚本_获取openwrt的IP地址】 【Debian/Mint/Raspbian/Ubuntu - How to force SLAAC EUI64 IPv6 autoconfiguration】 说明:无状态的ipv6有eui64和stable-privacy模式,

在家庭pppoe模式下,设置ipv6的ddns。发现ipv6的PD是会变化的。

eui64的ipv6地址后四段是固定的,只与网卡的MAC有关,不随前缀(PD)变化。方便设置防火墙规则。 stable-privacy的ipv6地址后四段是相对固定的,与uuid,PD都相关。前缀(PD)变化,后四段地址也会变。不利于防火墙规则的设置。 修改 ipv6 无状态地址的缺省模式 addr_gen_mode 为 eui64 检查系统是否有 nmcli 命令。如果没有。-->网络是由内核直接管理的修改方法 执行 nmcli net 检查 NetworkManager 是否启用。 如果返回 disabled 即没启用,-->网络由内核直接管理的修改方法 如果返回 enabled 即启用了。 执行 nmcli device 查看对应的网卡设备是否由 NetworkManager 管理。 显示绿色的 connected 就是由 NetworkManager 管理的。-->由 NetworkManager 管理的修改方法 显示灰色的 unmanaged 是 NetworkManager 没有管理的。-->网络由内核直接管理的修改方法 你也可以考虑,启用NetworkManager对此网卡的管理。 -->见文章后面的“让 NetworkManager 管理有线网卡” 网络由内核直接管理的,修改eui64方法 网卡的网络配置文件在 /etc/network/interfaces , 这个文件中只能指定动态或静态ipv6地址,不能指定 eui64/privacy。 看帮助 man interfaces。 无效。interfaces 中添加#测试过,无效 iface eth0 inet6 auto privext 0 dhcp 1 直接修改内核变量, net.ipv6.conf.default.addr_gen_mode = 0, 或针对网卡设置net.ipv6.conf.eth0.addr_gen_mode = 0 (=0 是eui64, =1是privacy) 使用命令,比如sysctl -w net.ipv6.conf.eth0.addr_gen_mode=0 net.ipv6.conf.all.addr_gen_mode 修改这个变量,似乎没有用。你可以试试。 如果想开机就生效,则修改 /etc/sysctl.conf ,把上面的内核变量的设置值写进去。 网络由 NetworkManager 管理的,修改eui64方法

CentOS7系统,改缺省无状态ipv6 为 eui64

看帮助 man nm-settings-ifcfg-rh。

修改文件/etc/sysconfig/network-scripts/ifcfg-xxx , IPV6INIT=yes IPV6_AUTOCONF=yes - IPV6_ADDR_GEN_MODE=stable-privacy + IPV6_ADDR_GEN_MODE=eui64 或添加一行 IPV6_ADDR_GEN_MODE=eui64

Armbian或Debian系统,改缺省无状态ipv6 为 stable-privacy

看帮助 man NetworkManager.conf。 修改 cd /etc/NetworkManager/system-connections/ 目录中对应网卡的文件。比如,Armbian_ethernet文件 [ipv6] - addr-gen-mode=stable-privacy + #addr-gen-mode=stable-privacy + addr-gen-mode=eui64 dns-search= Armbian_ethernet 文件中包含interface-name=eth0 , 所以这个文件是设置有线网卡的。 如果要设置无线网卡为eui64,则去修改对应的包含interface-name=wlan0的配置文件。 对eui64地址,valid_flt 和 preferred_lft 缺省值的修改。debian系统。(未测试)。 看 man systemd.network 有提到 ValidLifetimeSec=,PreferredLifetimeSec=。 另外,sysctl -a| grep _lft 能看到,net.ipv6.conf.all.temp_prefered_lft = 86400 net.ipv6.conf.all.temp_valid_lft = 604800 net.ipv6.conf.default.temp_prefered_lft = 86400 net.ipv6.conf.default.temp_valid_lft = 604800 但 eui64实际的 valid_lft 远小于 604800,prefered_lft 远大于 86400。 对比 eui64地址的 lft,和路由器上 ipv6-prefix的 lft 基本一样,只差几秒。(2023-10测) 可是,在路由上设置 IPv6 RA Settings -> RA Livetime 为 1800sec,对客户机eui64的两个 lft没影响。

CentOS 或 Debian 修改之后。 systemctl restart NetworkManager 重启服务,即可生效。

还有一种情况,SLAAC由dhcpcd管理的,修改eui64方法 修改 /etc/dhcpcd.conf 中的配置项slaac 为 slaac hwaddr。有此项就修改它,没有这一项就添加它。 有状态的ipv6,后缀的更改 和说明 通常 dhcpd6 提供的 ipv6 后缀,是与客户机的 DUID 相关。并且基本固定。 缺点: 有状态的 ipv6 有时会丢失。偶尔会发现,有10-30分钟内仅有无状态ipv6。也许是 openwrt 的 dhcpd6 的问题。 如果想修改 dhcpd6 提供的 ipv6 的后缀。就需要修改客户机的 DUID。 使用 NetworkManager 管理网络。 How can I change my Ubuntu's IPv6 DUID , 可以在配置文件/etc/NetworkManager/system-connections/eth0.xxx中指定 DUID, [ipv6] + dhcp-duid=00:01:00:01:23:01:a6:ec:18:31:bf:6d:0e:24 或者 修改/删除/var/lib/NetworkManager/dhclient6-xxxxx-eth0.lease, 重启dhclient service network-manager restart, 会换一个/或重新生成一个 DUID。(删除好像不会生成一个新的) 或者 修改系统的 machine-id。此机的 DUID, client-id 都会改变。 rm /etc/machine-id; rm /var/lib/dbus/machine-id; systemd-machine-id-setup; 然后 reboot 系统。 /var/lib/dbus/machine-id 不要手工修改,重启后可能导致进不了系统。 没有使用 NetworkManager 管理网络。 修改/删除/var/lib/dhcp/dhclient.eth0.leases, 重启dhclient, 会换一个/或重新生成一个 DUID。 有了一个新的固定的 DUID 后,就会得到一个新的固定的 ipv6 后缀。 参考:IPv6_configuration Debian10 让 NetworkManager 管理有线网卡 NetworkManager , 解决network-manager中wired为unmanaged的问题 apt install network-manager 让它管理网卡, Set managed=true in /etc/NetworkManager/NetworkManager.conf , 然后service network-manager restart或/sbin/service NetworkManager restart. 如果你是ssh远程连接修改的,为了防止失联。先把以下几步做完,再启用 NetworkManager. nmtui 中,添加一个连接,设备填写 eth0。然后再注释掉 /etc/network/interfaces 中的 eth0。 我的机器中,设备名是 eth0。 实际的网卡设备名,用 ip addr 查看。 启用network-manager, 需要注释掉 /etc/network/interfaces 中 allow-hotplug eth0 和 iface eth0 inet dhcp这两行。否则会分配两个IPv4, 并影响 ipv6 的 eui64 设置。(如果是静态指定IP,则不影响) 如果你是ssh远程连接修改的。现在再改 managed=true 然后重启 NetworkManager. 重启之后,可能被分配的IP和之前不同了。 如果发现 /etc/resolv.conf没有更新,看man NetworkManager.conf中,关于rc-manager的说明。

转载注明来源: 本文链接 https://www.cnblogs.com/osnosn/p/11396868.html 来自osnosn的博客



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3