Настройка сети в centos

Введение

Сразу предупреждаю, что данная статья это мое знакомство с lxc контейнерами. Я не имею практического опыта работы с ними, поэтому бездумно брать и применять мои рекомендации не стоит.

Не буду много писать о том, что такое контейнеры, чем они отличаются от виртуальных машин, и чем отличаются системы контейнеров (lxc, docker, openvz и др.) друг от друга. Все это можно найти в интернете на сайтах самих продуктов. Расскажу все своими словами.

  1. Главное отличие контейнера от виртуальной машины в том, что он запускается на том же уровне железа, что и хостовый сервер. Нет необходимости в виртуальных устройствах. Контейнер видит исходное железо. Это плюс к производительности. Используется ядро исходной системы и изоляция ресурсов внутри системы.
  2. Контейнер может масштабироваться по ресурсам до целого физического сервера. Например, контейнер может использовать тот же диск и файловую систему, что и хостовая машина. Нет необходимости разбивать диск на кусочки, как с виртуальными машинами и давать каждому по кусочку. В итоге, кто-то может свой диск вообще не использовать, а кому-то не хватит. С контейнерами можно поступить проще — все используют общий диск с хостом. Ограничений для диска как в виртуальной машине тем не менее все равно можно устанавливать. То же самое можно сделать с процессором и памятью.

Я почти не работал с контейнерами, кроме докера. С ним приходится работать только в связке с разработчиками. Для своих целей я его не использую, так как для моих задач он мне кажется неудобным. Не хочется сейчас здесь раскрывать эту тему, может быть в другой раз в статье о докер, если таковая будет. Но в целом докер я не люблю, особенно в продакшене.

Расскажу о том, почему мне захотелось посмотреть на контейнеры вместо виртуальных машин, которые использую повсеместно уже много лет.

  1. Как уже написал ранее, привлекает возможность использовать ресурсы хостовой машины напрямую. Взял системный диск с корнем / на 1Тб и все контейнеры его используют пока есть место.
  2. Легкий бэкап и доступ к файлам в контейнерах. Посмотреть файлы в контейнере можно просто зайдя в директорию контейнера с хостовой машины. Они все хранятся в открытом виде. Так их очень удобно бэкапить с помощью rsync, или каким-то другим способом.
  3. Легко копировать, разворачивать, управлять контейнерами. Они занимают мало места, можно руками с хоста поправить какой-то конфиг в системе контейнера.

Например, у меня есть достаточно мощные VDS серверы от ihor. 2 ядра, 8 гигов, 150Гб диск. Иногда то, что там размещается, не использует полностью ресурсы виртуальной машины. Хочется как-то их занять, но при этом никак не затрагивать основные проекты на виртуальной машине. Иногда хочется какие-то тестовые среды создавать для сайтов и пробовать новые версии софта. Для этого надо отдельную виртуалку брать. Вместо этого я решил попробовать lxc контейнеры.

Использовать lxc контейнеры в плане сети можно двумя способами:

  1. Заказывать каждому контейнеру отдельный внешний IP, настраивать для контейнера bridge на реальном сетевом интерфейсе и выпускать его напрямую в интернет. Этот вариант подходит, если есть ip адреса или не жалко для них денег. Так работать удобнее всего.
  2. Настраивать виртуальный bridge, настраивать NAT и проброс портов с хостовой машины внутрь контейнеров. Не очень удобно, но тем не менее вполне рабочий вариант.

Я расскажу про оба способа, так как проверял и то и другое. Настраивать все будем на CentOS 7.

Если у вас еще нет своего сервера с CentOS 8, то рекомендую мои материалы на эту тему:

  • Установка CentOS 8.
  • Настройка CentOS.

Включать интерфейс при загрузке

Чтобы не включать сетевой интерфейс каждый раз вручную можно в настройках прописать ONBOOT=yes

Как вариант можно перейти в

И отредактировать с помощью

vi

файл

ifcfg-ИМЯ_ИНТЕРФЕЙСА
— например

ifcfg-enp0s3

sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

Либо под root использовать

sed

sudo sed -i sONBOOT=noONBOOT=yes /etc/sysconfig/network-scripts/ifcfg-enp0s3

Если команда выше вам не до конца понятна — изучите статью

«Основы sed»

Проверить получилось ли изменить ONBOOT на yes можно командой

grep ONBOOT !$

Подробную информацию о каждом сетевом интерфейсе можно получить выполнив nmcli connection show имя_интерфейса

Например:

nmcli connection show ens192

connection.id: ens192
connection.uuid: 5c2584c5-7d87-4826-ba2a-79713eb62a9a
connection.stable-id: —
connection.type: 802-3-ethernet
connection.interface-name: ens192
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0 (default)
connection.auth-retries: -1
connection.timestamp: 1618914913
connection.read-only: no
connection.permissions: —
connection.zone: —
connection.master: —
connection.slave-type: —
connection.autoconnect-slaves: -1 (default)
connection.secondaries: —
connection.gateway-ping-timeout: 0
connection.metered: unknown
connection.lldp: default
connection.mdns: -1 (default)
connection.llmnr: -1 (default)
802-3-ethernet.port: —
802-3-ethernet.speed: 0
802-3-ethernet.duplex: —
802-3-ethernet.auto-negotiate: no
802-3-ethernet.mac-address: —
802-3-ethernet.cloned-mac-address: —
802-3-ethernet.generate-mac-address-mask:—
802-3-ethernet.mac-address-blacklist: —
802-3-ethernet.mtu: auto
802-3-ethernet.s390-subchannels: —
802-3-ethernet.s390-nettype: —
802-3-ethernet.s390-options: —
802-3-ethernet.wake-on-lan: default
802-3-ethernet.wake-on-lan-password: —
ipv4.method: auto
ipv4.dns: —
ipv4.dns-search: —
ipv4.dns-options: «»
ipv4.dns-priority: 0
ipv4.addresses: —
ipv4.gateway: —

5 Answers 5

The best and easy option I like to use with CentOS is nmtui. (Ref: Redhat)

THIS IS NOT GUI, IT IS TUI (TEXT USER INTERFACE)

First you have to install nmtui,

This will option up what you are after.

Now you can go to Edit connection and itwill list out all the available WiFi connections for you. Then you can select what you want and Activate/Deactivate what ever you want.

To run the ifconfig . command , you should install the net-tools package.

Because the net-tools is deprecated there is the ip and iw commands which answer your question:

Create a wpa_supplicant configuration file with the following content:

To add the SSID and the password, run:

You should be able to see if the drivers for the card are installed by using lspci -k

And then to know if your interface is correctly detected and named you can use ip link You can then try to bring up the interface with ifup

If the interface does not come up correctly it might be because you’re missing a configuration file like /etc/sysconfig/network-scripts/ifcfg-

Another alternative solution if it’s something you only want to bring up once you can input the following commands :

If you are running CentOS 7: You may want to check if NetworkManager is already there available for you to use:

chkconfig NetworkManager on

service NetworkManager start

Issue command: nmtui

Go directly to «Active a connection» to check if you already can see your wireless network/wi-fi. If so, input your password.

You can also Edit a profile for the wi-fi you want to connect.

NOTE: if you cannot active a wi-fi, try the following: After above steps: /etc/init.d/network restart OR REBOOT/RESTART your box.

Here is my experience, for the following reasons:

  1. If you got connected to Wifi network when you have installed CentOS 7.
  2. After CentOS 7 entering into sleep mode OR accidental shutdown due to power drainage OR you have restarted & logged into CentOS 7

and if your wifi not working.

Don’t install extra kernel module/do any tweaks/install any new packages

Just shutdown and boot again in CentOS 7. Your wifi will start working again.

This is what I realised after 6 hours of tweaks and tried everything out.

Установка статического IP

nmcli conn show

NAME UUID TYPE DEVICE
enp0s3 64486a76-a4b0-4693-9110-205da942c9c5 ethernet enp0s3
enp0s8 fc26857f-4cb0-3756-a7fa-95ec246b3981 ethernet enp0s8

Настроим статический IP адрес для enp0s8

Настройки сети хранятся в директории

Отредактировать нужно файл

ifcfg-enp0s8

Основные параметры:

TYPE — тип соединения, проводное (Ethernet), беспроводное(Wired) и т д;

BOOTPROTO — способ получения IP адреса, static, dhcp или none;

NAME — имя соединения;

DEVICE — имя сетевого интерфейса;

ONBOOT — необходимо ли запускать при старте системы;

IPADDR — IP адрес, который будет использован для этого компьютера;

GATEWAY — шлюз для доступа к интернету;

NETMASK — маска сети;

DNS1 — сервер для разрешения доменных имен DNS.

sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s8

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s8
UUID=939a0551-f5b5-46d8-87fe-24e5e7b1a0c1
DEVICE=enp0s8
ONBOOT=yes

Часто задаваемые вопросы по теме статьи (FAQ)

Стоит ли удалять NetworkManager?

Все зависит от конкретной ситуации. Я чаще всего удаляю, потому что мне его функционал не нужен. В подавляющем большинстве случаев, я настраиваю сеть в centos один раз во время установки сервера. Какой мне смысл оставлять NM в системе и постоянно его обновлять? Тем не менее Redhat настоятельно рекомендует использовать NetworkManager для настройки сети и в этом есть определенный смысл. К примеру, если вы будете проходить сертификацию, то вам 100% нужен будет этот инструмент, так как с его помощью можно быстрее настроить сеть и вероятность ошибки будет минимальной. Так что решайте сами по месту, нужен вам Network Manager или нет.

Есть ли разница в том, как настраивать hostname, через правку файла или команду hostnamectl?

Принципиальной разницы нет. Результат будет один и тот же.

Как настроить proxy в centos?

Централизованно для всей системы настроить proxy не получится. Для каждой службы нужно это делать отдельно – yum или dnf, браузер и т.д.

Нужно ли отключать ipv6 в системе?

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

Определение имени хоста и как его найти в Windows

Имя хоста – это метка (имя), назначаемая устройству (хосту) в сети, и используется для различения одного устройства от другого в конкретной сети или через Интернет.

Имя хоста для компьютера в домашней сети может быть что-то вроде новый ноутбук , Guest-Desktop или FamilyPC .

Имена хостов также используются DNS-серверами, поэтому вы можете получить доступ к веб-сайту по общему, легко запоминаемому имени, чтобы избежать необходимости запоминать строку цифр (IP-адрес) только для открытия веб-сайта.

Например, в URL-адресе pcsupport.lifewire.com именем хоста является поддержка ПК . Другие примеры приведены ниже.

Вместо этого имя компьютера может называться имя компьютера , sitename или имя узла . Вы также можете увидеть имя хоста, записанное как имя хоста .

Примеры имени хоста

Каждое из следующего является примером Полного доменного имени (FQDN) с его именем хоста, записанным на стороне:

  • pcsupport.lifewire.com : pcsupport
  • www.google.com : www
  • images.google.com : изображения
  • products.office.com : продукты
  • www.microsoft.com : www

Как вы можете видеть, имя хоста (например, pcsupport ) – это просто текст, предшествующий имени домена (например, lifewire), который, конечно же, текст, предшествующий домену верхнего уровня ( ком ).

Как найти имя хоста в Windows

Выполнение имени хоста из командной строки – безусловно, самый простой способ показать имя хоста компьютера, на котором вы работаете.

Никогда раньше не использовал командную строку? Для получения инструкций см. Наш учебник «Как открыть командную строку». Этот метод работает в окне терминала и в других операционных системах, таких как macOS и Linux.

Использование команды ipconfig для выполнения ipconfig/all – это еще один метод, но эти результаты гораздо более подробны и включают в себя информацию в дополнение к имени хоста, которая может вас не заинтересовать.

Команда net view , одна из нескольких сетевых команд, – это еще один способ увидеть не только ваше собственное имя хоста, но и имена хостов других устройств и компьютеров в вашей сети.

Как изменить имя хоста в Windows

Другой простой способ узнать имя хоста компьютера, который вы используете, – это через Системные свойства , который также позволяет вам изменить имя хоста.

Доступ к системным свойствам можно получить через ссылку Дополнительные параметры системы внутри апплета «Система» на панели управления, но также можно запустить, выполнив control sysdm.cpl из Выполнить или командная строка.

Подробнее об именах хостов

Имена хостов не могут содержать пробелы, поскольку они могут быть только алфавитными или буквенно-цифровыми. Дефис является единственным допустимым символом.

Часть www URL фактически указывает на поддомен веб-сайта, аналогично тому, как pcsupport является поддоменом lifewire.com, а images – один из поддоменов Google.com.

Чтобы получить доступ к разделу поддержки ПК на веб-сайте lifewire.com, необходимо указать имя хоста pcsupport в URL. Аналогично, имя хоста www всегда требуется, если вы не указали конкретный поддомен (например, images или pcsupport ).

Например, технически всегда требуется ввод www.lifewire.com вместо простого lifewire.com . Вот почему некоторые сайты недоступны, если вы не введете часть www перед доменным именем.

Однако большинство посещаемых вами веб-сайтов по-прежнему будут открываться без указания имени хоста www – либо потому, что веб-браузер делает это за вас, либо потому, что веб-сайт знает, что вы ищете.

Начальная настройка CentOS

Лично я любую настройку системы, будь то centos или другая, после установки начинаю с того, что полностью обновляю систему. Если установочный образ был свежий, либо установка велась по сети, то скорее всего обновлений никаких не будет. Чаще всего они есть, так как установочные образы не всегда регулярно обновляются.

Обновляем систему

Для удобства администрирования, я всегда устанавливаю Midnight Commander, или просто mc:

И сразу же для него включаю подсветку синтаксиса всех файлов, которые не обозначены явно в файле /usr/share/mc/syntax/Syntax синтаксисом для sh и bash скриптов. Этот универсальный синтаксис нормально подходит для конфигурационных файлов, с которыми чаще всего приходится работать на сервере. Перезаписываем файл unknown.syntax. Именно этот шаблон будет применяться к .conf и .cf файлам, так как к ним явно не привязано никакого синтаксиса.

Дальше нам пригодятся сетевые утилиты. В зависимости от набора начальных пакетов, которые вы выбираете при установке системы, у вас будет тот или иной набор сетевых утилит. Вот список тех, к которым привык лично я — ifconfig, netstat, nslookup и некоторые другие. Если она вам нужны, так же как и мне, то предлагаю их установить отдельно, если они еще не стоят. Если вам они особо не нужны и вы ими не пользуетесь, то можете пропустить их установку. Проверим, что у нас имеется в системе на текущий момент

Если увидите ответ:

Значит утилита не установлена. Вместо ifconfig в CentOS теперь утилита ip. Это относится не только к центос. Такая картина почти во всех популярных современных дистрибутивах Linux. Я с давних времен привык к ifconfig, хотя последнее время практически не пользуюсь. Мне всегда нравилось, что в различных дистрибутивах линукс все примерно одинаковое. С помощью ifconfig можно настроить сеть не только в linux, но и в freebsd. Это удобно. А когда в каждом дистрибутиве свой инструмент это не удобно. Хотя сейчас это уже не очень актуально, так как с Freebsd больше не работаю, а утилита ip есть во всех дистрибутивах linux. Тем не менее, если вам нужен ifconfig, то можете установить пакет net-tools, в который она входит:

Чтобы у нас работали команды nslookup или, к примеру, host необходимо установить пакет bind-utils. Если этого не сделать, то на команду:

Будет вывод:

Так что устанавливаем bind-utils:

alias

Чтобы не писать длинные имена хостов можно придумать alias

Формат следующий

FQDN — Fully Qualified Domain Name — полностью определённое имя домена.

$ ping vbdns

PING dns-server.andrei.com (192.168.56.149) 56(84) bytes of data.
64 bytes from dns-server.andrei.com (192.168.56.149): icmp_seq=1 ttl=64 time=0.619 ms
64 bytes from dns-server.andrei.com (192.168.56.149): icmp_seq=2 ttl=64 time=0.674 ms
^C
— dns-server.andrei.com ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.619/0.646/0.674/0.037 ms

Обратите внимание на dns-server.andrei.com

Хоть пинг и был по алиасу, ответ идёт как от static fqdn

Если поменять порядок так, что vbdns идёт первым а FQDN dns-server.andrei.com вторым, но
dns-server.andrei.com будет считаться алиасом

В таком случае ответ будет идти от vbdns

$ ping vbdns

Или

$ ping dns-server.andrei.com

PING vbdns (192.168.56.149) 56(84) bytes of data.
64 bytes from vbdns (192.168.56.149): icmp_seq=1 ttl=64 time=0.721 ms
64 bytes from vbdns (192.168.56.149): icmp_seq=2 ttl=64 time=1.01 ms
^C
— vbdns ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1004ms
rtt min/avg/max/mdev = 0.721/0.866/1.012/0.148 ms

Это может стать важным при работе с сертификатами

Предварительная настройка сервера

Любую настройку сервера я рекомендую начинать с обновления:

# yum -y update

После этого я устанавливаю mc, так как привык к нему и постоянно пользуюсь:

# yum -y install mc

Дальше отключаем selinux. Находим файл /etc/sysconfig/selinux и редактируем его:

# mcedit /etc/sysconfig/selinux

Приводим строку с соответствующим параметром к следующему виду:

SELINUX=disabled

Чтобы применить изменения, перезагружаем сервер:

# reboot

Более подробно о базовой настройке сервера CentOS 7 читайте отдельно. Мы же двигаемся дальше.

Теперь настроим сеть. Я очень подробно рассмотрел вопрос настройки сети в CentOS 7 в своем отдельном материале. Рекомендую с ним ознакомиться. Здесь же я кратко выполню необходимые команды, без пояснений.

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

# systemctl stop NetworkManager.service
# systemctl disable NetworkManager.service

Теперь включаем классическую службу сети в CentOS 7:

# systemctl enable network.service

Настраиваем сетевые интерфейсы:

# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0

HWADDR=00:15:5D:01:0F:06
TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
NAME="eth0"
UUID="4e65030c-da90-4fb8-bde4-028424fe3710"
ONBOOT="yes"
# mcedit /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
HWADDR=00:15:5d:01:0f:12
TYPE=Ethernet
ONBOOT=yes
IPADDR=192.168.10.1
NETMASK=255.255.255.0

Перезапускаем службу сети:

# systemctl restart network.service

Смотрим, что получилось:

# ip a

Вы настраивайте сеть в зависимости от своих условий. Если внешний адаптер получает настройки не по dhcp, как у меня, а в статике, то не забудьте настроить шлюз по-умолчанию и dns сервер. Как это сделать написано в моей статье о сетевых параметрах, ссылку на которую я приводил выше.

Прежде чем двигаться дальше, убедитесь, что вы все верно настроили — на сервере работает интернет, компьютеры из локальной сети пингуют сервер по адресу на eth1.

Установка CentOS 7 с флешки

После создания загрузочной флешки, можно приступить к установке. Вставляем флешку в сервер, указываем в качестве источника загрузки USB и запускаем компьютер. Нас встречает начальное меню установки CentOS:

Выбираем первый пункт: Install CentOS 7 и жмем enter. После загрузки инсталлера, нас встречает окно с выбором языка, который будет использоваться во время установки. Я всегда выбираю Еnglish, мне так привычнее:

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

NetworkManager

Проверить статус можно командой

systemctl status NetworkManager

NetworkManager.service — Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-02-18 17:30:13 EET; 1 months 30 days ago
Docs: man:NetworkManager(8)
Main PID: 841 (NetworkManager)
Tasks: 5
CGroup: /system.slice/NetworkManager.service
├─ 841 /usr/sbin/NetworkManager —no-daemon
└─9599 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens192.pid -lf /var/lib/NetworkManager/dhclient-5c2584c5-7d87-4826-ba2a-79713eb62a9a-ens192.lease -cf /var/lib/Net…

Nov 12 17:22:26 localhost.localdomain NetworkManager: <info> dhcp4 (ens192): gateway 10.1.103.254
Nov 12 17:22:26 localhost.localdomain NetworkManager: <info> dhcp4 (ens192): lease time 7200
Nov 12 17:22:26 localhost.localdomain NetworkManager: <info> dhcp4 (ens192): nameserver ‘10.10.10.1’
Nov 12 17:22:26 localhost.localdomain NetworkManager: <info> dhcp4 (ens192): nameserver ‘10.1.0.2’
Nov 12 17:22:26 localhost.localdomain NetworkManager: <info> dhcp4 (ens192): domain name ‘urn.su’
Nov 12 17:22:26 localhost.localdomain NetworkManager: <info> dhcp (ens192): domain search ‘urn.su.’
Nov 12 17:22:26 localhost.localdomain NetworkManager: <info> dhcp (ens192): domain search ‘hel.fi.urn.su.’
Nov 12 17:22:26 localhost.localdomain NetworkManager: <info> dhcp (ens192): domain search ‘ad.urn.su.’
Nov 12 17:22:26 localhost.localdomain NetworkManager: <info> dhcp4 (ens192): state changed bound -> bound
Nov 12 17:22:26 localhost.localdomain dhclient: bound to 10.1.102.211 — renewal in 2903 seconds.

Подключении по ssh с помощью putty

Работать с сервером намного удобнее используя ssh-клиент. Вот уже многие годы стандартом для win систем остается putty. Подробно на всех настройках этого клиента я останавливаться не буду, давайте просто подключимся к нашему серверу. Запускаем putty и вводим в “HostName” IP адрес нашего сервера 192.168.56.80. Подключатся к нему мы будем постоянно, поэтому давайте сохраним этот IP в списке. В “Saved Sessions” вводим название и нажимаем кнопку “Save”. А что бы подключится – нажимаем “Open”. и видим строку приглашения нашего сервера:

После того как установка CentOS 7 завершена – нам надо сделать немало настроек, что бы подстроить сервер под себя. Об этом следующей части.

hostname

Шаг 1. Проверка текущего hostname

Чтобы получить информацию о хосте выполните

hostnamectl

Static hostname: localhost.localdomain
Icon name: computer-vm
Chassis: vm
Machine ID: a714bee8007d114a84177dbb15072f2e
Boot ID: b02d9498c1764a338c781672aac1be29
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1160.el7.x86_64
Architecture: x86-64

Нужная информация находится в первой строке

Шаг 2. Смена hostname

Так как CentOS 7 поддреживает только Fully Qualified Domain Names (FQDNs),
советую тщательно проверить hostname, который вы планируете использовать.

Допустимые значения:

  • Строчные буквы от a до z
  • Цифры от 0 до 9
  • Точки и дефисы
  • Hostnames может быть от 2 до 63 символов
  • Hostnames должен начинаться и заканчиваться цифрой или буквой

Выполните

hostnamectl set-hostname my.new-hostname.server

Подробности в статье
hostname

Видео установки CentOS 7 на raid 1

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

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

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

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

Сохранение настроек сети

Определяем, какие интерфейсы есть в системе

ip a

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

1lo&lt;LOOPBACK,UP,LOWER_UP&gt;mtu65536qdisc noqueue state UNKNOWN

link/loopback000000000000brd000000000000

inet127.0.0.1/8scope host lo

2eth0&lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt;mtu1500qdisc pfifo_fast state UP qlen1000

link/ether001517185fd8 brd ffffffffffff

inet10.15.0.1/28brd91.241.22.15scope globaleth0

3eth1&lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt;mtu1500qdisc pfifo_fast state UP qlen1000

link/ether001517185fd9 brd ffffffffffff

inet192.168.11.101/24brd192.168.11.255scope globaleth1

inet10.49.0.1/8brd10.255.255.255scope globaleth13

inet192.168.70.16/24brd192.168.70.255scope globaleth11

4gre0&lt;NOARP&gt;mtu1476qdisc noop state DOWN

link/gre0.0.0.0brd0.0.0.0

5gretap0&lt;BROADCAST,MULTICAST&gt;mtu1476qdisc noop state DOWN qlen1000

link/ether000000000000brd ffffffffffff

6eth1.122@eth1&lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt;mtu1500qdisc noqueue state UP

link/ether001517185fd9 brd ffffffffffff

inet192.168.123.254/23brd192.168.123.255scope globaleth1.122

 

Сохраняем настройки

Для сохранение я настроек необходимо внести изменения я конфигурационный файл интерфейса, который находиться /etc/sysconfig/network-scripts/ifcfg-eth0 и приводим его к виду:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

DEVICE=»eth0″

BOOTPROTO=none

NM_CONTROLLED=»yes»

ONBOOT=yes

TYPE=»Ethernet»

UUID=»7f9fe579-ac2f-4e35-9445-7685620fa61d»

HWADDR=001517185FD8

IPADDR=10.15.0.1

PREFIX=28

GATEWAY=10.15.0.254

DNS3=8.8.4.4

DNS2=8.8.8.8

DNS1=192.168.11.3

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME=»System eth0″

 

Перезапуск сети

После внесения изменений необходимо перезапустить демон сети

1
2
3

service network restart

 

или так

1
2
3

 
/etc/init.d/network restart

 

Как работает сеть?

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

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

Для идентификации компьютеров в сети используются IP адреса. Компьютер должен знать куда нужно передать пакет и кто его отправил. Поэтому в глобальной сети все IP адреса уникальны. Но невозможно подключить все компьютеры к одной общей сети, потому что IP адресов на всех не хватит. Поэтому были созданы локальные сети.

К каждой обычной локальной сети может быть подключено 256 компьютеров с IP адресами от 0 до 255. Из этого выплывает еще один термин — маска подсети, она указывает какая часть IP адреса относится к локальной сети. Например, в большинстве случаев маска сети будет 255.255.255.0, это значит, что в нашей сети будет меняться только последняя цифра IP адреса, такой тип наиболее распространен. Если наш IP 192.168.1.2, то компьютеры из нашей сети будут иметь адреса 192.168.1.1 и до 192.168.1.255.

Следующий важный для нас параметр, это компьютер, с помощью которого мы можем получить доступ к внешней сети, он называется шлюзом или Gateway. В каждой сети, подключенной к интернету есть шлюз.

Последнее, на чем осталось остановиться вид адресов сайтов. Как я уже сказал, все компьютеры имеют IP адрес и доступ к ним осуществляется именно по нему. Но в адресной строке браузера мы видим понятное имя, а не сложные цифры. Для преобразования имени в цифры IP адреса используется служба DNS. Ее нам тоже предстоит настроить. В случае если компьютер получает все эти параметры по DHCP нам достаточно только включить службу. Но если нужна ручная настройка сети из консоли centos 7, то каждый из параметров нужно указать вручную. А теперь перейдем к практике.

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

Узнать, какое время настроено на сервере centos можно с помощью команды date:

Чтобы сменить часовой пояс, можете воспользоваться специальной утилитой, которая входит в состав systemd.

По факту, эта утилита меняет символьную ссылку. Рассказываю, чтобы вы понимали, как реально меняется часовой пояс.

Если вы вручную замените символьную ссылку на другую, точно так же поменяете часовой пояс системы.

Теперь проверим статус службы по обновлению времени через интернет. Для этого можно использовать указанную выше команду timedatectl без параметров.

В CentOS есть утилита для синхронизации времени chrony. В стандартной установке она должна быть установлена в системе, в минимальной ее нет. Если у вас она не стоит, как и у меня, что видно по скриншоту, то устанровим и настроим вручную:

Запускаем chrony и добавляем в автозагрузку:

Проверяем, нормально ли запустился:

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

Загрузочная флешка для CentOS 7

Последнее время лично я практически не пользуюсь обычными CD, предпочитая им загрузочные флешки. Они удобнее, занимают меньше места, проще обновить дистрибутив на них. Но иногда приходится заморочиться для создания загрузочной флешки. Например, для создания загрузочной флешки CentOS 6 я раньше пользовался программой unetbootin, но с 7-й версией этот номер не прошел. Созданная в ней флешка не позволяет установить CentOS 7, так как сам инсталлятор в какой-то момент не видит источник установки на флешке.

Но на выручку пришла бесплатная программа Win32DiskImager. С ее помощью без проблем удается создать загрузочную флешку CentOS 7. Вот как это делается:

  1. Скачиваем дистрибутив программы.
  2. Скачиваем дистрибутив CentOS 7. Я для теста использовал версию Minimal.
  3. Вставляем чистую флешку, запускаем программу и указываем настройки:
  4. Нажимаем Write и ждем окончания записи.
  5. Загрузочная флешка CentOS 7 готова.

Этого достаточно для создания флешки. Теперь ей можно пользоваться для установки операционной системы с флешки.

Редактирование DNS

Если был выбран вариант сети со статичным адресом, то настроить DNS можно несколькими способами.

Файлы Resolv.conf и ifcfg-ethXX

До шестой версии ОС сетевые параметры находились по адресу /etc/resolv.conf. Для вызова файла вводится «vi /etc/resolv.conf». После чего открывается окно для установки DNS. Здесь в nameserver нужно прописать DNS.

После ввода произвести перезагрузку модуля, вводя «/etc/init.d/networkrestart».

Начиная с CentOS 6, установки сети также прописываются в рассмотренном выше файле ifcfg-ethXX, где «XX» — название интерфейса сети. Вызывается командой «vi/etc/sysconfig/network-scripts/ifcfg-ethXX».

ifcfg-ethXX имеет приоритет. Если поменять значения в файле resolv.conf, не меняя их в ifcfg-ethXX, то после перезагрузки загрузятся значения последнего. Это нужно учитывать при настройке системы выше версии 5.

Установка для двух и более адаптеров

Если есть 2 карты и необходимо одну из них сделать основной, то используется запрос «vi /etc/sysconfig/network». После ее ввода, указывается шлюз, имя сервера и задается приоритет карты:

  • HOSTNAME — имя сервера;
  • GATEWAY — шлюз;
  • GATEWAYDEV=ethXX, указывается главная карта.

Все операции проводятся после нажатия INSERT.

Опция system-config-network-tui

Для установки вспомогательной утилиты написать «yum install -y system-config-network-tui» и запустить выполнение. После инициализации опции в командной строке прописать «system-config-network-tui».

Далее выполнить следующие действия:

  1. Откроется синий экран с приглашением выбрать одну из установок. Выбрать пункт «Device configuration».
  2. Появится список с доступными картами. Выбрать необходимую.
  3. После этого настроить адаптер.
  4. Затем зайти в пункт «DNS configuration».
  5. Задать необходимые настройки.
  6. Подтвердить изменения и выйти.

После выполнения всех действий установится необходимый DNS.

Использование Midnight Commander

Установка через программу Midnight Commander. Она схожа с приложением Windows Total Commander. Для инициализации опции ввести команду «yum install mc -y». После установки набрать «mc». Откроется окно программы.

Перейти в каталог с сетевыми файлами /etc/sysconfig/network-scripts и выбрать файл сетевого адаптера, например ifcfg-eth0.Нажать на клавишу F4. В правом окне нажать на пункт «/.mc».

Появятся опции сети. Установить необходимую конфигурацию, для выхода использовать клавишу F10.

Настройка квот

Устанавливаем пакет для квотирования диска:

yum install quota

Открываем fstab и добавляем опции квотирования для нужного раздела:

vi /etc/fstab

/dev/sdb          /var                   ext4    usrquota,grpquota       0 0

* в моем примере добавлены опции usrquota и grpquota для раздела /var.

Перемонтируем раздел, для которого должны работать квоты:

mount -o remount /var

Запускаем следующую команду для создания служебных файлов:

quotacheck -favugm

Включаем квоту для раздела:

quotaon -avug

Задаем квоту для пользователя виртуальной площадки:

edquota u10001

Disk quotas for user u10001 (uid 10001):
  Filesystem      blocks       soft       hard     inodes     soft     hard
  /dev/sdb        252432         2G         2G      10796        0        0

* в данном примере выставляем квоту в 2 Гб.

Проверить установленную квоту можно командой:

repquota /var

Заключение

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

В целом, вывод по lxc неоднозначный. С одной стороны, вроде все удобно и даже работает. Но с дугой стороны, такие нерешенные проблемы, как зависание контейнеров мне не понятны. Почему оно не заработало из коробки — не ясно. Кроме того, периодически я получал зависания таких команд как lxc-info. Хочешь получить инфу по контейнеру, а в ответ тишина. Просто висит команда в консоли и не выводит ничего. Оставлял на час — без изменений. После перезапуска контейнера показывает нормально. Такие явные ошибки очень настораживают и предостерегают от использования в продакшене.

Потестирую дальше на своих небольших проектах. Если все будет нормально, то дополню статью новым материалом. В принципе, если дальше будет работать стабильно, можно кое-где использовать. В целом, контейнеры очень интересная технология, которая будет отличным дополнением виртуальным машинам, особенно если весь хост используется для однотипной нагрузки, к примеру, под web сайты. Можно их безопасно изолировать с минимальным оверхедом по ресурсам, чего не скажешь о виртуальных машинах даже в минимальной конфигурации.

Онлайн курс «DevOps практики и инструменты»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

Проверьте себя на вступительном тесте и смотрите программу детальнее по .

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

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