Ясно, что я не могу вести разговор по IPv6 напрямую между Win7 и Pi, так как маршрутизатор не поддерживает это.
Вы можете.
Я собираюсь предположить, что у вас есть одно из этих устройств "домашний шлюз" / «WiFi-маршрутизатор» с несколькими портами Ethernet, и что ваш компьютер Win7 и Rπ подключены к его портам "LAN".
Такой "маршрутизатор" обычно представляет собой комбинированный маршрутизатор + коммутатор, один порт Ethernet назначен стороне "WAN", а все остальные - стороне "LAN". В этом случае отсутствует маршрутизация на уровне IP, когда устройства в одной локальной сети обмениваются данными; просто коммутация на уровне Ethernet. Существует маршрутизация только между LAN и WAN.
Поэтому вашему маршрутизатору IPv4 не требуется поддержка IPv6 для всех устройств локальной сети, чтобы использовать его. Скорее всего, оба ваших компьютера могут нормально взаимодействовать друг с другом через адреса IPv6 в одной подсети.
Например, link-local fe80::…
адреса будут работать, хотя их раздражает использование.
Также будут работать уникальные локальные адреса - они являются грубым эквивалентом широко известных адресов RFC 1918 (те, которые начинаются с 10.
или 192.168.
). Просто выберите случайный сетевой префикс ULA и настройте адреса на нем на обоих устройствах.
А если вам нужна маршрутизация IPv6, это может быть сделано другим устройством. Поскольку ваш IPv6-провайдер - Hurricane Electric, вы можете превратить ваш ПК с Win7 или Raspberry Pi - какой бы вы ни настроили в качестве конечной точки туннеля - в полностью совместимый маршрутизатор IPv6 между вашей локальной сетью и туннелем HE, обеспечивающий подключение IPv6 ко всей локальной сети. ,
(Я сделал это на Windows XP Pro, на самом деле.)
Вам просто нужно /64
-sized 1 IPv6 диапазона адресов для назначения локальной сети. Hurricane Electric назначает один для каждого туннеля - ищите «Routed /64» на странице конфигурации.
Итак, предположим, что ваш туннельный интерфейс HE называется "he0", а ваша карта Ethernet называется "Ethernet":
Запустите netsh
в командной строке с повышенными правами.
netsh> интерфейс ipv6
Включите функции маршрутизации IPv6 в Win7. Необходимо включить пересылку пакетов на интерфейсах "WAN" (туннель) и LAN, но объявление маршрутизатора только на интерфейсе LAN.
установить переадресацию интерфейса "Ethernet" = включить advertise = включить установить переадресацию интерфейса "he0" = включить
Проложите сеть /64 через локальный интерфейс Ethernet и обязательно опубликуйте ее:
добавить маршрут your-prefix /64 "Ethernet" publish = да действительный = 1d предпочтительный = 1h
(Например, add route 2001:470:1f0b:123::/64 …
)
Параметр "публикация" означает, что Win7 будет включать этот маршрут в пакеты "Реклама маршрутизатора", которые он передает в локальную сеть. Так как это префикс /64, другие устройства будут автоматически настраивать свои собственные IP-адреса для него.
Таймеры "действительный" и "предпочтительный" не являются строго обязательными, они просто сообщают всем другим устройствам забыть этот маршрут IPv6, если он не был объявлен в течение дня.
Также опубликуйте существующий маршрут "по умолчанию" ::/0
:
установить маршрут ::/0 "he0" publish = да действительный = 1d предпочтительный = 1h
К настоящему времени в самой Win7 будет автоматически настроен IPv6-адрес; проверьте show addr
в netsh.
Подключитесь к своему Rπ и посмотрите на ip addr
- там вы также увидите IPv6-адрес.
Конечно, вы можете сделать то же самое с Rπ ... на самом деле, вы, вероятно, должны сделать это на Rπ. Но это растет уже давно, так что не стесняйтесь задавать новый вопрос о том, как заставить Linux действовать как маршрутизатор IPv6. (Вам понадобится radvd
.)
1 Чтобы автоконфигурация работала, это должен быть префикс /64. Это означает, что если вы хотите использовать свой «маршрутизированный /48» для локальной сети, вы можете использовать add route prefix/48
, но вы все равно должны выбрать из него подсеть /64 и добавить (второй) маршрут для нее. ,