Docker: как установить и использовать на centos 7

Как работать с образами

Команды платформы обладают своим синтаксисом, в котором за названием следуют разные опции и аргументы:

Инструкцию по доступным командам и их описанию можно запустить через короткую команду:

Все образы записаны в 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 на настройку шлюза по этой инструкции. Если вы делаете это первый раз, то конечно у вас уйдет гораздо больше времени. Нужно будет разобраться в нюансах, к тому же я дал много ссылок на дополнительный материал.

Давайте разберемся в том, что мы сделали:

  1. Выполнили предварительную настройку сервера, подготовили его к работе.
  2. Включили маршрутизацию.
  3. Настроили firewall.
  4. Включили NAT.
  5. Установили и настроили dnsmasq для организации служб dns и dhcp.
  6. Проанализировали сетевую активность шлюза, узнали кто загружает канал интернета.

Это минимально необходимый функционал для организации работы шлюза на CentOS 7. Следующим этапом может быть настройка прокси сервера, шейпера траффика, настройка 2-х и более провайдеров и много другое. Что-то из этого я рассмотрю в своих будущих статьях.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте .

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

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: