Как стать автором
Обновить

Домашний интернет-шлюз. Начальная настройка 6-портового мини-компьютера на Ubuntu Server 20.04 LTS

Время на прочтение5 мин
Количество просмотров38K
Всего голосов 25: ↑20 и ↓5+15
Комментарии48

Комментарии 48

Спасибо за рассказ об интересной железке!
Возможно, Вам будет интересно посмотреть на ней на связку "гипервизор + виртуальный роутер".

Я на подобной железке с али-экспресса поставил Proxmox, настроил сеть через Open vSwitch с vlan (у OVS есть некоторые преимущества перед linux bridge, но в базовом сценарии использования они не существенны), в качестве VM, гоняющих трафик, попробовал виртуальный роутер VyOS и фаерволл pfSense. Присоединяюсь к рекомендации поставить гипервизор, а уже в нём разворачивать виртуалки с инфраструктурным софтом.
настройка Dnscrypt-proxy в роли DNS-сервера для локальной сети
Интереснее было бы почитать про DoH или DoT в домашней сети, он и про Dnscrypt-proxy будет полезно.
А какие преимущества у Proxmox против XCP-ng/XenServer?
И что лучше VyOS или pfSense? На чем остановились?
У ProxMox есть удобная веб-панель управления, которая работает на хосте, а не в отдельной виртуалке. К томуже он базируется на Debian, а значит его значительно проще чинить, оптимизировать и т.д. Да и поддержка железа там лучше (На моём китайце Xen постоянно валился в kernel panic, а VMWare вообще не нашол сеть).

В качестве роутера ещё можно рассматривать OpenWRT.
C OpenWRT как раз у меня заморочка, в виртуалке Xen (пробовал и Xen в убунте и в XCP-ng/XenServer) у него почему-то ФС в readonly в результате чего он не инициализируется до конца, не сохраняются конфиги, не ставится софт и тд, хотя если прямо на хост его ставить то все ок (сейчас так и работает хостом, но хотелось бы его виртуализировать), надо тогда Proxmox еще попробовать, может с KVM виртуализацией взлетит.
У меня он какраз в ProxMox'е крутится. Работает как часы. Только с WiFi были проблеммы — постоянно зависал до перезагрузки. Пришлось поднимать на хост-системе и заводить в LAN-Bridge/interface.

Завернул в OpenWRT DNS-Crypt proxy, AD Block, Dyn-DNS client (+собственный костыль для Yandex.dns) и ещё кое-чего по мелочи.
А какая у вас версия openwrt?
Я уже не знаю куда думать, в ProxMox'е получил тот же результат что и в ксене: стартует, но все ридонли (маунт в openwrt показывает что все якобы в rw), ставил 19.7. Файл образа диска с правами 666.
Пару лет назад ставил в hyper-v в одной конторе — там все работало нормально, вечером попробую конечно тот образ скопировать себе, но это какой-то неправильный путь.
OpenWrt 18.06.4 r7808-ef686b7292
proxmox-ve: 6.2-1 (running kernel: 5.3.18-3-pve)
pve-manager: 6.2-4 (running version: 6.2-4/9824574a)

Диск на 1GB в режиме VirtIO SCSI. Правда уже не помню, как ставил — толи просто конвертанул установочный образ с оффсайта и с него и гружусь, толи в самом образе был установочник…

Как говорится "на третьи сутки индеец Зоркий Глаз обнаружил что" он скачал squashfs образ вместо ext4

XCP-ng/XenServer я не пробовал, а Proxmox очень прост как в установке, так и использовании, особенно в домашнем применении. Разворачивать можно как виртуальные машины KVM, так и контейнеры LXC. Управление как из CLI, так и из WEB-GUI.
По поводу выбора из виртуальных ротуеров — я пока ни на чём не остановился, так как пока не перевёл маршрутизацию на этот девайс. Но в целом, если сравнивать VyOS и pfSense, то у них немного разное предназначение. Первый — это чисто роутер на основе Debian Linux со своим CLI, второй — файрволл с функциями маршрутизации на базе FreeBSD, с удобным WEB-интерфейсом. В обоих продуктах есть и DHCP-сервер, и DNS, и всё то, что может понадобиться в маленькой не-корпоративной сети. В pfSense я ещё добавил Wireguard сторонним пакетом, и в принципе планирую оставить обе VM, одна маршрутизирует трафик, вторая стоит на границе домашней сети, где будут настраиваться policy, NAT, и подключаться удалённые машины через wireguard.

А можете кратенько рассказать где брали Wireguard для pFsense и как ставили?
Я погуглил и установил пакет pfSense-pkg-wireguard из этого топика. До этого я ни разу сам не ставил FreeBSD`шные пакеты, но получилось всё без подводных камней, после установки пакета появляется новый пункт в WEB-интерфейсе, никакие конфиги в CLI править не надо.
У VyOS нет веб интерфейса только консоль очень похожая на juniper это по первости может отпугнуть и он только рутер по сути, мне в pfsense нравиться наличие haproxy например, ну и имхо неплохой web-интерфейс. С гипервизором (ESXi) у меня был вообще интересный прикол: у меня были 2 сетевухи realtek и они вообще не могли в L3 routing на гигабите, если ставить pfsense без esxi то все норм, а с esxi дай бог 200 мбит, видимо проблема была в community драйверах для realtek под esxi и TCP Offload Engine, в итоге плюнул и купил intel i350 бушную.
Добрый.
Про Proxmox VE, pfsense (есть еще его форк — opnsense) и не только forum.netgate.com/topic/120102/proxmox-ceph-zfs-pfsense-и-все-все-все

P.s. Дополнительно в вирт. машину тот же Pi-hole установить рекламу (и всякую гадость) по dns резать.
Два дня погонял виртуализацию роутера и могу сказать что идея с виртуальным роутером работает только если интернет 100Мбит/с и медленнее.
Из-за виртуализации сетевых интерфейсов на бОльших скоростях сильно растет нагрузка на процессор и скорость упирается в 300/200Мбит/с (300/200 proxmox и 200/300 XCP-ng) против 800/800Мбит/с (800 — ограничение тарифного плана) на голом железе (даже при использовании VirtIO сетевых карт).
Скриншоты
image
Причем непринципиальна система виртуализации, Xen или qemu-kvm, ограничения по скорости примерно одинаковы.
Наверно пробрасыванием сетевых карт напрямую в виртуалку или используя контейнеры LXC получилось бы добиться скорости близкой к железной версии роутера, но сетевых карт у меня всего две, а найти рабочий темплейт openwrt для Proxmox не удалось.
(коммент также для Fox_exe и mekhan )
Так что пока возвращаюсь к виртуализации ОС внутри нативного openwrt (благо в 19.07.3 уже есть qemu-kvm, правда урезанный, без VNC консоли и прочих плюшек)
Что-то у тебя не так, я попробовал на своём не сильно производительном SBC на intel E3845 и результат близок к идеальному (специально вчера поменял тариф на 1Gbit/s, чтобы провести бенчмарки).

Web speedtest.net
image
ПК подключен в гигабитный порт SBC, в Proxmox настроены VLAN через Open vSwitch, маршрутизацией трафика между VLAN занимается VyOS

speedtest-cli
В панели вверху слева запущен gotop на хостовой ОС, справа htop в VyOS.
image
Speedtest из CLI делался с соседнего SBC, подключенного в гигабитный порт того же SBC, на котором VyOS. Скорость почему-то всегда не больше 500-600Mbit/s, интересно будет разобраться почему же. Но ещё интереснее то, что с LXC контейнеров speedtest показывает всего 2-3Mbit/s, с хостового Debian тоже такая низкая скорость в того же (а если просто качать файл, то скорость 30Mbit/s). Но это уже наверное лишняя информация. Надо как-нибудь заняться бенчмаркингом, благо есть инструменты, и что потестировать тоже есть.
Кстати, если пользоваться только GPON маршрутизатором от МГТС, то download будет не больше 500Mbit/s, а если натить трафик на отдельном маршрутизаторе, хоть и виртуальном, можно добиться максимальной скорости по тарифу.
Спасибо за фидбэк.
Интересная загадка, по производительности E3845 примерно равен 1037u и на обоих поддерживается VT-x и не поддерживается VT-d.
Пока только мысль что может проблемы в сетевых интерфейсах, у меня в дектопной матери (gigabyte ga-c1037un-eu) встроены дешевые реалтеки (RTL 8168evl/8111evl в кернел логе), а в SBC наверняка что-то более приличное.
Да, возможно из-за адаптеров, я специально выбирал на intel`овском чипе, на этом девайсе стоит 82583V. Из всего этого можно сделать, что не надо хоронить идею виртуализации сети :)
Спасибо за статью. Некоторое время смотрю на такие пк для DVR на 4-5 ip камер.
Ищу решения с возможностью загрузки с чего-нибудь быстрого, но с отдельным HD для записи видео. По фото на плате есть что-то вроде mini pcie или m.2. Не тестировали работу?
Судя по всему (выбор конфигурации для покупки) слот для SSD в режиме sata. Должен работать, правда смущает смещенное крепление для болтика.
Ага, я вот тоже не могу разобраться, хотелось бы уточнить. Возможно, продавец с али ответит.
Там на странице написано:
MSATA SSD (поддержка 1x mSATA SSD, 1x2,5 дюйма HDD/SSD)
Советую присмотреться к более производительному mini-pc на Celeron J3160, например вот обзор самой интересной железки на этом процессоре, но портов там на 2 меньше, чем у сабжа, и для подключения накопителя только SATA. Зато 4 ядра и поддержка AES-NI, и TDP 6W против 17W у Celeron 1037U
Отличный обзор, почти идеальный для меня вариант.

По поводу накопителя только я неточно немного написал, там ещё mSATA есть. Впрочем, обзор действительно отличный, из двух частей и с бенчмарками, и там всё подробно расписано.

Здравствуйте! На плате место под mSATA SSD и также присутствует разъем SATA. На корпусе снизу есть отверстия для крепления 2.5". Я использую только SSD
Огромное человеческое спасибо!
Вроде не плохо, жду вторую часть, спасибо!
Лет 10-15 назад я другого кейса для роутера и не представлял: сервер на фряхе или линухе, конфиги и прочее.
Но как-то наигрался со всем этим и править эти километровые конфиги нет никакого желания, да и времени жалко.
Тоже недавно обновил интернет до 800мбит/с и поскольку микротик на шлюзе был 100мбитный — заменил его на б/у баребон ( celeron j1037u проц, 4GB оперативки + вместо диска usb-флешка 16гб, купил за 2500р) с пассивным охлаждением и двумя гигабитными сетевухами на борту, натянул на него openwrt и вполне доволен результатом: два клика в веб-интерфейсе и порт проброшен, еще несколько кликов и адрес в DHCP уже в static lease.
Я это к чему — как лабораторная работа конечно неплохо, но использовать убунту как роутер в быту — просто неудобно.

Стало интересно, какие преимущества у Байкала перед процессорами Интел?

10 Gb Ethernet (BASE KR/KX4)
Не слышал до этого про KR/KX4, сейчас почитал про 10GBASE-KR и понял только, что это описание backplane интерфейса. И не понял, как использовать это на практике.
А зачем на него тянуть голую убунту когда есть pfSense

Тоже не совсем понял. Тем более на голой железе, когда любой гипервизор и снапшот на лету в 100 раз упрощает жизнь.

НЛО прилетело и опубликовало эту надпись здесь
Судя по названиям и количеству интерфейсов, каждый порт — отдельный интерфейс, и связывать их придётся через VLAN.
НЛО прилетело и опубликовало эту надпись здесь
Синтаксис конфигурации Netplan очень строгий и лишний пробел или табуляция может вызвать ошибку.

Нет там никакого синтаксиса нетплана, это обычный YAML, который внезапно чувствителен к пробелам.
Ну и зачем там UFW, если все равно правила iptables пишите?

Файл 50-cloud-init.yaml не для того- это автоматически меняющийся cloudinit'ом файл. Если вам не нужен cloudinit, то лучше деинсталировать его

КМК вентилятор именно для спокойствия, на нагрев процессора, установленного на плате внутри корпуса, он никак не повлияет. Если тот же вентилятор поставить внутрь железки (похоже, передняя панель снимается легко и не опломбирована), он, кроме непосредственно обдува процессора и-что-там-ещё-греется, будет перемешивать воздух до равномерно тёплого состояния, что позволит алюминиевому корпусу активнее работать как радиатор.
На верхней стороне просверлены мной дырки, так что движение воздуха проходное. Внутри железки места впритык.
Так по ссылке на али написано что у них есть версия с кулером и надо просто им указать при заказе. Зачем внешний кулер тогда?
Я брал ее год назад и без корпуса, тогда не было версии с кулером. У меня и процессор 1007 еще, а не 1037.
Dnscrypt-proxy в роли DNS-сервера для локальной сети.

Dnsmasq лучше для локальной сети, а запросы вовне направлять на DNS с шифрованием на другом порту. Неважно какой — Dnscrypt, DoH или DoT.
Конечно, симпатично выглядит компьютер с интегрированными портами, но, на моей памяти, порты подключенные к провайдеру несколько раз горели. На роутерах и на ПК. На разных провайдерах. Хорошо, на ПК внешняя карточка в PCI слоте была.
А почему не Mikrotik, тот же HEX S? Или соизмеримый по стоимости с этой китайской железкой RBMRTGx4?
Сам присматриваю себе решение для частного дома техногиков :-), где нужно будет и честный гигабит внутри сети, и несколько гостевых сетей, и возможность VPN-каналами утилизировать по максимуму WAN-канал, не упираясь в производительность «дохлых» процов в бытовых роутерах, резервный 4G-канал.
Да, когда-то я сам собирал шлюзы из говна и палок, ставил фрю и просиживал часами в консоли, настраивая всякие плюхи. Но сейчас как-то хочется уже более законченного комплексного решения.
Вот и раздумываю, то ли выстраивать связку из микротиков: маршрутизатор — коммутатор — несколько их же точек доступа 802.11AC. Вроде как обещана некая связность всего этого оборудования. Толи городить зоопарк из всякого разного.
Какие преимущества может дать такая железяка в качестве шлюза? Мне в голову разве что прокся приходит, но с современными каналами сильно сомневаюсь в её необходимости.
Вопрос не ко мне, но хочется высказаться по поводу Микротика. Я уже много лет использую дома гигабитный MikroTik с WiFi, всё вроде бы хорошо при обычном применении, но, когда пробовал настроить всякие разные VPN и IPSec туннели с линуком на другой стороне, у меня это не выходило. Я не спорю, что он может всё умеет, но RouterOS — своеобразная OS и надо быть специалистом по Микротикам, чтобы там настраивать что-то более-менее сложное. Последней каплей стало то, что потратил день и полночи, чтобы настроить L2 VLAN, и оно так и не заработало, как я это предполагал.
Да и вообще одно другому не мешает, у меня в Микротик приходит пару провайдеров, раздаётся интернет на консьюмерские девайсы дома, и транком прокинуты виланы до подобного сабжу мини-сервера, который является шлюзом для ещё тройки мини-серверов, такая мини-лаборатория, всё на обычном Linux, с виртуализацией.
Если строить домашнюю сеть в частном доме, где нужны несколько точек, то я бы выбрал, конечно, или MikroTik, или UniFi, со своими управлялками и обвязками.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории