Обзор Xiaomi R1D: мощный роутер и домашний сервер в одном устройстве. Роутер сервер


Обзор Xiaomi R1D: мощный роутер и домашний сервер в одном устройстве

Многие недостатки Xiaomi Router 3 объясняются наличием в каталоге компании более продвинутых моделей R-серии, способных заменить роутер, NAS и DLNA-сервер.

Наиболее актуальным из них для российского покупателя стал Xiaomi R1D. Это первая попытка китайских инженеров создать копию Apple AirPort.

Сегодня Xiaomi R1D стоит дешевле конкурентов (всего 105 долларов). Если учитывать, что встроенный в устройство 2,5-дюймовый накопитель на 1 ТБ стоит 50 долларов, аналогов найти практически невозможно.

Внешний вид и комплект поставки

Xiaomi R1D: внешний вид

Xiaomi R1D обладает непривычным дизайном в стилистике научно-фантастических фильмов: чёрный матовый корпус с небольшим индикатором украшает плоская глянцевая панель с логотипом Mi. Блок питания и патч-корд придётся спрятать. Они самые обычные и портят внешний вид устройства.

Привычных антенн у этой модели нет. Они, как и метка NFC, спрятаны под верхней крышкой. На верхней части корпуса расположена вентиляционная решётка, под которой находится кулер. В нижней части передней панели установлен многоцветный светодиод статуса.

Xiaomi R1D: кулер

Роутер можно устанавливать только вертикально. Настенные крепления отсутствуют.

Xiaomi R1D: порты

На задней панели расположены порт USB 2.0, два порта LAN и порт WAN, кнопка сброса и разъём блока питания.

Xiaomi R1D: жесткий диск

На дне роутера расположена ещё одна вентиляционная решётка и четыре съёмные резиновые ножки. Под ними находятся четыре винта, выкрутив которые можно снять нижнюю часть. За этой крышкой находится 2,5-дюймовый жёсткий диск с SATA-разъёмом.

Технические особенности

Xiaomi R1D основан на достаточно популярном и производительном двухъядерном ARM-чипе Broadcom BCM4709 с частотой 1 ГГц. Объём оперативной памяти составляет 256 МБ, встроенной — 16 МБ.

Роутер Xiaomi R1D получил два независимых радиоблока. Один работает по протоколам 802.11b/g/n в диапазоне 2,4 ГГц со скоростью передачи 300 Мбит/с. Второй обеспечивает соединение по стандартам 802.11a/n/ac в диапазоне 5 ГГц со скоростью до 867 Мбит/с. Поддерживается стандарт MIMO 2×2 — для каждого из диапазонов связи (2,4 ГГц и 5 ГГц) используется своя пара антенн. Все проводные порты поддерживают скорость до 1 Гбит/с.

Жёсткий диск Samsung на 1 ТБ подключается с помощью дополнительного SATA-контроллера, установленного в порт PCI Express. Этим объясняется отсутствие порта USB 3.0. На жёстком диске хранится прошивка, поскольку для её размещения 16 МБ встроенной памяти недостаточно. Поэтому роутер не стоит выключать из розетки.

Работа устройства

Xiaomi R1D: тестирование скорости Xiaomi R1D: скорость передачи данных

Xiaomi R1D: тестирование скорости Xiaomi R1D: скорость передачи данных

Реальная скорость передачи данных (без использования встроенного хранилища) по результатам независимых тестов отличается от паспортной на 5–15%, что укладывается в допустимую погрешность.

Роутер справляется со всеми возложенными на него задачами. Нам удалось одновременно:

  • обмениваться файлами через BitTorrent на предельной скорости провайдера;
  • воспроизводить фильм в формате 4K с использованием DLNA;
  • загружать фотографии с четырёх смартфонов на другое DLNA-устройство.

С большинством домашних задач роутер справляется. А вот для офисного использования его будет недостаточно: в большинстве регионов России скорость ограничивается провайдером. Так как порт WAN всего один, а переназначение LAN для этой цели невозможно, без отдельной высокоскоростной линии быстрого соединения при большом количестве подключённых устройств достигнуть не получится.

Xiaomi R1D: скорость работы

Второе ограничение — встроенный жёсткий диск. Он обеспечивает скорость записи порядка 60 МБ/с и чтения на уровне 30–40 МБ/с.

Xiaomi R1D: жёсткий диск

Однако при активном использовании маршрутизатора в роли домашнего медиахранилища либо одновременном сохранении резервных копий с нескольких устройств лучше заменить диск на SSD. Так, при установке тестового экземпляра KingDian S120 удалось достичь скорости записи около 200 МБ/c. Кроме того, жёсткий диск прилично нагревается: до 40 градусов без прямой загрузки и до 58 градусов при просмотре заранее загруженных фильмов.

Xiaomi R1D: жёсткий диск

Официальные прошивка и клиент от Xiaomi ограничивают скорость передачи по Wi-Fi на встроенный накопитель роутера до 10–15 МБ/с.

Подобные ограничения компания ввела для простой и стабильной работы роутера без предварительной настройки. Распределение ресурсов позволяет равномерно использовать канал всем подключённым устройствам. Для получения большей скорости необходимо использовать Samba- или FTP-подключение или стороннюю прошивку.

Прошивка

Прошивка Xiaomi R1D основана на проекте OpenWRT. Кроме двух версий официальной прошивки (стабильной и девелоперской с дополнительными функциями), есть множество кастомных.

  • Стабильная прошивка — стандартная функциональность, отсутствует поддержка принтеров, МФУ и сотовых модемов 3G/LTE.
  • Девелоперская прошивка — возможность установки русского языка, реализация мультикаст-соединений (необходимы для просмотра каналов некоторых IP-провайдеров), возможность более подробной настройки SSH, возможность получения root-доступа.
  • Tomato-ARM — тонкая подстройка всех программных и аппаратных функций роутера вплоть до числа оборотов системы охлаждения и реализации веб-сервера с доступом по https.
  • DD-WRT — лаконичная система с роутеров D-Link, возможна установка на внутреннюю память (размер меньше 16 МБ).

Все прошивки позволяют реализовать доступ к файлам по Wi-Fi и SSH, организовать DLNA-медиабиблиотеку и сервис автономной загрузки файлов по протоколам torrent и e2k и прямым http-ссылкам. Последняя функция реализуется через клиент для операционных систем Windows и OS X.

Xiaomi R1D: настольный торрент-клиент

Из дополнительных функций стоит упомянуть возможность организации сервера AirPlay и Time Machine с полной поддержкой экосистемы Apple.

Управление через веб-интерфейс

Работа с роутером и его настройка возможны тремя способами: через стартовую страницу по IP-адресу 192.168.31.1, по адресу miwifi.com или с помощью приложения. Интерфейс исключительно на английском или китайском, требуется дополнительная русификация.

Xiaomi R1D: MiWiFi Xiaomi R1D: MiWiFi

Роутер сам определяет сеть, подхватывает IP-адрес и устанавливает нужные параметры. В первом окне вы вводите имя и пароль для доступа по PPPoE или ставите галочку, что этого не требуется. Во втором окне указываете пароль, который будет использован для беспроводных сетей и доступа к самому роутеру.

Xiaomi R1D: MiWiFi Xiaomi R1D: MiWiFi

Xiaomi R1D: MiWiFi Xiaomi R1D: MiWiFi

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

Xiaomi R1D: MiWiFi Xiaomi R1D: MiWiFi

Для создания резервных копий настроек в облаке, установки дополнительных пакетов и управления умными домашними устройствами от Xiaomi потребуется Mi-аккаунт.

Протоколы L2TP и PPTP настраиваются во вкладке VPN. Для стабильной связи необходима смена прошивки на стороннюю.

Xiaomi R1D: MiWiFi Xiaomi R1D: MiWiFi

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

Xiaomi R1D: MiWiFi Xiaomi R1D: MiWiFi

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

Управление через мобильное приложение

Поскольку Xiaomi R1D входит в состав умного дома в качестве главного управляющего устройства, с ним можно работать с помощью фирменного приложения Mi Home. Оно самостоятельно опознает роутер и скачает дополнительное приложение Mi Router.

Цена: Бесплатно

Цена: Бесплатно

Цена: Бесплатно

Цена: Бесплатно

Раньше приложение было исключительно на китайском языке, однако сейчас в нём появился английский перевод. Функциональность приложения не отличается от веб-версии, однако оно более удобно.

Xiaomi R1D: Mi Home Xiaomi R1D: Mi Home

Xiaomi R1D: Mi Home Xiaomi R1D: Mi Home

Кроме того, доступ к встроенному диску из веб-версии осуществляется при помощи сторонних диспетчеров файлов и протокола DLNA. А в приложении есть встроенный файловый клиент, позволяющий проводить любые операции с жёстким диском.

Безоговорочный лидер среди бюджетных NAS

Xiaomi R1D

За 105 долларов Xiaomi R1D может заменить массу сервисов и отдельных устройств:

  • Роутер.
  • NAS — домашний файловый сервер ёмкостью 1 ТБ.
  • Сервер AirPlay.
  • Сервер Time Machine или диск для резервных копий.
  • Телеприставку (потребуется сторонняя прошивка).
  • Центральное устройство умного дома Xiaomi.
  • Центр автоматизации с функцией быстрого подключения через NFC.

У Xiaomi R1D достаточно большое русскоязычное коммьюнити. Это позволяет найти любые инструкции по настройке в свободном доступе и обойти существующие программные ограничения официальной прошивки.

Серьёзный недостаток устройства — устаревший порт USB 2.0 с низкой скоростью передачи данных. Кроме того, одного порта WAN и двух портов LAN может быть недостаточно.

С другой стороны, для домашних целей возможностей устройства хватает. Замена потребуется не раньше, чем через 4–5 лет, после широкомасштабного внедрения более современных стандартов Wi-Fi. А до тех пор Xiaomi R1D может стать отличным домашним роутером.

lifehacker.ru

Как из дешевого и простенького роутера сделать полнофункциональный сервер.

Введение

Первым роутером, который попал ко мне, был D-Link DI-524, у меня не было времени что либо выбирать, просто купил первый попавшийся недорогой роутер с wi-fi. Так как по натуре я люблю всё ломать, я почти сразу полез в интернет искать, как его можно усовершенствовать. Но в то время почти ничего не нашел кроме советов просверлить в нем дырок. Да действительно он частенько перегревался и поэтому нестабильно работал, но на такой рискованный шаг я не пошел. Благо я его почти сразу продал своему другу. Когда мне снова понадобилось такое устройство, я уже знал какие функции мне действительно необходимы, для меня это было QoS. Я как обыденный покупатель начал смотреть на маркетинговые описания возможностей и фишек устройств. Для меня это тогда казалось единственно верным. Оказалось это не совсем так. Я купил asus w520gu, я им в целом доволен (об этом позже), но считаю правильным поделиться опытом и информацией как я его усовершенствовал.

Новый взгляд на выбор роутера по аппаратным характеристикам

Покупая роутер, мы платим существенную часть за возможности реализованные программно. Но роутер приближенно похож на компьютер у него есть железо, а есть программа. Так кто нам мешает выбрать самое лучшее железо, а потом программу заменить. Это почти обычное дело даже с компьютерами, когда идущая в комплекте система удаляется и ставится новая. Конечно, никто в описании не пишет аппаратные характеристики, тут нам на помощь придет интернет и огромные сообщества пользователей. Наверняка есть и полнее, но мне понравилась страница — dd-wrt.com/wiki/index.php/Supported_Devices Там огромное разнообразие устройств, и почти для каждого заполнены параметры: Frequency (Частота процессора), RAM (обьем оперативной памяти), Flash Memory (объем энергонезависимой памяти),WLAN standard (поддерживаемый стандарт Wi-fi). Отлично теперь мы видим аппаратные характеристики и можем выбирать, для роутера как маленького сервера почти все параметры важны, ну и так же желательно рассмотреть поддержку usb портов, это всегда пригодится.

Различные неофициальные прошивки

Свободные бесплатные прошивки для многих беспроводных маршрутизаторов, основанных на чипах BroadCom/Atheros/Xscale/PowerPC, первоначально были разработаны для серии маршрутизаторов Linksys, они представляют собой миниатюрную операционную систему, основанную на ядре Linux. Кратко об известных мне: Описывать системы не буду, кому интересно тот прочитает сам, очень много разнообразной информации (правда большинство на английском) Чтобы оценить возможности DD-WRT посмотрите на demo dd-wrt.com/demo/index.asp Вкратце людям с большим опытом в мире linux, и у кого есть несколько свободных ночей, советую попробовать openwrt, будет возможность настроить всё с нуля и ставить море портированного linux софта. Oleg больше ориентирован на определенные версии роутеров, но предоставляет достаточно много полезных функций. Большинству я советую обратить внимание на первые две прошивки. Они очень похожи по возможностям, некоторым нравится одно, другим другое. Лично мне tomato приглянулся легким и удобным Ajax интерфейсом управления.

Пример с asus w520gu, что было и что стало

Сейчас у меня asus w520gu и я им, в общем, доволен. Стоит он где то 2500-3000 р и свои деньги отрабатывает. Я писал в начале, что для меня важно наличие QoS (http://ru.wikipedia.org/wiki/QoS). Это расстановка приоритетов для трафика, по ширине канала, а так же скорости отклика. Так вот как я был огорчен, когда увидел реализацию QoS в заводской прошивке моего асуса. Новые правила было не добавить, а встроенные были очень общие, типа игры voip и тд. Так же этот роутер обладает usb портом, но в заводской версии кроме принтера к нему ничего не подключить. Что существенного я получил после установки неофициальной прошивки:
  • Общую стабильность и скорость работы
  • Полностью настраиваемый Qos (А точнее разделение ширины канала по разным портам, протоколам, сетевым интерфейсам и даже размеру скачанного трафика, как минимум всегда полезно занизить приоритет торентов)
  • Увеличение ограничения на количества соединений (важно для p2p)
  • Рабочий usb порт для внешних устройств (не только принтер)
  • Большое количество настроек, новых возможностей, и очень информативный интерфейс, графики трафика, загрузки ресурсов и тд
  • А так же, что важно, linux платформой, для которой портированно много софта. С этим возможности бесконечны. Например, при наличии подключенного винчестера или большой флэшки, на роутер можно повесить и простенький http сервер, и torrent с веб интерфейсом, а так же сделать файл сервер. В общем из роутера можно сделать домашний сервер.

Освобождение от ответственности.

Хочу заранее предупредить, для установки неофициальных прошивок потребуются некоторые знания. Если не уверены что осилите сами, то лучше этого не делайте, попросите знакомого линуксоида или админа. Так же, скорее всего это нарушит гарантийное соглашение, так что с новой прошивкой о гарантии можно забыть. Если вы будете чётко следовать инструкциям по установке, вы вряд ли что-то сломаете, большинство роутеров имеет специальный режим загрузки, обычно в течение первых 5 секунд роутер ждёт команд на восстановление и всегда можно будет заново всё переустановить. Самое главное, что всё что вы будете делать, делайте на СВОЙ СТРАХ И РИСК. Я не буду отвечать за вред, нанесённый вашему роутеру.

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

geektimes.com

Хостим персональный сайт на роутере / Хабр

Доброго времени суток.

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

Поразмыслив, я вспомнил интересную статью о настройке сервера ip-телефонии Asterisk на маршрутизаторе Mikrotik. Так как у меня дома установлен роутер именно этого проиводителя, не раздумывая, я решил поднять на нём веб-сервер nginx. Итак, мы имеем зарегистрированное доменное имя, «белый» статический ip-адрес и маршутизатор Mikrotik RB751G-2HnD c замечательной функцией MetaRouter. Начнём с выбора образа openwrt для нашего маршрутизатора. Зайдём на роутер через программу winbox и посмотрим на его архитектуру. У модели RB751G-2HnD архитектура mipbse:

Скачиваем с сайта последний образ openwrt для mipbse отсюда. Копируем на роутер в Files:

Импортируем образ openwrt в метароутер, и добавляем сетевой интерфейс для нашего виртуального образа:

/metarouter import-image file-name=openwrt-mr-mips-rootfs-31411-basic.tar.gz memory=24 enabled=yes /metarouter interface add virtual-machine=mr2 type=dynamic dynamic-bridge=bridge_local Затем входим в консоль образа и первым делом устанавливаем пароль на пользователя root.

Редактируем настройки сети для получения сетевых реквизитов по dhcp от самого роутера:

vi /etc/config/network config interface lan option ifname eth0 option proto dhcp Добавляем службу сети в автозагрузку и перезапускаем:/etc/init.d/network enable /etc/init.d/network restart Мы получили сетевые реквизиты, и теперь у нас есть доступ к системе по ssh.

Редактируем конфигурационный файл пакет-менеджера для обновления репозитория и установки необходимых программ:

vi /etc/opkg.conf src/gz snapshots http://openwrt.wk.cz/trunk/mr-mips/packages dest root / dest ram /tmp lists_dir ext /var/opkg-lists option overlay_root /overlay Далее, обновляем репозиторий и устанавливаем nginx и php:opkg update opkg install nginx php5 php5-fastcgi Переходим к настройке веб-сервера.mv /etc/nginx/nginx.conf /etc/nginx/nginx_example.conf vi /etc/nginx/nginx.conf user nobody nogroup; worker_processes 1; error_log logs/error.log; events { worker_connections 1024; } http { include mime.types; index index.php index.html index.htm; default_type text/html; sendfile on; keepalive_timeout 65; gzip on; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; gzip_min_length 1k; server { listen 80; # слушающий порт server_name 172.16.0.12; # имя или ip-адрес сервера fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 32k; fastcgi_buffers 4 32k; fastcgi_busy_buffers_size 32k; fastcgi_temp_file_write_size 32k; client_body_timeout 10; client_header_timeout 10; send_timeout 60; output_buffers 1 32k; postpone_output 1460; root /srv/www; # Папка с файлами сайта location ~ \.php$ { fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; if (-f $request_filename) { fastcgi_pass 127.0.0.1:1026; } } } } Редактируем параметры php:vi /etc/php.ini doc_root = "srv/www" cgi.force_redirect = 1 cgi.redirect_status_env = "yes";

И проверяем параметры fascgi:

vi /etc/nginx/fastcgi_params fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; Добавляем службы в автозагрузку и запускаем их:/etc/init.d/nginx enable /etc/init.d/nginx start /etc/init.d/php5-fastcgi enable /etc/init.d/php5-fastcgi start Копируем файлы сайта на сервер в указанную папку и проверяем работоспособность сайта внутри локальной сети. Не забываем поменять http порт нашего роутера и пробросить 80 порт сервера во внешку:/ip service set port=8080 2 disabled=yes # or no /ip firewall nat add chain=dstnat action=dst-nat dst-address=внешний_IP-адрес protocol=tcp dst-port=80 to-ports=80 to-addresses=172.16.0.12 in-interface=ether2 disabled=no # in-interface=WAN порт На этом настройка закончена.
Заключение
Таким образом, мы получили условно (наличие роутера) беслпаный хостинг для персонального сайта с минимальным энергопотреблением и потреблением ресурсов роутера.

habr.com

Домашний сервер «всё-в-одном» — success story / Хабр

Жил да был у меня роутер одной хорошей фирмы на букву «Dead». Ну, это с ним, собственно, и случилось. Посмотрел я на цены новых, на кучу компьютерного хлама в углу, на список подключений на домашнем компе… И понял, что не нужен мне роутер. Соберу свой, с нормальной маршрутизацией, DNS, WINS, i2p, блекджеком и так далее.
Как это было?
После недолгих раскопок в залежах железа, на свет были извлечены: • Процессор Intel Core 2 Duo E8400 @ 3GHz • При нём же – материнка Asus P5Q • 2 планки DDR2 по 2Gb • PCI-e сетевая карта TP-Link TG-3468 • Неопознанная сетевая карта WiFi (b/g/n) на базе Ralink RT3060 • Жёсткий диск Seagate 250Gb Вывод lshw можно посмотреть тут. Всё это было отчищено от пыли, вмонтировано в корпус с блоком питания, запущено и проверено в memtest и mhdd. Не обнаружив дефектов, я начал установку всего мне необходимого.
Основы основ
За основу я взял дистрибутив Debian Testing, раскатанный через Debootstrap. Сверху сразу были поставлены openssh-server, firmware-ralink и pppoe/pppoeconf. Ребутнувшись в свежепоставленную систему, я сразу перенёс SSH на 192.168.1.1 и отключил авторизацию по паролю (установив предварительно свой ключ).
Да будет сеть!
Для начала был запущен pppoeconf. К DOCSIS-модему оказалась подключена сетевая карта с именем eth2, в итоге был получен следующий конфиг /etc/ppp/peers/rt:noipdefault defaultroute replacedefaultroute hide-password noauth persist plugin rp-pppoe.so eth2 user "ptn" usepeerdns Но это не всё – необходимо ещё настроить /etc/network/interfaces следующим образом:auto rt iface rt inet ppp pre-up /sbin/ifconfig eth2 up provider rt
Превращаем роутер в WiFi-AP
Изначальная задумка была в том, что бы сделать 2 WiFi-сети: одну для своих компьютеров и ноутбуков, с надёжным паролем и присоединением ко всем необходимым ресурсам, а вторую – для гостей, которым захотелось выйти в интернет, но не надо знать о том, что творится в моей сети. В итоге на сервер был установлен hostapd с конфигом следующего вида (все названия сетей и пароли были изменены):interface=wlan0 driver=nl80211 country_code=RU ieee80211d=1 hw_mode=g channel=9 ssid=Private bridge=br0 preamble=1 ignore_broadcast_ssid=0 wpa=3 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP CCMP rsn_pairwise=CCMP wpa_passphrase=MyVeryStrongPassword wmm_enabled=1 ieee80211n=1 ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40] internet=1 bss=wlan0_0 ssid=Guest preamble=1 ignore_broadcast_ssid=0 wpa=3 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP CCMP rsn_pairwise=CCMP wpa_passphrase=passw0rd wmm_enabled=1 ieee80211n=1 ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40] internet=1 Тут мы ставим ещё и bridge для eth0 и wlan0 – это позволит подключившимся к нашей сети видеть её целиком, а не беспроводной сегмент. Модифицируем networks:auto eth0 wlan0 wlan0_0 br0 iface eth0 inet manual allow-hotplug wlan0 allow-hotplug wlan0_0 iface wlan0 inet manual pre-up ifconfig wlan0 hw ether f2:7d:68:6d:51:30 iface br0 inet static bridge_ports eth0 wlan0 address 192.168.1.1 netmask 24 iface wlan0_0 inet static address 192.168.254.1 netmask 24 Немного о магии в pre-up для wlan0: для работы с несколькими AP нам надо использовать больше, чем один MAC-адрес. Hostapd назначает MAC для виртуальных интерфейсов (wlan0_0 в нашем случае) автоматически, но для этого адрес первой точки доступа должен иметь несколько «пустых» битов в конце. Я не стал мелочиться и освободил сразу 4 штуки. Задача на дом – посчитайте, сколько максимум AP теперь можно запустить на одной карте.
Налетай – IP всем и каждому, бесплатно!
Всем компьютерам в сети, как это ни прискорбно, надо выдать IP-адреса. Да-да, этим мы и будем заниматься. Недолго думая, на сервере был запущен DHCP-сервер следующей конфигурации:update-static-leases on; authoritative; allow unknown-clients; use-host-decl-names on; log-facility local7; subnet 192.168.1.0 netmask 255.255.255.0 { interface br0; authoritative; range 192.168.1.2 192.168.1.254; option subnet-mask 255.255.255.0; option ntp-servers 192.168.1.1; option domain-name-servers 192.168.1.1; option netbios-name-servers 192.168.1.1; option routers 192.168.1.1; option domain-name "local"; } subnet 192.168.254.0 netmask 255.255.255.0 { interface wlan0_0; authoritative; range 192.168.254.2 192.168.254.254; option subnet-mask 255.255.255.0; option domain-name-servers 8.8.8.8, 8.8.4.4; option routers 192.168.254.1; } local-address 192.168.1.1; Видно, что для 192.168.1.1/24 так же выдаются DNS, WINS, NTP и шлюз 192.168.1.1 – самое время их настроить. Со шлюзом всё просто, думаю, эти команды не знает только ленивый:sysctl net.ipv4.ip_forward=1 iptables –t nat -A POSTROUTING -o ppp0 -j MASQUERADE Разумеется, ставим iptables-persistent для сохранения наших настроек, а так же прописываем соответствующие параметры в /etc/sysctl.conf. Теперь наш сервер является полноценным китайским роутером за 10$. Что? Вам кажется слабовато? Мне тоже. Едем дальше.
Как пройти в библиотеку?
Думаю, никто не забыл, что нам нужен DNS? Простейший forwarding настраивается до нелепости просто, но ведь мы делаем полноценный сервер с резолвингом и реверс-зонами… Ставим bind9, и настраиваем:options { directory "/var/cache/bind"; forwarders { 8.8.8.8; 8.8.4.4; }; dnssec-validation auto; auth-nxdomain no; listen-on { 127.0.0.1; 192.168.1.1; }; allow-transfer { none; }; version none; }; zone "local" IN { type master; file "/var/lib/bind/db.localnet"; }; zone "1.168.192.in-addr.arpa" IN { type master; file "/var/lib/bind/db.localnet-rev"; }; Теперь нам нужны файлы прямой и обратной зоны:/var/lib/bind/db.localnet$ORIGIN . $TTL 86400 ; 1 day local IN SOA ns.local. router.local. ( 200216990 ; serial 28800 ; refresh (8 hours) 7200 ; retry (2 hours) 604800 ; expire (1 week) 86400 ; minimum (1 day) ) NS ns.local. $ORIGIN local. $TTL 86400 ; 1 day ns A 192.168.1.1 server A 192.168.1.1 router A 192.168.1.1 /var/lib/bind/db.localnet-rev$ORIGIN . $TTL 86400 ; 1 day 1.168.192.in-addr.arpa IN SOA ns.local. router.local. ( 2001105214 ; serial 28800 ; refresh (8 hours) 14400 ; retry (4 hours) 3600000 ; expire (5 weeks 6 days 16 hours) 86400 ; minimum (1 day) ) NS ns.local. $ORIGIN 1.168.192.in-addr.arpa. $TTL 3600 ; 1 hour 1 PTR router.local. Просто? А теперь сделаем так, что бы каждый компьютер в сети можно было видеть не по IP, а по DNS-имени. Для этого нам нужно настроить DDNS. Эта технология позволяет связать DHCP-сервер, выдающий адреса, и DNS-сервер. Для начала создадим ключ для нашего DDNS:dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER DDNS_UPDATE Эта команда создаст нам 2 файлика с DDNS-ключом. Нам нужно содержимое ключа:cat Kddns_update.+157+36693.key DDNS_UPDATE. IN KEY 0 3 157 HEyb0FU9+aOXnYFQiXfiVA== «HEyb0FU9+aOXnYFQiXfiVA==» и есть наш ключ. Немного отредактируем наш конфиг DHCP, добавив в него следующие опции:ddns-updates on; ddns-update-style interim; key rndc-key { algorithm HMAC-MD5; secret HEyb0FU9+aOXnYFQiXfiVA==; } zone local. { primary 192.168.1.1; key rndc-key; } zone 1.168.192.in-addr.arpa. { primary 192.168.1.1; key rndc-key; } subnet 192.168.1.0 netmask 255.255.255.0 { … ddns-domainname "local."; ddns-rev-domainname "in-addr.arpa."; } Так же поступим с DNS:key "rndc-key" { algorithm hmac-md5; secret "HEyb0FU9+aOXnYFQiXfiVA=="; }; zone "local" IN { … allow-update { key rndc-key; }; }; zone "1.168.192.in-addr.arpa" IN { … allow-update { key rndc-key; }; }; Вуаля – и эта киллер-фича работает.
Будущее всё-таки здесь. Шестая версия
Так исторически сложилось ©, что мой провайдер (презрительный взгляд в сторону Ростелекома) не выдаёт IPv6 (хотя обещал).В настоящее время на всей протяженности сети «Ростелеком» обеспечил возможность работы по протоколу IPv6, — парирует пресс-служба оператора. Что ж, пофиксим это недоразумение. В качестве брокера я выбрал sixxs.net – у них есть туннельные серверы в России, и их туннель прост в настройке для случая с динамическим IP. Процесс регистрации и получения настроек туннеля/подсети я опущу – там всё довольно просто. Остановлюсь на настройке. Настройка IPv6 на самом сервере производится в 2 этапа. Во-первых, поставим пакет aiccu – это и есть туннелирующая программа. При установке у нас будет запрошен логин и пароль от sixxs, и некоторые другие данные. После запуска у нас появится новый интерфейс:sixxs Link encap:IPv6-in-IPv4 inet6 addr: 2a02:578:5002:xxx::2/64 Scope:Global UP POINTOPOINT RUNNING NOARP MTU:1280 Metric:1 … Сервер теперь имеет доступ в v6-сеть – почему бы не поделиться ей с другими? Для начала, разрешим IPv6-forwarding (не забудьте прописать в /etc/sysctl.conf):sysctl net.ipv6.conf.all.forwarding=1 Настроек с iptables производить не надо – привет, 21 век! Далее на сайте sixxs получаем подсеть. Её адрес будет очень похож на адрес нашего туннеля – будьте внимательны, они отличаются! После получения адреса вида 2a02:578:5002:xxxx::/64, приступим к его настройке. Во-первых, зададим нашему серверу адрес 2a02:578:5002:xxxx::1, добавив в interfaces следующие строки:iface br0 inet6 static address 2a02:578:5002:xxxx::1 netmask 64 Во-вторых, разрешим выдачу IPv6 компьютерам в сети. Поставим пакет radvd, и настроим его следующим образом:interface br0 { AdvSendAdvert on; prefix 2a02:578:5002:xxxx::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; RDNSS 2a02:578:5002:xxxx::1 { }; }; Добавим IPv6 DNS в настройки нашего bind – для полного фен-шуя:options { forwarders { … 2001:4860:4860::8888; 2001:4860:4860::8844; }; listen-on-v6 { ::1/128; 2a02:578:5002:xxxx::/64; }; … }; Это всё – теперь мы имеем доступ, например, к ipv6.google.com, или, что гораздо ценнее – к ipv6.nnm-club.me ;)
Пингвин, смотрящий в окно
Я люблю, когда у меня в сети всё красиво. А это возможно только в случае полной гармонии. Например, когда все компьютеры видят друг друга. Для рабочих станций Windows справедливо вспомнить про WINS (помните, мы даже выдавали эту настройку в DHCP). Его настройка крайне проста: устанавливаем пакет samba. Конфиг по умолчанию надо немного изменить:workgroup = WORKGROUP wins support = yes dns proxy = yes interfaces = lo br0 bind interfaces only = yes server role = standalone server Проверяем результаты… О, да тут всё хорошо! Кстати, так как у нас есть samba, можно сразу настроить файлопомойку. Но это уже настолько избитая тема, что я оставляю её на плечах гугла. По сути, всё и так должно работать из коробки – разве что read only для homes выключить да smbpasswd -a user…
Который час?
Настроим раздачу времени на сервере: установим ntp. С конфигами всё до нелепости просто:server 0.ru.pool.ntp.org server 1.ru.pool.ntp.org server 2.ru.pool.ntp.org server 3.ru.pool.ntp.org … broadcast 192.168.1.1 А вот и результат: Мы уже вплотную приблизились к роутерам уровня microtik за $150-$200. Но это же не всё? Конечно нет.
Killer-feature #1: I2P
А почему бы не иметь доступа в эту сеть без каких-либо настроек, без прокси-серверов и так далее? Вот и я думаю, «почему». Для начала установим вменяемую версию Java:echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" >> /etc/apt/sources.list apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886 apt-get update apt-get install oracle-java7-installer И установим сам роутер:echo "deb http://deb.i2p2.no/ unstable main" >> /etc/apt/sources.list wget "http://www.i2p2.de/_static/debian-repo.pub" -O- -q | apt-key add - apt-get update apt-get install i2p i2p-keyring Теперь создадим зону, направляющую все запросы к *.i2p на наш сервер. В конфиг bind:zone "i2p" IN { type master; file "/etc/bind/db.i2p"; }; Сама зона:$ORIGIN i2p $TTL 7200 i2p. IN SOA ns.i2p. hostmaster.i2p. ( 2010020701 ; serial 7200 ; refresh 1800 ; retry 7200 ; expire 7200 ; minimum ) i2p. IN NS ns.i2p. ns.i2p. IN A 192.168.1.1 *.i2p. IN A 192.168.1.1 *.i2p. IN AAAA 2a02:578:5002:xxxx::1 Отлично, но как теперь это обработать? Банально завернуть весь трафик на порт роутера у меня не получилось – прокси ругался на то, что не может так работать. Пришлось настраивать связку nginx+php5-fpm и писать небольшой скрипт. Как сделать первую часть – искать долго не надо, благо мануалов в сети полно. Вторая часть:/etc/nginx/sites-enabled/i2pserver { listen [2a02:578:5002:xxxx::1]:80; listen 192.168.1.1:80; # по этому адресу можно будет получить доступ к конфигам роутера server_name localhost.i2p; location / { proxy_pass http://127.0.0.1:7657; } } server { listen [2a02:578:5002:xxxx::1]:80; listen 192.168.1.1:80; server_name *.i2p; location / { fastcgi_pass unix:/var/run/php5-fpm; include fastcgi_params; # принудительно задаём адрес скрипта fastcgi_param SCRIPT_FILENAME /etc/nginx/proxy.php; # передаём скрипту параметр с адресом HTTP proxy от i2p fastcgi_param PROXY_PASS 127.0.0.1:4444; } } Сам скрипт можно увидеть тут. Это всё! Теперь мы имеем доступ в i2p даже с телефона – никаких проблем.
Killer-feature #2: делаем рабочее место рабочей сетью
Так исторически сложилось ©, что я являюсь системным администратором по удалёнке сразу в нескольких фирмах. И очень полезно иметь к ним доступ с любого компьютера в сети. Настройку OpenVPN (или любого другого) для сервера осуществляем как для любого другого клиента. Например, после этих действий у нас появился интерфейс tap0 с IP 10.0.0.7/24. Но если мы обратимся из локальной сети по адресу 10.0.0.1, то трафик уйдёт в default gateway провайдера. Исправим этот недостаток:iptables -t nat -A POSTROUTING -d 10.0.0.0/24 -o tap0 -j MASQUERADE iptables-save > /etc/iptables/rules.v4 Аналогичным образом поступаем для всех сетей на сервере.
Вместо заключения
У нас есть полноценный сервер, который мы можем использовать по своему усмотрению. DNS, nginx, IPv6, i2p… Можно так же установить зону для локальной разработки, например, *.dev, и тестировать свои сайты с любого устройства в локальной сети. Так как каждый компьютер в сети имеет свой постоянный IPv6-адрес, можно иметь к нему доступ из любой точки мира (Security warning! Настраивайте файрволы правильно!). И это всё – лишь вершина айсберга. То, что будет его подводной частью – решать вам.

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

habr.com

Настраиваем сервер как роутер | Блокнот обычного админа =)

На внешнем интерфейсе IP адрес 192.168.1.2, шлюз (ADSL модем) 192.168.1.1, внутренняя сеть находиться в диапазоне 10.0.0.1 – 254. Тогда наши настройки будут выглядеть следующим образом:

auto eth0iface eth0 inet staticaddress 192.168.1.2netmask 255.255.255.0gateway 192.168.1.1

auto eth2iface eth2 inet staticaddress 10.0.0.1netmask 255.255.255.0

sudo nano /etc/nat - создаем файл nat в папке /etc/в него

#!/bin/sh

# Включаем форвардинг пакетовecho 1 > /proc/sys/net/ipv4/ip_forward

# Разрешаем трафик на loopback-интерфейсеiptables -A INPUT -i lo -j ACCEPT

# Разрешаем доступ из внутренней сети наружуiptables -A FORWARD -i eth2 -o eth0 -j ACCEPT

# Включаем NATiptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 -j MASQUERADE

# Запрещаем доступ снаружи во внутреннюю сетьiptables -A FORWARD -i eth0 -o eth0 -j REJECTВнеся вышеуказанные настройки, сохраняем их (F2), а для автоматического запуска скрипта вновь открываем /etc/network/interfaces и в самом конце файла дописываем:

post-up /etc/natТакже не забываем дать нашему скрипту права на исполнение:

sudo chmod +x /etc/nat

Перезапускаем сеть:

sudo /etc/init.d/networking restart

Если нигде небыли допущены ошибки все будет работать. Для того чтобы проверить работоспособность, на машинах внутренней сети укажем в качестве шлюза и DNS адрес нашего роутера: 10.0.0.1 и пропингуем любой внешний адрес, к примеру один из OpenDNS серверов: 208.67.222.222. Вы, наверное, удивитесь — интернет не работает. Почему? Ведь мы указали наш роутер в качестве DNS сервера, а он пока что таким не является. Конечно, можно прописать DNS на клиентской машине, но если внезапно изменяться DNS сервера? Очень неудобно будет каждый раз бегать их перепрошивать.Самым приемлемым решением будет поднять на нашем роутере полноценный DNS сервер, но, как правило, это избыточно, поэтому ограничиваемся простым DNS (а также и DHCP) сервером Dnsmasq.

sudo apt-get install dnsmasq

После выполнения установки открываем /etc/dnsmasq.conf, находим, раскомментируем и вносим изменения в строку, что разрешает серверу принимать DNS запросы из внутренней сети:

listen-address=127.0.0.1, 10.0.0.1

Перезапускаем DNS сервер:

sudo /etc/init.d/dnsmasq restart

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

Настраиваем DHCP

Теперь, когда наш сервер начал работу необходимо настроить клиентские машины. Конечно, все нужные параметры можно прописать вручную, но что делать, если клиентских машин слишком много, и они расположены по всему зданию? В этом случае мы и воспользуемся протоколом DHCP. Он позволяет автоматически получать все, необходимые для корректной работы, сетевые настройки. Ранее установленный Dnsmasq и выступит в качестве DHCP сервера, который очень просто настроить. Для этого открываем /etc/dnsmasq.conf и указываем диапазон выдаваемых адресов (в нашем случае 10.0.0.100-150), сетевую маску и время использования IP адреса:

dhcp-range=10.0.0.100,10.0.0.150,255.255.255.0,12h

Адреса DNS сервера и шлюза сервер из системных настроек берет автоматически. Затем еще раз перезапускаем Dnsmasq:

sudo /etc/init.d/dnsmasq restart

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

cat /var/log/syslog | grep DHCPOFFERНастраиваем DHCP

Теперь, когда наш сервер начал работу необходимо настроить клиентские машины. Конечно, все нужные параметры можно прописать вручную, но что делать, если клиентских машин слишком много, и они расположены по всему зданию? В этом случае мы и воспользуемся протоколом DHCP. Он позволяет автоматически получать все, необходимые для корректной работы, сетевые настройки. Ранее установленный Dnsmasq и выступит в качестве DHCP сервера, который очень просто настроить. Для этого открываем /etc/dnsmasq.conf и указываем диапазон выдаваемых адресов (в нашем случае 10.0.0.100-150), сетевую маску и время использования IP адреса:

dhcp-range=10.0.0.100,10.0.0.150,255.255.255.0,12h

#Отсекаем запросы нерезолвящиеся запросы domain-needed bogus-priv filterwin2k #Принимаем запросы на локальном адресе listen-address=127.0.0.1,192.168.1.1 #Адрес серверов провайдера server=89.252.34.107 server=89.252.34.110 #Не использовать resolv.conf, там у меня 127.0.0.1 указан, если не запретить читать его, то dnsmasq может #пытаться сам себе запросы перенаправлять no-resolv no-poll #Диапазон адресов, маска и время аренды адреса dhcp-range=192.168.1.2,192.168.1.15,255.255.255.0,72h #Пример статически выдаваемого адреса dhcp-host=00:13:ce:47:09:0d,192.168.1.17 dhcp-authoritative cache-size=150 no-negcache log-queries log-dhcp

 

Адреса DNS сервера и шлюза сервер из системных настроек берет автоматически. Затем еще раз перезапускаем Dnsmasq:

sudo /etc/init.d/dnsmasq restart

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

выставить на клиенте автоматическое получение IP адреса

cat /var/log/syslog | grep DHCPOFFER

Все выданные IP адреса и MAC адреса будут перечислены, с указанием кому они присвоены.

Настройка кэширующего прокси-сервера Squid.

В достаточно большой сети некоторая часть трафика повторяется, и часть его иногда достигает 50%. Очень удобно кэшировать часто повторяющиеся запросы, снизив нагрузку на канал, тем самым ускорить выдачу пользователю запрашиваемых страниц и сэкономить входящий трафик. Для выполнения этих задач используем Squid — кэширующий прокси с огромными возможностями.

sudo apt-get install squid

Устанавливаем прокси-сервер и настраиваем его:

sudo /etc/init.d/squid stop

Открываем /etc/squid/squid.conf, находим и корректируем следующие строки, не забыв их раскомментировать:

Указываем порт:

http_port 3128 transparent

Выполняем настройки кэша:

cache_dir ufs /var/spool/squid 4096 32 256

Указываем внутренние сети, лишние комментируем:

acl localnet src 10.0.0.0/24 # RFC1918 possible internal network#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network#acl localnet src 192.168.0.0/16 # RFC1918 possible internal network

Разрешаем доступ из внутренних сетей (найти и раскомментировать):

http_access allow localnet

Устанавливаем лимит использования памяти:

memory_pools onmemory_pools_limit 50 MB

Задаем язык вывода ошибок для пользователя

error_directory /usr/share/squid/errors/Russian-koi8-r

Важное замечание! В версии Ubuntu 9.10 эта строка может выглядеть так, поэтому рекомендуем проверить правильность пути:

error_directory /usr/share/squid/errors/ru

Затем сохраняем файл конфигурации. Теперь строим кэш и запускаем:

sudo /usr/sbin/squid -zsudo /etc/init.d/squid start

Для того чтобы проверить настройки на клиентской машине в браузере указываем использование прокси-сервера с адресом 10.0.0.1 и портом 3128 и убеждаемся что все исправно работает.Теперь остается только настроить работу прокси-сервера, чтобы http трафик заворачивался на Squid автоматом, без прописывания прокси на клиенте. Для этого следует открыть /etc/nat и дописать в конце строку:

# Заворачиваем http на проксиiptables -t nat -A PREROUTING -i eth2 -d ! 10.0.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 10.0.0.1:3128

Перезапускаем сеть:

sudo /etc/init.d/networking restart

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

Права на оригинальную статью принадлежат ее автору http://mannix.ru/ubuntu/nastraivaem-router-na-linux-ubuntu-nat-dhcp-squid.html

Понравилось это:

Нравится Загрузка...

rusua.org.ua


Смотрите также