使用 ISC DHCP 和 RADVD 的简单状态 DHCPv6。不起作用?

使用 ISC DHCP 和 RADVD 的简单状态 DHCPv6。不起作用?

我正在尝试在 Linux 机器上使用 ISC DHCPv6 设置一个简单的 IPv6 网络。

这是我的 dhcpd6.conf:

subnet6 beef:fade::/112 { 
   max-lease-time 3600;
   range6 beef:fade::100 beef:fade::fffe;
}

dhcpv6 服务器工作并为指定范围内的连接主机分配地址,但是,连接的设备无法互相 ping 通或 ping dhcpv6 服务器,因为它们使用 128 作为网络掩码。

在网上查找后,我发现这是由于缺少 RA 造成的。因此,我下载并启动了 RADVD,启用了 ipv6 转发,并禁用了防火墙。这是我的 radvd.conf:

interface enp1s0
{
    AdvSendAdvert on;
    MinRtrAdvInterval 3;
    MaxRtrAdvInterval 10;
    prefix beef:fade::/112
    {
        AdvOnLink on;
        AdvAutonomous off;
    };

};

但这会导致 radvd 说:enp1s0 prefix length should be: 64。但我不想要 64 长度的前缀。我希望能够根据需要将其设置为几乎任何长度。

我该如何做呢?我唯一的要求是必须使用 ISC DHCPv6 实现。

另外,假设我可以让它工作。当在 DHCPv6 服务器上启用防火墙时,我必须向防火墙添加哪些规则才能使其工作。

答案1

显然enp1s0 prefix length should be: 64这只是一个警告,而不是问题的原因。

在我的特定情况下,此方法不起作用的原因是客户端不接受 RA。要在 Linux 机器上接受 RA,您必须设置/proc/sys/net/ipv6/conf/eth0/accept_ra12

答案2

我使用 debian 11。根据我的经验,您不需要对 ipv6 使用全状态寻址。更重要的是使用 ISP 提供给您的路由广告,您不需要 dhcpv6。我的连接是 pppd。我现在明白了,对于 ipv6,我不需要在 /etc/network/interfaces 中进行任何设置:

auto dsl-provider
iface dsl-provider inet ppp
pre-up /bin/ip link set enp2s0 up # line maintained by pppoeconf
provider dsl-provider

allow-hotplug enp3s0
iface enp3s0 inet static
    address 192.168.1.1/24

allow-hotplug enp4s0
iface enp4s0 inet static
    address 192.168.2.1/24

allow-hotplug enp5s0
iface enp5s0 inet static
    address 192.168.3.1/24

为了在我的网络中提高 ip6,我使用 WIDE-DHCPV6 并在 /etc/wide-dhcpv6/dhcp6c.conf 中进行以下简单设置:

interface ppp0 {
        request domain-name-servers;
        request domain-name;
        send ia-na 1;
        send ia-pd 1;
};

id-assoc na 1 {
};

id-assoc pd 1{
        prefix ::/56 infinity;
        prefix-interface enp3s0 {
                sla-id 1;
                sla-len 8;
        };
        prefix-interface enp4s0 {
                sla-id 2;
                sla-len 8;
        };
        prefix-interface enp5s0 {
                sla-id 3;
                sla-len 8;
        };
};

参考:https://major.io/2015/09/11/time-warner-road-runner-linux-and-large-ipv6-subnets/ 现在我的网络如下所示:

root@srv1:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:e2:69:59:33:6a brd ff:ff:ff:ff:ff:ff
    inet6 fe80::2e2:69ff:fe59:336a/64 scope link
       valid_lft forever preferred_lft forever
3: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 00:e2:69:59:33:6b brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global enp3s0
       valid_lft forever preferred_lft forever
    inet6 2a02:2f0e:d114:4b01:2e2:69ff:fe59:336b/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::2e2:69ff:fe59:336b/64 scope link
       valid_lft forever preferred_lft forever
4: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:e2:69:59:33:6c brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.1/24 brd 192.168.2.255 scope global enp4s0
       valid_lft forever preferred_lft forever
    inet6 2a02:2f0e:d114:4b02:2e2:69ff:fe59:336c/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::2e2:69ff:fe59:336c/64 scope link
       valid_lft forever preferred_lft forever
5: enp5s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 00:e2:69:59:33:6d brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.1/24 brd 192.168.3.255 scope global enp5s0
       valid_lft forever preferred_lft forever
    inet6 2a02:2f0e:d114:4b03:2e2:69ff:fe59:336d/64 scope global tentative
       valid_lft forever preferred_lft forever
8: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN group default qlen 3
    link/ppp
    inet 188.27.50.191 peer 10.0.0.1/32 scope global ppp0
       valid_lft forever preferred_lft forever
    inet6 2a02:2f0e:d1ff:ffff::bc1b:32bf/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::bc1b:32bf peer fe80::1/128 scope link
       valid_lft forever preferred_lft forever

不要忘记 /etc/default/wide-dhcpv6-client。接下来您需要 RADVD 服务,该服务为您的整个网络提供所需的一切(/etc/radvd.conf):

interface enp3s0 {
  AdvSendAdvert on;
  MaxRtrAdvInterval 30;

  prefix ::/64 {
    AdvOnLink on;
    AdvAutonomous on;
    AdvRouterAddr on;
  };
  RDNSS 2a02:2f0c:8000:3::1 2a02:2f0c:8000:8::1 {
    AdvRDNSSLifetime 30;
  };
};

interface enp4s0 {
  AdvSendAdvert on;
  MaxRtrAdvInterval 30;

  prefix ::/64 {
    AdvOnLink on;
    AdvAutonomous on;
    AdvRouterAddr on;
  };
  RDNSS 2a02:2f0c:8000:3::1 2a02:2f0c:8000:8::1 {
    AdvRDNSSLifetime 30;
  };
};

interface enp5s0 {
  AdvSendAdvert on;
  MaxRtrAdvInterval 30;

  prefix ::/64 {
    AdvOnLink on;
    AdvAutonomous on;
    AdvRouterAddr on;
  };
  RDNSS 2a02:2f0c:8000:3::1 2a02:2f0c:8000:8::1 {
    AdvRDNSSLifetime 30;
  };
};

使用您自己的公共 ipv6 DNS。现在!!!!我个人发现 RADVDUMP。这是一项艺术,它向您展示了您需要的所有设置,包括来自您的 ISP 的前缀。我认为,使用一些脚本,您可以将该前缀与 ISC-DHCPV6-SERVER 等 dhcpv6 服务器一起使用。尽情享受,并快乐地使用 google。

相关内容