Как работать с образами
Команды платформы обладают своим синтаксисом, в котором за названием следуют разные опции и аргументы:
Инструкцию по доступным командам и их описанию можно запустить через короткую команду:
Все образы записаны в Docker Hub. Каждый пользователь сможет вносить свои образы в данный реестр. Многие дистрибутивы Линукс, системы управления базами данных и приложения создают собственные образы в Docker Hub.
Может ли пользователь доставать и вносить образы в реестр проверяется такой командой:
При положительном ответе на экране возникнет следующий текст:
Для выполнения поиска конкретного образа используется такой синтаксис команды:
К примеру, чтобы найти образ nginx, следует написать:
В качестве результата на экран высветятся все доступные пользователю образы:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 8341
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1328
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 547
jrcs/letsencrypt-nginx-proxy-companion LetsEncrypt container to use with nginx as p… 364
kong Open-source Microservice & API Management la… 184
webdevops/php-nginx Nginx with PHP-FPM 102
Произвести загрузку выбранного образа можно при помощи строчки:
К примеру, для образа nginx синтаксис будет выглядеть:
Выполненная команда выведет на экран загрузку образа:
Using default tag: latest
latest: Pulling from library/nginx
f2aa67a397c4: Downloading 7.13MB/22.5MB
3c091c23e29d: Downloading 7.091MB/22.11MB
4a99993b8636: Download complete
По окончанию процесса образ будет загружен на виртуальный сервер. Для его запуска следует воспользоваться опцией run:
Опция images продемонстрирует образы, которые загружены на сервер:
Результатом будет служить небольшая таблица со списком:
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ae513a47849c 8 days ago 109MB
hello-world latest e38bc07ac18e 3 weeks ago 1.85kB
Установка zabbix агент на Windows и настройка мониторинга
Теперь для полноты картины добавим к серверу один агент, установленный на windows машину и настроим ее мониторинг. Для этого идем на страницу загрузок http://www.zabbix.com/download.php и скачиваем самый последний агент для Windows. Все агенты находятся в разделе Zabbix pre-compiled agents. Прямая ссылка на последнюю версию на момент написания статьи — zabbix_agents_3.4.0.win.zip
Распаковываем архив. Создаем на диске С: папку zabbix и купируем туда следующие файлы:
- zabbix_agentd.exe
- zabbix_get.exe
- zabbix_sender.exe
- zabbix_agentd.win.conf
Исполняемые файлы берете той разрядности, какая у вас в системе. В исходном архиве есть как x32 так и x64. Дальше открываем командную строку с правами администратора и выполняем следующую команду для установки zabbix agent на windows:
c:/zabbix/zabbix_agentd.exe --config c:/zabbix/zabbix_agentd.win.conf --install
Открываем файл zabbix_agentd.win.conf любым текстовым редактором и изменяем следующие параметры:
Server=192.168.1.25 ServerActive=192.168.1.25 Hostname=win7-01
Теперь открываем оснастку со службами, ищем службу с именем Zabbix agent и запускаем ее.
Не забываем создать разрешающее правило в «Брандмауэре Windows». Брандмауэр Защитника Windows – Дополнительные параметры – Правило для входящих подключений – Создать правило.
- Тип правила: Для порта;
- Протоколы и порты: Протокол TCP; Определенные локальные порты: 10050;
- Действие: Разрешить подключение;
- Профиль (ставим галочки): Доменный, Частный, Публичный;
- Имя: Zabbix Agent;
Чтобы работал мониторинг windows машины, нужно добавить на сервер мониторинга host с таким же hostname, что мы указали в конфиге агента. Для этого идем в web панель, открываем раздел Configuration -> Hosts и жмем Create host.
На первой вкладке указываем имя хоста, такое же, как на клиенте, добавляем в любую существующую группу и задаем ip адрес компьютера.
Потом переходим на вкладку Templates и нажимаем Select. Выбираем шаблон Template OS Windows и жмем маленькую ссылку add, затем большую.
Новый host мониторинга добавлен, осталось подождать несколько минут свежих данных. Проверить их можно там, где и раньше, в Latest data, выбрав новый хост.
На этом установка и настройка мониторинга windows с помощью zabbix agent закончена. Можно добавлять новые компьютеры с разными версиями windows. Одна и та же версия агента подходит для всех, и десктопных и серверных систем.
Базовая настройка контейнера LXC
Ранее я рассказывал как производится . Работа с LXC начинается с того что необходимо произвести базовую настройку контейнера. В контейнере находится система CentOS 7 и работать с ней надо как с обычной системой, но с небольшими нюансами. Более подробно о настройке системы можно почитать в статье CentOS 7 установка и настройка.
Обновим систему:
yum update
Для автоматической проверки обновлений установим необходимую утилиту:
yum install yum-cron
Действия на хосте LXC
Так как все контейнеры, в моем случае, работают в своей сети то для доступа к контейнерам извне необходимо делать проброс портов.
На хосте с установленной системой LXC выполним команду которая сделает проброс порта с изменением для сервера SSH в контейнере:
firewall-cmd --permanent --zone=external --add-forward-port=port=25552:proto=tcp:toport=22:toaddr=10.10.0.2 = вывод команды = success
Сохраним изменения:
firewall-cmd --reload = вывод команды = success
Посмотрим результат выполненных действий:
firewall-cmd --list-all --zone=external = вывод команды = external (active) target: default icmp-block-inversion: no interfaces: ens18 sources: services: http https ports: 25555/tcp 10050/tcp protocols: masquerade: yes forward-ports: port=25552:proto=tcp:toport=22:toaddr=10.10.0.2 source-ports: icmp-blocks: rich rules:
В результате при запросе порта 25552 на хосте он будет проброшен на 22 порт в контейнер с ip адресом 10.10.0.2.
Установка программ
Установим популярный репозиторий Epel:
yum -y install epel-release
Ставим необходимые пакеты без вопросов:
yum -y install vim mc net-tools bind-utils htop atop iftop lsof wget bzip2 traceroute gdisk yum-utils
Настройка SSH и консоли
Установим, запустим и добавим в автозагрузку ssh сервер:
yum install openssh-server systemctl start sshd systemctl enable sshd
Создадим пароль пользователя root в контейнере:
passwd
Приводим отображение приветствия консоли к нашему виду и сразу делаем настройки истории внеся необходимые параметры:
vim /root/.bashrc = добавляем внизу = # Вид приветствия bash PS1='\\u@\H\ \w \$\ ' # Настройка истории bash export HISTSIZE=10000 export HISTTIMEFORMAT="%h %d %H:%M:%S " PROMPT_COMMAND='history -a' export HISTIGNORE="ls:ll:history:w"
Применим изменения без перезагрузки:
source ~/.bashrc
Время в контейнере
Время будет браться с хоста поэтому нам необходимо указать только временную зону.
Посмотрим текущую временную зону:
date = вывод команды = Пт окт 12 23:58:14 UTC 2018
Сделаем резервную копию текущей временной зоны:
mv /etc/localtime /etc/localtime.bak
в папке /usr/share/zoneinfo/ находим необходимую временную зону и делаем ссылку
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
В результате увидим следующее:
date = вывод команды = Сб окт 13 02:59:46 MSK 2018
Смена имени контейнера
Смена имени производится командой:
hostnamectl старое НОВОЕ
Не забываем сменить в файле конфигурации контейнера lxc.
При желании можно поменять и название контейнера для этого надо остановить контейнер, поменять название папки с контейнером и имена в файле конфигурации контейнера.
Настройка почты
Для проверки работы почты установим пакет который позволяет отправлять письма с консоли:
yum install mailx
Установим, запустим и добавим в автозагрузку сервис для работы с почтой Рostfix:
yum install postfix systemctl start postfix systemctl enable postfix
Дальнейшая настройка как производится отправка почты с авторизацией на другом SMTP сервере вы найдете в статье .
Подготовка сервера к установке
Начинаем традиционно с подготовки рабочего окружения. Первым делом вам необходимо установить и настроить сервер CentOS 7. Дальше нам нужно настроить web сервер для работы интерфейса управления. У меня есть подробный материал на тему настройки web сервера на centos 7, можете ознакомиться с ним и настроить внимательно и осмысленно. Далее я буду просто приводить команды установки, без пояснений. В этой статье я буду делать стандартную установку Zabbix на традиционный веб сервер apache + php. Если вы хотите, чтобы ваш заббикс работал на веб сервере nginx + php-fpm, читайте отдельный материал по установке zabbix на nginx и php-fpm.
# yum update
Работа будет проходить на следующей версии CentOS:
Отключаем SElinux. Любителям с ним повозиться, дальше можно не читать. Не люблю споров на тему SElinux. Каждый сам решает для себя в конкретной ситуации, нужен он ему на сервере или нет. Я не вижу смысла с ним заморачиваться на сервере мониторинга в локальной сети.
# mcedit /etc/sysconfig/selinux
Редактируем строку:
SELINUX=disabled
и выполняем команду:
# setenforce 0
Теперь установим mariadb. Ее необходимо ставить отдельно, почему-то она не устанавливается как необходимая зависимость при установке самого сервере zabbix.
На всякий случай упомяну для тех, кто не знает, что такое mariadb и почему мы ставим ее, а не mysql. Mariadb — ответвление mysql. Они полностью совместимы, возможен в любой момент переход с одной субд на другую и обратно. Есть информация, что mariadb пошустрее работает mysql и люди потихоньку перебираются на нее. Разработчики CentOS начиная с версии 7 и Debian, начиная с 9-й предлагают ее как сервер баз данных по-умолчанию.
# yum install mariadb mariadb-server
Запускаем mariadb и добавляем ее в автозагрузку:
# systemctl start mariadb # systemctl enable mariadb.service
Отрабатываем скрипт первоначальной настройки mysql:
# /usr/bin/mysql_secure_installation
Все подготовительные работы выполнены, двигаемся дальше.
Предварительная подготовка для установки FreeIPA
Установим операционную систему CentOS 7 c минимального образа и подготовим для установки.
Параметры для установки:
- Имя узла сети : ipa.sevo44.loc
- IP: 192.168.0.102
- Шлюз: 192.168.0.106
- DNS: 8.8.4.4
DNS указываем только для того чтобы машина могла скачать в интернете нужные пакеты. В последствии мы будем использовать DNS сервер на самом сервере IPA и эти параметры можно будет удалить из настроек.
Необходимо обязательно внести изменения в файл /etc/hosts
vi /etc/hosts = необходимые изменения = 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.0.102 ipa.sevo44.loc ipa
Примечание: Должно быть указано полное доменное имя (FQDN). В противном случае, Kerberos не будет работать! В файле/etc/hostname название машины должно быть ipa.sevo44.loc!
Сетевые настройки CentOS 7
После установки CentOS и не будем подключать и устанавливать ничего лишнего чтобы в дальнейшем не возникло проблем с обновлением системы.
Используя замечательную утилиту настроим сетевые параметры:
nmtui
С помощью её можно указать сетевые настройки и имя машины, если мы не сделали это при установке системы.
После внесения сетевых изменений перезагрузим сетевые параметры:
service network restart = вывод команды = Restarting network (via systemctl):
Проверим есть ли доступ в интернет отправив 4 пакета на ya.ru:
ping -c 4 ya.ru = вывод команды = PING ya.ru (87.250.250.242) 56(84) bytes of data. 64 bytes from ya.ru (87.250.250.242): icmp_seq=1 ttl=51 time=13.9 ms 64 bytes from ya.ru (87.250.250.242): icmp_seq=2 ttl=51 time=94.4 ms 64 bytes from ya.ru (87.250.250.242): icmp_seq=3 ttl=51 time=19.8 ms 64 bytes from ya.ru (87.250.250.242): icmp_seq=4 ttl=51 time=17.5 ms --- ya.ru ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 13.993/36.447/94.483/33.571 ms
Не отключаем SELINUX для FreeIPA
Так как при установке FreeIPA настройки для SELINUX устанавливаются автоматически то отключать нет смысла.
Обновляем без вопросов и перезагружаем сисетему:
yum -y update && reboot
Работа с LXC
Далее идет непосредственно работа с LXC. Принцип работы: имеется “белый мост” (br0), в него входит физический интерфейс хоста (eth0) и виртуальные интерфейсы контейнеров (vethXXX и т.д.), у каждого контейнера будет свой виртуальный интерфейс, а у каждого виртуального интерфейса будет свой “белый” IP адрес (без использования NAT и роутинга). Никакие доп.настройки iptables или firewalld не требуются. Вот список основных команд…
Версия LXC:
lxc-cgroup --version
Параметры LXC:
lxc-checkconfig
Общий список всех контейнеров:
lxc-ls
Склонировать контейнер С1, новый контейнер назвать С2:
lxc-clone -o C1 -n C2
Запустить контейнер С1:
lxc-start -n C1
Запустить контейнер С1, не входя в него:
lxc-start -d -n C1
Остановить контейнер С1:
lxc-stop -n C1
Удалить контейнер С1:
lxc-destroy -n C1
Зайти в консоль контейнера С1:
lxc-console -n C1
Поставить контейнер С1 на паузу:
lxc-freeze -n C1
Восстановить контейнер С1 из паузы:
lxc-unfreeze -n C1
Информация по контейнеру:
lxc-info -n C1
Установка Centos 7
Запуск установщика CentOS 7
Если вы все сделали правильно, у вас запустится установщик и начнется установка CentOS 7 (а если не запустился, проверьте еще раз порядок загрузки и, что в носителях у нас указан iso с дистрибутивом CentOS 7)
Выбираем первый пункт – Install CentOS 7 (обратите внимание, что по умолчанию выбран второй пункт “Test this media…” – если вы выбрали его то можете подождать пока не проверятся контрольные суммы образа, а можете во время проверки нажать. )
).
Выбор диска для установки и отключение kdump
Переходим к группе SYSTEM.
Отключим механизм сбора информации о сбоях ядра KDUMP. Заходим в КDUMP, снимаем галочку с “Enable kdump” и нажимаем “Done”.
Настройка сети
Переходим к настройке сетевых интерфейсов. Нажимаем NETWORK&HOST NAME и переходим к окну конфигурации. Первым делом задайте hostname для вашего сервера – у меня это web.local, вы можете повторить за мной или же написать все что хотите.
Теперь посмотрим на список сетевых интерфейсов. Первый у нас для интернета, настройки он получает от роутера по DHCP или через NAT. Давайте включим его, установив переключатель в статус ON. Статус должен сменится на connected и интерфейс получить IP адрес. Теперь нажмем кнопку “Configure” и на закладке “General” установим галочку “Automatically connect to the…” – для того что бы при загрузке операционной системы, интерфейс был сразу включен. Отключаем IPv6 (конечно если вы им не пользуетесь ) На закладке “IPv6 Settings” ставим “Method” в Ignore. Нажимаем “Save”.
Переходим ко второму интерфейсу. Включаем, и видим что IP адрес получили уже от DCHP виртуальной сети. Но адрес который может в один прекрасный момент поменяться, нам не подходит. Давайте зададим статический. Нажимаем “Configure” и первым делом, по аналогии с первым интерфейсом, задаем автоматическое включение и отключаем IPv6. Затем переходим на закладку “IPv4 Settings”. “Method” выбираем Manual, в списке адресов Addresses нажимаем Add и добавляем IP адрес.
Помните, выше мы запомнили с вами настройки виртуальной сети? DHCP раздает адреса начиная с 56.101, следовательно нам надо выбрать адрес меньше чем 101. Я выбрал 192.168.56.80. Задаем маску подсети 24 и нажимаем “Save”. Настройка сети завершена, жмем “Done”.
Пароль root и пользователь для работы
Пока идет установка зададим пароль администратора.
Так же можно создать учетную запись из под которой будем работать. Нажимаем “USER CREATION” и задаем логин, пароль и ставим галочку “Make this user administrator”, что поместить нашего пользователя в группу wheel
Обратите внимание – если задали пароль, который установщик посчитал слабым – то на кнопку “Done”, надо будет нажать два раза. На общедоступных серверах такие пароли конечно же ставить нельзя, но в рамках нашей задачи с паролем можно особо не мудрить
Проблемы и ошибки
Не устанавливается httpd
Сразу скажу, что в качестве хостовой системы и шаблонов для lxc контейнеров я использовал только centos. Возможно в других системах указанных мной ошибок не будет. Первое с чем сразу же столкнулся было невозможность установить пакет httpd. Была вот такая ошибка:
# yum install httpd
Running transaction Installing : httpd-2.4.6-67.el7.centos.6.x86_64 1/1 Error unpacking rpm package httpd-2.4.6-67.el7.centos.6.x86_64 error: unpacking of archive failed on file /usr/sbin/suexec;5a8adbd2: cpio: cap_set_file Verifying : httpd-2.4.6-67.el7.centos.6.x86_64 1/1 Failed: httpd.x86_64 0:2.4.6-67.el7.centos.6 Complete!
В интернете полно информации по подобной ошибке в контейнерах centos. Она встречается не только в lxc, но и в docker. В докере ее каким-то образом в определенный момент исправили, в lxc до сих пор воспроизводится и я не уверен, что исправление будет.
Суть ошибки в том, что существуют некие ограничения ядра для работы file capabilities. Я не вникал подробно в эти file capabilities, не понимаю до конца сути ошибки, только поверхностно. Подробно ошибка разобрана тут — https://github.com/lxc/lxd/issues/1245. Так как решением проблемы предлагается перевести контейнер в privileged режим, когда хостовый рут и контейнерный имеют одинаковые системные id, то примерно понятно, в чем суть ошибки.
В общем, я не стал переводить контейнер в privileged режим, а поступил следующим образом. Зачрутился с хостовой машины в контейнер и установил httpd оттуда. Выполняем на хосте:
# chroot /var/lib/lxc/lxc_centos/rootfs # yum install httpd
Теперь можно зайти в контейнер и проверить, что httpd установлен и нормально работает. Это рабочее решение, когда вы администратор и хоста и контейнеров. Но если вы кому-то отдаете контейнеры под управление, то либо вам придется самим решать ошибки владельцев контейнеров, либо искать какое-то другое решение.
Зависает контейнер и нагружает cpu хоста
Следующая неприятная ошибка, с которой столкнулся сразу же после начала тестирования lxc контейнеров. Контейнер через несколько минут после запуска зависал. Я не мог его ни остановить, ни удалить. При этом на самом хосте процесс /usr/lib/systemd/systemd-journald на 100% нагружал одно ядро cpu.
Решение проблемы следующее. Добавляем в конфиг контейнера параметр:
lxc.kmsg = 0
Перезапускаем контейнер. Заходим в него и удаляем /dev/kmsg (именно в контейнере, не на хосте!!!)
# rm -f /dev/kmsg
После этого контейнеры стали работать стабильно и перестали зависать. Я установил bitrix-env и развернул сайт. Все заработало без проблем с нормальной скоростью.
Не работает chronyd
После установки и запуска chronyd в lxc контейнере с centos 7 получаем ошибку:
ConditionCapability=CAP_SYS_TIME was not met
Тут я уже немного утомился ковыряться в ошибках lxc и понял, что не хочу использовать в работе эти контейнеры. Но все же собрался с силами и погуглил еще немного. Как оказалось, это не ошибка, это ограничение работы в контейнере. Условием работы chronyd является доступ к системному вызову adjtimex(). У контейнера в не privileged режиме нет этого доступа, поэтому он и не запускается.
Контролирует эту ситуацию параметр
ConditionCapability=CAP_SYS_TIME
в конфиге systemd службы chronyd в контейнере — /etc/systemd/system/multi-user.target.wants/chronyd.service. Если убрать этот параметр и запустить службу, получим ошибку:
adjtimex(0x8001) failed : Operation not permitted
В общем, контейнер без привилегированного режима управлять временем не может. Это архитектурная особенность работы контейнеров, с этим ничего не поделать. Надо на хосте следить за временем.
Установка на raid
Рассмотрим еще один, более специфичный вариант установки. Он может быть актуален, когда вы настраиваете, к примеру, железный сервер для работы на нем гипервизора KVM, либо отдельной ноды кластера Kubernetes, на которой будет использоваться локальное файловое хранилище. Мы будем ставить CentOS 8 на программный рейд. Для примера возьмем 2 диска и raid 1. Все установки будут такие же, как мы рассмотрели ранее, кроме одной — Installation Destination.
Подключаем 2 диска к системе, загружаемся с установочного диска и идем в раздел разбивки диска. Видим 2 жестких диска. Выбираем оба и отмечаем пункт Custom.
Если на дисках есть какие-то разделы, то все удаляем. Дальше наша задача выполнить такую же разбивку диска, как и ранее, только в качестве разделов использовать массивы mdadm, которые предварительно надо создать. Должно получиться примерно вот так.
К сожалению, через стандартный установщик не получится установить centos 8 не только на mdadm raid 1, но затем на lvm разделы поверх mdadm массивов. Я не увидел такой возможности. К примеру, позволяет это сделать. Там более гибкие варианты настройки разметки дисков и создания разделов.
Дальше можно запускать установку centos на программный рейд. Проверим его после того, как система успешно загрузится.
# df -h # cat /proc/mdstat
Проверим теперь, как сервер переживет выход из строя одного из дисков. Я выключил сервер, вынул первый диск, с которого загрузился сервер в первый раз и поставил загрузку со второго. Включаю и проверяю.
Сервер без проблем загрузился. Никаких ошибок загрузчика не было, кроме одного момента — загрузка была значительно дольше, чем обычно. Вместо нескольких секунд 3-5 минут. Все работает как и должно работать из коробки. Стандартный установщик отработал корректно, хотя так бывает не всегда. Проверим состояние массива.
# cat /proc/mdstat # mdadm -D /dev/md126
Одного диска нет, но при этом все работает стабильно. Можно планово выполнить замену сбойного диска и добавить его в массив. Правда, тут могут быть ошибки, одну из которых я недавно словил. После выхода из строя одного диска в составе mdadm, массив с /boot разделом почему то перешел в статус inactive и система не грузилась. Но я это легко исправил и загрузил сервер. Подробности в статье — восстановление raid 1.
Я рекомендую использовать софтовый raid mdadm, если у вас нет железного raid контроллера. Mdadm надежен и прост в эксплуатации. У меня с ним никогда не было серьезных проблем и потери информации. Да, бывает, что сервер не грузится после выхода из строя диска, есть нюансы, но данные всегда остаются целы. Все можно исправить. Он намного надежнее, понятнее и стабильнее встроенных в материнскую плату контроллеров. Отдавать предпочтение аппаратному рейду следует только в том случае, если он действительно аппаратный, имеет батарейку и действительно увеличивает производительность сервера за счет кэширования. Во всех остальных случаях рекомендую пользоваться mdadm.
Эталонный контейнер
Создадим его и поправим соответствующий конфиг (в репозиториях Oracle Linux лежит версия 1.1.5, вместо обычной 1.0.8, и у нее путь нахождения контейнеров лежит тут /container/..):
lxc-create -t centos -n C1 nano /container/C1/config
Вот и он (обратите внимание, IP надо указывать в формате CIDR, сеть класса B):
# DF container ################################################ ### DF lxc.network.type = veth ### DF lxc.network.flags = up ### DF lxc.network.link = br0 ### DF lxc.network.name = eth0 ### DF lxc.network.ipv4 = 172.16.0.0/16 ### DF lxc.network.ipv4.gateway = 172.16.0.1 ### DF [autostart yes/no] lxc.start.auto = 1 ### DF lxc.start.delay = 0 ################################################ # Include common configuration lxc.include = /usr/share/lxc/config/centos.common.conf lxc.arch = x86_64 lxc.rootfs = /container/C1/rootfs lxc.utsname = C1
Текстовый вид: container
После чего включить контейнер, он сразу заработает и будет доступен по своему IP:
lxc-start -d -n C1
На тему CIDR – гугл в помощь, вместе с CIDR-калькуляторами.
Заключение
С помощью бесплатного дистрибутива Linux мы смогли за считанные минуты настроить шлюз для организации доступа в интернет компьютеров из локальной сети. У меня ушло минут 10 на настройку шлюза по этой инструкции. Если вы делаете это первый раз, то конечно у вас уйдет гораздо больше времени. Нужно будет разобраться в нюансах, к тому же я дал много ссылок на дополнительный материал.
Давайте разберемся в том, что мы сделали:
- Выполнили предварительную настройку сервера, подготовили его к работе.
- Включили маршрутизацию.
- Настроили firewall.
- Включили NAT.
- Установили и настроили dnsmasq для организации служб dns и dhcp.
- Проанализировали сетевую активность шлюза, узнали кто загружает канал интернета.
Это минимально необходимый функционал для организации работы шлюза на CentOS 7. Следующим этапом может быть настройка прокси сервера, шейпера траффика, настройка 2-х и более провайдеров и много другое. Что-то из этого я рассмотрю в своих будущих статьях.
Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.
Онлайн курсы по Mikrotik
Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте .
Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:
- Знания, ориентированные на практику;
- Реальные ситуации и задачи;
- Лучшее из международных программ.