1

У меня есть коробка Ubuntu 14.04, которая действует как мой домашний маршрутизатор. У меня есть IPv6 /64, делегированный моим провайдером, и я использую RA и WIDE DHCPv6 клиент для настройки IPv6. Все работает хорошо, за исключением того, что не установлен маршрут по умолчанию. Если я использую radvdump чтобы увидеть пакеты RA на моем WAN-интерфейсе, и использую его для установки маршрута по умолчанию вручную, все работает отлично.

Я мог (и в настоящее время делаю это) просто поместить эту ручную спецификацию маршрута в качестве команды up в /etc/network/interfaces для интерфейса WAN, но это не идеально - похоже, что каждый раз, когда мой провайдер выполняет обслуживание, адрес изменения маршрутизатора, и я должен перенастроить его снова. Я хотел бы получить маршрут от RA, но я просто не могу получить этот набор. Я что-то пропустил?

eth1 - это мой интерфейс WAN, а eth0 - это локальная сеть.

настройки sysctl

root@nix $ grep ipv6 /etc/sysctl.conf
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.eth1.accept_ra=2         # The WAN interface
net.ipv6.conf.eth1.accept_ra_defrtr=1
net.ipv6.conf.eth0.accept_ra=0         # The LAN interface
net.ipv6.conf.all.accept_redirects = 0

Широкий конфиг

interface eth1 # WAN
{
  send ia-na 1;
  send ia-pd 1;
  request domain-name-servers;
  request domain-name;

  script "/etc/wide-dhcpv6/dhcp6c-script"; # does resolvconf work
};

id-assoc pd 1 {
  prefix-interface eth0 { # LAN
    sla-id 0;
        ifid 1;
        sla-len 0;
  };
};

id-assoc na 1 {
};

Radvd config

interface eth0
{
        AdvManangedFlag off;
        AdvOtherConfigFlag off;
        AdvSendAdvert on;
        AdvLinkMTU 1280;
        prefix ::/64
        {
                AdvOnLink on;
                AdvAutonomous on;
        };
};

/ и т.д. / сеть / интерфейсы

# The loopback network interface
auto lo
iface lo inet loopback

# The LAN interface
auto eth0
iface eth0 inet static
        address 172.20.0.1
        netmask 255.255.255.0

# The WAN interface
auto eth1
iface eth1 inet dhcp
iface eth1 inet6 auto
        # My current workaround:
        up ip -6 route add default via fe80::21b:edff:feb2:d481 dev eth1

Любая помощь будет оценена!

1 ответ1

2

Linux отключает accept_ra когда включена пересылка. Чтобы включить его в своем вышестоящем интерфейсе (скажем, eth0), вы можете использовать net.ipv6.conf.eth0.accept_ra = 2 . Это заставляет интерфейс принимать объявления маршрутизатора, даже если включена пересылка.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .