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

IPv6 PPP Link не может пересылать объявления маршрутизатора в локальную сеть

Сервер Debian с eth0, eth1. eth2, ppp0 устройства:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether xx:yy:zz:yy:xx:yy brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether xx:yy:zz:yy:xx:yy brd ff:ff:ff:ff:ff:ff
4: eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether xx:yy:zz:yy:xx:yy brd ff:ff:ff:ff:ff:ff
63: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN qlen 3
    link/ppp

пересылка включена везде:

/proc/sys/net/ipv6/conf ~
  all/forwarding=1  default/forwarding=1
 eth0/forwarding=1     eth1/forwarding=1
 eth2/forwarding=1     ppp0/forwarding=1

и autoconf тоже активирован:

/proc/sys/net/ipv6/conf ~
  all/autoconf=1     default/autoconf=1
 eth0/autoconf=0        eth1/autoconf=1
 eth2/autoconf=1        ppp0/autoconf=1

дальше РА (= Объявление маршрутизатора) принимается на любом устройстве, кроме настройки accept_ra = 2 по крайней мере ppp0 и eth1:

/proc/sys/net/ipv6/conf ~
  all/accept_ra=1                              default/accept_ra=1           
 eth0/accept_ra=1                                 eth1/accept_ra=2           
 eth2/accept_ra=0                                   lo/accept_ra=1           
 ppp0/accept_ra=2

PPP-соединение установлено успешно, ipv6 :: мертвые: говядина опция установлена ​​в / и т. д. / ppp / peer / myProvider файл конфигурации:

63: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qlen 3
    inet6 2003:42:e67f:d3ca:6105:155:f2b3:71f0/64 scope global temporary dynamic 
       valid_lft 14266sec preferred_lft 1666sec
    inet6 2003:42:e67f:d3ca::dead:beef/64 scope global dynamic 
       valid_lft 14266sec preferred_lft 1666sec
    inet6 fe80::dead:beef/10 scope link 
       valid_lft forever preferred_lft forever

и устанавливается маршрут по умолчанию до локального для ссылки адреса провайдера:

2003:42:e67f:d3ca::/64 dev ppp0  proto kernel  metric 256  expires 13559sec
fe80::/64 dev ppp0  proto kernel  metric 256 
fe80::/10 dev ppp0  metric 1 
fe80::/10 dev eth1  proto kernel  metric 256 
fe80::/10 dev ppp0  proto kernel  metric 256 
fe80::/10 dev eth0  metric 1024
default via fe80::90:1a10:1b2:b780 dev ppp0  proto kernel  metric 1024  expires 1789sec

Публика 2003:42:e67f:d3ca::/64 префикс имеет маршрут к ppp0 устройство. радвд установлен и запущен, радвдамп показывает ppp0 Отправка ссылки IPv6 РА

interface ppp0
{
    AdvSendAdvert on;
    # Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
    AdvManagedFlag off;
    AdvOtherConfigFlag on;
    AdvReachableTime 0;
    AdvRetransTimer 0;
    AdvCurHopLimit 0;
    AdvDefaultLifetime 1800;
    AdvHomeAgentFlag off;
    AdvDefaultPreference medium;
    AdvLinkMTU 1492;

    prefix 2003:42:e67f:d3ca::/64
    {
        AdvValidLifetime 14400;
        AdvPreferredLifetime 1800;
        AdvOnLink on;
        AdvAutonomous on;
        AdvRouterAddr off;
    }; # End of prefix definition

}; # End of interface definition

С хоста сервера я могу ping6 хост из Интернета успешно. Теперь, когда я пытаюсь заставить РА запросив маршрутизатор для ppp0 я получил:

Soliciting ff02::2 (ff02::2) on ppp0...
Hop limit                 :    undefined (      0x00)
Stateful address conf.    :           No
Stateful other conf.      :          Yes
Router preference         :       medium
Router lifetime           :         1800 (0x00000708) seconds
Reachable time            :  unspecified (0x00000000)
Retransmit time           :  unspecified (0x00000000)
 MTU                      :         1492 bytes (valid)
 Prefix                   : 2003:42:e67f:d3ca::/64
  Valid time              :        14400 (0x00003840) seconds
  Pref. time              :         1800 (0x00000708) seconds

Я ожидал, что все узлы на eth1 настроить SLAAC, но когда я пытаюсь запросить eth1 я получил:

Soliciting ff02::2 (ff02::2) on eth1...
Timed out.
Timed out.
Timed out.
No response.

Как-то пересылка РА пакеты из ppp0 к eth1 (и на любое другое устройство) вообще не работает. Зачем? Насколько я понимаю, любой маршрутизатор с модемом DSL должен каким-то образом пересылать РА от внутреннего модема к подключенным физическим портам LAN, иначе любой подключенный к нему хост не получит IPv6-адрес, верно? В чем разница между маршрутизатором и моим debian box? Буду признателен за любую подсказку.

Рекламные объявления маршрутизатора не должны пересылаться. Поэтому, когда вы обнаружите, что они не пересылаются, по крайней мере, эта часть работает так, как задумано.

Предполагается, что на вашем маршрутизаторе будет запущен демон рекламы вашего собственного маршрутизатора, чтобы он рекламировал себя в локальных сетях.

У вас должно быть три отдельных префикса / 64 для трех локальных сетей. Итак, вам нужен маршрутизированный / 62 или короче от вашего интернет-провайдера. Это не проблема, потому что ваш интернет-провайдер должен предоставить вам более короткий префикс для этой цели (насколько короткий зависит от того, кого вы спрашиваете, изначально это был / 48, но некоторые будут выдавать только / 56).

Если по ссылке ppp доступен DHCPv6-сервер, то вы можете отправить DHCPv6-запрос с просьбой делегировать вам префикс. В противном случае вам, возможно, придется поговорить с человеком.

Структура для такой настройки IP обычно:

  • Вы получаете RA через ppp0, поэтому ваша система получает маршрут по умолчанию и, возможно, префикс
  • Вы запускаете в системе клиент DHCPv6-PD для запроса маршрутизируемого префикса у провайдера.
  • Вы используете / 64s из этого префикса для нумерации другого интерфейса
  • Вы используете radvd для отправки RA на ваши локальные интерфейсы, чтобы другие системы знали, как настроена ваша сеть ipv6.
  • Вы не отправляете RA на ppp0, потому что вы не маршрутизатор для своего интернет-провайдера, его сторона - маршрутизатор для вас