1

Я использую туннель IPv6 через Hurricane Electric в Windows 7, который прекрасно работал целую вечность. Мой роутер изначально не поддерживает IPv6.

Я также экспериментирую с запуском локального DNS-сервера (я установил dnsmasq на Raspberry Pi и подтвердил, что он работает, поскольку я вижу, что мой iPad использует его, когда я задаю DNS-серверу IPv4-адрес локальной сети Pi).

Однако на компьютере с Windows 7 я не могу подключиться к локальному DNS-серверу, поскольку он всегда использует DNS-серверы IPv6 (для которых установлен OpenDNS). Хотя Pi может запускать IPv6 или другой туннель, я думаю, что это не поможет, потому что (а) другой конец туннеля не сможет увидеть локальный адрес IPv6, (б) внешний IPv6-адрес для DNS-сервер будет заблокирован брандмауэром маршрутизатора (который я не хотел бы открывать для этого) и (c), который победит точку, так как это потребует выхода и обратно через оба туннеля, так что он больше не будет локальным. Ясно, что я не могу вести разговор по IPv6 напрямую между Win7 и Pi, так как маршрутизатор не поддерживает это.

Есть ли способ заставить Windows использовать DNS-серверы IPv4 (и, следовательно, локальные), если IPv6-серверы не находят адрес? (Я знаю, что мог бы установить аппаратное решение, используя альтернативный маршрутизатор с ipv6, но если бы я мог, я бы решил проблему без).

1 ответ1

0

Ясно, что я не могу вести разговор по 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":

  1. Запустите netsh в командной строке с повышенными правами.

  2. netsh> интерфейс ipv6
  3. Включите функции маршрутизации IPv6 в Win7. Необходимо включить пересылку пакетов на интерфейсах "WAN" (туннель) и LAN, но объявление маршрутизатора только на интерфейсе LAN.

    установить переадресацию интерфейса "Ethernet" = включить advertise = включить установить переадресацию интерфейса "he0" = включить
    
  4. Проложите сеть /64 через локальный интерфейс Ethernet и обязательно опубликуйте ее:

    добавить маршрут your-prefix /64 "Ethernet" publish = да действительный = 1d предпочтительный = 1h

    (Например, add route 2001:470:1f0b:123::/64 …)

    Параметр "публикация" означает, что Win7 будет включать этот маршрут в пакеты "Реклама маршрутизатора", которые он передает в локальную сеть. Так как это префикс /64, другие устройства будут автоматически настраивать свои собственные IP-адреса для него.

    Таймеры "действительный" и "предпочтительный" не являются строго обязательными, они просто сообщают всем другим устройствам забыть этот маршрут IPv6, если он не был объявлен в течение дня.

  5. Также опубликуйте существующий маршрут "по умолчанию" ::/0:

    установить маршрут ::/0 "he0" publish = да действительный = 1d предпочтительный = 1h
  6. К настоящему времени в самой Win7 будет автоматически настроен IPv6-адрес; проверьте show addr в netsh.

  7. Подключитесь к своему Rπ и посмотрите на ip addr - там вы также увидите IPv6-адрес.

Конечно, вы можете сделать то же самое с Rπ ... на самом деле, вы, вероятно, должны сделать это на Rπ. Но это растет уже давно, так что не стесняйтесь задавать новый вопрос о том, как заставить Linux действовать как маршрутизатор IPv6. (Вам понадобится radvd .)


1 Чтобы автоконфигурация работала, это должен быть префикс /64. Это означает, что если вы хотите использовать свой «маршрутизированный /48» для локальной сети, вы можете использовать add route prefix/48 , но вы все равно должны выбрать из него подсеть /64 и добавить (второй) маршрут для нее. ,

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