Как проложить 3 компьютера в беспроводной сети ad-hoc?

У меня есть 3 компьютера: 192.168.2.1, 192.168.2.2, 192.168.2.4, подключенные к беспроводной сети ad-hoc. Я хочу, чтобы весь трафик с 192.168.2.1 проходил через 192.168.2.2, когда он разговаривает с 192.168.2.3. В основном

192.168.2.1 <—> 192.168.2.2 <—> 192.168.2.3

Как изменить таблицы маршрутизации?

Я пытался:

pi@192.168.2.1: sudo ip route add 192.168.2.3 via 192.168.2.2 dev wlan0 pi@192.168.2.3: sudo ip route add 192.168.2.1 via 192.168.2.2 dev wlan0 

Я включил forwading на 192.168.2.2, и он работает. Но когда я делаю traceroute из 192.168.2.1, похоже, что он идет непосредственно на 192.168.2.3. Теперь я добавил несколько узлов (см. Таблицу маршрутов 192.168.2.1 ниже), и я все еще получаю один прыжок, когда я делаю traceroute. Но если я войду в 192.192.2.2 и I traceroute 192.168.2.5, он дает мне правильное количество прыжков.

 **ROUTE TABLE OF 192.168.2.1** Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 202 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 303 0 0 wlan0 192.168.1.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0 192.168.2.3 192.168.2.2 255.255.255.255 UGH 0 0 0 wlan0 192.168.2.4 192.168.2.2 255.255.255.255 UGH 0 0 0 wlan0 192.168.2.5 192.168.2.2 255.255.255.255 UGH 0 0 0 wlan0 **ROUTE TABLE OF 192.168.2.2** Destination Gateway Genmask Flags Metric Ref Use Iface 169.254.0.0 0.0.0.0 255.255.0.0 U 303 0 0 wlan0 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0 192.168.2.4 192.168.2.3 255.255.255.255 UGH 0 0 0 wlan0 192.168.2.5 192.168.2.3 255.255.255.255 UGH 0 0 0 wlan0 

Возможно ли, что узлы выполняют кэширование?

РЕДАКТИРОВАТЬ; Сейчас у меня всего 10 узлов, и это результат моего traceroute

 traceroute -4 192.168.2.10 traceroute to 192.168.2.10 (192.168.2.10), 30 hops max, 60 byte packets 1 192.168.2.2 (192.168.2.2) 10.140 ms 10.324 ms 10.398 ms 2 192.168.2.3 (192.168.2.3) 17.292 ms 17.483 ms 17.564 ms 3 192.168.2.4 (192.168.2.4) 25.646 ms 25.708 ms 26.110 ms 4 192.168.2.5 (192.168.2.5) 34.156 ms 34.416 ms 34.501 ms 5 192.168.2.6 (192.168.2.6) 44.131 ms 44.479 ms 44.560 ms 6 192.168.2.7 (192.168.2.7) 51.382 ms 43.074 ms 46.144 ms 7 192.168.2.8 (192.168.2.8) 46.129 ms 43.374 ms 53.956 ms 8 192.168.2.9 (192.168.2.9) 58.156 ms 83.625 ms 83.642 ms 9 192.168.2.10 (192.168.2.10) 83.565 ms 84.008 ms 89.355 ms 

2 Solutions collect form web for “Как проложить 3 компьютера в беспроводной сети ad-hoc?”

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

Я настраивал маршруты, подобные вашим, между тремя машинами Linux (mach1 <-> mach3 <-> mach2) и тестировался с помощью ping:

 mach1# ping mach2 PING mach2 (xxx237) 56(84) bytes of data. From mach3 (xxx238): icmp_seq=1 Redirect Host(New nexthop: mach2 (xxx237)) 64 bytes from mach2 (xxx237): icmp_seq=1 ttl=63 time=0.537 ms 

Tcpdump на mach3 и mach2 показывает mach3, отправляющий перенаправление на mach1, и после этого весь трафик идет непосредственно между mach1 и mach2.

Переадресации можно считать немного подозрительными, так как их можно использовать в обратном порядке: чтобы трафик был отправлен через третью машину, человек в середине. См. Например https://askubuntu.com/questions/118273/what-are-icmp-redirects-and-should-they-be-blocked

Отправка и получение перенаправления можно контролировать с помощью некоторых sysctl:

 net.ipv4.conf.*.accept_redirects net.ipv4.conf.*.send_redirects 

После установки net.ipv4.conf.eth0.send_redirects на ноль на маршрутизаторе и сброса маршрутов, я получил весь трафик, проходящий через mach3.

Теперь я тестировал это в коммутируемой сети (и с виртуальными машинами), поэтому я не уверен, что если на WLAN меняются вещи. Я не думаю, что это должно быть, если машины обрабатывают только фреймы, предназначенные для их адреса Ethernet. Но теоретически можно было бы выбрать каждый кадр с воздуха.

Прежде всего, это звучит как проблема XY . Что ты пытаешься сделать? Я уверен, что маршрутизация сетевого трафика таким образом вряд ли станет хорошим решением любой проблемы.

Было сказано, что,

В ваших таблицах маршрутизации по-прежнему есть маршрут для 192.168.2.0/24 . Это означает, что 192.168.2.1 имеет два маршрута для достижения 192.168.2.2 , поэтому подсистема маршрутизации ядра рассматривает оба варианта, считает, что один из них является прямым, а другой нет, и использует прямой маршрут (потому что это должно быть дешевле).

Если вы этого не хотите, у вас есть два варианта:

  • Удалите запись таблицы маршрутизации для 192.168.2.0/24 . Это означает, что вам необходимо создать записи таблицы маршрутизации для всех хостов в сети, включая те, которые вы хотите получить напрямую.
  • Создайте два / 24 сетевых диапазона и дайте хосту, который в настоящее время 192.168.2.2 IP-адрес в обоих диапазонах (для которого не требуется отдельный сетевой интерфейс). Затем вы можете передать всем другим хостам пакеты маршрутов через этот хост.

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

  • Почему практически нет адаптеров WLAN для Linux?
  • Работа Wi-Fi вкл. И выкл., В основном с ноутбука HP, - две
  • Не удается подключиться к Интернету после изменения MAC-адреса.
  • Ввод сетевого интерфейса в беспорядочный режим (не режим монитора)
  • Как я могу просто прозрачно мостить трафик между wlan0 и eth0?
  • Как установить драйверы в Linux
  • Linux подмножество «iw reg set DE» и разрешенные по разрешению каналы Wi-Fi
  • Загрузка заблокирована в течение 1мин 30 секунд, потому что / etc / network / interfaces
  • Сетевой адаптер Cent OS USB, распознаваемый как ethernet
  • Конфигурация сети удаляется после перезагрузки Zentyal Linux Server
  • RTL8723BE: Wi-Fi всегда отключается и не может подключиться снова и должен быть перезапущен для подключения
  • Interesting Posts

    Как я могу сделать веб-сервер переадресации, который изменяет входящий порт на 80?

    Как установить JRE на firefox с Fedora (64 бит)

    Как найти язык системы в Python?

    выход из веб-браузера на debian (без GUI)

    Изменение корневой файловой системы от initramfs до JFFS2

    su – имя пользователя -c "./script.sh" -> нет такого файла или каталога

    Ошибка аутентификации: su медленнее, чем sudo

    Неизмеримые каталоги в Linux

    Чтение нажатий клавиш в оболочке с использованием сигналов trap и Unix

    Кто крадет мои деньги?

    почему Permission denied, когда что-то записывать в файл журнала?

    Назначение глобальных и локальных переменных

    «/ Usr / bin / ping» отображается как желтый на красном в цветовой схеме Fedora по умолчанию – что это значит?

    Как я могу получить свою карту памяти NVIDIA, оптимизированную для Optimus, для предоставления вывода через xrandr?

    Как автоматизировать скрипт, который требует пароль ssh-ключа с регулярными интервалами

    Linux и Unix - лучшая ОС в мире.