MikroTik Wireless Router is one of the most popular and stable WiFi Routers. WiFi Zone for an ISP or for an office or for a home can easily be configured with MikroTik WiFi Router. MikroTik has a lot of WiFi Routers that can be used as a WiFi Access Point (AP), a WiFi Station or a WiFi Repeater. MikroTik Wireless Router can also be used as both WiFi Station and WiFi AP simultaneously. The simple usage of MikroTik Wireless Router is to create a WiFi Zone with MikroTik WiFi AP. So, in this article I will discuss how to configure MikroTik WiFi AP to create a WiFi Zone in a home or in an office or even in an ISP network using MikroTik hAP lite wireless router.
MikroTik WiFi Access Point
The bridge or ap-bridge mode of a MikroTik Wireless Router is used to create a WiFi Access Point. MikroTik Wireless Router offers creating meaningful SSID with WPA and WPA2 PSK security. MAC Address filtering can also be applied in MikroTik WiFi AP with Access List and RADIUS Server. A lot of WiFi Routers are available in MikroTik for different purpose. Among these we will configure a hAP lite (RB941-2nD) wireless router (but the configuration can be same for all MikroTik Wireless Routers) to create a WiFi Zone in a home, office or ISP.
Network Diagram
The following network diagram is being followed for this article configuration.
MikroTik WiFi Router
In this network diagram a hAP lite MikroTik Wireless Router is being used as a WiFi AP and LAN gateway. This wireless router has one WLAN interface and four Ethernet interfaces. WiFi AP will be created on WLAN interface so that wireless devices can be connected. Among four Ethernet interfaces, ether1 port will be used as WAN connection with IP network 192.168.70.0/30. We will create a bridge interface and configure a DHCP Server (with IP block 10.10.70.0/24) on this bridge interface and then add WLAN interface and ether2 to ether4 interfaces to this bridge so that WiFi users and LAN users can get IP address, default gateway and other network parameters from this DHCP Server automatically.
MikroTik WiFi AP Configuration
We will now configure WiFi AP and LAN gateway in MikroTik hAP light Wireless Router. Complete Wireless AP Setup and LAN Gateway Configuration can be divided into the following five steps.
Resetting Default RouterOS Configuration
WiFi AP Setup on WLAN Interface
Creating Bridge Interface and Adding LAN and WLAN Ports
Basic RouterOS Configuration
DHCP Configuration on Bridge Interface
Step 1: Resetting RouterOS Default Configuration
MikroTik Wireless RouterOS usually comes with default configuration. But default configuration sometimes makes you confused. So, I always suggest to reset and remove default configuration. The following steps will show how to reset and remove RouterOS default configuration.
Login to RouterOS using Winbox with admin user or any full permission user.
Click on System menu item and then click Reset Configuration option. Reset Configuration window will appear.
Click the No Default Configuration checkbox.
Click on Reset Configuration button. It will ask to confirm resetting configuration. Click Yes to confirm.
Now default configuration will be reset and Routerboard will be rebooted. After successful reboot, you will get a fresh and zero configuration RouterOS.
Resetting RouterOS Default Configuration
Step 2: WiFi AP Setup on WLAN Interface
MikroTik hAP lite wireless router has a WLAN interface where WiFi AP has to be setup. To setup WiFi Access Point in MikroTik Wireless Router we have to first create Security Profile and then create SSID to connect wireless devices.
Creating Security Profiles
To connect a wireless device with MikroTik WiFi AP, wireless devices must provide security key (password). MikroTik wireless supports both WPA PSK and WPA2 PSK authentication type. The following steps will show how to create passkey for MikroTik WiFi AP with Security Profile.
From Winbox, click on Wireless menu item. Wireless Tables window will appear.
Click on Security Profiles tab and then click on PLUS SIGN (+). New Security Profile window will appear.
Put a meaningful profile name (WiFi Profile) in Name input field.
Choose dynamic keys from Mode drop down menu.
Check WPA PSK and WPA2 PSK checkbox from Authentication Types panel.
Now provide strong password in WPA Pre-Shared Key and WPA2 Pre-Shared Key password box.
Click Apply and OK button.
MiKroTik Wireless AP Security Profile
Creating SSID for MikroTik WiFi AP
After creating Security Profile we will now set Wireless Mode and create SSID (Service Set Identifier) so that wireless devices can find our MikroTik Access Point with created SSID. The following steps will show how to create SSID and set wireless mode in hAP lite MikroTik Wireless Router.
Click on WiFi Interfaces tab and you will find WLAN interface (by default: wlan1) here. It may be disabled at first time. So, if you find disabled, click mouse right button on it and then click on Enable option to enable WiFi interface.
Double click on available and enabled WiFi Interface. Interface window will appear.
From General tab you can set WiFi interface name from Name input box or you can keep it default.
Click on Wireless tab and choose ap bridge from Mode dropdown menu.
Put SSID name (MikroTik AP) in SSID input box.
Now click on Advanced Mode button and choose your created security profile from Security Profile drop down menu.
Make sure Default Authenticate and Default Forward checkbox is checked. Otherwise devices will not be connected until MAC authentication.
Click Apply and OK button.
MikroTik WiFi AP Setup
Now created SSID will be found in wireless devices and wireless device can be connected providing password. You will find connected devices in Registration tab. But connection is not enough to get internet. IP address, default gateway and other network parameters have to provide to get internet to the connected devices. So, we will now do MikroTik Router basic configuration with creating bridge interface. We will also configure DHCP Server to assign IP address, default gateway and other network parameters automatically.
Step 3: Creating Bridge Interface and Adding LAN and WLAN Ports
We will now create a bridge interface and add ether2 to ether3 interfaces including WLAN interface to this bridge because we want to provide same block IP address to LAN and WiFi users. The following steps will show how to create bridge interface and add physical interfaces to it.
Click on Bridge menu item. Bridge interface will appear.
Click on Bridge tab and then click on PLUS SIGN (+). New Interface window will appear.
Put bridge interface name in (LAN_Bridge) Name input field.
Click Apply and OK button.
Now click on Ports tab and click on PLUS SIGN (+). New Bridge Port window will appear.
Choose ether2 interface from Interface dropdown menu.
Choose created bridge interface (LAN_Bridge) from Bridge dropdown menu.
Click Apply and OK button.
Similarly add ether3, ether4 and wlan1 interfaces to this bridge.
Adding Interface to Bridge
Step 4: Basic RouterOS Configuration
We will now do RouterOS basic configuration where we will assign WAN IP, LAN Gateway, DNS IP, and Default Gateway IP and configure NATing. The following steps will show how to do basic configuration in MikroTik Wireless Router.
Go to IP > Address menu item. Address List window will appear.
Click on PLUS SIGN (+). New Address window will appear. Put ISP provided IP address (192.168.70.2/30) in Address input box. Now choose ether1 from Interface dropdown menu. Click Apply and OK button.
Similarly, click on PLUS SIGN (+) again and put LAN Gateway IP (10.10.70.1/24) in Address input field and choose bridge interface (LAN_Bridge) from Interface dropdown menu and click Apply and OK button.
Now go to IP > DNS menu item. DNS Settings window will appear. Put your ISP provided DNS IP or Google Public DNS IP 8.8.8.8 in Servers input field.
Go to IP > Routes menu item. Route List window will appear. Click on Gateway input field and put ISP provided gateway IP (192.168.70.1) in this field. Click Apply and OK button.
Go to IP > Firewall menu item. Firewall window will appear. Click on NAT tab and then click on PLUS SIGN (+). New NAT Rule window will appear. From General tab choose srcnat from Chain drop down menu and put LAN Block (10.10.70.0/24) in Src. Address input field. Click on Action tab and choose masquerade from Action drop down menu and then click Apply and OK button.
Now click New Terminal menu item and ping google.com. If everything is OK, you will get response that means MikroTik Router is now ready to communicate to internet.
MikroTik Winbox Terminal
Step 5: DHCP Server Configuration on Bridge Interface
We will now setup DHCP Server on bridge interface so that WiFi users and LAN users can get IP address, default gateway and other network parameters automatically. The following steps will show how to setup DHCP Server on bridge interface in MikroTik RouterOS.
Go to IP > DHCP Server menu item. DHCP Server window will appear.
Click on DHCP Setup button. DHCP Setup window will appear.
Choose bridge interface (LAN_Bridge) from DHCP Server Interface drop down menu and then click Next button.
LAN Block (10.10.70.0/24) will be automatically assigned in DHCP Address Space input field. So, nothing to do. Just click Next button.
LAN Gateway (10.10.70.1) will automatically be assigned in Gateway for DHCP Network input field. So, just click Next button.
IP Pool from where IP address will be assigned to Wireless devices and LAN devices will be automatically assigned from LAN Block (10.10.70.2-10.10.70.254) in Addresses to Give Out input field. So, just click Next button.
Your assigned DNS Server IP will automatically be assigned in DNS Server input filed. So click Next button.
Default DHCP lease time is 10 minute. So, 10 minute will keep assigned in Lease Time input filed. If you want, you can increase lease time as much you want. Click Next button.
Now you will find DHCP Setup successful message window. Just click OK button.
MikroTik DHCP Server Setup
MikroTik WiFi AP with DHCP Server is now ready. Now connect any wireless device or connect any LAN device. The device will get IP address, default gateway and other network parameters automatically and be able to get internet access.
With this MikroTik WiFi AP configuration any wireless user who knows WiFi password can connect with SSID and any LAN user who will be connected with LAN cable can able to get access to DHCP Server and DHCP Server will be happy to provide him/her IP address, default gateway and other network parameters because there is no filter rule to block unauthorized access.
MikroTik Wireless or WiFi AP is smart enough granting access based on MAC address. But MAC address filtering can only save WiFi access. LAN users should also filter based on MAC Address. For this, it is always better to use Static DHCP Server Configuration which will filter access based on MAC Address.
How to Configure MikroTik WiFi AP with DHCP Server in hAP lite Wireless Router has been discussed in this article. I hope you will now be able to configure MikroTik Wireless Router following the above steps properly. However, if you face any confusion to follow the above steps properly, feel free to discuss in comment or contact with me from Contact page. I will try my best to stay with you.
В данной статье мы установим отдельный контейнер LXC, я кратко расскажу чем контейнеры отличаются от обычных виртуальных машин.
Установим и настроим сервис для обработки доменных имен в своей локальной сети BIND9
Настроим роутер(MikroTik) и сеть для того, чтобы наши устройства в локальной сети могли находить наши доменные имена.
И для примера настроим наш PVE1(сам сервер) для доступа к нему по доменному имени, а не IP адресу.
Для чего вообще это делать?
В общих чертах это не обязательно, но намного приятнее обращаться к своим сервисам по привычному доменному имени, а не IP адресу.
Например к медиасервису Plex я обращаюсь по адресу plex.gregory-gost.ru, а не 192.168.88.8:32400/web. Согласитесь удобнее 🙂
Вроде ничего не упустил 🙂 Кому интересно прошу далее под кат!
Текста много, предупреждаю сразу 😉
Установка контейнера LXC в Proxmox-VE
Для того, чтобы наш DNS сервис работал самостоятельно и не зависел от наших попыток, что-то сломать сделать, я его установил в отдельный LXC контейнер(виртуальную среду).
Что такое LXC контейнер?LXC (англ. Linux Containers) — система виртуализации на уровне операционной системы для запуска нескольких изолированных экземпляров операционной системы Linux на одном узле. LXC не использует виртуальные машины, а создаёт виртуальное окружение с собственным пространством процессов и сетевым стеком. Все экземпляры LXC используют один экземпляр ядра операционной системы.
В чем отличие обычной Виртуальной машины от LXC контейнера?
Подробно разбирать не буду, к данной статье это не относится. Просто для справки опишу основное отличие:
Контейнер использует ядро операционной системы сервера. У виртуальной машины может быть совершенно отличное ядро. Для лучшего понимания — в виртуальной машине можно запустить почти все, от Windows, до специфических Linux систем, а в контейнере можно запустить только Linux систему с тем же ядром, Windows уже не запустишь.
Начнем мы с добавления в наш сервер специального шаблона(Template) операционной системы. В Proxmox их можно скачать из своих репозиториев.
Откроем панель управления через WEB по IP адресу. И перейдем к нашему хранилищу Local(pve1), потом переходим к содержимому(Content) и нажмем кнопку Шаблоны(Templates)
Добавление шаблона
Т.к. наш Proxmox основан на ОС Debian, то я принял для себя решение использовать LXC Debian 9 версии. Мне с ними удобнее работать. Если опыт вам позволяет, то вы можете использовать и другие дистрибутивы, благо выбор позволяет. В 17 версии Proxmox доступен также Alpine, который используют практически во всех Docker контейнерах, как один из самых легковесных.
Находим нужный шаблон и грузим его.
Находим наш шаблон и загружаем его
Нам остается только подождать окончания загрузки.
Окончание загрузки
Начинаем установку.
Нажимаем нужную кнопку
Проводим действия по настройке контейнера
</figur e>
Запускаем контейнер по кнопке Start если еще не сделали это сами 🙂
Запуск контейнера
Все дальнейшие действия будем проводить через консоль:
Переходим к консоли контейнера
Далее начинается сам процесс установки и настройки DNS сервиса…
Установка и настройка DNS сервиса BIND9
Обновляем контейнер
apt update && apt full-upgrade -y
Устанавливаем BIND9
apt install bind9 -y
Ждем окончания установки и пока останавливаем сервис
Необходимо сделать так, чтобы локальный DNS сервис корректно обрабатывал локальное доменное имя, а остальные запросы отправлял основному роутеру(шлюзу)
Все файлы настроек и зон в bind9 находятся по пути /etc/bind/
root@DNS:~# ls -l /etc/bind/
total 55
-rw-r--r-- 1 root root 3923 May 3 20:34 bind.keys
-rw-r--r-- 1 root root 237 May 3 20:34 db.0
-rw-r--r-- 1 root root 271 May 3 20:34 db.127
-rw-r--r-- 1 root root 237 May 3 20:34 db.255
-rw-r--r-- 1 root root 353 May 3 20:34 db.empty
-rw-r--r-- 1 root root 270 May 3 20:34 db.local
-rw-r--r-- 1 root root 3171 May 3 20:34 db.root
-rw-r--r-- 1 root bind 463 May 3 20:34 named.conf
-rw-r--r-- 1 root bind 490 May 3 20:34 named.conf.default-zones
-rw-r--r-- 1 root bind 165 May 3 20:34 named.conf.local
-rw-r--r-- 1 root bind 890 Oct 20 17:13 named.conf.options
-rw-r----- 1 bind bind 77 Oct 20 17:13 rndc.key
-rw-r--r-- 1 root root 1317 May 3 20:34 zones.rfc1918
Я решил немного изменить принцип хранения файлов и зон, чтобы было удобнее.
Вот к такому виду необходимо привести конструкцию. Давайте разбираться, что тут и к чему!
root@DNS:~# ls -l /etc/bind/
total 45
drwxr-sr-x 2 root bind 5 Oct 20 20:44 key
-rw-r--r-- 1 root bind 554 Oct 20 20:46 named.conf
-rw-r--r-- 1 root bind 1044 Oct 13 18:32 named.conf.acl
-rw-r--r-- 1 root bind 514 Oct 13 18:33 named.conf.default-zones
-rw-r--r-- 1 root bind 917 Oct 13 18:33 named.conf.local-zones
-rw-r--r-- 1 root bind 891 Oct 13 18:36 named.conf.logging
-rw-r--r-- 1 root bind 397 Oct 13 18:34 named.conf.options
-rw-r--r-- 1 root bind 215 Oct 20 20:45 rndc.conf
drwxr-sr-x 2 root bind 10 Oct 14 20:33 zone
-rw-r--r-- 1 root root 1317 May 3 20:34 zones.rfc1918
Т.к я пока не планирую выводить работу BIND9 на IPv6, то я запустил службу только для IPv4. Для этого необходимо добавить опцию запуска в файл /etc/default/bind9
Добавляем опцию -4 в параметр OPTIONS
# run resolvconf?
RESOLVCONF=no
# startup options for the server
OPTIONS="-u bind -4"
Правим основной файл настроек named.conf:
// Access List
include "/etc/bind/named.conf.acl";
// Options
include "/etc/bind/named.conf.options";
// Key file
include "/etc/bind/key/rndc.key";
include "/etc/bind/key/ns.gregory-gost.ru.key";
// Server
server 192.168.88.7 {
keys { "ns.gregory-gost.ru"; };
};
// Trusted DNS
acl trusted-dns {
127.0.0.1;
key ns.gregory-gost.ru;
};
// Controls Channel
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
// Logging
include "/etc/bind/named.conf.logging";
// Zones
include "/etc/bind/named.conf.local-zones";
Описание параметров named.conf
include — подключение отдельных конфигурирующих файлов. Причем порядок не менее важен.server — определяет свойства или поведение, которое этот сервер будет использовать. Например IP адрес и вложенные параметры для него.
server -> keys — определяет какой ключ использовать для подписи при активном DNSSEC
acl trusted-dns — определяет отдельный список доступа и какой ключ использовать для него.
controls — описывает и контролирует доступ к каналу управления, используемому удаленным администратором при использовании утилиты rndc
Создаем отдельный файл named.conf.acl:
Acl (access control list) — позволяет задать именованный список сетей. Формат раздела: acl «имя_сети» {ip; ip; ip; };
У меня пока две разделенные зоны, но с одной подсетью, соответственно разделяю по выделенным диапазонам. Я прописывал все выделенные IP адреса.
directory — указывает абсолютный путь к рабочему каталогу сервера. Все последующие относительные пути используют этот базовый каталог. Если параметры каталога не указаны, используется каталог, из которого был загружен BIND.dnssec-enable — указывает, что используется защищенная служба DNS
dnssec-validation — указывает, что распознаватель(сервер имен с кэшированием или только для кэширования) будет пытаться проверить ответы из включенных(подписанных) зон DNSSEC
dump-file — определяет абсолютный путь, по которому BIND создает дамп базы данных (кеша) в ответ на rndc dumpdb
statistics-file — Этот оператор определяет имя файла, в который будут записываться данные при выдаче команды rndc stats
version — выводить версию сервера или нет при специфических запросах.
port — на каком порту обрабатывать запросы. Лучше не менять, т.к. порт для всех DNS запросов стандартный 53
listen-on — на каких IPv4 ожидать поступления DNS запросов
listen-on-v6 — на каких IPv6 ожидать поступления DNS запросов
allow-transfer — определяет список совпадений, например IP-адрес(а), которому разрешено передавать(копировать) информацию о зоне с сервера(главного или подчиненного для зоны)
allow-query — определяет список совпадений IP-адресов, которым разрешено отправлять запросы на сервер
allow-recursion — определяет список совпадений IP-адресов, которым разрешено отправлять рекурсивные запросы на сервер
Создаем отдельный файл named.conf.logging:
В этом разделе описывается условие ведения журнала.
channel — BIND принимает несколько определений каналов и параметры того, как их вести.category — управляет тем, какие категории заносятся в различные определенные или стандартные имена каналов.
На файле named.conf.local-zones я бы хотел остановится немного подробнее. Именно в данном файле мы определяем направления. Именно в этом файле указываются сами зоны с доменными именами и правила их обработки. Как я уже писал, у меня всего две зоны и именно для двух зон мне необходимо сделать идентичные описания, но с различными параметрами.
Переименуем стандартный файл named.conf.local в named.conf.local-zones
view "lan_zone_one" {
match-clients {
loc;
lan-pool-one;
};
allow-query {
loc;
lan-pool-one;
};
allow-transfer {
trusted-dns;
};
allow-update {
none;
};
recursion yes;
forwarders {
192.168.88.1;
};
include "/etc/bind/named.conf.default-zones";
zone "gregory-gost.ru" {
type master;
file "/etc/bind/zone/db.gregory-gost.ru";
};
zone "88.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zone/db.gregory-gost.ru.inverse";
};
};
view "lan_zone_two" {
match-clients {
loc;
lan-pool-two;
};
allow-query {
loc;
lan-pool-two;
};
allow-transfer {
trusted-dns;
};
allow-update {
none;
};
recursion yes;
forwarders {
192.168.88.30;
};
include "/etc/bind/named.conf.default-zones";
zone "gregory-gost.ru" {
type master;
file "/etc/bind/zone/db.gregory-gost.ru";
};
zone "88.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zone/db.gregory-gost.ru.inverse";
};
};
Описание параметров файла named.conf.local-zones
view — позволяет BIND предоставлять различные функциональные возможности в зависимости от доступа к нему определенных хостов. Т.е. позволяет разделить доменную зону, например для внешних и внутренних запросов. У нас пока только внутренние!match-clients — основной список клиентов(хостов) для совпадений с направлением
allow-query — определяет список совпадений IP-адресов, которым разрешено отправлять запросы на сервер
allow-transfer — определяет список совпадений, например IP-адрес(а), которому разрешено передавать(копировать) информацию о зоне с сервера(главного или подчиненного для зоны)
allow-update — определяет список совпадений, которым разрешено отправлять динамические обновления для мастер-зон
recursion — если для рекурсии установлено значение «да»(по умолчанию), сервер всегда будет обеспечивать рекурсивное поведение запросов, если этого требует клиент(распознаватель).
forwarders — определяет список IP-адресов(адресов) (и необязательных номеров портов), на которые будут перенаправляться запросы. Именно этот параметр отвечает за перенаправление неизвестных запросов к своему роутеру.
zone — тут описываются управляющие свойства и путь к файлу с описанием самих зон
Файл rndc.conf создавать не обязательно, но если вы хотите изменить ключ rndc.key, то можно воспользоваться данным механизмом.
Необходимо подать команду:
rndc-confgen > rndc.conf
Содержимое файла выглядит так:
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "S+vUL+wY/RO5JdNZ6VVX2A==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "S+vUL+wY/RO5JdNZ6VVX2A==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
Блок key «rndc-key» это и есть содержимое файла ключа rndc.key. Потому вы можете скопировать этот текст в файл rndc.key
С файлами настроек разобрались, теперь необходимо создать нужные папки и переместить туда базовые файлы с описанием зон.
Создаем папки:
Полное описание параметров файлов конфигурации BIND9 можно найти тут: zytrax.com (ENG)
Теперь самое интересное, а именно описание доменных зон!
Описание локальных доменных зон
У нас уже есть базовые доменные зоны и мы указали в файле конфигурации наши локальные зоны. Возможно вы это заметили в файле named.conf.local-zones
Пункты:
zone "gregory-gost.ru" {
type master;
file "/etc/bind/zone/db.gregory-gost.ru";
};
zone "88.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zone/db.gregory-gost.ru.inverse";
};
Соответственно нам необходимо создать два файла:
1. /etc/bind/zone/db.gregory-gost.ru
2. /etc/bind/zone/db.gregory-gost.ru.inverse
Эти два файла называются зонами прямого просмотра и зонами обратного просмотра. Почему так? А потому что DNS работает в обе стороны! Вы можете попасть через доменное имя, как на IP адрес так и наоборот, проверить IP адрес на привязку к нему доменного имени.
Представляю вам файл зоны прямого просмотра:
;
; Zone Front view
;
$TTL 3600
@ IN SOA gregory-gost.ru. example.gregory-gost.ru. (
2019101401 ; Serial
1d ; Refresh
1h ; Retry
1w ; Expire
2h ; Negative Cache TTL
)
@ IN NS ns1.hostdomen.ru.
@ IN NS ns2.hostdomen.ru.
@ IN NS ns3.hostdomen.org.
@ IN NS ns4.hostdomen.org.
@ IN A 99.55.99.199
www IN CNAME gregory-gost.ru.
@ IN NS ns.gregory-gost.ru.
ns IN A 192.168.88.7
pve1 IN A 192.168.88.6
Описание файла прямого просмотра db.gregory-gost.ru
$TTL — Время активности записей в секундах. Необходим, чтобы указать другим DNS-серверам, как долго стоит хранить запись у себя в кэше. Слишком малое значение увеличит нагрузку на сервер, а большое приведет к слишком длительному процессу изменения записи. Поставим 1 час.SOA-запись — Запись идет сразу после параметра TTL и она хранит общие настройки для зоны.
Запись начинается с символа @ продолжается указателем на тип сети IN(Internet), потом тип SOA, потом идет домен(точка после ru обязательна!), потом идет email адрес без символа @. Символ @ заменяется на точку.(также в конце доменного имени точка после ru обязательна!)
Serial — порядковый номер изменения. Его необходимо каждый раз менять вручную при редактировании файла. С помощью него вторичный сервер (если такой есть), может определить, что были изменения и начать процесс копирования настроек. Имеет формат даты и порядкового номера: 2019101401 -> 2019-10-14 №01 (т.е. версия №01 от 14 октября 2019 г.)
Refresh — указывает вторичным серверам, через какой промежуток времени они должны сделать запрос на обновление зоны.
Retry — говорит вторичным серверам, как часто повторять попытки на обновление зоны, если первичный сервер не смог дать ответ (сервис был недоступен).
Expire — время в секундах, которое может работать вторичный сервер, если недоступен первичный. Если данный период истечет, а вторичный сервер так и не смог обновить зону, он должен прекратить отвечать на запросы.
Далее идут типы записей, кто работал с хостингами и настраивал доменные имена увидят знакомые типы записей.
Основные типы записей, использующиеся в DNS:
A — сопоставляет имени узла соответствующий IP-адрес. Именно его мы и будем использовать!
NS — указатель на DNS-сервера, которые обслуживают данную зону. Тоже используем не много 🙂
MX — почтовая запись. Указывает на почтовые сервера, которые обслуживают домен. Поддерживает приоритезацию при указании нескольких записей, клиент будет ориентироваться на значение той, для которой указано меньшее число.
CNAME — aliase или псевдоним. Перенаправляет запрос на другую запись.
TXT — произвольная запись. Чаще всего используется для настройки средств повышения качества отправки почтовых сообщений.
Ну а сам принцип построения записи вы можете видеть в примере файла.
Как видите после записи доменных имен в этих файлах всегда ставится точка: gregory-gost.ru.
Будьте внимательны!
Остался файл зоны обратного просмотра:
;
; Zones invert view
;
$TTL 3600
@ IN SOA gregory-gost.ru. example.gregory-gost.ru. (
2019101401 ; Serial
1d ; Refresh
1h ; Retry
1w ; Expire
2h ; Negative Cache TTL
)
@ IN NS ns1.hostdomen.ru.
@ IN NS ns2.hostdomen.ru.
@ IN NS ns3.hostdomen.org.
@ IN NS ns4.hostdomen.org.
@ IN NS ns.gregory-gost.ru.
7 IN PTR ns.gregory-gost.ru.
6 IN PTR pve1.gregory-gost.ru.
Описание файла прямого просмотра db.gregory-gost.ru
По сути это обратная операция преобразования IP адреса в доменное имя.Адрес преобразуется через строку 88.168.192.in-addr.arpa подстановкой числа описанного в зоне.
Например 6 IN PTR pve1.gregory-gost.ru. — это IP 192.168.88.6
Вы могли видеть еще непонятные доменные имена, по типу ns1.hostdomen.ru. я оставил это для нормальной обработки основного доменного имени т.к. мой домен привязан к хостингу.
Сохраняем все наши файлы и пробуем запустить сервис BIND9
service bind9 start
Для проверки работает или нет, сначала проверяем сервис
service bind9 status
Если видим что-то похожее значит все ок
Active: active (running) since Sun 2019-10-20 20:57:57 UTC; 21h ago
После правки файлов зон, необходимо обнулить кеш и обновить файлы зон:
rndc reload
И не забывайте менять строку Serial при каждом внесении изменений!
Если вы установили пакет dnsutils, вы можете проверить свою установку используя обзорную утилиту DNS dig
После установки BIND9 примените dig к интерфейсу обратной петли (loopback), чтобы убедиться, что порт 53 прослушивается. Из терминала наберите:
dig -x 127.0.0.1
В ответ получите, что-то такое:
root@DNS:~# dig -x 127.0.0.1
; <<>> DiG 9.10.3-P4-Debian <<>> -x 127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9723
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1.0.0.127.in-addr.arpa. IN PTR
;; ANSWER SECTION:
1.0.0.127.in-addr.arpa. 604800 IN PTR localhost.
;; AUTHORITY SECTION:
127.in-addr.arpa. 604800 IN NS localhost.
;; ADDITIONAL SECTION:
localhost. 604800 IN A 127.0.0.1
localhost. 604800 IN AAAA ::1
;; Query time: 1 msec
;; SERVER: 192.168.88.7#53(192.168.88.7)
;; WHEN: Mon Oct 21 18:18:15 UTC 2019
;; MSG SIZE rcvd: 132
named-checkzone
Хороший способ проверить ваши файлы зон — это использовать утилиту named-checkzone, установленную вместе с пакетом bind9. Эта утилита позволяет вам убедиться в корректности настроек до перезапуска BIND9 и применения изменений.
zone pve1.gregory-gost.ru/IN: loaded serial 2019101401
OK
Очистить кеш данных DNS сервиса можно командой rndc flush
Для нормальной обработки доменных имен обычно необходимо подождать некоторое время, от минуты до десяти минут.
Все хорошо. Займемся настройкой сети, ведь мы хотим, чтобы локальные доменные имена работали на всех наших локальных устройствах (умеющих работать с DNS)
Настройка локальной сети для обработки внутренних DNS запросов
Локальная сеть настраивается достаточно просто.
Вам необходимо указать IP адрес LXC контейнера, как основной DNS сервер. Его будут получать клиенты через DHCP.
Для устройств со статическими IP настройками, необходимо DNS прописать вручную.
Я покажу, как добавить DNS в DHCP сервер, на примере своего роутера MikroTik
Открываем Winbox или терминал, подключаемся к нашему роутеру и идем по пути: IP -> DHCP Server вкладка Networks
Добавляем IP адрес нашего BIND9 выше IP роутера
Консольно:
[RC]/ip dhcp-server network set dns-server=192.168.88.7,192.168.88.1[/RC]
Далее обновляем аренду для всех клиентов или какого-то одного для проверки.
Например в Windows 10 можно запустить командную строку(cmd) и проверить получение DNS:
Видим строку DNS-серверы. . . . . . . . . . . : 192.168.88.7 значит наш ПК получает DNS корректно.
Но для нормального открытия WEB страницы по доменному имени этого еще не достаточно!
Необходимо, чтобы на целевом IP адресе, WEB интерфейс корректно обработал такой запрос.
Давайте на примере основной хост машины PVE, попробуем получить к ней доступ через указанное нами доменное имя pve1.gregory-gost.ru.
Настройка открытия WEB интерфейса Proxmox-VE по доменному имени
Для того, чтобы запрос к доменному имени был обработан корректно, нам необходимо настроить специальный сервис, который будет за это отвечать.
Этот сервис nginx. Очень мощная штука по которой пишут не маленькие мануалы. Поэтому мы ограничимся самым простым функционалом.
В общем основная суть того, что происходит.
При запросах по доменному имени pve1.gregory-gost.ru мы попадаем на 80 порт(стандартный HTTP) и нас перенаправляет на 443 порт(HTTPS) на котором работает WEB Proxmox-VE.
Ну а там запрос поступает уже на свой внутренний адрес и порт: https://localhost:8006 при этом для нас, все скрыто за кулисами nginx 🙂
По сути, именно таким образом все это и работает.
Открытый WEB через доменное имя
По данному мануалу, локальные доменные имена не доступны из Интернета!
Если вы столкнулись с ошибкой «401 no token»:
Необходимо отредактировать файл запуска сервиса nginx
Статья получилась достаточно большой. Хотя это еще не все, вы могли заметить закомментированные строки связанные с SSL сертификатами.
Возможно позже я разберусь с этим и дополню статью, а пока приходится мириться с паникой браузера в отношении непроверенных сертификатов.
Существуют и системы альтернативные BIND. Например PowerDNS, Unbound, djbdns, Dnsmasq.
Вы можете рассмотреть их для реализации похожего функционала.
Мне остается только напомнить про дальнейшие шаги по реализации своего домашнего сервера:
MikroTik RouterOS does not always include all the packages those are developed by MikroTik team. So, sometimes you may find that some packages are missing in your RouterOS such as NTP package, DUDE package, Wireless package, CAPsMAN package and so on. Specially, user manager package which is totally a separate MikroTik RADIUS package used to manage user authentication, authorization and accounting is always missing. Also upgrading RouterOS or downgrading RouterOS you may find that some packages are missing there. So, if you find package missing in your RouterOS, you must install them manually. But installing these extra packages sometimes may be difficult if don’t know the proper guideline. Some of our loyal readers also told me that they are facing problem to install these extra packages specially user manager package. So, in this article I will discuss how to install MikroTik extra packages properly with step by step guideline.
How to Install MikroTik Packages
If you don’t know the proper guideline, you may spend hours to hours to install RouterOS extra packages but your result will be null. So, I am sharing here how to install MikroTik extra packages with proper guideline.
Extra packages in MikroTik can properly be installed with the following four steps.
Finding Architecture Name and RouterOS version
Downloading Exact Packages with Architecture Name and Version
Uploading Downloaded Packages to MikroTik Root Directory
Rebooting Router to Install Uploaded Packages
Step 1: Finding Architecture Name and RouterOS Version
It is important to know the Architecture Name and the current RouterOS Version before going to download extra packages. The following steps will show how to find the architecture name and the current RouterOS version.
From Winbox, go to System > Resources menu item. Resources window will appear.
Architecture Name and RouterOS version will be found in Resources window.
Finding Architecture Name and Version
From the above Resource window we can see that the Architecture Name of this MikroTik Router is powerpc RouterOS version is 6.40 (stable).
Step 2: Downloading Exact Packages with Architecture Name and Version
Knowing Architecture Name and RouterOS version, we will now download packages from MikroTik Download Archive. The following steps will show how to choose accurate RouterOS version for your MikroTik Router.
Go to MikroTik Download Page and select your current RouterOS version. You will find a list of RouterOS version for all Router Board architectures.
Click on the ZIP (.zip) file that will match with your Architecture Name. The file format will be all_packages-architecture_name-routeros_version.zip.
Your download will be started and within few minutes it will be finished.
Downloading Packages from MikroTik Download Archive
From the above image we can see that the ZIP file for powerpc is all_packages-ppc-6.40.zip.
Step 3: Uploading Downloaded File to MikroTik Root Directory
After downloading exact ZIP file for MikroTik RouterOS, we will now extract this zip file and upload desired package files to MikroTik root directory. The following steps will show how to upload downloaded package file to MikroTik root directory.
Extract your downloaded ZIP file. You will find your desired package files (.npk) in your extracted folder. The file format will be package_name-routeros_version-architecture_name.npk.
From Winbox, click on Files menu item. File List window will appear.
Now drag and drop your desired package files (NPK file) to this File List window.
Installing User Manager and NTP Packages
From the above image we can see that User Manage and NTP packages are uploaded to install in RouterOS.
Step 4: Rebooting Router to Install Uploaded Packages
We are now ready to install our missing packages in RouterOS. We will now provide reboot command to install these packages.
From Winbox, go to System > Reboot menu item.
It will ask to confirm reboot. Click on Yes button.
Your Router will be rebooted and after reboot you will find that your desired packages will be installed and no file will remain in File List window.
To check whether your packages are installed or not, go to System > Packages menu item. Now you will find that your installed packages will be listed in Package List window.
If you face any confusion to follow the above steps properly, watch the following video on Installing extra packages in MikroTik Router. I hope it will reduces your any confusion.
How to install extra packages in MikroTik Router properly has been discussed in this article. I hope you will now be able to install your missing RouterOS packages if required. However, if you face any confusion to install extra packages, feel free to discuss in comment or contact with me from Contact page. I will try my best to stay with you.
Внимание! С 21.10.2022 изменился состав компонентов. Первая материнская плата не очень стабильно себя показала. Это системная проблема, поэтому не могу советовать вам использование данной материнской платы в составе своих систем (речь про ASRock E3C226D2I)Подробности в апдейте в конце статьи!
Наконец я добрался до написания этой статьи. К ней я шел долгие два с чем-то года 🙂
Данным постом хотелось бы начать отдельный цикл статей, которые будут посвящены моим исследованиям в рамках реализации домашнего сервера и различных сервисов на нем.
Что это и зачем вообще меня понесло в эту сферу, я расскажу в этом посте и давайте начнем обо всем по порядку!
Так как меня достаточно сильно интересуют различные IT тематики, я озадачился вопросом сборки собственного домашнего сервера.
Безусловно в обычном хозяйстве такая вещь по сути избыточна, в самом простом примере все лежит на домашнем компе, если что нужно поковырять, то это можно сделать в рамках существующих мощностей.
Основной целью было создание хорошего медиа-сервиса для просмотров фильмов и сериалов, ибо моя медиатека через некоторое время забила два HDD до отказа, а это чуть более 2Тб!
За некоторый период я уже успел ознакомится с возможностями DLNA встроенных в ОС «Окна» и меня они не очень-то и радовали. Тем не менее мне удалось найти более чем классный сервис Plex (будет в отдельной статье) о котором вскользь упоминалось в статье Домашний Медиа-плеер: Raspbian + Kodi + плагин Plex на Raspberry Pi 3 B+
Но за реализацией основной цели скрывались цели о которых я раньше только догадывался! О них я узнавал по мере ознакомления с различным софтом и решениями на этом софте.
Итогом всей моей головоломки стала реализация сервера с системой виртуализации Proxmox и различными контейнерами с отдельными сервисами, о чем я постараюсь рассказать.
Данный пост это ни в коем случае не призыв делать аналогично, я просто хочу познакомить вас с тем, что вышло у меня и как я это все реализовывал. Может тоже захотите 🙂
Перво наперво нужно было определиться с железом, с софтом и тем, как это все будет работать в локальной сети!
Аппаратная часть
После долгих обдумываний и гуглежа было принято решение делать все на серверных компонентах, ведь подразумевалось, что сервер будет лопатить 365/24/7 с небольшими перерывами на профилактику.
А серверные компоненты стоят не дешево. Безусловно я изучал различные готовые решения типа QNAP, Synology и др., но меня они не устраивали по ряду причин. По цене, собственная сборка, получалась подороже конечно.
В принципе я был уверен, что молодые годы опыта по сборкам/разборкам ПК мне помогут, а повышенную цену компенсирует более мощная база )
Сказано сделано!
Далее необходимо было определиться с количеством места, используемой системой, потребляемыми ресурсами и др.
С чем же в итоге мне пришлось определиться? А вот с чем:
Компактный корпус — формата ITX с местом для 2х дисков 2.5″ и 4х дисков 3.5″
Motherboard — формата mini-ITX с 6 SATA портами 6Гбит/сек поддержкой CPU Xeon, серверной DDR-DIMM памяти с ECC. Не самая новая конечно, иначе будет слишком дорого.
CPU — Самый дешевый серверный Xeon
DDR — Оперативная память с ECC
SSD — 2шт. в RAID-1
HDD — 4шт. в RAID-5 (у многих на него бомбит)
Блок питания — формата ATX на 550W
В принципе этого достаточно, чтобы понять, что не так просто такое найти и собрать в один сервер. Но у меня получилось 🙂
Давайте расскажу, что именно я выбрал пока искал необходимое.
Корпус
Корпуса я анализировал долго, это одно из самых не простых решений. Мне повезло и я урвал последний(на тот момент) корпус который подходил мне по всем параметрам.
Корпус: Chenbro SR301/69T3
Chenbro SR301
Кратенько пробежимся по характеристикам:
Форм фактор материнской платы: Mini-ITX 170 x 170(мм)
Размер корпуса: 310 x 200 x 270(мм)
Место для SSD: внутри для 2.5″ — 2шт.
Место для SSD/HDD: внутри для 2.5″/3.5″ — 4шт. Съемные корзины. Горячая замена
Охлаждение: один вентилятор 120мм под корзиной с HDD/SSD
Питание: место под блок питания формата ATX с длиной не более 140 мм
Как видим в данном корпусе есть все, что требуется. И место для ITX материнской платы, и 6 дисков и их горячая замена и компактность, причем с местом для практически полноформатного ATX блока питания.
В принципе вы все еще можете найти данный корпус в рознице и прикупить его. Цена правда на него кусается: ~ 8 700 руб.(цена на момент написания статьи по поиску) Но хороший корпус для сервера, из хороших материалов того стоит.
Кстати в сети есть обзоры на этот корпус 🙂 Их я тоже смотрел.
Материнская плата
Конечно ядром всего этого безобразия выступает материнская плата. Где же найти такую красавицу с такими требованиями да еще и с серверными замашками?
Мне повезло по аналогии с корпусом, я урвал последнюю(на тот момент) плату. Знакомьтесь…
Motherboard: Серверная плата ASRock E3C226D2I (mini-ITX 6x6Gb SATA) — 1 шт.
ASRock E3C226D2I
Причем я приятно удивился, когда после покупки обнаружил её в официально рекомендуемых для купленного мной корпуса 🙂
В ней все хорошо, даже, как полагается, есть интерфейс IPMI (Intelligent Platform Management Interface) 2.0 для управления по сети (позволяет работать с BIOS без подключения монитора и клавиатуры!)
Как можно видеть, есть поддержка 6 SATA портов 6Гбит/сек для всего набора дисков и это главное. Ну.. помимо форм фактора еще.
Я выбрал специально не самый новый сокет в угоду стоимости и возможности найти CPU для неё за «не дорого».
Единичный сокет H3 (LGA 1150) с поддержкой 4й и 5й генерации Intel Xeon E3-1200 v3/v4/ Core™ i7/i5/i3/Pentium/Celeron Processors
Из минусов(если так можно сказать) это максимальный объем оперативной памяти не более 16GB. Мне этого в принципе хватит. По началу я использую 8GB
На текущий момент данная плата уже не продается в розницу. Урвал я её по цене 5 800 руб.
CPU
Само собой CPU. «Мозги» я рискнул поискать на AliExpress т.к. Intel Xeon E3-1200 v3 уже давно не флагман и появилось много б.у. экземпляров.
CPU: Intel Xeon E3-1220 V3 (3100MHz, LGA1150, L3 8Mb) — 1 шт.
Intel Xeon E3-1200
Данный CPU 4 ядерный и поддерживает оперативную память DDR3 1333/1600 ECC
Сам CPU поддерживает максимальный объем оперативной памяти не более 32GB. Т.е. ограничителем выступает материнская плата.
Брал на Али по цене в 8 400 руб. На текущий момент(дата написания статьи) еще можно найти у нескольких продавцов.
CPU оказался с «падением» был виден отколотый уголок текстолита, но при этом он полностью рабочий. Проверен временем! Чего и следовало ожидать 🙂
DDR
По оперативной памяти все достаточно просто.
DDR3: 4Gb DDR-III 1600MHz Transcend ECC (TS512MLK72V6N) — 2 шт.
4Gb DDR-III 1600MHz Transcend ECC (TS512MLK72V6N)
В целом по памяти рассказывать особо и нечего. Купил и поставил.
По цене одна планка DDR около 3 800 руб.(цена на момент написания статьи по поиску)
Охлаждение
Ку да же без охлаждения! Для этих целей был необходим компактный кулер т.к. корпус компактный и при этом формат блока питания практически полноразмерный ATX(с некоторым ограничением по длине не более 140 мм).
Я подобрал кулер исходя из замеров. И еще взял к этому всему мою любимую термопасту.(вам может быть нравится другая, но я полагался на свой давний опыт сборщика)
Кулер: ID-COOLING IS-40V3
Термопаста: Arctic Cooling MX-2 4 г
ID-COOLING IS-40V3
Термопасту показывать не буду )
Высота профиля и вентилятора хорошая, сам вентилятор не шумный.
На текущий момент этот Кулер к сожалению уже не продается в розницу. Брал по цене около 1 200 руб.
SSD
С SSD вышла казусная ситуация… Вроде бы серверные компоненты все дела, а вот серверный SSD конечно имел достаточно серьезный ценник. И я позволили себе вольность.
Я выбрал SSD ориентируясь на доступную цену и достаточно хорошие отзывы(видимо зря).
SSD: 256Gb SSD A-DATA Ultimate SU900 (ASU900SS-256GM-C) — 2 шт.
Злостный нарушитель спокойствия
Собственно именно они были изначально поставлены и использовались под отладку рабочей конфигурации, но потом один отвалился и следом за ним второй. Результатом оказалась не стабильная прошивка, которую A-DATA использовала в своих SSD, причем обновлять её они не спешили. Благо использовался популярный чип и мне удалось разобрав SSD, замкнув пару контактов перевести его в режим прошивки. Найдя на китайских просторах более новую прошивку и саму программу для прошивки мне удалось восстановить работоспособность данных SSD и (тфу, тфу, тфу) пока работает без нареканий.
Но гарантия на них, после таких манипуляций, как бы все… Будьте внимательны! Берите устройства только надежных производителей!
По цене один SSD около 4 100 руб.(цена на момент написания статьи по поиску)
HDD
Не рекомендовал бы к приобретению диски с технологией записи SMR если вы планируете использовать файловую систему ZFS в качестве основной для хранилища. Более подробно можно узнать из статьи: We put Western Digital’s dreaded SMR Red drive to the test
С HDD я решил пойти по пути выбора специализированных решений для NAS. Выбирал среди популярных игроков и выбрал таки после долгих раздумий и анализа цен.
HDD: 3Tb — Seagate IronWolf NAS ST3000VN007 — 4 шт.
4 шт. под место для хранения всякого
Тут ничего удивительного нет. Единственное, что хочется отметить так это использование 4-х HDD в конфигурации RAID-5, т.е. теоретически это будет 9Тб места под данные, остальное под хеш и все такое. На просторах интернета по этому поводу много холиваров и в целом я согласен с рисками в продакшене. Пока мне для дома этого вполне достаточно, посмотрим как все это будет проявлять себя на практике, (тфу, тфу, тфу) пока работает без нареканий.
По цене один HDD около 7 000 руб.(цена на момент написания статьи по поиску)
Блок питания
Нужно же подать питание в такую систему и озаботиться тем, чтобы оно было качественным и стабильным. Непосредственно в корпусе за это отвечает блок питания. И в этом решении он полноразмерный формата ATX. Но с одним ограничением! Т.к. блок питания прикручивается розеткой вверх(да да, позиционирование не простое), его нижняя часть с кабелями упирается в материнскую плату, именно поэтому тут требуется, чтобы его длина не превышала 140 мм. Благо на рынке такого добра достаточно. Выбор пал на:
БП: 550W Corsair TX550M (CP-9020133-EU)
550W Corsair TX550M (CP-9020133-EU)
Данного блока питания хватит с запасом. Я посчитал ориентировочное потребление всей системы по доступной документации на основные узлы и у меня получилось что-то вроде: 168W
Этого хватит с запасом и блок питания не будет работать на максималках, что в свою очередь сбережет его.
По цене БП около 6 200 руб.(цена на момент написания статьи по поиску)
Бесперебойное питание
А куда же без ИБП. Для обеспечения бесперебойной работы одного качественного блока питания не достаточно, необходим еще и бесперебойный блок питания.
Я специально добавил его в эту статью, чтобы все понимали необходимость резервирования. Иначе кратковременные отключения могут повредить системе работающей 365/24/7
Выбор пал на ИБП: APC Back-UPS 650VA 390W BX650CI-RS
APC Back-UPS 650VA 390W BX650CI-RS
Дополнительно к бесперебойнику еще подключен роутер MikroTik hEX S, а к роутеру еще по PoE подключена точка доступа MikroTik hAP ac
По цене ИБП около 5 600 руб.(цена на момент написания статьи по поиску)
Софтовая часть
Выбирая на чем реализовывать всю основную работу софтовой части я сразу начал рассматривать такой интересный проект, как Proxmox Virtual Environment (Proxmox VE) — система виртуализации с открытым исходным кодом, основанная на Debian GNU/Linux. Благо по работе я успел изучить её достаточно глубоко и знал на что иду.
Выдержка из Wikipedia:
В качестве гипервизоров использует KVM и LXC (начиная с версии 4.0, в версиях до 3.4 включительно вместо него использовался OpenVZ). Соответственно, способна выполнять любые поддерживаемые KVM ОС (Linux, *BSD, Windows и другие) с минимальными потерями производительности и Linux без потерь.Управление виртуальными машинами и администрирование самого сервера производятся через веб-интерфейс либо через стандартный интерфейс командной строки Linux.
Для создаваемых виртуальных машин доступно множество опций: используемый гипервизор, тип хранилища (файл образа или LVM), тип эмулируемой дисковой подсистемы (IDE, SCSI или VirtIO), тип эмулируемой сетевой карты, количество доступных процессоров и другие.
И немного картинок:
Пример моей системы на Proxmox-ve 5.3
Система кластеров уже на 6 версии PVE
Данная система виртуализации позволит создать распределенную систему с различными сервисами, бекапами, софт RAID и другими плюшками.
Заключение… Продолжение?
В итоге получается достаточно компактная и мощная(для дома или малого офиса) система. Отдельные NAS системы от именитых производителей могут обеспечить практически такие же возможности, но там работает проприетарная ОС, к которой можно доустановить ряд модулей и сервисов. В моей же идеологии это самостоятельная система которую я могу дорабатывать и улучшать в рамках возможностей выбранного железа и софта.
Для чего же мне в итоге понадобится такая система? Ведь не для простого эстетического удовлетворения? Конечно нет!
Просто приведу список того, что у меня уже реализовано или же в процессе изучения и проработки:
Где-то в середине 2021 года длительное отключение электричества привело к неприятной ситуации — сервер перестал запускаться. Сервер пришлось жёстко выключить т.к. он перестал реагировать. Бесперебойник тут не при делах. После первичной диагностики удалось понять, что виной всему материнская плата. Видимо та самая ситуация которую описывал Дмитрий в комментариях.
И вот в конце 2022 года, я таки сподобился реанимировать свой сервер (до этого всё запускал на Raspberry Pi — такое себе если честно)
Мне повезло найти б/у серверную материнскую плату Asus P10S-i, но это повлекло за собой замену CPU и памяти соответственно. Итак новый сетап:
Кулер подошел изначальный.
Бонусом достался кабель mini-SAS HD для подключения тех самых 4х дисков.
На удивление после подключения всех компонентов система запустилась без каких либо проблем. Вот что значит преимущество создания программных RAID массивов.
Оставалось обновить Proxmox и контейнеры до последних версий, что также успешно было исполнено.
MikroTik RouterOS is in constant development and new features or bug fixes are frequently available, sometimes even monthly. So, it is always recommend upgrading MikroTik RouterOS to a latest and stable version before beginning any configuration. But sometimes you may face that the upgraded version is not working properly according to your demand or you may upgrade to a new version that you don’t want. In this case, you should come back to your workable RouterOS version and firmware. Upgrading RouterOS and Firmware is so easy but downgrading RouterOS may be more difficult if you don’t know the proper guideline. So, in this article I will discuss how to downgrade MikroTik RouterOS and Firmware with step by step guideline.
Downgrading MikroTik RouterOS and Firmware
If you don’t have proper guideline, you may spend hours and hours to downgrade your RouterOS version but your result will be null. So, I am sharing here how to downgrade MikroTik RouterOS and Firmware with proper guideline.
MikroTik RouterOS can properly be downgraded with the following four steps.
Finding Architecture Name of MikroTik Router
Downloading Exact RouterOS Version with Architecture Name
Uploading Downloaded File to MikroTik Root Directory
Providing Downgrade Command
Step 1: Finding Architecture Name of MikroTik Router
It is important to know Architecture Name before going to download your desired RouterOS version. The following steps will show how to find architecture name of your MikroTik Router.
From Winbox, go to System > Resources menu item. Resources window will appear.
Architecture Name of your MikroTik Router will be found in Resources window.
From the above Resource window you can see that the Architecture Name of this MikroTik Router is powerpc.
Step 2: Downloading Exact RouterOS Version with Architecture Name
Knowing Architecture Name, we will now download desired RouterOS version from MikroTik Download Archive. The following steps will show how to choose accurate RouterOS version for your MikroTik Router.
Go to MikroTik Download Page and select your desired RouterOS version. You will find a list of RouterOS version for all Router Board architectures.
Click on the NPK (.npk) file that will match with your Architecture Name. The file format will be routeros-architecture_name-routeros_version.npk.
Your download will be started and within few times it will be finished.
NPK File for powerpc
From the above image you can see that the NPK file for powerpc is routeros-powerpc-6.40.npk.
Step 3: Uploading Downloaded File to MikroTik Root Directory
After downloading exact NPK file for MikroTik Router, we will now upload this file to MikroTik root directory. The following steps will show how to upload downloaded NPK file to MikroTik root directory.
From Winbox, click on Files menu item. File List window will appear.
Drag and drop the downloaded NPK file to this File List window. Then, the file will be uploaded to MikroTik root directory
File List Window
Step 4: Providing Downgrade Command
We are now ready to downgrade RouterOS version. The following steps will show how to provide downgrade command to MikroTik Router.
From Winbox, go to System > Packages menu item. Package List window will appear.
Click on Downgrade button from this window.
It will ask to Confirm Reboot. Click on Yes button.
System will be rebooted and after reboot you will find that your RouterOS has been downgraded.
MikroTik Downgrading RouterOS
Downgrading MikroTik Firmware
If you upgraded firmware before, you also need to downgrade firmware. The following steps will show how to downgrade MikroTik Firmware properly.
From Winbox, go to System > Routerboard menu item. Routerboard window will appear.
Check your Current Firmware and Upgrade Firmware version.
If the Current Firmware version is greater than the Upgrade Firmware version, click on Upgrade button. It will ask to confirm upgrade. Click Yes button to upgrade firmware.
Now reboot MikroTik Router. After reboot you will find that Firmware has been downgraded.
Downgrading Firmware
If you face any confusion to follow the above steps, follow the below video tutorial on Downgrading MikroTik RouterOS and Firmware. I hope it will reduce your any confusion.
How to downgrade MikroTik RouterOS and Firmware properly has been discussed in this article. I hope you will now be able to downgrade your MikroTik RouterOS and Firmware if required. However, if you face any confusion to downgrade your MikroTik RouterOS and Firmware, feel free to discuss in comment or contact with me from Contact page. I will try my best to stay with you.
ECMP provides almost 100% reliable load balancing and link redundancy solution. ECMP is a per connection load balancing where connection is marked with source and destination IP pair. In my previous article I discussed how to configure DUAL WAN load balancing with failover using ECMP method where WAN connections were static IP Addresses. But some ISP companies use PPPoE service for their client connection. So, some network administrators become confused to configure load balancing with PPPoE WAN connection because PPPoE WAN connection is a little bit complex than static WAN connection. Some of my loyal readers also ask me to make a tutorial on Load Balancing with PPPoE Client. So, in this article I will discuss how to configure Load Balancing with Failover over two PPPoE WAN connections and one static WAN connection in MikroTik Router.
Network Diagram
We will configure Multi WAN load balancing using ECMP method according to the following network diagram.
MikroTik Multi WAN Load Balancing
In this network, MikroTik Router’s ether1 port is connected to ISP1 with PPPoE WAN connection (username: wan1 and Password: wan1) and ether2 port is connected to ISP2 with PPPoE WAN connection (username: wan2 and Password: wan2) and ether3 port is connected ISP3 with IP block 172.25.25.0/30 and ether4 port is connected to LAN network and its IP block is 10.10.10.0/24. PC-1 and PC-2 are two LAN workstations which are connected to LAN interface through a LAN switch.
We will configure ECMP Load Balancing in this MikroTik Router so that LAN traffics can pass though these three WAN connections equally (because we assumed that all WAN links have same bandwidth).
This ECMP configuration will also ensure Link Redundancy. So, if any WAN connection gets disconnected, LAN traffic will pass through the available WAN connections until the lost WAN connection gets available.
Load Balancing Configuration over 2 PPPoE Clients and 1 Static WAN Connection
We will now start Load Balancing and Link Redundancy configuration in MikroTik Router according to the above network diagram. Complete configuration can be divided into the following six steps.
Renaming MikroTik interface name
Configuring PPPoE WAN connection
Assigning static WAN and LAN IP
Assigning DNS IP
NATing configuration and
ECMP Routing configuration
Step 1: Renaming MikroTik Interface Name
We will first rename interface name so that we can easily understand and remember configuration. The following steps will show how to rename MikroTik interface name.
Login to MikroTik Router using Winbox with full permission user privilege.
Click on Interfaces menu item. Interface List window will appear.
Double click on ether1 interface. The properties window of the ether1 interface will appear.
Put WAN1 in Name input field under General tab and then click Apply and OK button.
Similarly, rename ether2 to WAN2 and ether3 to WAN3 and ether4 to LAN.
Your Interface List window will look like the below image.
Renaming Interface Name
Step 2: Configuring PPPoE WAN connection
As we have two PPPoE WAN connections, we must configure MikroTik PPPoE Client on two WAN interfaces. The following steps will show how to configure PPPoE Client on MikroTik WAN interfaces.
Click on PPP menu item. PPP window will appear. From Interface tab, click on PLUS SIGN (+) dropdown menu and then choose PPPoE Client. New Interface window will appear.
In General tab put your PPPoE interface name (pppoe-wan1) in Name input field and then choose WAN1 interface (in this article: WAN1) from Interface dropdown menu.
Click on Dial Out tab and put ISP1 given username (in this article: wan1) in User input field and password (in this artcle: wan1) in Password input field. Uncheck Dial On Demand, Use Peer DNS and Add Default Route checkbox if checked.
Click Apply and OK button.
Similarly, configure PPPoE WAN for ISP2 on WAN2 connection (with PPPoE interface name: pppoe_wan2, username: wan2 and password: wan2 and WAN interface: WAN2).
PPPoE WAN Configuration
Step 3: Assigning Static WAN and LAN IP
We will now assign static WAN and LAN IP addresses on our respected interface. The following steps will show how to assign IP address on MikroTik interfaces.
Go to IP > Addresses menu item. Address List window will appear.
Click on PLUS SIGN (+) and put ISP3 provided IP address (in this article: 172.25.25.2/30) in Address input field.
Choose WAN3 from Interface dropdown menu and click Apply and OK button.
Click on PLUS SIGN (+) again and put LAN gateway IP (in this article: 10.10.10.1/24) in Address input field and choose LAN from Interface drop down menu and then click Apply and OK button
Your Address List window will look like the below image.
MikroTik Address List
Step 4: Assigning DNS IP
DNS is required to resolve domain name to IP address. Without DNS server MikroTik Router cannot resolve domain name to IP address and fail to communicate with the public domain server. The following steps will show how to assign DNS IP in MikroTik Router.
Go to IP > DNS menu item. DNS Settings window will appear.
Put your DNS server IP provided by your ISP or put Google public DNS Server IP 8.8.8 in Serversinput field.
Click Apply and OK button.
Step 5: NATing Configuration
We will now create three masquerade NAT rules so that LAN users can access internet through these three WAN connections. That means, if any packet leaves via pppoe_wan1 interface, it will be NATed with pppoe_wan1 gateway IP address and similarly if any packet leaves via pppoe_wan2 interface and WAN3 interface, it will be NATed with pppoe_wan2 gateway IP address and WAN3 gateway IP address respectively. The following steps will show how to create masquerade NAT rule in MikroTik Router.
Go to IP > Firewall menu option. Firewall window will appear.
Click on NAT tab and then click on PLUS SIGN (+). New NAT Rule window will appear now. From General tab, choose srcnat from Chain drop-down menu and then choose PPPoE WAN1 interface (in this article: pppoe_wan1) from Out. Interface drop-down menu. Now click on Action tab and choose masquerade from Action drop-down menu and then click Apply and OK button.
Similarly, click on PLUS SIGN (+) again and choose srcnat from Chain drop-down menu and then choose PPPoE WAN2 interface (in this article: pppoe_wan2) from Out. Interface drop-down menu. Now click on Action tab and choose masquerade from Action drop-down menu and then click Apply and OK button.
Similarly, click on PLUS SIGN (+) again and choose srcnat from Chain drop-down menu and put LAN IP block (10.10.10.0/24) in Src. Address input field and then choose WAN3 interface (in this article: WAN3) from Out. Interface drop-down menu. Now click on Action tab and choose masquerade from Action drop-down menu and then click Apply and OK button.
NATing Configuration
Step 6: ECMP Routing Configuration
We will now configure ECMP (Equal Cost Multi-Path) gateway over three WAN links. The following steps will show how to assign ECMP gateway in MikroTik Router.
Go to IP > Routes menu option. Route List window will appear.
Click on PLUS SIGN (+). New Route window will appear.
Choose PPPoE WAN1 interface (in this article: pppoe_wan1) in Gateway drop down list and then click on Add new value button located after gateway input box. New gateway input box will appear. Choose PPPoE WAN2 gateway interface (in this article: pppoe_wan2) and click on Add new value button. Put WAN3 gateway IP (172.25.25.1) in new Gateway input box.
Now choose ping from Check Gateway drop-down menu.
Click Apply and OK button.
ECMP Routing Configuration
So, user’s connection will now be passed through these three WAN links successively. WAN connections will be checked by ping and if any connection gets disconnected, traffic will pass through the available WAN connections until the lost WAN connection gets connected. So, load balancing with failover will be established with ECMP load balancing method.
Connections to the Router Itself
With all multi-gateway situations there is a usual problem to reach router from public network via one, other or both gateways. Because outgoing packets use same routing decision as packets those are going through the router. So reply to a packet that was received via WAN1 might be sending out via WAN2 or WAN3. To avoid this we need to do policy based routing.
The following steps will show how to mark router’s incoming connection to pass it over proper gateway.
Go to IP > Firewallmenu option and click on Mangle Now click on PLUS SIGN (+). New Mangle Rule window will appear now.
From General tab, choose inputfrom Chain drop-down menu and choose PPPoE WAN1 interface (pppoe_wan1) from Interface drop-down menu. Now click on Action tab and choose mark connection from Action drop-down menu and put connection name (WAN1_CONN) whatever string you like in New Connection Mark input field and then uncheck the Passthrough check box if it is checked. Click Apply and OK button.
Similarly, click on PLUS SIGN (+) and choose inputfrom Chain drop-down menu and then choose PPPoE WAN2 interface (pppoe_wan2) from In. Interfacedrop-down menu. Click on Action tab and choose mark connection from Action drop-down menu and put connection name (WAN2_CONN) whatever string you like in New Connection Mark input field and uncheck the Passthrough checkbox if it is checked and then click Apply and OK
Similarly, click on PLUS SIGN (+) and choose inputfrom Chain drop-down menu and then choose WAN3 from In. Interfacedrop-down menu. Click on Action tab and choose mark connection from Action drop-down menu and put connection name (WAN3_CONN) whatever string you like in New Connection Mark input field and uncheck the Passthrough checkbox if it is checked and then click Apply and OK button.
Now click on PLUS SIGN (+) and choose outputfrom Chaindrop-down menu and then click on Connection Mark drop-down menu and choose WAN1 connection mark (in this article: WAN1_CONN) that you have created at the first step. Now click on Action tab and choose mark routing from Action drop-down menu and put routing mark name (to_WAN1) in New Routing Mark input field and uncheck the Passthrough checkbox if it is checked and then click Apply and OK button.
Similarly, click on PLUS SIGN (+). Choose outputfrom Chain drop-down menu and choose WAN2 connection mark (in this article: WAN2_CONN) that you have created at the second step. Now click on Action tab and choose mark routing from Action drop-down menu and then put routing mark name (to_WAN2) in New Routing Mark input box and uncheck the Passthrough checkbox if it is checked. Click Apply and OKbutton.
Similarly, click on PLUS SIGN (+). Choose outputfrom Chain drop-down menu and choose WAN3 connection mark (in this article: WAN3_CONN) that you have created at the third step. Now click on Action tab and choose mark routing from Action drop-down menu and then put routing mark name (to_WAN3) in New Routing Mark input box and uncheck the Passthrough checkbox if it is checked. Click Apply and OKbutton.
Creating Policy with Mangle Rule
We have created policy to pass router’s incoming packets to the respected WAN interface. Now we will create routing based on this policy.
Go to IP > Routesmenu option. Route List window will appear.
Click on PLUS SIGN (+) and put PPPoE WAN1 gateway (pppoe_wan1) in Gatewayinput box and choose ping from Check Gateway drop down menu and then choose WAN1 routing mark (in this article: to_WAN1) from Routing Mark drop-down menu. Click Apply and OK button.
Similarly, click on PLUS SIGN (+) and put PPPoE WAN2 gateway (pppoe_wan2) in Gatewayinput box and choose ping from Check Gateway drop down menu and then choose WAN2 routing mark (in this article: to_WAN2) from Routing Mark drop-down menu. Now click Apply and OK button.
Similarly, click on PLUS SIGN (+) and put ISP3 gateway IP (172.25.25.1) in Gatewayinput box and choose ping from Check Gateway drop down menu and choose WAN3 routing mark (in this article: to_WAN3) from Routing Mark drop-down menu. Now click Apply and OK button.
Policy Based Routing List
Policy based routing to get router properly from public network has been completed. Now ECMP load balancing will affect no more on getting router from public network.
How to configure Multi WAN Load Balancing with Failover using ECMP Method has been discussed in this article. I hope you will now be able to configure multi wan load balancing with ECMP method properly. However, if you face any confusion to configure Multi WAN Load Balancing using ECMP method, feel free to discuss in comment or contact with me from Contact page. I will try my best to stay with you.