1
       __
     _/  \____
    /         \__
   /  Internet   \
   \_____________/
         |
    ------------
    + Router 1 +
    ------------
         |
    ------------
    + Router 2 +
    -------------
         |
        ...
  Internal Network
        ...

Я пытаюсь изучить ipv6, создав 6in4 туннель в моей домашней сети с помощью Hurricane Electric. Моя физическая установка соответствует иллюстрации выше.

Я прочитал несколько руководств по ipv6 для начинающих и различные учебные пособия (особенно: 1, 2) и собрал воедино информацию о том, как выполнить маршрутизацию.

Маршрутизаторы 1 и 2 - довольно простые устройства с установленным busybox (хотя Маршрутизатор 2 несколько более эффективен, чем Маршрутизатор 1).

На маршрутизаторе 1 я выполнил следующие команды:

HURR_ELEC_IPV4_SERVER=A.B.C.D
MY_WAN_IP_ADDR=E.F.G.H
HURR_ELEC_IPV6_CLIENT=XXXX:YYYY:ZZZZ:WWWW::2
HURR_ELEC_IPV6_SERVER=XXXX:YYYY:ZZZZ:WWWW::1
HURR_ELEC_IPV6_ROUTED_48=XXXX:YYYY:NNNN

ip tunnel add he-ipv6 mode sit remote $HURR_ELEC_IPV4_SERVER local $MY_WAN_IP_ADDR ttl 255
ip link set he-ipv6 up
ip addr add $HURR_ELEC_IPV6_CLIENT/64 dev he-ipv6
ip route add default via $HURR_ELEC_IPV6_SERVER dev he-ipv6
ip addr add $HURR_ELEC_IPV6_ROUTED_48::1/64 dev br0

#in my /var/radvd.conf file:

interface br0 {
  AdvSendAdvert on;
  AdvManagedFlag on;
  AdvOtherConfigFlag on;
  AdvLinkMTU 0;
  MinRtrAdvInterval 20;
  MaxRtrAdvInterval 60;
  AdvDefaultLifetime 0;

  prefix $HURR_ELEC_IPV6_ROUTED_48::/64
  {
  };
};

На маршрутизаторе 1 я завершаю процесс radvd, а затем вручную перезапускаю его. На этом этапе маршрутизатор 1 может выполнить ping6 ipv6.google.com и получить результат:

/ # ping6 ipv6.google.com
resolve success!
PING ipv6.google.com(2607:f8b0:4004:811::200e) 56 data bytes
64 bytes from 2607:f8b0:4004:811::200e: icmp_seq=1 ttl=57 time=18.3 ms
64 bytes from 2607:f8b0:4004:811::200e: icmp_seq=2 ttl=57 time=13.4 ms
64 bytes from 2607:f8b0:4004:811::200e: icmp_seq=3 ttl=57 time=17.7 ms
64 bytes from 2607:f8b0:4004:811::200e: icmp_seq=4 ttl=57 time=11.6 ms
...

Маршрутизатор 2 - это маршрутизатор Netgear, который имеет опцию Auto Config . При использовании этого режима он успешно получает IPv6-адрес от маршрутизатора 1. После Auto Config соответствующие IP-адреса и таблица маршрутизации ipv6 выглядят так:

user@Router2:/# ip -6 addr show
...
9: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    inet6 fe80::KKKK:LLLL:MMMM:OOOO/64 scope link
       valid_lft forever preferred_lft forever
10: brwan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    inet6 XXXX:YYYY:NNNN:0:KKKK:LLLL:MMMM:JJJJ/64 scope global dynamic
       valid_lft 2591980sec preferred_lft 604780sec
    inet6 fe80::KKKK:LLLL:MMMM:JJJJ/64 scope link
       valid_lft forever preferred_lft forever
...

user@Router2:/# ip -6 route show
XXXX:YYYY:NNNN::/64 dev brwan  proto kernel  metric 256  expires 2591969sec
...
fe80::/64 dev brwan  proto kernel  metric 256
fe80::/64 dev br0  proto kernel  metric 256

Маршрутизатор 2 теперь может пропинговать интерфейс br0 маршрутизатора 1:

user@Router2:/# ping6 XXXX:YYYY:NNNN::1
PING XXXX:YYYY:NNNN::1 (XXXX:YYYY:NNNN::1): 56 data bytes
64 bytes from XXXX:YYYY:NNNN::1: seq=0 ttl=64 time=7.225 ms
64 bytes from XXXX:YYYY:NNNN::1: seq=1 ttl=64 time=0.655 ms
64 bytes from XXXX:YYYY:NNNN::1: seq=2 ttl=64 time=0.673 ms
64 bytes from XXXX:YYYY:NNNN::1: seq=3 ttl=64 time=0.674 ms

Но маршрутизатор 2 не может пропинговать интерфейс brwan маршрутизатора 2 (адрес клиента Hurricane Electric):

user@Router2:/# ping6 XXXX:YYYY:ZZZZ:WWWW::2
PING XXXX:YYYY:ZZZZ:WWWW::2 (XXXX:YYYY:ZZZZ:WWWW::2): 56 data bytes
ping6: sendto: Network is unreachable

После добавления статического маршрута через адрес интерфейса маршрутизатора 1 br0 маршрутизатор 2 может пропинговать интерфейс brwan маршрутизатора 1:

user@Router2:/# ip -6 route add ::/0 via XXXX:YYYY:NNNN::1 dev brwan
user@Router2:/# ping6 XXXX:YYYY:ZZZZ:WWWW::2
PING XXXX:YYYY:ZZZZ:WWWW::2 (XXXX:YYYY:ZZZZ:WWWW::2): 56 data bytes
64 bytes from XXXX:YYYY:ZZZZ:WWWW::2: seq=0 ttl=64 time=10.858 ms
64 bytes from XXXX:YYYY:ZZZZ:WWWW::2: seq=1 ttl=64 time=0.660 ms
64 bytes from XXXX:YYYY:ZZZZ:WWWW::2: seq=2 ttl=64 time=0.647 ms

В моем ограниченном понимании я бы подумал, что Маршрутизатор 1 сможет подключиться к Интернету, потому что он может получить IP-адрес интерфейса клиента Hurricane Electric на brwan маршрутизатора 1, и brwan знает, как пройти через туннель HE к добраться до интернета.

Однако, когда я пингую Google, ничего не происходит:

user@Router2:/# ping6 ipv6.google.com
PING ipv6.google.com (2607:f8b0:4004:807::200e): 56 data bytes
^C^C
--- ipv6.google.com ping statistics ---
47 packets transmitted, 0 packets received, 100% packet loss

user@Router2:/# traceroute6 -v ipv6.google.com
traceroute to ipv6.google.com (2607:f8b0:4004:800::200e), 30 hops max, 16 byte packets
 1  XXXX:YYYY:NNNN::1 (XXXX:YYYY:NNNN::1) 32 bytes to XXXX:YYYY:NNNN:0:KKKK:LLLL:MMMM:JJJJ  0.455 ms  0.467 ms  0.420 ms
 2  *
56 bytes from (Router 1's br0 interface Link-Local addr) to ff02::1: icmp type 134 (Router Advert) code 0
0000: 00000000 00000000 030440c0 00278d00
0010: 00093a80 00000000 20010470 8c810000
0020: 00000000 00000000 010170f1 961dd439
  *  *
 3  *  *  *
 4  *  *
56 bytes from (Router 1's br0 interface Link-Local addr) to ff02::1: icmp type 134 (Router Advert) code 0
0000: 00000000 00000000 030440c0 00278d00
0010: 00093a80 00000000 20010470 8c810000
0020: 00000000 00000000 010170f1 961dd439
^C
user@Router2:/#

Почему маршрутизатор 2 не может подключиться к Интернету?

ОБНОВИТЬ:

В @grawity я изменил /var/radvd.conf на:

interface br0 {
  AdvSendAdvert on;

  prefix XXXX:YYYY:NNNN::/64
  {
  };
};

Теперь маршрутизатору 2 автоматически назначается маршрут по умолчанию (который является локальным адресом fe80 интерфейса br0 на маршрутизаторе 1). Тем не менее, маршрутизатор 2 по-прежнему не может получить доступ к Интернету.

1 ответ1

1

Ваша реклама маршрутизатора имеет AdvDefaultLifetime 0 , который задокументирован как:

Время жизни, связанное с маршрутизатором по умолчанию в единицах секунд. Максимальное значение соответствует 18,2 часа. Срок жизни 0 означает, что маршрутизатор не является маршрутизатором по умолчанию и не должен появляться в списке маршрутизаторов по умолчанию.

Поэтому Router2 не настраивает маршрут по умолчанию на основе рекламных объявлений.


Я предложил бы начать с каких - либо опций , кроме AdvSendAdvert on потому что большинство из них не представляется необходимым в среде еще. Например, два флага имеют смысл только в том случае, если вы также используете DHCPv6.

Тем не менее, вам, вероятно, понадобится DHCPv6 в будущем, чтобы реализовать делегирование префиксов и позволить Router2 получить собственную подсеть /64, поскольку он не может сделать это через чистый SLAAC. Поскольку маршрутизаторы IPv6, как правило, не выполняют NAT, каждому из них потребуется свой /64, независимо от того, пытаетесь ли вы их составить или нет.

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