Кто-нибудь использовал их Raspberry Pi в качестве устройства маршрутизации?
В основном я хочу использовать его для мониторинга своей сети, и было бы замечательно, если бы он имел вход и выход для Ethernet, но это не так, поэтому мне интересно, очень ли эффективно контролировать сеть, имея вход Ethernet и затем использование USB-ключа в качестве маршрутизатора Wi-Fi. Кто-нибудь сделал что-нибудь подобное? Замедляет ли это интернет сильно?
Ответы:
Я использовал свою модель B в качестве маршрутизатора с формированием трафика, используя только один порт Ethernet, который поставляется с ним. Вот краткий о том, как:
Сконфигурируйте свой Pi со статической конфигурацией сети, чтобы на него не влияли изменения DHCP, предложенные ниже. Вот содержимое моего в
/etc/network/interfaces
качестве ссылки:Теперь измените настройки DHCP вашей сети так, чтобы шлюз / маршрутизатор по умолчанию был вашим Pi. Скорее всего, это означает изменение настроек вашего существующего маршрутизатора ADSL. В моем примере выше, мой IP-адрес Pi
192.168.1.1
.Когда ваши устройства в следующий раз подключатся к сети, им сообщат, что ваш Pi является их шлюзом в Интернет, и весь их интернет-трафик будет отправлен на него. Ваш Pi в свою очередь будет передавать весь этот трафик на ваш обычный маршрутизатор. Возможно, вам придется отключить, а затем снова подключить устройства, чтобы эти изменения вступили в силу.
Теперь вы можете создать или установить инструмент для мониторинга, например, vnstat .
Формирование трафика
Что касается формирования трафика, вот еще одно быстрое и грязное руководство, в котором будет использован мой личный вариант чудес .
Чтобы это было полезно, вам нужно знать, насколько быстро ваше интернет-соединение. Обычно вы можете найти это в веб-интерфейсе вашего (оригинального) маршрутизатора, но если вам не удастся получить оценку с помощью Speedtest .
sudo apt-get install iptables
wget https://raw.github.com/meermanr/adsl/master/wondershaper/wondershaper
sudo ./wondershaper eth0
напечатает текущее состояние формирования трафика. Очевидно, что ожидаемый статус - это отсутствие формирования, что означает, что действует единственное правило, называемоеpfifo_fast
:eth0
это имя проводного сетевого адаптера на модели B. См.ifconfig
названия интерфейсов в вашей системе)sudo ./wondershaper eth0 3000 370
, где:3000
это скорость нисходящего канала моего интернет-соединения в кбит . Итак, 3Mbit == 3000kbit370
это скорость восходящего соединения моего интернет-соединения, в кбит снова.sudo ./wondershaper eth0
теперь должен показать намного больше вывода:Ваш исходящий сетевой трафик теперь формируется вашим Pi, а ваш входящий трафик немного регулируется, чтобы гарантировать, что Pi, а не ваш оригинальный блок маршрутизации, контролирует трафик.
Чтобы отключить формирование, просто запустите
sudo ./wondershaper eth0 clear
. Вы можете изменить скорости восходящей и нисходящей линии связи без предварительной очистки, но это не повредит.Обновление: Вам также нужно отключить передачу перенаправлений ICMP , так как нам нужен весь трафик для прохождения через Pi для формирования. Оказывается, ядро Linux достаточно умен, чтобы понять, что клиенты в вашей домашней сети могут напрямую общаться с ADSL-боксом, а не пропускать трафик через Pi, и он говорит им об этом при каждой возможности. Затем клиенты отправляют свой трафик прямо на ваш ADSL-ящик, и Pi не получает возможности его сформировать. Отключите его на лету, вот так (потеряно при следующей перезагрузке):
Обновите следующее, чтобы установить это во время загрузки:
/etc/sysctl.conf
(Спасибо за https://unix.stackexchange.com/a/58081/22537 за этот совет)
Вас также могут заинтересовать мои личные заметки о настройке шлюза Linux: http://www.robmeerman.co.uk/unix/gateway
источник
wondershaper
предложения: лимит для каждого клиента или общий?Имея небольшой опыт работы с сетью, первое, что приходит на ум, - это использовать его в качестве блока Snort, и вам не нужно беспокоиться только об одном интерфейсе. Вы должны настроить свой коммутатор / маршрутизатор так, чтобы он перенаправлял весь трафик на Pi, но также передавал его на конечное устройство. Это называется монитором switchport, но ваше устройство может не поддерживать его. Для этого вам может понадобиться управляемый коммутатор . Затем Snort анализирует трафик и сообщает о нем. Более подробная информация о Snort http://www.snort.org/
Хорошая особенность такого рода настройки заключается в том, что ваш Pi сидит в стороне, наблюдая за всем, что проходит через коммутатор, а не в ряд с данными. Если у вас возникли проблемы с программным обеспечением, трафик все еще может течь, но не контролируется. С тем, что вы описываете с помощью двух интерфейсов, ваша программа падает, ваша сеть падает.
Это не использует pi в качестве маршрутизатора, но позволяет отслеживать и сообщать о трафике, проходящем по вашей сети.
источник
Я использовал Raspberry Pi для маршрутизации, и он работал хорошо. Как вы говорите, вам нужен как минимум еще один сетевой интерфейс, так как Raspberry Pi имеет только один порт Ethernet. Вы можете добавить другой интерфейс, подключенный к порту USB. Я использовал GSM модем и флешку Wi-Fi.
Что следует отметить:
Вот мой пост в блоге о маршрутизации и еще один о настройке точки доступа Wi-Fi . Это руководство помогло мне с настройкой маршрутизации. Маршрутизация не очень специфична для Raspberry Pi; все, что работает на Linux в целом, должно быть возможным. Детали немного зависят от того, какой дистрибутив вы используете.
источник
Я использую Raspberry Pi в качестве роутера уже около месяца без проблем. У меня есть реальный коммерческий порт доступа Wi-Fi, а не домашний маршрутизатор Wi-Fi, поэтому я использовал его. У меня также есть конвертер USB-Ethernet, который был «позаимствован» у Wii. Это относится к домашней сети, а встроенный Ethernet Raspberry Pi - к сети WAN / Internet.
Получите копию IPFire для Raspberry Pi. Вам нужна версия ARM, без последовательной консоли и последней стабильной версии. Нажмите на вкладку ARM. Загрузите «Образ для архитектуры armv5tel».
Загрузиться с этого. Подключите телевизор HDMI и клавиатуру. Ответь на первые несколько вопросов. Остальная конфигурация может быть выполнена из браузера в домашней сети, поэтому после этого вам не понадобится телевизор или клавиатура.
Это было не слишком сложно, и работал как чемпион! Вот официальные инструкции: http://wiki.ipfire.org/en/hardware/arm/rpi
Последняя вещь. Если вы собираетесь использовать адаптер Wi-Fi с питанием от USB, проверьте блок питания вашего Raspberry Pi. Для питания Raspberry Pi может быть достаточно USB-блока питания 700 мА, но для питания Wi-Fi не так уж много. Либо используйте USB-концентратор с питанием, либо подключите Raspberry Pi к источнику питания от 1 до 2 А USB.
Удачи!
источник
(Это дополнение следует за моим предыдущим ответом , в котором рассказывалось, как настроить Pi в качестве интернет-шлюза локальной сети).
Не довольствуясь мониторингом общего использования Интернета, я написал инструмент, который отслеживает использование каждого устройства в моей локальной сети. Это позволяет мне видеть мгновенное использование в окне консоли и генерировать графики исторического использования, чтобы я мог видеть то, что произошло за одну ночь.
Rhodes , инструмент для мониторинга использования сетевых устройств LAN в режиме реального времени и истории (на основе MAC-адреса): https://github.com/meermanr/adsl/tree/master/rhodes
Пример вывода на консоль:
Первый столбец показывает, сколько устройств передают, что обычно означает загрузку в Интернет. Исключением является сам ADSL-маршрутизатор (home.gateway в приведенном выше примере), который передает данные, полученные от интернет-провайдера, запрашивающего его устройства (т. Е. Загрузки). Конечно, он также передает загрузки в Интернет, но делает это с помощью своего ADSL-модема, которого нет в локальной сети и поэтому он не виден этому инструменту.
Другим исключением может быть сам Raspberry Pi («Flux» в приведенном выше), который, конечно, передает все данные, которыми он управляет, в обоих направлениях.
Но кроме этих исключений, номера TX (передачи) относятся к загрузке, а номера RX (приема) для загрузки. Третий столбец - это MAC-адрес устройства (без обычных разделителей ":" или "-"). Четвертый столбец показывает удобочитаемое имя устройства, если оно известно.
Диаграммы генерируются при запуске
./index.py
, который предназначен для вызова с веб-сервера, напримерlighttpd
(сindex.py
добавлением вindex-file.names
настройку конфигурации в/etc/lighttpd/lighttpd.conf
). Вы можете просто запустить его вручную, и он сгенерирует несколько изображений и напечатает HTML в STDOUT. Таким образом, вы хотите перенаправить его в файл, который вы можете открыть в браузере:Затем откройте index.html в вашем любимом браузере.
Требования к установке (все могут быть установлены вместе
apt-get install
):tcpdump
- Инструменты командной строки для захвата и описания сетевого трафикаrrdtool
- Инструмент Round Robin Database, записи и графики данных временных рядовrrdcached
- Round Robin Database Caching Daemon, сервис, который уменьшает накладные расходы при работе одновременно с несколькими RRD-файлами.pypy-upstream
(быстрая реализация языка программирования Python)python rhodes.py
(pypy
является альтернативной реализацией языка программирования Python, который выполняет компиляцию Just-In-Time (JIT), поэтому долго выполняющиеся сценарии будут использовать меньше циклов ЦП за счет увеличения объема памяти)Примечание об использовании : инструмент 'tcpdump', используемый этим сценарием, требует привилегий root для доступа к необработанному сетевому трафику. Это достигается путем запуска
sudo tcpdump
при запуске сценария, поэтому вам может быть предложено ввести пароль. Лично я добавил правило NOPASSWD,/etc/sudoers
чтобы меня никогда не запрашивали .источник