Raspberry pi в качестве маршрутизатора

Обновлено: 21.11.2024

Raspberry Pi может многое, особенно теперь, когда новый Raspberry Pi поставляется с уже встроенными функциями беспроводной связи. Он может заменить массу различных (и более дорогих) устройств, включая маршрутизатор! Если вы превратите свой Raspberry Pi в беспроводную точку доступа, вы можете заставить его работать как маршрутизатор. Это не самая мощная вещь в мире, но она работает, и проект доставляет массу удовольствия.

Как использовать Raspberry Pi в качестве беспроводной точки доступа

Здесь мы немного коснемся командной строки, но этот проект не так уж и сложен. Все, что мы на самом деле делаем, — это используем Raspbian и устанавливаем пару пакетов, которые дают Pi возможность делать вещи, подобные маршрутизатору, например назначать IP-адреса устройствам, которые к нему подключаются.

Шаг 1. Установите и обновите Raspbian

Подробнее об этом читайте в нашем полном руководстве по установке Raspbian. Затем подключите все, зайдите в терминал и проверьте наличие обновлений и обновлений:

Если вы получили обновление, рекомендуется выполнить перезагрузку с помощью sudo reboot.

Шаг 2. Установите hostapd и dnsmasq

Эти две программы мы собираемся использовать, чтобы превратить ваш Raspberry Pi в точку беспроводного доступа. Чтобы получить их, просто введите эти строки в терминал:

В обоих случаях вам нужно будет нажать y, чтобы продолжить. hostapd — это пакет, который позволяет нам создать беспроводную точку доступа с помощью Raspberry Pi, а dnsmasq — это простой в использовании сервер DHCP и DNS.

Мы собираемся отредактировать файлы конфигурации программ через мгновение, поэтому давайте выключим программы,
прежде чем мы начнем возиться:

Шаг 3. Настройте статический IP-адрес для интерфейса wlan0

Теперь, когда вы находитесь в файле, добавьте в конец следующие строки:

(Последние две строки необходимы для того, чтобы наш мост работал, но об этом подробнее в
шаге 8.)

После этого нажмите Ctrl+X, затем Y, затем Enter, чтобы сохранить файл и выйти из редактора.

Шаг 4. Настройте сервер DHCP (dnsmasq)

Мы собираемся использовать dnsmasq в качестве DHCP-сервера. Идея DHCP-сервера заключается в
динамическом распределении параметров конфигурации сети, таких как IP-адреса, для
интерфейсов и служб.

Файл конфигурации dnsmasq по умолчанию содержит много ненужной информации, поэтому
нам проще начать с нуля. Давайте переименуем файл конфигурации по умолчанию и
напишем новый:

Сейчас вы будете редактировать новый файл, а старый переименовать, это файл конфигурации, который будет использовать dnsmasq. Введите эти строки в новый файл конфигурации:

Добавленные строки означают, что мы собираемся предоставить IP-адреса между 192.168.0.11 и 192.168.0.30 для интерфейса wlan0.

Шаг 5. Настройте программное обеспечение узла точки доступа (hostapd)

Еще один файл конфигурации! На этот раз мы возимся с конфигурационным файлом hostapd. Откройте ее:

Это должно создать новый файл. Введите это:

Обратите внимание, что там, где у меня есть «СЕТЬ» и «ПАРОЛЬ», вы должны придумать свои собственные имена. Вот как вы присоединитесь к сети Pi с других устройств.

Нам еще нужно показать системе местонахождение конфигурационного файла:

Шаг 6. Настройте переадресацию трафика

Идея заключается в том, что когда вы подключаетесь к Pi, он будет перенаправлять трафик по кабелю Ethernet. Итак, мы собираемся перенаправить wlan0 через кабель Ethernet на ваш модем. Это включает в себя редактирование еще одного файла конфигурации:

Теперь найдите эту строку:

Шаг 7. Добавьте новое правило iptables

Далее мы добавим маскировку IP-адресов для исходящего трафика на eth0 с помощью iptables:

…и сохраните новое правило iptables:

Чтобы загрузить правило при загрузке, нам нужно отредактировать файл /etc/rc.local и добавить следующую
строку прямо над строкой exit 0:

Шаг 8. Включите подключение к Интернету

Теперь Raspberry Pi выступает в роли точки доступа, к которой могут подключаться другие устройства. Однако эти устройства пока не могут использовать Pi для доступа в Интернет. Чтобы сделать это возможным, нам нужно построить мост, который будет пропускать весь трафик между интерфейсами wlan0 и eth0.

Чтобы построить мост, давайте установим еще один пакет:

Мы готовы добавить новый мост (с именем br0):

Далее мы подключим интерфейс eth0 к нашему мосту:

Наконец, давайте отредактируем файл интерфейсов:

…и добавьте в конец файла следующие строки:

Шаг 9. Перезагрузка

Теперь, когда мы готовы, давайте перезагрузимся с помощью sudo reboot.

Теперь ваш Pi должен работать как беспроводная точка доступа. Попробуйте, подключившись к другому устройству и найдя сетевое имя, которое вы использовали на шаге 5.

Эта часть была обновлена ​​для Raspbian Stretch и основана на инструкциях, созданных пользователем GitHub SurferTim.

53 комментария к записи «Как использовать Raspberry Pi в качестве беспроводной точки доступа»

Это одно из лучших руководств, которые я видел для Pi3 с использованием встроенного Wi-Fi! Спасибо за добавление конфигурации /etc/rc.local для iptables, которую часто упускают из виду.

Спасибо за это, это работает лучше, чем несколько других руководств, которые я пробовал.

Но на самом деле мне нужна не точка доступа с собственным диапазоном IP-адресов, а расширение моей существующей сети Ethernet с DHCP на основном маршрутизаторе. Чтобы все устройства видели друг друга. Есть ли у вас какие-либо идеи о том, как этого добиться? На сайте Raspberry Pi есть руководство, в котором используется мост, но оно не работает.

Попробуйте удалить все конфигурации dnsmasq и dhcp. Удалите dnsmasq.
Тогда уберите настройки брандмауэра, так как он начинает маскироваться, то есть сделайте RPi и другие локалки на разных IP-диапазонах с NAT. Вы этого не хотите.

Настройте RPi для получения IP-адреса от DHCP или статического IP-адреса от сетевого адреса другой сети. Я бы сначала попробовал dhcp.

Остального должно быть достаточно, чтобы он заработал после перезагрузки.

Может ли кто-нибудь помочь мне, у меня все работает, но когда я пытаюсь подключиться, он говорит, что нет подключения к Интернету, и он не будет полностью подключаться, он будет загружаться вечно. Нужно ли мне перенаправлять порты Raspberry Pi на моем маршрутизаторе или это нужно исправить в коде?

Какой сетевой адрес сети вы подключаете к eth0? Если это 192.168.0.0/24 (то есть префикс IP-адреса 192.168.0.), вы должны изменить префиксы в вашей конфигурации на RPi на что-то другое, например 192.168.42 или что-то в этом роде. Число 42 может быть любым от 1 до 255.

Итак, нам нужно узнать, какой маршрутизатор вы используете.

Попробуйте команду "ip route" на RPi.

Итак, я следовал руководству SurferTims и в основном сделал то же, что и вы, за исключением разных IP-адресов. Знаете ли вы, как добавить портал авторизации к этой точке доступа, чтобы он указывал на веб-сервер Apache на Raspberry Pi?

Действительно хорошо, работает хорошо, с VNC просто копировать и вставлять

Здравствуйте и спасибо за урок. Это единственное, что работает после обновления до Stretch… 🙂

Теперь, когда я воспроизвел руководство, я хотел бы реализовать его немного в другой версии. Я хотел бы использовать Raspberry Pi 3 в качестве точки доступа и одновременно в качестве клиента. Это для небольшого проекта, над которым я работаю (строительство метеостанции). Это должно быть возможно с чипсетом Wi-Fi, встроенным в Raspi. Клиентам, которые обращаются к точке доступа Raspi, не требуется подключение к Интернету, поэтому нет необходимости в переадресации трафика (подключение к Интернету требуется только для Raspi). Я новичок в работе с сетями в Linux, поэтому у меня нет большого опыта. К сожалению, другого пути, кроме этого, для реализации проекта нет. Можно ли это сделать, просто изменив некоторые из вышеперечисленных шагов? Что было бы правильным способом сделать это? Если нет, может ли кто-нибудь дать мне несколько советов по этому поводу?

Я нашел несколько руководств по этому вопросу, но все они работают с файлом /etc/network/interfaces. К сожалению, редактирование чего-либо в этом файле прерывает доступ к беспроводному соединению… («беспроводной интерфейс не найден»)

Надеюсь, кто-нибудь сможет мне помочь. Заранее спасибо!

С уважением,
Деки

Не могли бы вы сказать, почему он теряет соединение через 30 секунд после запуска? (Я не вижу SSID в списке Wi-Fi и нет соединения между RPi и моим телефоном.)

К сожалению, я сделал именно так, как описано (дважды), и не могу подключиться к Raspberry Pi.

Я пытался использовать его на другом Raspberry Pi — та же проблема.

Отличный учебник. Но кое-что.

Не используйте 192.168.0.0/24 или 192.168.1.0/24, поскольку они обычно используются в конфигурации по умолчанию на домашних маршрутизаторах. Используйте случайное число x в диапазоне 2-255 в 192.168.x.0/24 для вашей сети. Тогда риск неприятностей с маршрутизацией будет меньше. Даже если у вас включен МАСКАРАД.

Также необходимо настроить правила брандмауэра, так как NAT не является безопасным брандмауэром.

Я рекомендую использовать там ufw, так как достаточно новая версия также поддерживает функцию маршрутизатора.

Спасибо за это руководство!

Все другие решения, которые я пробовал, иногда Wi-Fi больше не доступен, и мне приходится перезагружать RPi.

Есть ли способ для этой установки проверить, запущена ли она и работает ли она (автоматически) предпринять шаги, необходимые для ее повторной установки и работы?

Было бы полезно посмотреть, как выглядят результирующие выходные данные ifconfig и route, с некоторыми пояснениями, чтобы мы могли подтвердить, что все сделали правильно, и могли внести коррективы для нашей конкретной ситуации с более глубоким пониманием. Спасибо.

Миллион спасибо вам! Я пытался настроить беспроводную точку доступа Pi уже два дня, и это руководство наконец-то сделало это! Чего не было в других учебниках в Интернете, так это мостовой части, и они оставляли вас с надежной точкой доступа, но без какого-либо подключения к сети.

Можно ли использовать этот подход для использования устройства Android в качестве удаленного рабочего стола RPi (с использованием VNC) при отсутствии сети (т. е. в полевых условиях)? Спасибо.

когда я использовал команду:
sudo brctl addif br0 eth0

Показана ошибка: Не удается добавить wlan0 к мосту br0: Операция не поддерживается

Пожалуйста, помогите исправить эту ошибку!

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

Спасибо за руководство.

Я думаю, что если вас не интересует шаг 8 (т. е. вы просто хотите получить доступ к Raspberry Pi через SSH или VNC даже при отсутствии сети Wi-Fi), вам также следует избегать двух строк. с denyinterfaces в /etc/dhcpcd.conf (шаг 3). По крайней мере, так это работает для меня. Пожалуйста, подтвердите.

Большое спасибо за этот AP, я работал над ним около двух месяцев.

Мое приложение — удаленный мониторинг температуры пчелиных ульев.

Моя конфигурация: точка доступа – Pi-Zero-W – USB/Ethernet – домашний маршрутизатор (Wi-Fi отключен) – ПК Debian вместе с устройствами Wi-Fi Win7Lap Top и Galaxy/Android
статический IP-адрес точки доступа 192.168.168.10, диапазон от …11 до …30.

Android/Firefox прекрасно подключается к сети через точку доступа.

Android/Fing и Win7/панель управления указывают шлюз как 198.168.0.1, то есть домашний маршрутизатор, а не точку доступа Pi с адресом 192.168.168.10.

Win7/Firefox не устраивает.

На Android/Termius/BotSync/и т. д. попытки доступа к Pi по адресу 192.168.168.10 блокируются.

Что я могу попробовать, чтобы войти в Pi? С Android для терминала/rsync и т. д.

Спасибо за подсказку. Я хочу превратить свой Pi в VPN и добрался до этого руководства из поста о VPN.

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

Я ничего не упустил? Спасибо за любую информацию.

Здравствуйте, я использую SSH на порту Ethernet. Кажется, что br0 уже существует. Как создать беспроводную точку доступа, не касаясь порта Ethernet?

Я попробовал другое руководство, чтобы заставить это работать, но это решило мою проблему без подключения к Интернету. В другом учебнике забыли о мостовом соединении с eth0. Заранее спасибо за столь полезную информацию! Я пытаюсь настроить свой RPi3 в качестве портала авторизации, и мне это нужно.

Спасибо за это руководство. Я встал и работал. У меня он работает уже несколько недель, но по какой-то причине кажется, что Wi-Fi отключается через 30-45 минут. Если я подключен через Wi-Fi, он падает. Зайдя в него через клавиатуру/монитор, я никуда не могу зайти. Как будто вся сеть просто умирает.

Raspberry Pi – это небольшой одноплатный компьютер, который, несмотря на размер кредитной карты, способен на многое. На самом деле, этот маленький компьютер может быть почти всем, чем вы захотите. Вам просто нужно дать волю своему воображению.

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

Об OpenWRT и LTE

OpenWRT — это проект с открытым исходным кодом, использующий Linux для работы со встроенными устройствами. Он существует уже более 15 лет и имеет большое и активное сообщество.

Существует множество способов использования OpenWRT, но его основная цель — маршрутизаторы. Он предоставляет полностью перезаписываемую файловую систему с управлением пакетами, а поскольку это открытый исходный код, вы можете просматривать и изменять код и вносить свой вклад в экосистему. Если вы хотите иметь больший контроль над маршрутизатором, вам подойдет эта система.

Долгосрочная эволюция (LTE) – это стандарт беспроводной широкополосной связи, основанный на технологиях GSM/EDGE и UMTS/HSPA. Модем LTE, который я использую, представляет собой USB-устройство, которое может добавить сотовую связь 3G или 4G (LTE) к компьютеру Raspberry Pi.

Предпосылки

Для этого проекта вам потребуется:

  • Raspberry Pi с кабелем питания
  • Компьютер, желательно с ОС Linux
  • Карта microSD емкостью не менее 16 ГБ.
  • Кабель Ethernet
  • Модем LTE (я использую Teltonika TRM240)
  • SIM-карта для мобильного подключения.

Установите OpenWRT

Для начала загрузите последнюю версию OpenWRT, совместимую с Raspberry Pi. На сайте OpenWRT вы видите четыре образа: два с файловыми системами ext4 и два с файловыми системами squashfs.Я использую файловую систему ext4. Вы можете скачать заводской образ или образ sysupgrade; оба отлично работают.

Подробнее о Raspberry Pi

После загрузки образа его необходимо извлечь и установить на SD-карту, следуя этим инструкциям. Установка прошивки может занять некоторое время, так что наберитесь терпения. После завершения на вашей карте microSD будет два раздела. Один используется для загрузчика, а другой для системы OpenWRT.

Загрузите систему

Чтобы загрузить новую систему, вставьте карту microSD в Raspberry Pi, подключите Pi к маршрутизатору (или коммутатору) с помощью кабеля Ethernet и включите его.

Если у вас есть опыт работы с Raspberry Pi, возможно, вы привыкли получать к нему доступ через терминал через SSH или просто подключив его к монитору и клавиатуре. OpenWRT работает немного по-другому. Вы взаимодействуете с этим программным обеспечением через веб-браузер, поэтому у вас должен быть доступ к Pi через сеть.

По умолчанию Raspberry Pi использует этот IP-адрес: 192.168.1.1. Компьютер, который вы используете для настройки Pi, должен находиться в той же подсети, что и Pi. Если в вашей сети не используются адреса 192.168.1.x или вы не уверены, откройте «Настройки» в GNOME, перейдите к настройкам сети, выберите «Вручную» и введите следующие IP-адрес и маску сети:

Откройте веб-браузер на своем компьютере и перейдите по адресу 192.168.1.1. Откроется страница аутентификации, чтобы вы могли войти в свой Pi.

Пароль пока не требуется, поэтому просто нажмите кнопку "Войти", чтобы продолжить.

Настроить сетевое подключение

У Raspberry Pi есть только один порт Ethernet, в то время как у обычных маршрутизаторов их несколько: один для WAN (проводная сеть), а другой для LAN (локальная сеть). У вас есть два варианта:

  1. Используйте порт Ethernet для подключения к сети.
  2. Использовать Wi-Fi для подключения к сети.

Чтобы использовать Ethernet:

Если вы решите использовать Ethernet, перейдите в Сеть → Интерфейсы. На странице конфигурации нажмите синюю кнопку «Изменить», связанную с интерфейсом LAN.

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

Сохраните эту конфигурацию и подключите Pi к маршрутизатору через Ethernet. Теперь вы можете связаться с Raspberry Pi с этим новым IP-адресом.

Обязательно установите пароль для маршрутизатора OpenWRT, прежде чем использовать его в рабочей среде!

Использование Wi-Fi

Если вы хотите подключить Raspberry Pi к Интернету через Wi-Fi, выберите Сеть → Беспроводная связь. В меню «Беспроводная связь» нажмите синюю кнопку «Сканировать», чтобы найти домашнюю сеть.

Во всплывающем окне найдите свою сеть Wi-Fi и подключитесь к ней. Не забудьте сохранить и применить конфигурацию.

В разделе Сеть → Интерфейсы вы должны увидеть новый интерфейс.

Обязательно установите пароль для маршрутизатора OpenWRT, прежде чем использовать его в рабочей среде!

Установите необходимые пакеты

По умолчанию у маршрутизатора не так много пакетов. OpenWRT предлагает менеджер пакетов с набором пакетов, которые необходимо установить. Перейдите в «Система» → «Программное обеспечение» и обновите диспетчер пакетов, нажав кнопку «Обновить списки…».

Вы увидите много пакетов; вам нужно установить это:

  • переключатель режима USB
  • кмод-мии
  • kmod-usb-net
  • кмод-usb-wdm
  • kmod-usb-серийный
  • kmod-usb-serial-option
  • kmod-usb-serial-wwan (если он не установлен)

Кроме того, загрузите этот пакет modemmanager и установите его, нажав кнопку «Загрузить пакет…» во всплывающем окне. Перезагрузите Raspberry Pi, чтобы пакеты вступили в силу.

Настройка мобильного интерфейса

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

Выберите Сеть → Интерфейс. В нижней части страницы нажмите кнопку Добавить новый интерфейс…. Во всплывающем окне дайте вашему интерфейсу имя (например, мобильный) и выберите ModemManager из раскрывающегося списка.

Нажмите кнопку "Создать интерфейс". Вы должны увидеть новое всплывающее окно. Это главное окно для настройки интерфейса. В этом окне выберите свой модем и введите любую другую информацию, например имя точки доступа (APN) или PIN-код.

Примечание. Если в списке нет модемов, попробуйте перезагрузить Raspberry Pi или установить пакет kmod-usb-net-qmi-wwan.

Когда вы закончите настройку интерфейса, нажмите «Сохранить», а затем «Сохранить и применить». Дайте время, чтобы система вступила в силу. Если все прошло хорошо, вы должны увидеть что-то вроде этого.

Если вы хотите проверить подключение к Интернету через этот интерфейс, вы можете использовать ssh для подключения к оболочке Raspberry Pi. В терминале введите:

IP-адрес по умолчанию: 192.168.1.1; если вы изменили его, используйте этот IP-адрес для подключения. При подключении выполните эту команду в терминале:

Если все работает, вы должны получить ответный эхо-запрос с серверов Google.

ppp0 — это имя интерфейса по умолчанию для созданного вами мобильного интерфейса. Вы можете проверить свои интерфейсы, используя ifconfig. Он показывает только активные интерфейсы.

Настройте брандмауэр

Чтобы мобильный интерфейс работал, необходимо настроить брандмауэр для мобильного интерфейса и интерфейса локальной сети, чтобы направлять трафик на нужный интерфейс.

Выберите Сеть → Брандмауэр. В нижней части страницы вы должны увидеть раздел «Зоны».

Самый простой способ настроить брандмауэр – настроить глобальную зону. Нажмите кнопку «Изменить» и в разделе «Покрытые сети» выберите свой мобильный интерфейс, а затем сохраните и примените свою конфигурацию. Если вы не хотите использовать Wi-Fi для подключения к Интернету, вы можете удалить wwan из Охватываемых сетей или отключить соединение WiFi.

Если вы хотите настроить отдельные зоны для каждого интерфейса, просто создайте новую зону и назначьте необходимые интерфейсы. Например, вы можете захотеть иметь мобильную зону, которая покрывает мобильный интерфейс и используется для пересылки трафика интерфейса LAN через него. Нажмите кнопку "Добавить", затем назовите свою зону, установите флажок "Маскарад", выберите "Покрытые сети" и укажите, какие зоны могут перенаправлять свой трафик.

Затем сохраните и примените изменения. Теперь у вас есть новая зона.

Настройка точки доступа

Последний шаг — настроить сеть с точкой доступа, чтобы ваши устройства могли подключаться к Интернету. Чтобы настроить точку доступа, перейдите в «Сеть» → «Беспроводная связь». Вы увидите интерфейс устройства WiFi, отключенную точку доступа с именем OpenWRT и соединение, которое используется для подключения к Интернету через WiFi (если вы не отключили или не удалили его ранее). В интерфейсе «Отключить» нажмите кнопку «Изменить», затем «Включить интерфейс».

При желании вы можете изменить имя интерфейса, отредактировав параметр ESSID. Вы также можете выбрать, с какой сетью он будет связан. По умолчанию он связан с сетевым интерфейсом.

Чтобы добавить пароль для этого интерфейса, выберите вкладку Безопасность беспроводной сети. Во вкладке выберите шифрование WPA2-PSK и введите пароль от интерфейса в поле Key option.

Затем сохраните и примените конфигурацию. Если конфигурация была настроена правильно, при сканировании доступных точек доступа с помощью вашего устройства вы должны увидеть новую точку доступа с присвоенным вам именем.

Дополнительные пакеты

При желании вы можете загрузить дополнительные пакеты для своего маршрутизатора через веб-интерфейс. Просто перейдите в «Система» → «Программное обеспечение» и установите нужный пакет из списка или загрузите его из Интернета и загрузите. Если вы не видите ни одного пакета в списке, нажмите кнопку Обновить списки….

Вы также можете добавить другие репозитории с пакетами, которые можно использовать с OpenWRT. Пакеты и их веб-интерфейсы устанавливаются отдельно. Пакеты, начинающиеся с префикса luci-, являются пакетами веб-интерфейса.

Попробуйте

Вот как выглядит мой маршрутизатор Raspberry Pi.

Собрать маршрутизатор из Raspberry Pi несложно. Недостатком является то, что Raspberry Pi имеет только один порт Ethernet. Вы можете добавить больше портов с помощью адаптера USB-to-Ethernet. Не забудьте настроить порт на сайте интерфейса.

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

Использовали ли вы Raspberry Pi в качестве маршрутизатора? Дайте нам знать, как все прошло в комментариях.

Настройте минимальный сервер на Raspberry Pi

Пока не списывайте этот старый Raspberry Pi! В этом пошаговом руководстве показано, как я настроил Raspberry Pi с минимальной конфигурацией для сохранения драгоценной системы.

Как настроить собственную быструю частную ячеистую сеть с открытым исходным кодом

FreeMesh – это доступная, производительная и обеспечивающая конфиденциальность ячеистая система, которая устанавливается менее чем за 10 минут.

Независимо от того, смотрите ли вы видео, отправляете электронное письмо или просто просматриваете веб-страницы, все наше взаимодействие с Интернетом, по сути, представляет собой обмен данными, который идет вперед и назад. Чтобы облегчить этот обмен, маршрутизаторы играют незаменимую роль в маршрутизации данных. В этой статье я расскажу, почему вам следует подумать о создании собственного маршрутизатора Raspberry Pi и, что более важно, как это сделать!

Что такое маршрутизатор?

Маршрутизатор – это устройство, которое соединяет локальную сеть (LAN) с другими сетями. В большинстве случаев эта «другая сеть» известна как глобальная сеть (WAN) или не что иное, как Интернет.

Маршрутизатор служит мостом между двумя сетями, пересылая пакеты данных, которые необходимо передать «через границы». Для этого устройства подключаются к маршрутизатору либо через сетевой кабель, такой как Ethernet, либо через беспроводное соединение, такое как WiFi. В результате локальные устройства не только получают доступ к Интернету, но также могут общаться друг с другом через маршрутизатор. – отсюда и термин «Локальная сеть».

Маршрутизатор во многом является «администратором» этой локальной сети и играет важную роль в управлении подключенными устройствами. Например, маршрутизатор отвечает за назначение IP-адресов входящим запросам на подключение, как правило, через DHCP (протокол динамической конфигурации хоста). Таким образом, каждое устройство можно идентифицировать и управлять им индивидуально.

Однако наибольший потенциал маршрутизаторов также заключается в распространенном неправильном представлении о них. Хотя их основная роль действительно заключается в простой координации соединений и пересылке данных, маршрутизаторы сами по себе очень маленькие компьютеры. Для обработки входящих и исходящих данных маршрутизаторы оснащены процессорами и памятью. Кроме того, они также могут быть оснащены операционной системой, такой как компьютер.

Зачем создавать маршрутизатор Raspberry Pi?

До сих пор мы кратко говорили о том, для чего были разработаны маршрутизаторы, но пока не ясно, зачем нам создавать собственный маршрутизатор с Raspberry Pi. Прежде чем мы углубимся в это, давайте сначала посмотрим, что предлагает Raspberry Pi.

Познакомьтесь с мини-маршрутизатором Raspberry Pi Compute Module 4

Плата Dual Gigabit Carrier на базе вычислительного модуля Raspberry Pi 4 оснащена двумя портами Gigabit Ethernet и двумя портами USB 3.0, что делает ее подходящей для приложений программного маршрутизатора при минимальном количестве оборудования. Мы предварительно установили вычислительный модуль Raspberry Pi 4 с 4 ГБ ОЗУ и 32 ГБ eMMC, чтобы ускорить загрузку и обеспечить бесперебойную работу в целом. Вы также можете заменить установленный CM4 на любой другой CM4 по вашему выбору! Вы также можете выбрать хорошо подготовленный мини-маршрутизатор с радиатором и корпусом вентилятора.

Мини-маршрутизатор с вычислительным модулем Raspberry Pi 4, двумя портами Gigabit Ethernet, 4 ГБ ОЗУ/32 ГБ eMMC

Из двух портов Gigabit Ethernet (RJ45) один порт Ethernet подключен к физическому интерфейсу Gigabit Ethernet модуля CM4, основанного на Broadcom BCM54210PE. С другой стороны, другой порт Gigabit Ethernet подключен к Microchip LAN7800, который представляет собой мост USB 3.0-GbE (гигабитный Ethernet-мост). Интерфейс USB 3.0 здесь является расширением интерфейса PCIe модуля CM4. Кроме того, оба порта могут поддерживать скорость до 1 Гбит/с.

Использовать OpenWRT для маршрутизатора

Вики недавно обновила полное руководство по использованию OpenWRT для создания маршрутизатора с платой Dual Gigabit Carrier и платами Odyssey X86. OpenWrt — это бесплатный проект с открытым исходным кодом, целью которого является создание собственных встроенных операционных систем для маршрутизаторов. Это решение с открытым исходным кодом, основанное на Linux, и очень популярно при создании маршрутизаторов Raspberry Pi.

Используя OpenWrt, вы можете иметь различные функции, такие как:

  • Увеличение общей производительности сети при подключении нескольких устройств.
  • Обмен файлами между устройствами через внешний накопитель, подключенный непосредственно к маршрутизатору.
  • Повышение безопасности сети
  • Запустите клиент BitTorrent с маршрутизатора
  • Подключите принтер напрямую к маршрутизатору, чтобы создать сетевой принтер.
  • Ограничить использование полосы пропускания определенным устройством в сети
  • Активное управление очередью
  • Мониторинг сети в режиме реального времени
  • Создать динамический DNS
  • Настройка VPN-клиента или сервера

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

В общей сложности вы можете использовать более 3000 пакетов OpenWrt для дополнительных функций, в том числе:

  • Блокировка рекламы непосредственно на маршрутизаторе
  • Шифрование интернет-соединения для большей конфиденциальности
  • Установка квот на объем загрузки или пропускную способность
  • Создание гостевой сети, чтобы разрешить доступ к Интернету, но не к локальным устройствам.
  • Настройка маршрутизатора в качестве центра домашней автоматизации.

Как и другие операционные системы Linux, OpenWrt чрезвычайно гибко настраивается, поэтому вы можете включить только то, что хотите для своего маршрутизатора! Можно многое узнать об OpenWrt и о том, что он предлагает, поэтому обязательно посетите их официальный сайт для получения более подробной информации!

Почему стоит выбрать Raspberry Pi 4 для домашнего роутера?

Raspberry Pi 4 — это одноплатный компьютер, предлагаемый Raspberry Pi Foundation. Разработанный в компактном форм-факторе размером с вашу кредитную карту, Pi 4 оснащен четырехъядерным процессором Broadcom BCM2711 Cortex-A72 ARM SoC, работающим на частоте 1,5 ГГц, что является большой мощностью для такого маленького компьютера. !

Raspberry Pi 4 оснащен четырехъядерным процессором Broadcom BCM2711 Cortex-A72 ARM SoC, работающим на частоте 1,5 ГГц, что очень много для такого маленького компьютера!Эта значительная вычислительная мощность сопровождается большим набором периферийных устройств, включая выход micro HDMI, контакты GPIO и два порта для USB 2.0 и 3.0. Самое главное, Raspberry Pi 4 оснащен встроенными модулями Wi-Fi, Bluetooth и портом Gigabit Ethernet, что обеспечивает высокоскоростное подключение, необходимое для быстрого доступа в Интернет.

Благодаря этому потенциал Pi 4 в сетевых приложениях стал очевиден, и теперь подготовлена ​​почва для маршрутизатора Raspberry Pi!

1. Увеличьте пропускную способность и производительность сети

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

Хотя Raspberry Pi определенно слабее по сравнению с полноценным настольным компьютером или ноутбуком, его процессора Broadcom, безусловно, более чем достаточно, когда дело доходит до сетевой маршрутизации. Кроме того, вы можете выбрать более мощные версии Pi с оперативной памятью до 8 ГБ! Таким образом, маршрутизатор Raspberry Pi, несомненно, улучшит вашу сеть и обеспечит более высокую скорость интернета!

2. Улучшите сетевую безопасность

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

Хотя я уверен, что поставщики маршрутизаторов прилагают усилия для обеспечения безопасности своего программного обеспечения для использования, нет ничего более утешительного, чем решить, что именно входит в ваш маршрутизатор. С маршрутизатором Raspberry Pi вы сможете выбирать из бесплатных операционных систем с открытым исходным кодом, таких как OpenWrt, которые проверяются и поддерживаются сообществом для обеспечения безопасности!

3. Наслаждайтесь дополнительными функциями

Благодаря сопутствующему оборудованию и устройствам ввода-вывода использование Raspberry Pi в качестве маршрутизатора обеспечивает гибкость при добавлении дополнительных функций. Например, вы можете использовать его как сервер с маршрутизатором или даже добавить внешний диск для создания сетевого хранилища. Кроме того, на индивидуальном маршрутизаторе также может быть установлена ​​пользовательская операционная система с дополнительными функциями, такими как настраиваемые брандмауэры, VPN или службы блокировки рекламы!

Факторы, которые следует учитывать при выборе маршрутизатора Raspberry Pi

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

Интерфейсы ввода/вывода

Сколько портов Gigabit Ethernet или USB вам нужно? Как насчет других дополнительных периферийных устройств? Собираетесь ли вы использовать свой маршрутизатор для выполнения других функций? Вашему маршрутизатору также требуются возможности беспроводной точки доступа? Каждый параметр имеет свои уникальные сетевые требования, поэтому важно сначала определиться с основными функциями, которые должен выполнять ваш маршрутизатор.

Управление температурным режимом

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

Форм-фактор

Маршрутизаторы часто оставляют работать в фоновом режиме, либо в шкафу, либо в углу комнаты. Следовательно, важно учитывать, что маршрутизаторы не должны занимать слишком много места или приводить к беспорядку в проводке. Таким образом, выбирая корпус для маршрутизатора Raspberry Pi, обязательно учитывайте форм-фактор и расположение проводки.

Представляем плату CM4 Dual Gigabit Ethernet

На данный момент все эти соображения относительно маршрутизатора Raspberry Pi кажутся довольно ошеломляющими, особенно если мы только делаем первый шаг в мире маршрутизаторов. К счастью для всех нас, именно поэтому компания Seeed разработала плату Raspberry Pi Compute Module 4 Dual Gigabit Ethernet Board, чтобы упростить создание собственного маршрутизатора Raspberry Pi!

Что такое вычислительный модуль Raspberry Pi?

Для наших друзей, которые не знакомы, Raspberry Pi Compute Module 4 представляет собой модульную Raspberry Pi 4 в компактном форм-факторе для глубоко встраиваемых приложений. Эта уменьшенная, но не менее мощная версия самого популярного одноплатного компьютера обладает высокой гибкостью и удобна для создания пользовательских приложений, особенно в сочетании с подходящей платой-носителем.

Для получения дополнительной информации о вычислительном модуле 4 и о том, как его приобрести, посетите интернет-магазин Seeed.

Двойная несущая плата Gigabit Ethernet

Несущая плата Dual Gigabit Ethernet для вычислительного модуля Raspberry Pi 4 была разработана с учетом приложений программного маршрутизатора и оснащена двумя портами Gigabit Ethernet и двумя портами USB 3.0. Кроме того, он имеет богатый набор периферийных устройств ввода-вывода, таких как MIPI CSI, DSI и micro-HDMI для подключения дисплея и камеры, стандартный 9-контактный порт USB 3.0 для дальнейшего расширения USB, слот для карт памяти microSD и разъем FPC.

Несмотря на это, плата имеет небольшой форм-фактор 75 x 64 x 21 мм и достаточно мала, чтобы поместиться на ладони! Вы также можете заметить, что он был тщательно разработан для размещения всех основных интерфейсов на одной стороне платы, что делает подключение проводов удобным и аккуратным для компактного маршрутизатора Raspberry Pi.

Проще говоря, Dual Gigabit Ethernet Carrier Board — это специализированное комплексное решение для удобного создания маршрутизатора Raspberry Pi, которое обеспечивает практически безграничные возможности благодаря богатому вводу-выводу!

Характеристики продукта

  • Компактный размер (75 x 64 x 21 мм) с богатым набором периферийных устройств ввода-вывода
  • Двойные разъемы Gigabit Ethernet для программных маршрутизаторов
  • Подключение камеры/дисплея с использованием интерфейсов MIPI CSI, MIPI DSI и micro-HDMI
  • Встроенный двойной порт USB 3.0 с дополнительным 9-контактным разъемом USB 3.0 для дополнительных внешних портов.
  • Слот для карты Micro-SD для загрузки образа системы для версии CM4, отличной от eMMC.
  • Больше возможностей расширения с помощью коннектора FPC (I2C, SPI)
  • Внешняя опора вентилятора с разъемом питания вентилятора.
  • Питание через USB Type-C

Учебное пособие: как настроить маршрутизатор Raspberry Pi с платой CM4 Dual Gigabit Ethernet!

Теперь момент, которого мы все ждали, — я покажу вам, как именно вы можете настроить свой собственный маршрутизатор Raspberry Pi с вычислительным модулем 4 и платой Dual Gigabit Ethernet! Если хотите, вы также можете прочитать это руководство на Seeed Wiki, в котором также рассматриваются несколько альтернативных методов помимо тех, которые я рассмотрю.

Необходимые материалы

Чтобы следовать сегодняшнему руководству, подготовьте следующие материалы:

1. Перепрошивка ОС Raspberry Pi на CM4

Первое, что нам нужно сделать, это прошить ОС Raspberry Pi для работы на нашем вычислительном модуле Raspberry Pi 4. В этом разделе я расскажу только о шагах по прошивке до версии, отличной от eMMC. Для прошивки в хранилище eMMC обратитесь сюда.

Шаг 1. Вставьте карту micro-SD в компьютер с помощью устройства чтения карт micro-SD или встроенного устройства чтения карт.

Шаг 2. Загрузите Raspberry Pi Imager для своей операционной системы, перейдя по этой ссылке.

Шаг 3. Откройте программное обеспечение Raspberry Pi Imager

Шаг 4. Нажмите ВЫБРАТЬ ОС и выберите последнюю версию ОС Raspberry Pi (32-разрядная версия).

Шаг 5. Нажмите ВЫБРАТЬ ХРАНИЛИЩЕ и выберите подключенную карту micro-SD.

Шаг 6. Наконец, нажмите ЗАПИСАТЬ.

Подождите несколько минут, после чего перепрошивка должна быть завершена.

2. Взаимодействие с CM4 через SSH

Далее мы настроим наш вычислительный модуль Raspberry Pi 4, чтобы мы могли общаться с ним через SSH. В этом разделе показано, как включить SSH через Ethernet в системе Linux. Чтобы узнать о других операционных системах или методах, посетите Seeed Wiki.

Шаг 1. Вставьте карту micro-SD (с установленной ОС Raspberry Pi) в компьютер с помощью устройства чтения карт памяти micro-SD или встроенного устройства чтения карт.

Шаг 2. Откройте Терминал и перейдите к карте micro-SD.

ПРИМЕЧАНИЕ. В приведенной выше команде вы должны заменить пользователя именем пользователя вашего ПК.

Шаг 3. Когда вы окажетесь внутри карты micro-SD, создайте пустой файл с именем SSH, введя следующее:

Теперь это активирует SSH в ОС Raspberry Pi.

Шаг 4. Извлеките карту micro-SD из компьютера и вставьте ее в несущую плату Dual Gigabit Ethernet.

Шаг 5. Используйте кабель USB Typc-C и адаптер питания для подачи питания на несущую плату.

Шаг 6. С помощью кабеля Ethernet подключите несущую плату к текущему маршрутизатору. Включите доску.

Шаг 7. Снова откройте Терминал на ПК и введите следующее:

Шаг 8. Введите yes для следующего сообщения.

Шаг 9. Когда он запросит пароль, введите следующее.

Шаг 10. Если вы успешно вошли в ОС Raspberry Pi, вы должны увидеть следующий вывод.

3. Конфигурация портов Ethernet

Последний шаг — подготовка портов Ethernet на двойной несущей плате Gigabit Ethernet для начала маршрутизации сетевых данных.После того, как вы установите ОС Raspberry Pi на модуль CM4, вы получите полную гигабитную скорость только на левом порту Ethernet, который подключен к Gigabit Ethernet PHY модуля CM4. С другой стороны, левый порт, подключенный к Microchip LAN7800 USB 3.0 to GbE (мост Gigabit Ethernet), не обеспечит полной скорости 1 Гбит/с, поскольку драйвер lan78xx в ядре Raspberry не обновлен.

Теперь мы предпримем следующие шаги, чтобы установить скрипт и устранить эту проблему:

Шаг 1. Войдите в окно терминала ОС Raspberry Pi.

Шаг 2. Чтобы загрузить необходимые файлы, введите следующее:

Шаг 3. Войдите в каталог репозитория с помощью следующей команды:

Шаг 4. Чтобы изменить ветку репозитория, введите следующее:

Шаг 5. Теперь введите следующее, чтобы установить скрипт.

Шаг 6. Перезагрузите плату-носитель

Шаг 7. Введите следующее, чтобы проверить статус установки

Если вы видите приведенный ниже вывод, ваш драйвер успешно работает!

Поздравляем, теперь вы настроили свой собственный маршрутизатор Raspberry Pi! В Seeed Wiki также есть пошаговые инструкции по настройке других функций двойной несущей платы Gigabit Ethernet, таких как интерфейсы USB и камеры — обязательно ознакомьтесь с ней!

Краткое содержание и другие ресурсы

Маршрутизаторы, хотя и важны для нашего взаимодействия с Интернетом и передачи информации, в настоящее время воспринимаются как нечто само собой разумеющееся. Сегодня я надеюсь, что рассказал вам причины и шаги по улучшению вашей локальной сети с помощью нового маршрутизатора Raspberry Pi, который повысит скорость вашего интернета, повысит безопасность и позволит вам воспользоваться дополнительными функциями!

Чтобы узнать больше о маршрутизаторах и встроенных вычислениях, обязательно прочитайте следующие статьи!

Недавно я заменил свой домашний маршрутизатор на Raspberry Pi 4. Моей главной целью было увеличить пропускную способность через VPN. При этом я также перешел с OpenVPN на WireGuard и прочитал всю их техническую документацию. В этом посте подытожены мои идеи о перепрофилировании Raspberry Pi в сетевое устройство.

Зачем вообще нужен домашний маршрутизатор?

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

Маршрутизаторы, предоставляемые вашим интернет-провайдером, имеют несколько недостатков, таких как:

  • Их аппаратное обеспечение часто очень низкое, с недостатком оперативной памяти и флэш-памяти.
  • Как следствие, их программное обеспечение имеет ограниченную функциональность.
  • Иногда аппаратные модификации таких маршрутизаторов отличаются от вариантов, предназначенных для потребительского рынка, и часто они имеют специализированную прошивку, созданную специально для вашего интернет-провайдера.
  • Вы, как клиент, имеете ограниченный доступ к этим устройствам. С другой стороны, провайдер часто имеет удаленный доступ и полный контроль над оборудованием.
  • В прошлом эксперты по безопасности обнаружили несколько лазеек, обеспечивающих удаленный доступ любому, кто достаточно мотивирован.
  • Такие маршрутизаторы обычно не получают обновлений прошивки или получают их очень редко и только в течение ограниченного времени.
  • Как следствие, если эксперты по безопасности обнаруживают ошибки в программных библиотеках, используемых в таких маршрутизаторах, эти ошибки никогда не устраняются
  • Вы используете такие маршрутизаторы ежедневно в течение многих лет. Обычно до тех пор, пока ваш интернет-провайдер не предоставит вам обновленную модель, что случается редко

Для меня подключение пользовательского маршрутизатора за маршрутизатором интернет-провайдера не составляет труда. Мне нравится держать все под контролем, и я также использую нестандартные сервисы, такие как VPN, которые охватывают мой дом и квартиру, поэтому я могу получить доступ к своим вещам, где бы я ни был.

От Mikrotik до Raspberry

На протяжении многих лет я пробовал маршрутизаторы разных марок, но одна марка навсегда запала мне в душу — Mikrotik. Один мой друг порекомендовал мне один, и с тех пор я передал этот совет другим, теперь имея свой собственный опыт.

Mikrotik RB450G, мой основной роутер до обновления RPi4

В моем доме я использовал модель RB450G с одноядерным процессором 680 МГц на базе MIPS, 256 МБ ОЗУ и 512 МБ флэш-памяти. Это уже было значительное обновление по сравнению с маршрутизатором от моего интернет-провайдера. В то время типичный маршрутизатор интернет-провайдера или дешевый домашний маршрутизатор имел около 32 МБ ОЗУ и 4 МБ памяти. Вы почти не могли поместить туда какое-либо приличное программное обеспечение; просто не было места.

Мы использовали ADSL для подключения.Чтобы подключить этот новый маршрутизатор к моей сети, я подключил его к порту LAN модема ADSL в качестве единственного клиента. Кроме того, я отключил DHCP, настроил статический IP-адрес и отключил все «умные» функции, фактически превратив модем в просто мост, передающий данные от моего маршрутизатора к провайдеру и обратно.

Домашний маршрутизатор, подключенный за маршрутизатором интернет-провайдера

Каждый маршрутизатор интернет-провайдера отличается, но вы сможете настроить его одинаково. Кроме того, попробуйте найти параметр DMZ и установить его на IP-адрес вашего домашнего маршрутизатора. Таким образом, весь трафик данных перенаправляется на ваш домашний маршрутизатор, и никакие специальные правила не применяются. И последнее: если у вашего интернет-провайдера есть Wi-Fi, выключите его. Вам необходимо настроить Wi-Fi на домашнем маршрутизаторе или устройстве за ним. В противном случае весь беспроводной трафик будет проходить в обход вашего домашнего маршрутизатора, а это, вероятно, не то, что вам нужно.

ОпенВрт

Устройства Mikrotik используют RouterOS в качестве системы. Это дает пользователям функции, которые можно найти в гораздо более дорогих сетевых продуктах. Мне особенно нравится их приложение WinBox, которое помогает управлять моим оборудованием через простой в использовании пользовательский интерфейс. Однако, когда я его использовал, я обнаружил несколько ошибок, и некоторые функции, которые мне были нужны, отсутствовали. Например, RouterOS поддерживает OpenVPN только через TCP, что увеличивает нагрузку. Кроме того, когда мой провайдер настроил стек DS-Lite IPv6, поддержка RouterOS была ограничена, и у меня возникли проблемы с доступом к собственной сети IPv6. Поэтому я решил перейти на OpenWrt, дистрибутив Linux с открытым исходным кодом, предназначенный для маршрутизаторов. Из-за этого многие функции были просто там, включая OpenVPN на UDP и правильную поддержку DSLite.

У OpenWrt было множество готовых программных пакетов. Если я пропустил функцию, я мог (и сделал) подготовить пакет, а если я нашел ошибку, я мог (и сделал) сообщить о проблеме и предоставить исправление. Однако однажды ядро ​​Linux прекратило поддержку моего флэш-накопителя. Внезапно последние версии OpenWrt не работали корректно с моим роутером, и я застрял на старой версии системы. Это была проблема как с точки зрения безопасности, так и с точки зрения удобства использования; Я больше не мог использовать последнюю версию программного обеспечения. Поскольку это был мой основной роутер, я не мог с ним экспериментировать и готовить патчи. Проверить мои изменения не удалось. Я продолжал использовать этот старый дистрибутив OpenWrt на своем роутере больше года. В то время я искал альтернативное решение, достаточно мощное, чтобы повысить производительность VPN, и на котором можно было бы запускать настраиваемую прошивку.

Поиск альтернативного оборудования

На другом моем сайте я использую Turris Omnia, который использует разветвленный код OpenWrt. Я подумал о замене моей Omnia платой сетевого разработчика, такой как MACCHIATObin Double Shot, и замене моего Mikrotik на Omnia. Тем не менее, в конечном итоге я отказался от этой идеи из-за более высокой цены и более низкой доступности платы MACCHIATObin. С практической точки зрения мне не нужно оборудование, способное маршрутизировать 10 Гбит/с, если мой провайдер дает мне только один гигабит, но я должен признать, что это было бы круто. Позже я переключил свое внимание на аппаратное обеспечение с pfSense или OPNSense. Эти дистрибутивы имеют минимальную поддержку плат на базе ARM, и найти оборудование x86 с низким энергопотреблением, разумной ценой и достойной производительностью не так просто.

Потом я вспомнил о своем Odroid C2. Это плата разработчика с одним портом Ethernet и несколькими портами USB2. Важно то, что он может обрабатывать Ethernet через свой порт RJ45 на полной скорости в один гигабит. Если вы хотите использовать такое устройство в качестве маршрутизатора, вам необходимо иметь как минимум два интерфейса — один, обращенный к вашему маршрутизатору интернет-провайдера (WAN), и один, обращенный к вашим устройствам (LAN). Я думал об использовании этого внутреннего порта Ethernet для локальной сети, потому что важна максимальная скорость в локальной сети. Однако для WAN мне нужна была гораздо более низкая пропускная способность, потому что скорость моего интернета составляла всего около 100 Мбит/с. Для этой цели я нашел несколько приличных адаптеров USB3-Ethernet. Odroid C2 поддерживает несколько дистрибутивов Linux, включая Ubuntu и ArchLinux ARM. Поэтому трансформировать его в роутер можно, и я бы обязательно это сделал, если бы не новая ревизия Raspberry Pi. Основная проблема с Odroid C2 заключается в том, что его ядро ​​не является основным и довольно старым. Кроме того, ArchLinux ARM, который я планировал использовать, явно не предназначен для маршрутизаторов. Это решение может сработать, но его настройка, скорее всего, займет много времени.

В прошлые выходные я решил пойти по пути Odroid C2. Но потом я посмотрел на свой блестящий Raspberry Pi 4 и передумал. У меня есть почти все версии Raspberry Pi, и я использую их в своих рабочих IoT-проектах. Это также было причиной, по которой я купил Raspberry Pi 4.Предыдущие поколения RPi не были так полезны для использования в качестве маршрутизатора, потому что их интерфейс Ethernet был внутренне маршрутизирован через концентратор USB2, что фактически ограничивало пропускную способность примерно до 200 Мбит/с. Однако RPi4, наконец, может полностью заполнить гигабитный канал благодаря своей новой архитектуре ввода-вывода. Кроме того, он, наконец, предоставляет порты USB3, которые отлично работают с моим внешним адаптером USB-to-Ethernet. Основным преимуществом RPi4 перед Odroid C2 является поддержка основного ядра. Поэтому легко использовать близкое к последнему ядро ​​​​Linux. Из-за его популярности поддержка сообщества также лучше. И, в качестве бонуса, OpenWrt добавила его поддержку в свои сборки для разработчиков. Поэтому переход с моего существующего маршрутизатора на Raspberry Pi должен быть относительно безболезненным. Давайте посмотрим на этот процесс.

Превращение Raspberry Pi в маршрутизатор

Как я уже говорил, мне нужно было иметь два интерфейса Ethernet, а Raspberry предоставляет только один. Я решил использовать внутренний порт Ethernet для локальной сети и адаптер USB-to-Ethernet для глобальной сети. Конечно, это назначение не является обязательным, и если вместо этого вы используете USB-адаптер для локальной сети, ваша настройка тоже должна работать. В моем случае порт LAN на RPi подключен к 24-портовому коммутатору Gigabit Ethernet, чтобы обеспечить подключение более чем одного устройства. Вы можете купить любой дешевый коммутатор Gigabit Ethernet.

Raspberry Pi 4 с адаптером USB-Ethernet

Не вдаваясь в подробности о том, как работает Ethernet, маршрутизатор служит двум целям: он преобразует IP-адрес в MAC-адрес устройства с помощью протокола ARP и направляет трафик во внешние сети, такие как Интернет. Когда два ваших устройства хотят обмениваться данными внутри одной и той же сети LAN, их трафик вообще не будет проходить через ваш маршрутизатор, а только через коммутатор. Следовательно, если вы купите дешевый гигабитный коммутатор, вы получите достойную производительность сети, и неважно, какой маршрутизатор вы используете.

Поэтому, если у вас есть запасной Raspberry Pi 3, он все равно может хорошо послужить вам в качестве маршрутизатора, просто подключите к нему какой-нибудь коммутатор и убедитесь, что скорость вашего интернет-соединения медленнее 200 Мбит/с. В противном случае ваша скорость ограничена. Raspberry Pi 3 не будет обрабатывать больше трафика из-за упомянутого ранее внутреннего концентратора USB2. В этом случае RPi4 — лучший выбор. У меня нет точной статистики, но пропускная способность USB 3.0 составляет 5 Гбит/с, поэтому я считаю, что последний RPi не должен иметь проблем с насыщением исходящего канала.

Установка OpenWrt

Установка системы была довольно простой. Я следовал официальным инструкциям. Обратите внимание, что если у вас есть Raspberry Pi 4, его поддержки еще нет в стабильных сборках OpenWrt, и вам необходимо загрузить последнюю сборку для разработки. Изображение сжато gzip; сначала нужно распаковать файл. Я объясню необходимые шаги с помощью командной строки Linux:

В результате вы получите файл без расширения *.gz. Теперь вы можете прошить этот файл на карту MicroSDXC. Я использую инструмент dd:

Вы указываете исходный файл в качестве параметра if и целевую карту памяти в качестве параметра of. Размер блока, bs , является необязательным для ускорения работы, а команда синхронизации гарантирует, что все записано на карту.

В отличие от таких дистрибутивов, как ОС Raspberry Pi, OpenWrt не расширяет ваш системный раздел, чтобы заполнить все пространство. Как правило, вы получаете только 100 МБ места для своих приложений, даже если ваша карта памяти имеет 64 ГБ памяти. Я вручную изменил размер раздела на своем ПК. Сначала я редактировал таблицу разделов с помощью fdisk, а затем использовал команду resize2fs. Анимация ниже иллюстрирует все эти шаги:

Во-первых, вам нужно изменить таблицу разделов, чтобы второй раздел, rootfs, умещал все доступное пространство. Вам нужно сначала удалить раздел, а затем создать новый. Ключ в том, чтобы убедиться, что новый больший раздел начинается с того же смещения. Эта операция может показаться опасной, но это не так. Конечно, вам нужно убедиться, что вы выбрали правильное устройство. Когда будете менять таблицу разделов, то выньте и вставьте карту памяти обратно, чтобы линукс использовал обновленную таблицу разделов. Затем проверьте файловую систему на наличие ошибок и, наконец, запустите команду resize2fs.

Первый запуск

Raspberry Pi присвоил IP-адрес 192.168.1.1. Чтобы получить к нему доступ, подключите свой компьютер к порту Ethernet на RPi и установите его IP-адрес 192.168.1.2. После этого вы сможете получить доступ к OpenWrt через SSH:

В качестве следующего шага рекомендуется установить пароль:

Чтобы двигаться дальше, нам нужно иметь подключение к Интернету внутри OpenWrt. В моем случае я изменил IP-адрес Raspberry Pi в файле /etc/config/network. Если вы статически назначаете IP-адрес из диапазона, соответствующего вашей локальной сети, вы можете подключить Raspberry в качестве обычного клиента за существующим маршрутизатором.Это упрощает дальнейшие действия.

Для редактирования сетевого файла можно использовать предустановленный текстовый редактор vi. Если вы никогда не использовали vi или vim, вот краткий обзор. Когда вы открываете файл, вы находитесь в командном режиме. Используйте клавиши со стрелками, чтобы переместить курсор в точку, которую вы хотите изменить. Затем нажмите «i», чтобы перейти в режим редактирования, в котором вы можете написать текст и удалить существующий текст с помощью клавиши «Удалить». После внесения изменений нажмите Escape, чтобы вернуться в командный режим, и сохраните файл, введя :wq (т. е. команду: написать и выйти).

Начните редактировать сетевой файл:

Настройте раздел wan в соответствии с вашей текущей конфигурацией локальной сети, т. е. назначьте RPi статический IP-адрес, который не используется в вашей сети, установите правильный адрес шлюза по умолчанию, указывающий на ваш текущий маршрутизатор, и установите DNS. Вот пример из моей конфигурации:

После внесения изменений примените новую конфигурацию, перезагрузив RPi или введя следующую команду:

Теперь ваш RPi должен быть подключен к Интернету, что вы можете подтвердить с помощью команды ping. Сначала пропингуйте известный общедоступный IP-адрес:

Если эта команда сработала, ваш RPi установил соединение. Давайте также проверим, работает ли ваше разрешение DNS-имен и что вы можете подключаться к службам, используя их доменные имена:

Если у вас есть работающее подключение к Интернету, не стесняйтесь устанавливать любой текстовый редактор, который подходит вам лучше, чем vi, или любой другой пакет, который вам нужен. Я рекомендую нано. Сначала обновите список пакетов:

А затем установите nano :

С этого момента вы можете редактировать свои файлы следующим образом:

На этом этапе вы должны быть готовы перейти к следующим шагам. Если вы где-то застряли, напишите мне комментарий под этим постом.

Включение адаптера USB-Ethernet

Если вы проверите доступные интерфейсы, то, скорее всего, увидите только внутренний интерфейс eth0, даже если USB-адаптер подключен. В моем случае мне пришлось выяснить, какой чипсет использует мой адаптер, и установить соответствующий модуль ядра.

После следующей перезагрузки вы должны увидеть, что ваш интерфейс USB Ethernet инициализирован:

Обновить конфигурацию сети

Как я упоминал ранее, я решил использовать USB-адаптер для трафика, идущего в Интернет. Raspberry Pi по умолчанию использует для этого внутренний порт eth0. Нам нужно внести изменения в файл /etc/config/network. Однако на этот раз мы можем применить окончательную конфигурацию, включая окончательный IP-адрес для устройства. Вам просто нужно убедиться, что вы не примените конфигурацию, например, перезагрузив устройство.

Мой файл выглядит так:

Установите веб-сервер и графический интерфейс

Вы можете установить пользовательский интерфейс с помощью следующих команд:

При желании вы можете установить языковые пакеты, чтобы переключить пользовательский интерфейс на предпочитаемый язык. Инструкции см. в официальной документации.

Чтобы включить пользовательский интерфейс, необходимо сделать следующее:

Заключительные шаги

Вот это да! Raspberry Pi теперь готов служить маршрутизатором. Если у вас есть другой домашний маршрутизатор с OpenWrt (например, Mikrotik в моем случае), вы можете перенести оставшуюся конфигурацию, например, правила брандмауэра, записи DHCP и DNS, а затем выключить Raspberry Pi. Теперь его можно использовать в качестве маршрутизатора.

После перезагрузки вы можете получить доступ к веб-интерфейсу в своем браузере, используя статический IP-адрес, заданный в конфигурации сети.

Веб-интерфейс LuCI

Заключение

В моем случае эксперимент по использованию Raspberry Pi в качестве маршрутизатора удался, и я решил сделать эту настройку постоянной. Спустя долгое время у меня стоит OpenWrt с последними патчами. Моя производительность VPN значительно выше, не говоря уже о том, что это решение дает мне 4 ГБ ОЗУ и почти 60 ГБ хранилища, что дает новые возможности, такие как запуск моего прокси-сервера или настройка более требовательных правил брандмауэра. Я рад, что, наконец, у нас появились отладочные платы, способные заменить сетевое оборудование. Такие платы могут существенно повлиять на сегмент домашних сетей в ближайшие годы. Если у вас есть запасной Raspberry Pi, я рекомендую вам попробовать использовать его и в качестве маршрутизатора. Это интересный опыт.

Обновление от 01.11.2020. Недавно Raspberry Pi Foundation представила новый вычислительный модуль на основе Raspberry Pi 4. Он имеет тот же процессор и большинство функций, что и RPi4, но также предлагает некоторые дополнительные возможности. вкусности, в основном порт PCIe x1. Несколько дней назад я прочитал на Hacker News пост, похожий на мой. Однако вместо использования внешнего адаптера USB-to-Ethernet автор использовал сетевую карту Intel. Ему удалось достичь пропускной способности 3 Гбит/с, что является максимумом шины PCIe x1. Заставить NIC работать было совсем не сложно. Он использовал дешевый адаптер для PCIe x16 и собрал драйвер Intel NIC из исходников.Я думаю, что это стоит прочитать, и это достойная альтернатива моему подходу, если вы хотите выжать из своего RPi еще больше производительности.

Читайте также: