标签: dhcpv6

IPv4 到 IPv6 迁移建议

我目前正致力于向我们的网络添加 IPv6 功能,并且我对 2020 年被认为是将我们习惯的一些 IPv4 概念转换为 IPv6 世界的最佳实践有一些疑问。

在我当前的设置中,我们从 ISP 分配了一个 /64,路由器会为客户端通告该前缀以使用 SLAAC 进行配置。这似乎工作正常,据我所知,每个人都可以访问 IPv6 互联网。

但是,我们希望能够按名称查询事物,我不确定为客户提供 AAAA 记录的最佳做法是什么。

我所做的是在运行我们的 DHCPv4 的 dnsmasq 实例上部署有状态的 DHCPv6,并告诉它从某个范围分发 ULA,这自然会为任何要求地址的人提供 AAAA 记录。这似乎也工作正常,但我知道有些人不喜欢有状态的 DHCPv6。这也有助于我整合我们在静态 IP 上的服务器分配,就像我对 DHCPv4 所做的一样,由于各种原因,这些服务器应该可以在固定 IP 地址上访问,我们希望 IPv6 的情况继续如此。

我能想到的执行 AAAA 记录的唯一另一种方法是通过单播从路由器向 dnsmasq 机器发送 RA 前缀,然后使用 dnsmasq 使用该ra-names选项为 slaac 通告 GUA 前缀。尽管据我所知,这并不能解决静态地址分配问题,而且我不确定它实际上有多可靠。有没有比使用有状态 DHCPv6 的 ULA 更好的方法来处理内部 AAAA 记录?

最后,随着事情开始奏效,我们现在正在考虑将我们的公共服务迁移到 IPv6。我的理解是,这将需要服务器使用固定的 GUA 来提供公共 AAAA 记录。我不确定如何使用来自边缘路由器的 SLAAC 来实现这一点,除非有某种动态 dns 等价物。我可以再次使用 DHCPv6 或其他手动分配方法在我们分配的前缀中选择 IP 吗?我对此犹豫不决,因为我认为它可能会与 SLAAC 地址发生冲突,而且我不确定如果发生冲突会发生什么。或者,我可以选择向 ISP 询问 …

domain-name-system dhcp ipv6 dhcpv6

20
推荐指数
2
解决办法
2481
查看次数

客户端可以在使用 RA 配置的网络上了解他们的时区吗?

我发现有些客户端在 IPv4 网络上时会通过 DHCP 选项号 101 了解其当前时区。

radvdUbuntu Server 14.04 上公布 IP 前缀的纯 IPv6 网络上,这些客户端不会选择正确的时区。

是否可以通过radvd或需要 DHCPv6 服务器来通告时区?

ipv6 timezone radvd dhcpv6

11
推荐指数
1
解决办法
638
查看次数

Windows Server 2016 IPv6 地狱

我们有一个由 Sonicwall、Windows Server 2016 DC 和 Exchange Server 2016(托管在第二台 WS2016 机器上)以及许多 Windows 10 客户端组成的小型网络。

由于与我们的供应商之一兼容,我们被迫在我们的网络上启用 IPv6(不仅仅是默认的链接本地寻址)。

这是我遇到的问题:如果我们的服务器启用了 IPv6,Windows 客户端更喜欢使用 IPv6 进行通信,包括在域上进行身份验证。如果 DNS 记录设置不正确,包括身份验证和交换在内的一切都会停止工作。

  1. 我的域控制器必须有一个静态 IPv6,因为它是 dhcp 服务器。
  2. 通过 GUI 设置静态 IP 不会禁用 DHCP 客户端,因此必须使用 powershell 命令禁用它:Set-NetIPInterface Ethernet -AddressFamily IPv6 -DHCP Disabled
  3. 如果我使用静态 IP,域控制器不会在 DNS 中注册。
  4. 如果我在 DNS 中为域控制器手动添加 AAAA 记录,它会在下次刷新时被删除。
  5. 如果我重新启用 DHCP,正确的记录会被添加到 DNS,但是 DHCP 分配的 IP 的附加 AAAA 记录也会被添加,这仍然会破坏系统。
  6. 如果我为 DC 创建一个与其静态 IP 相同的 DHCP 保留,则整个过程暂时有效,直到重新启动。重新启动后,GUI 再次显示“自动获取 IPv6 地址”,这不起作用,因为这是 DHCP 服务器,没有地址就无法访问自己。

似乎没有关于在 Windows Server 2016 中为静态 IP 正确配置 IPv6 的任何文档。如果有人可以提供帮助,我将不胜感激。

domain-name-system ipv6 dhcpv6

8
推荐指数
1
解决办法
4254
查看次数

Amazon VPC 上的 IPv6:Ubuntu 中缺少默认路由

现在Amazon 已将VPC 的IPv6支持扩展到其大部分全球区域,包括 eu-west-1,我正在尝试连接我的实例。不幸的是,我无法让路由工作。

我已按照迁移指南中的步骤操作,即将 IPv6 CIDR 关联到我们的 VPC,将其中的一部分分配给我们的“公共”子网,更新了 VPC 路由表以::/0通过 igw(互联网网关)发送,确保将路由表分配给公共子网,并从控制台将 IPv6 地址分配给一些新的 Ubuntu 16.04 实例。

然后,通过添加到网络设置并重新启动,我将 Ubuntu 配置为通过 DHCPv6 获取分配的地址,如此处所述iface eth0 inet6 dhcp

当我重新启动实例时,启动需要几分钟的时间,但最终我可以登录并ip a s显示配置的 IPv4 和全局 IPv6 地址。

但是,v6 网络不起作用:

# ping6 www.google.com
connect: Network is unreachable
Run Code Online (Sandbox Code Playgroud)

路由表确实缺少默认路由:

# ip -6 route
2001:DB8:1234:1234:1234:1234:1234:1234 dev eth0  proto kernel  metric 256
fe80::/64 dev eth0  proto kernel  metric 256  mtu 9001
Run Code Online (Sandbox Code Playgroud)

手动添加默认的 v6 路由,通过 …

ipv6 amazon-web-services amazon-vpc dhcpv6

7
推荐指数
1
解决办法
3449
查看次数

仅 IPv6 服务器 PXE 配置

我们目前正在为仅 IPv6 网络部署做准备,并且正在努力寻找唯一的服务器标识。

在我们之前的设置中,我们使用 mac 地址作为服务器的主要标识。然后我们就能够始终为服务器分配相同的地址。

例如,我们需要从 wheezy 升级到 jessie,而不是 apt-get dist-upgrade,我们重新安装了服务器。当我们使用 puppet 进行配置时,这一切都花了 15 分钟,服务器已启动、全新并使用相同的 IP 和 DNS 名称再次完美运行。

不幸的是,我们目前无法通过 IPv6 实现这一点,因为每个操作系统(Linux、PXEBoot 内核等)的服务器都有不同的 DUID,这意味着每个操作系统都有不同的 IPv6 地址。

在我们的设置中,我们使用 mikrotik 作为 DHCP 服务器。

你会如何处理这样的情况?

更新 #1:目前似乎不可能:

我能够为 isc-dhcp-server找到一个补丁(http://alter.org.ua/soft/fbsd/isc_dhcpd/)来解决这个问题,但这不是全局解决方案,我不能在 cisco 上应用它或 mikrotik 设备。

更新 #2:我们决定离开 mikrotik 平台,因为我们已经超出了这个平台的能力。我们目前正在准备基于 linux 的新“基础设施”服务器,它将运行https://dhcpy6d.ifw-dresden.de/(除了其他服务,例如用于 ipmi 的 openvpn,...)。

ipv6 mikrotik pxe-boot dhcpv6

5
推荐指数
0
解决办法
1275
查看次数

使用 DHCPv6 和 radvd 时如何获取 /64 作为前缀长度?

在我们的网络课程中,我们被要求在虚拟机中设置 DHCPv6 服务器。我选择在运行 Ubuntu Desktop 16.04 和 Lubuntu 14.04 的虚拟机(在 VMware 上)上工作,作为测试客户端,并为特定 LAN 设置网络适配器。我首先将 isc-dhcp-server 配置为在这篇文章中描述的 IPv6 功能,最后我得到了一个正常运行的 dhcpv6,其中包含一个包含以下行的配置文件(/etc/dhcp/dhcpd6.conf):

ddns-update-style none;
default-lease-time 100;
max-lease-time 200;
subnet6 2001:4340:4532:0400::/64{
   range6  2001:4340:4532:0400::0004 2001:4340:4532:0400::0006;
}
Run Code Online (Sandbox Code Playgroud)

我还对 init 脚本进行了必要的更改,以设置 .conf、.pid、租用文件并使用静态地址配置接口 ens33,如下所示:静态 ip set through gui

问题是客户端正在接收 /128 地址。

经过一番研究,我发现 DHCPv6 服务器不提供有关前缀长度的信息,并且必须使用路由器广告进行广播。所以,我在同一个 VM 上安装了 radvd,启用转发,禁用 ufw 并使用以下配置文件对其进行配置:

interface ens33{
#this is important :
AdvSendAdvert on;
MaxRtrAdvInterval 6;
MinRtrAdvInterval 4;
#this is important to :
AdvManagedFlag on;
AdvOtherConfigFlag off;
prefix 2001:4340:4532:400::/64
{

  AdvOnLink on; …
Run Code Online (Sandbox Code Playgroud)

virtual-machines ipv6 radvd dhcpv6 ubuntu-16.04

5
推荐指数
0
解决办法
820
查看次数

为什么在 Ubuntu 中通过 DHCPv6 分配了 /128 IPv6 地址?

我正在 Ubuntu 中测试 IPv6 的实现。我的 Ubuntu linux 客户端正确地从服务器获取 RA 并在广告前缀中配置一个地址。接下来,它通过具有/128掩码的DHCP 获取另一个地址。

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether f8:a9:63:0c:3c:cb brd ff:ff:ff:ff:ff:ff
    inet6 2001:xxxx:1f15:yyyy::9/128 scope global 
       valid_lft forever preferred_lft forever
    inet6 2001:xxxx:1f15:yyyy:faa9:63ff:fe0c:3ccb/64 scope global dynamic 
       valid_lft 82162sec preferred_lft 10162sec
    inet6 fe80::faa9:63ff:fe0c:3ccb/64 scope link 
       valid_lft forever preferred_lft forever
Run Code Online (Sandbox Code Playgroud)

/128对这个地址的掩码很感兴趣,这意味着点对点链接。为什么是面具/128而不是,说/64

这是 DHCPv6 的正常行为还是与我的 DHCP 服务器的配置有关?

ipv6 ubuntu-14.04 dhcpv6

5
推荐指数
1
解决办法
4197
查看次数

如何在 Amazon EC2 上的 Fedora 28 上启用 IPv6

我似乎无法在 Amazon EC2 的 Fedora 28 中使用 IPv6(因此使用 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
Run Code Online (Sandbox Code Playgroud)

生成的/etc/sysconfig/network是:

NOZEROCONF=yes
DEVTIMEOUT=10

# Created by cloud-init on instance boot automatically, do not edit.
#
NETWORKING=yes
Run Code Online (Sandbox Code Playgroud)

生成的/etc/sysconfig/network-scripts/ifcfg-eth0是:

# Created by cloud-init on instance boot automatically, do not edit.
# …
Run Code Online (Sandbox Code Playgroud)

fedora ipv6 amazon-ec2 cloud-init dhcpv6

5
推荐指数
1
解决办法
872
查看次数

IPv6客户端如何找到NTP、SIP等服务器

对于 IPv6,我知道客户端可以使用 SLAAC 无状态地获取地址,或者使用 DHCPv6 有状态地获取地址(尽管我听说 Android 不支持通过 DHCPv6 分配地址)。

我的问题是,对于通过 SLAAC 配置其 IPv6 地址的客户端,网络将其他网络配置推送给他们的方式是什么?他们能否通过路由器广告获得此类配置,或者网络还必须为客户端部署 DHCPv6 以获取这些额外信息(但不能获取其 IPv6 地址)?例如:

  • DNS服务器
  • NTP服务器
  • SIP服务器
    • 客户端是否需要使用 DHCPv6选项 21 或 22?是否有任何路由器广告等价物?
  • 供应商特定协议
    • DHCPv6 具有用于供应商特定信息的选项 16选项 17,如果 DHCPv6 管理员已对其进行配置,则客户端可以使用这些信息在网络上查找特定于供应商的服务器。是否有任何路由器广告等效?

如果 DHCPv6 是获取此类服务器信息的唯一方法,那么将客户端配置为通过 SLAAC 获取其地址,然后通过 DHCPv6 获取此额外配置是否合理直接?

ndp dhcpv6

5
推荐指数
1
解决办法
719
查看次数

如何从 DHCPv6 服务器获取正确的前缀长度?

我有两台装有 Ubuntu Server 20.04 的虚拟机。这些虚拟机之一是 DHCPv6 服务器,另一个是客户端。我可以在客户端上设置 IPv6 地址,但我无法与该地址进行 ping 操作。ip -6 route显示此地址,但前缀长度为 128。我希望前缀长度等于 64,与服务器 IP 地址相同。当我将从服务器获得的客户端 IP 地址添加到我的路由表中,但前缀长度等于 64 时,我可以在我的虚拟机之间进行 ping 操作。

这是我/etc/dhcp/dhcpd6.conf在服务器上的文件:

default-lease-time 2592000;
preferred-lifetime 604800;
option dhcp-renewal-time 3600;
option dhcp-rebinding-time 7200;
allow leasequery;
option dhcp6.name-servers 3ffe:501:ffff:100:200:ff:fe00:3f3e;
option dhcp6.domain-search "test.example.com","example.com";
option dhcp6.info-refresh-time 21600;

authoritative:
subnet6 fdaa:a:a:a::/64 {
   range6 fdaa:a:a:a::100 fdaa:a:a:a::199;
}
Run Code Online (Sandbox Code Playgroud)

最后三行是我加的。

这是我/etc/netplan/00-installer-config.yaml在客户端上的文件:

network:
   ethernets:
      ens3:
         dhcp4: false
         dhcp6: true
   version: 2
Run Code Online (Sandbox Code Playgroud)

预先感谢您的任何帮助。

linux ubuntu ipv6 qemu dhcpv6

4
推荐指数
1
解决办法
695
查看次数

当 DHCP 禁用时,Debian 8 resolv.conf 被 IPv6 自动配置/DHCP 覆盖

我最近在启用 IPv6 DHCP 的网络上安装了 Debian 8。尽管所有 IPv6 DHCP 均已禁用、IPv6 自动配置已禁用且不存在 dhclient 进程,但 /etc/resolv.conf 仍不断被 IPv6 DHCP 整体覆盖。如果我修改路由器上的 IPv6 DHCP DNS 服务器,它们会在 /etc/resolv.conf 中快速更新。以下是正确的:

  • resolvconf 不在系统上
  • 系统上没有网络管理器
  • net.ipv6.conf.all.autoconf=0IPv6 的自动配置已被和net.ipv6.conf.all.accept_ra=0AND强制禁用net.ipv6.conf.eth0.autoconf=0,因为由于某种原因前两者不够用。
  • 没有 dhclient 进程处于活动状态
  • Auditd 返回某个 shell 的 PID,当查找 resolv.conf 的编辑时,该 shell 会立即终止。可能需要加强我的堆栈跟踪游戏。
  • dns-nameserveripv4 和 v6中的条目/etc/network/interfaces完全被忽略

我更喜欢一个不是“完全禁用 IPv6”的答案,尽管我已经接近这一点了(只要说这是一台物理机而不是虚拟机,我早就把它扔出窗外了) 。

编辑:请注意 sysctl 中的 net.ipv6.conf.all.disable_ipv6=0 修复了此问题,但看起来 resolv.conf 现在会定期完全清除,从而破坏 DNS。

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0 …
Run Code Online (Sandbox Code Playgroud)

dhcp debian ipv6 dhcpv6 debian-jessie

4
推荐指数
1
解决办法
7349
查看次数

如果不允许解释 DUID,DHCPv6 服务器如何为客户端分配固定的 IPv6 地址?

根据RFC3315

每个 DHCP 客户端和服务器都有一个 DUID。DHCP 服务器使用 DUID 来标识客户端以选择配置参数以及将 IA 与客户端关联。DHCP 客户端在需要识别服务器的消息中使用 DUID 来识别服务器。

[...]

客户端和服务器必须将 DUID 视为不透明值,并且必须仅比较 DUID 是否相等。客户端和服务器不得以任何其他方式解释 DUID

对于 IPv4,DHCP 服务器根据 MA​​C 地址等为客户端分配固定地址是很常见的。那么对于 IPv6,DHCPv6 服务器如何分配固定的 IPv6 地址呢?

ipv6 rfc dhcpv6

3
推荐指数
1
解决办法
638
查看次数

IPv6 SLAAC 的固定大小

我对 IPv6 SLAAC 的困惑在于路由器提供网络前缀,而主机使用 EUI-64 生成自己的部分,这意味着它始终是 64 位地址。

现在,SLAAC 是路由器广告的一部分,这是获取 IPv6 地址的“默认网关”的唯一方法,因为我已经读到 DHCPv6 不提供网关信息。只有路由器广告将网关信息提供给主机。

现在,问题是,如果我想要在我的组织中使用 /96 或 /112 或 /116 地址的较小子网,如果我想要动态提供地址,我该如何解决这个问题?因为,如果我使用 SLAAC,那么我需要将主机部分保留为 /64,如果我使用 DHCPv6,我将不会获得我的主机的网关信息。

在此先感谢您的帮助。

ipv6 gateway dhcpv6

2
推荐指数
1
解决办法
1059
查看次数