Запрос соседей или реклама не пересылаются между интерфейсами

789
Sam

У меня Ubuntu 12.04 установлена ​​в виртуальной машине VirtualBox на хост-компьютере Windows 8. В Windows 8 была размещена (беспроводная) сеть, к которой я могу подключиться с помощью телефона Android. Интерфейс eth0 моей виртуальной машины подключен к сети Windows через мостовой адаптер.

Кроме того, беспроводная 6LoWPAN (беспроводная персональная сеть с низким энергопотреблением через IPv6 с использованием 802.15.4) подключается к интерфейсу usb0 моей виртуальной машины с помощью ключа. В этой сети несколько узлов Zigduino. Теперь мне нужно пропинговать телефон с этих сенсорных узлов.

phone ---802.11--- eth0 Ubuntu usb0 ---802.15.4--- sensor node 

Проблема в том, что я уже потратил на это часы, но я все еще не могу этого сделать. Я дал eth0 статический IPv6-адрес aaaa::xxxx:xxxx:xxxx:xxxxи делаю объявления маршрутизатора с этого интерфейса с префиксом, aaaa::/64используя radvd (поэтому мой телефон также получает aaaa::xxxx:xxxx:xxxx:xxxxадрес). IP-адрес моего ключа и сенсорных узлов тоже что-то вроде aaaa::xxxx:xxxx:xxxx:xxxx. Во время пинга я отслеживал трафик с помощью wireshark. Я заметил, что eth0 получает запросы маршрутизатора от моего телефона, но они не достигают usb0. Похоже, они не перенаправляются на интерфейс usb0, поэтому моя виртуальная машина не знает, что делать с этими сообщениями, и эхо-запрос не выполняется.

Пересылка IPv6 и все, что уже включено, и я понимаю, что этого будет достаточно из того, что я читаю в Интернете. Есть идеи, что я делаю не так?

1

2 ответа на вопрос

3
Sander Steffann

Два комментария: вы должны использовать адреса ULA вместо aaaa:, но это не имеет значения для вашей проблемы.

Причина, по которой ваш мост не работает, заключается в том, что 6LoWPAN не совместим с Ethernet, поэтому вы не можете соединить их между собой. Мостовое соединение копирует только кадры между интерфейсами, но 6LoWPAN использует другой формат кадра с адресами уровня 2 (MAC), отличными от Ethernet.

Решением было бы использовать одну /64подсеть для вашей сети Ethernet и отдельную /64для вашей сети 6LoWPAN. Тогда вам действительно нужно включить переадресацию IPv6, чтобы ваш компьютер пересылал пакеты между сетями. Если ваш ящик является шлюзом по умолчанию для обеих сетей, он будет пересылать пакеты между ними. Если это не так, вам нужно настроить некоторую маршрутизацию, чтобы другие шлюзы / маршрутизаторы знали, куда отправлять пакеты для этих сетей.

Спасибо за ваш полезный ответ. Теперь я настроил две разные подсети (одна с префиксом 'aaaa :: / 64' и одна с 'bbbb :: / 64'), переадресация IPv6 включена, и мой ящик является шлюзом по умолчанию для обеих сетей. Тем не менее, я получаю тот же результат. Добавление записей маршрутизации в мой ящик не работает (неверные аргументы для моего адреса шлюза?). Другое дело: может ли это иметь какое-то отношение к тому факту, что эта размещенная в Windows 8 сеть использует адреса IPv4 по умолчанию (кроме адресов локальной связи), и я просто использую radvd для объявления своего префикса 'bbbb ::', чтобы получить адрес IPv6 на моем телефоне? 10 лет назад 0
Вам потребуется IPv6 (реальные адреса, а не только локальные ссылки) на всех устройствах, чтобы это работало. Sander Steffann 10 лет назад 0
На самом деле, это так ... Но у них также есть свои адреса IPv4. 10 лет назад 0
Тогда я не понимаю ваш комментарий о вашей «сети на базе Windows 8» Sander Steffann 10 лет назад 0
Я имею в виду, что эта «сеть на базе Windows» на стороне eth0, вероятно, не поддерживает IPv6, потому что она не дает глобальные IP-адреса моим устройствам автоматически. Эти устройства получили адреса IPv6, потому что я объявил префикс с помощью radvd. Может ли это быть причиной того, что это не работает? Должен ли я использовать туннелирование вместо этого? Или есть способ пересылки из сети IPv4 в сеть IPv6? Sam 10 лет назад 0
Извините, я не могу следовать за вами. Сначала вы говорите «не поддерживает IPv6» и «не дает глобальные IP-адреса моим устройствам автоматически», а затем «Эти устройства получили адреса IPv6, потому что я объявил префикс с помощью radvd», что явно противоречит предыдущим утверждениям ... Sander Steffann 10 лет назад 0
Тогда он, вероятно, поддерживает IPv6. Я не знаю. Интерфейсу eth0 в моей виртуальной машине назначен статический адрес ipv6, соответствующий тому, что сообщает radvd, и мой телефон использует рекламу для получения адреса IPv6. Может быть, это даже не имеет значения, но я просто даю немного больше информации о моей настройке, потому что она не работает, в то время как должна, согласно вашему (и многим другим) объяснению. Sam 10 лет назад 0
0
Sam

Turns out to be a bug in the Wi-Fi drivers of VirtualBox. Nothing to do about it. I now use an IPv6 router/AP that is connected to my computer via Ethernet.

Похожие вопросы