Назад | Перейти на главную страницу

Конфигурация Debian IPv6 не применяется к одному сетевому интерфейсу

Итак, у меня работает система Debian Buster radvd который также имеет /etc/network/interfaces и по какой-то причине только мой интерфейс wlan0 имеет IPv6-адрес из моего выделенного / 64, а не интерфейс eth0, несмотря на отсутствие видимых различий в конфигурации.

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:96:8f:f0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::ba27:ebff:fe96:8ff0/64 scope link 
       valid_lft forever preferred_lft forever

4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:c3:da:a5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.84.1/24 brd 192.168.84.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 2001:XXXX:XXXX:XX81::1/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::ba27:ebff:fec3:daa5/64 scope link 
       valid_lft forever preferred_lft forever

Это мое radvd.cond...

interface eth0
{
        AdvSendAdvert on;
        prefix 2001:XXXX:XXXX:XX00::1/64
        {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr on;
        };
};

interface wlan0
{
        AdvSendAdvert on;
        prefix 2001:XXXX:XXXX:XX81::1/64
        {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr on;
        };
};

Вот это /etc/network/interfaces...

iface lo inet6 loopback

auto eth0

iface eth0 inet static
        address 192.168.1.1
        netmask 255.255.255.0
        dns-nameservers 192.168.1.7 192.168.1.8
        up route add -net 192.168.84.0 netmask 255.255.255.0 gw 192.168.84.1
        down route del net 192.168.84.0 netmask 255.255.255.0 gw 192.168.84.1
iface eth0 inet6 static
        address 2001:XXXX:XXXX:XX00::1/64

auto wlan0

iface wlan0 inet static
        address 192.168.84.1
        netmask 255.255.255.0
        up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
        up route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
iface wlan0 inet6 static
        address 2001:XXXX:XXXX:XX81::1/64

allow-hotplug eth1
iface eth1 inet manual

И наконец мой sysctl -a значения для wlan0 и eth0 ...

net.ipv6.conf.eth0.accept_dad = 1
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.eth0.accept_ra_defrtr = 1
net.ipv6.conf.eth0.accept_ra_from_local = 0
net.ipv6.conf.eth0.accept_ra_min_hop_limit = 1
net.ipv6.conf.eth0.accept_ra_mtu = 1
net.ipv6.conf.eth0.accept_ra_pinfo = 1
net.ipv6.conf.eth0.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.eth0.accept_ra_rt_info_min_plen = 0
net.ipv6.conf.eth0.accept_ra_rtr_pref = 1
net.ipv6.conf.eth0.accept_redirects = 1
net.ipv6.conf.eth0.accept_source_route = 0
net.ipv6.conf.eth0.addr_gen_mode = 0
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth0.dad_transmits = 1
net.ipv6.conf.eth0.disable_ipv6 = 0
net.ipv6.conf.eth0.disable_policy = 0
net.ipv6.conf.eth0.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.eth0.drop_unsolicited_na = 0
net.ipv6.conf.eth0.enhanced_dad = 1
net.ipv6.conf.eth0.force_mld_version = 0
net.ipv6.conf.eth0.force_tllao = 0
net.ipv6.conf.eth0.forwarding = 2
net.ipv6.conf.eth0.hop_limit = 64
net.ipv6.conf.eth0.ignore_routes_with_linkdown = 0
net.ipv6.conf.eth0.keep_addr_on_down = 0
net.ipv6.conf.eth0.max_addresses = 16
net.ipv6.conf.eth0.max_desync_factor = 600
net.ipv6.conf.eth0.mc_forwarding = 0
net.ipv6.conf.eth0.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.eth0.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.eth0.mtu = 1500
net.ipv6.conf.eth0.ndisc_notify = 0
net.ipv6.conf.eth0.ndisc_tclass = 0
net.ipv6.conf.eth0.proxy_ndp = 0
net.ipv6.conf.eth0.regen_max_retry = 3
net.ipv6.conf.eth0.router_probe_interval = 60
net.ipv6.conf.eth0.router_solicitation_delay = 1
net.ipv6.conf.eth0.router_solicitation_interval = 4
net.ipv6.conf.eth0.router_solicitation_max_interval = 3600
net.ipv6.conf.eth0.router_solicitations = -1
net.ipv6.conf.eth0.seg6_enabled = 0
net.ipv6.conf.eth0.suppress_frag_ndisc = 1
net.ipv6.conf.eth0.temp_prefered_lft = 86400
net.ipv6.conf.eth0.temp_valid_lft = 604800
net.ipv6.conf.eth0.use_oif_addrs_only = 0
net.ipv6.conf.eth0.use_tempaddr = 0

Вот значения sysctl интерфейса wlan0 ...

net.ipv6.conf.wlan0.accept_dad = 1
net.ipv6.conf.wlan0.accept_ra = 1
net.ipv6.conf.wlan0.accept_ra_defrtr = 1
net.ipv6.conf.wlan0.accept_ra_from_local = 0
net.ipv6.conf.wlan0.accept_ra_min_hop_limit = 1
net.ipv6.conf.wlan0.accept_ra_mtu = 1
net.ipv6.conf.wlan0.accept_ra_pinfo = 1
net.ipv6.conf.wlan0.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.wlan0.accept_ra_rt_info_min_plen = 0
net.ipv6.conf.wlan0.accept_ra_rtr_pref = 1
net.ipv6.conf.wlan0.accept_redirects = 1
net.ipv6.conf.wlan0.accept_source_route = 0
net.ipv6.conf.wlan0.addr_gen_mode = 0
net.ipv6.conf.wlan0.autoconf = 0
net.ipv6.conf.wlan0.dad_transmits = 1
net.ipv6.conf.wlan0.disable_ipv6 = 0
net.ipv6.conf.wlan0.disable_policy = 0
net.ipv6.conf.wlan0.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.wlan0.drop_unsolicited_na = 0
net.ipv6.conf.wlan0.enhanced_dad = 1
net.ipv6.conf.wlan0.force_mld_version = 0
net.ipv6.conf.wlan0.force_tllao = 0
net.ipv6.conf.wlan0.forwarding = 2
net.ipv6.conf.wlan0.hop_limit = 64
net.ipv6.conf.wlan0.ignore_routes_with_linkdown = 0
net.ipv6.conf.wlan0.keep_addr_on_down = 0
net.ipv6.conf.wlan0.max_addresses = 16
net.ipv6.conf.wlan0.max_desync_factor = 600
net.ipv6.conf.wlan0.mc_forwarding = 0
net.ipv6.conf.wlan0.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.wlan0.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.wlan0.mtu = 1500
net.ipv6.conf.wlan0.ndisc_notify = 0
net.ipv6.conf.wlan0.ndisc_tclass = 0
net.ipv6.conf.wlan0.proxy_ndp = 0
net.ipv6.conf.wlan0.regen_max_retry = 3
net.ipv6.conf.wlan0.router_probe_interval = 60
net.ipv6.conf.wlan0.router_solicitation_delay = 1
net.ipv6.conf.wlan0.router_solicitation_interval = 4
net.ipv6.conf.wlan0.router_solicitation_max_interval = 3600
net.ipv6.conf.wlan0.router_solicitations = -1
net.ipv6.conf.wlan0.seg6_enabled = 0
net.ipv6.conf.wlan0.suppress_frag_ndisc = 1
net.ipv6.conf.wlan0.temp_prefered_lft = 86400
net.ipv6.conf.wlan0.temp_valid_lft = 604800
net.ipv6.conf.wlan0.use_oif_addrs_only = 0
net.ipv6.conf.wlan0.use_tempaddr = 2

Интерфейс wlan0 выглядит примерно так же, хотя net.ipv6.conf.eth0.autoconf был установлен на 1 хотя я проверил, и он определенно не установлен sysctl.conf или sysctl.d либо.

Если инет настройки не работают с ifupdown, они предотвратят inet6 настройки, которые нужно применить.

Когда eth0 запускается впервые, вероятно, wlan0 еще не был настроен и IP-адрес не настроен. Таким образом, дополнительные (и, вероятно, даже не необходимые) настройки с маршрутом через IP-адрес wlan0 не работают. Это приводит к тому, что eth0 не может быть запущен (логично: с точки зрения ifupdown. Он был фактически запущен), а раздел inet6 не проходит.

Итак: удалите все лишнее up route add/del записи. Если вы действительно не хотите их удалять, добавьте дополнительный || true (или 2>/dev/null || :) в конце каждого, не позволяя этим командам когда-либо вывести из строя всю настройку.