Настройка статического ip-адреса на сетевых интерфейсах в CentOS 7

Настройка статического ip-адреса на сетевых интерфейсах в CentOS 7 Хостинг

What is a UUID?

Настройка статического ip-адреса на сетевых интерфейсах в CentOS 7

A universally unique identifier (UUID) is a 128-bit number used to identify information in computer systems.
How to generate and Set UUID for NICs and Bonds on RHEL/CentOS

Настройка ip-адреса на сетевых интерфейсах в CentOS 7

Просмотр сетевых интерфейсов

В начале настройки необходимо просмотреть существующие в
системе интерфейсы и то как они названы в системе. Выполняется это командой ip
address
или ip a

Вывод команды ip a
Вывод команды ip a

Также имена интерфейсов можно узнать используя команду

nmcli -p dev или nmcli con show
Вывод команды nmci -p dev
Вывод команды nmci -p dev

Команду nmcli con show предпочтительнее использовать если необходимо узнать также системный UUID интерфейса.

Вывод UUID сетевых интерфейсов
Вывод UUID сетевых интерфейсов

И третий способ узнать имя и настройки интерфейса командой

,
которая также выведет подробную информацию обо всех сетевых устройствах.

Результат команды ifconfig
Результат команды ifconfig

Если установлен minimal образ Centos7, то команда ifconfig выдаст ошибку команда не найдена, это связано с тем что не установлен пакет утилит net-tools, в состав которого входит и утилита ifconfig. Установить его можно командой yum install net-tools


Вариант 1. Настройка через конфигурационный файл

Конфигурационные файлы сетевых интерфейсов хранятся в директории /etc/sysconfig/network-scripts, каждый файл шмеет следующую структуру ifcfg-имя_интерфейса, например, ifcfg-enp0s3. Открыть его можно любым редактором, например, vim:

Интересующие параметры в данном файле следующие:

  • BOOTPROTO — тип настройки интерфейса, если выставлен dhcp, то необходимо поменять на static
  • DEFROUTE — флаг, указывающий на включать или нет маршрут по-умолчанию, подвязанный к данному интерфейсу при включении интерфейса (по-умолчанию выставлен yes)
  • ONBOOT — флаг, указывающий включать ли интерфейс при загрузке, рекомендуется установить значение yes
  • IPADDR — указывается статический адрес интерфейса
  • PREFIX — маска подсети, указывается в битовом формате, например, 24
  • GATEWAY — адрес шлюза сети
  • DNS1 — адрес DNS-сервера
Пример файла конфигурации сетевого интерфейса
Пример файла конфигурации сетевого интерфейса

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

systemctl restart network

Вариант 2: Настройка с помощью утилиты nmtui

Утилита запускается командой

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

Утилита nmtui
Утилита nmtui

Далее необходимо выбрать из списка интересующий интерфейс и
параметр Изменить

Переходы по пунктам меню производятся клавишей TAB

Выбор интерфейса в nmtui
Выбор интерфейса в nmtui

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

  • Конфигурация IPv4 — выбрать значение Вручную
  • Адреса — указать необходимй адрес интерфейса
  • Шлюз — указать адрес шлюза
  • Серверы DNS — внести адреса DNS-серверов

По завершению нажать на Ок

Параметры сетевого интерфейса в nmtui
Параметры сетевого интерфейса в nmtui

Если при попытке запуска nmtui выдается ошибка Команда не найдена, то необходимо установить утилиту командой yum install NetworkManager-tui

Вариант 3: Настройка с использованием утилиты nmcli

nmcli con add type ethernet con-name itcare-lab ifname <имя_интерфейса> ip4 <ip_адрес/маска_подсети> gw4 <адрес_шлюза>

Присвоение статического ip утилитой nmcli
Присвоение статического ip утилитой nmcli

Также можно указать и DNS-сервера с помощью утилиты nmcli

nmcli con mod itcare-lab ipv4.dns

«список адресов DNS-серверов»

Настройка DNS через nmcli
Настройка DNS через nmcli

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

На сетевых картах на базе чипа 82574L производства Intel с драйверами под Linux часто наблюдаются проблемы. Проявляются они чаще всего в виде «подвисания соединения» и недоступности сервера по сети. В рамках статьи будет рассмотрен способ решения данной проблемы.

Настройка статического ip-адреса на сетевых интерфейсах в CentOS 7

Следует учесть, что данная инструкция не гарантирует, что можно добиться 100% работоспособности карты, так как были случаи, что после определенного периода работы интерфейс снова выходил из строя

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

В выводе будет что-то подобное (скорее всего будет отличие в адресе шины):

08:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
09:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

Более подробный вывод:

Возможно под интерфейсом будет выведена следующая информация:

08:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection (rev ff) (prog-if ff)
!!! Unknown header type 7f
Kernel driver in use: e1000e
Kernel modules: e1000e

Чтобы попробовать решить данную проблему необходимо выполнить три шага: переустановить драйвер сетевой карты, изменить параметры ядра и параметры инициализации.

1) Переустановка драйвера.
Можно драйвер собрать из исходников, предварительно скачав его с официального сайта, либо с сайта sourceforge
Но также можно установить драйвер из репозитория Elrepo, предварительно установив репозиторий.

rpm —import http://elrepo.org/RPM-GPG-KEY-elrepo.org — импорт публичного ключа Elrepo
rpm -Uvh http://elrepo.org/elrepo-release-6-4.el6.elrepo.noarch.rpm — установка репозитория

Для просмотра информации об установленном драйвере необходимо выполнить команду:

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

Как видно из вывода — версия драйвера выше текущей:

Установка выполняется командой:

yum -y install kmod-e1000e

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

Как видно версия драйвера изменилась.

2) Изменение параметров ядра:
Любым редактором открыть файл grub.conf

И добавить к строке kernel следующие параметры:

pcie_aspm=off e1000e.IntMode=1,1 e1000e.InterruptThrottleRate=10000,10000 acpi=off

Если используется RAID необходимо прописать в каждой строкеВозможный вид:

default=0
fallback=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu
title CentOS (2.6.32-504.12.2.el6.x86_64)
root (hd0,0)
kernel (hd0,0)/vmlinuz-2.6.32-504.12.2.el6.x86_64 ro root=UUID=0cdb9faa-ab11-4c41-921d-48adb69f9725 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_DM SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_MD_UUID=6adf9813:d771c2f9:3406aa78:3a8f1ace rd_MD_UUID=c509bd4d:8355df03:6c0bb127:a8e40431 pcie_aspm=off e1000e.IntMode=1,1 e1000e.InterruptThrottleRate=10000,10000 acpi=off
initrd /initramfs-2.6.32-504.12.2.el6.x86_64.img
title CentOS (2.6.32-504.12.2.el6.x86_64)
root (hd1,0)
kernel (hd1,0)/vmlinuz-2.6.32-504.12.2.el6.x86_64 ro root=UUID=0cdb9faa-ab11-4c41-921d-48adb69f9725 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_DM SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_MD_UUID=6adf9813:d771c2f9:3406aa78:3a8f1ace rd_MD_UUID=c509bd4d:8355df03:6c0bb127:a8e40431 pcie_aspm=off e1000e.IntMode=1,1 e1000e.InterruptThrottleRate=10000,10000 acpi=off
initrd /initramfs-2.6.32-504.12.2.el6.x86_64.img

3) Изменение параметров инициализации
Необходимо внести параметры в файл rc.local

vim /etc/rc.local
#disable pause autonegotiate
/sbin/ethtool -A eth0 autoneg off
/sbin/ethtool -s eth0 autoneg off
#change tx ring buffer
/sbin/ethtool -G eth0 tx 4096
#change rx ring buffer
/sbin/ethtool -G eth0 rx 128
#disable wake on line
/sbin/ethtool -s eth0 wol d
#turn off offload
/sbin/ethtool -K eth0 tx off rx off sg off tso off gso off gro off
#enable TX pause
/sbin/ethtool -A eth0 tx on
#disable ASPM
/sbin/setpci -s 08:00.0 CAP_EXP+10.b=40
/sbin/setpci -s 00:19.0 CAP_EXP+10.b=40

Если в сети несколько сетевых интерфейсов, то данные параметры необходимо прописать для каждого.

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

В данной статье мы рассмотрим способы настройки сети в системах Linux CentOS 7/8, покажем, как настраивать сетевых интерфейсов через конфигурационные файлы, основные утилиты для настройки сети и многое другое. Это актуальная тема, так как изначально настройка любого сервера начинается с настройки на нем сети.

В статье мы покажем особенности настройки сети в CentOS 7 с помощью стандартного сервиса network. Посмотрим, как использовать для настройки сети NetworkManager (NM), который предлагается по-умолчанию в CentOS 8.

Содержание
  1. Именование сетевых интерфейсов в CentOS
  2. Первоначальная настройка сети при установке CentOS
  3. Ручная настройка конфигурационного файла сетевого интерфейса в CentOS
  4. Настройка статического IP адреса в CentOS
  5. Получение динамического IP адреса для интерфейса через DHCP
  6. Как отключить IPv6 в CentOS?
  7. Как указать DNS сервера для сетевого интерфейса в CentOS?
  8. Как настроить несколько IP адресов на одном сетевом интерфейсе CentOS?
  9. Настройка VLAN (802. 1Q) в CentOS
  10. Настройка нескольких сетевых интерфейсов в CentOS
  11. Полезные команды по работе с сетью в CentOS
  12. Утилиты администрирования сети в CentOS
  13. Управление сетью с помощью NetworkManager в CentOS 8
  14. Просмотр таблицы маршрутизации в Linux
  15. Как добавить или удалить статический маршрут?
  16. Изменить маршрут в Linux
  17. Изменить маршрут по умолчанию
  18. Создаем VLAN через subinterface
  19. Настройка VLAN через отдельный файл vlanXX
  20. Используем NetworkManager для настройки VLAN интерфейса
  21. Настройка временного VLAN с помощью утилиты vconfig

Именование сетевых интерфейсов в CentOS

Классическая схема именования сетевых интерфейсов в Linux присваивает имена eth0, eth1 и так далее по порядку. Но эти имена не привязываются жестко к интерфейсам и после перезагрузки при наличии нескольких сетевых интерфейсов, эти имена могут поменяться. Это может доставлять некоторые проблемы, при настройке, например, межсетевого экрана через firewalld или iptables. В связи с этим начиная с RedHat 7 и CentOS 7, решено было назначать имена сетевых интерфейсов на основе иерархии различных схем именования. По умолчанию systemd будет поочередно применять схемы именования, остановившись на первой доступной и применимой. Имена присваиваются в автоматическом режиме, остаются неизменными даже если аппаратные средства добавлены или изменены. С другой стороны, такие имена интерфейсов менее читабельны, например, enp5s0 или ens3, чем традиционные eth0 и eth1.

Читайте также:  HSHP — Мощный хостинг серверов в России и Европе. Windows, AntiDDoS | Страница 2 | Сообщество администраторов игровых серверов

Можно вернуться к стандартному имени интерфейса Linux с помощью следующих действий.

Отредактируйте файл /etc/default/grub:

# nano /etc/default/grub

В строку GRUB_CMDLINE_LINUX нужно добавить:

net.ifnames=0 biosdevname=0

Пример полной строки:

GRUB_CMDLINE_LINUX="consoleblank=0 fsck.repair=yes crashkernel=auto nompath selinux=0 rhgb quiet net.ifnames=0 biosdevname=0"

Обновите конфигурацию grub:

# grub2-mkconfig -o /boot/grub2/grub.cfg

Переименуйте конфигурационный файл сетевого интерфейса:

# mv /etc/sysconfig/network-scripts/ifcfg-ens3 /etc/sysconfig/network-scripts/ifcfg-eth0

И заменить значение DEVICE:

изменить имя сетевого интерфейса в centos eth0

Сохраните файл, перезагрузите сервер и проверьте все ли в порядке:

# ip a

ip a - centos

Интерфейс теперь называется eth0.

Первоначальная настройка сети при установке CentOS

Изначально при установке CentOS Linux, вы можете настроить сетевой интерфейс в графическом режиме в пункте меню “Network & Hostname”. В данном пункте вы указываете имя сервера, добавляете нужный IP адрес и шлюз, DNS и многое другое. Более подробную настройку на данном шаге, вы можете посмотреть в статье по ссылке выше.

Ручная настройка конфигурационного файла сетевого интерфейса в CentOS

Выведем список доступных сетевых интерфейсов в системе:

# ip a

Файлы конфигурации сети вашего сервера хранятся в каталоге /etc/sysconfig/network-scripts. Эти файлы создает демон NetworkManager для каждого сетевого интерфейса. В нашем случае файл конфигурации называется ifcfg-eth0 (у вас может отличаться в зависимости от схемы именования сетевого интерфейса).

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

  • DEVICE – имя сетевого адаптера, совпадает с именем в системе, у нас это eht0
  • BOOTPROTO – способ назначения IP-адреса (static — статическое значение, указываем в ручную. dhcp — получить адрес автоматически)
  • IPADDR – IP-адрес
  • NETMASK – маска подсети
  • GATEWAY – шлюз по умолчанию
  • DNS1 – Основной DNS-сервер
  • DNS2 — альтернативный DNS-сервер
  • ONBOOT — способ запуска сетевого интерфейса (yes – автоматически, no – вручную)
  • UUID – уникальный идентификатор сетевого интерфейса. Можно сгенерировать самостоятельно командой uuidgen.
  • IPV4_FAILURE_FATAL – отключение сетевого интерфейса с IP-адресом v4, если он имеет неверную конфигурацию (yes – отключить, no – не отключать)
  • IPV6_FAILURE_FATAL – отключение сетевого интерфейса с IP-адресом v6, если он имеет неверную конфигурацию (yes – отключить, no – не отключать)
  • IPV6_AUTOCONF – разрешает или запрещает автоконфигурирование Ipv6 с помощью протокола
  • IPV6_INIT – включение возможности использования адресации Ipv6(yes – адресация может использоваться, no – не используется)
  • PEERROUTES – устанавливает приоритет настройки шлюза по умолчанию, при использовании DHCP
  • IPV6_PEERROUTES — устанавливает приоритет настройки шлюза по умолчанию, при использовании DHCP для IPv6

Исходя из этой информации, настроим сетевой интерфейс.

Настройка статического IP адреса в CentOS

Откроем файл для редактирования:

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

ручная настройка параметров сети в centos через файл /etc/sysconfig/network-scripts

В этом примере я указал статический IP адрес, маску подсети, шлюз и несколько DNS серверов. Включаем автозапуск интерфейса:

ONBOOT=”yes”

После всех модификаций, нужно выполнить рестарт сервиса network. Если все в порядке, вы получите такой листинг:

Restarting network (via systemctl): [ OK ]

Также можно просто перезапустить все профили подключений :

# nmcli connection reload

Получение динамического IP адреса для интерфейса через DHCP

Если ваш сервер должен получить IP адрес от DHCP севера, откройте конфигурационный файл интерфейса и измените настройки:

BOOTPROTO=”dhcp” - настройка полуения динамического ip адреса для сетевого интерфейса

Как отключить IPv6 в CentOS?

# netstat -tulnp

в netstat показывается ipv6 адрес, как полностью отключить на сервере centos

У меня сервер тестовый, поэтому ipv6 используется только для sshd и cronyd. Это можно определить по “:::”.

Чтобы не возникало проблем после отключения ipv6 в конфигурации сети, отключите данный протокол в сервисах, в которых они используются на вашем сервере. Например для sshd, нужно открыть конфигурационный файл:

# mcedit /etc/ssh/sshd_config

И раскомментируйте строки:

#AddressFamily any
#ListenAddress 0.0.0.0

После чего перезапустите сервис:

netstat только ipv4 без ipv6

Как видим, для sshd протокол ipv6 теперь недоступен. Проделайте аналогичные настройки со всеми сервисами.

Перейдем к отключению протокола ipv6 в настройках сети. Откройте файл /etc/sysctl.conf:

# nano /etc/sysctl.conf
И добавьте туда следующие строки:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

Сохраните файл и примените через:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

Перейдем к файлу /etc/sysconfig/network. Добавьте в него следующую конфигурацию:

NETWORKING_IPV6=no
IPV6INIT=no

отключить IPV6INIT=no

Из файла конфигурации сетевого интерфейса /etc/sysconfig/network-scripts/ifcfg-eth0 удалите строку:

IPV6INIT="yes"

И наконец добавим запрет на работу ipv6 в grub:

# nano /etc/default/grub

В конец строки GRUB_CMDLINE_LINUX, добавляем:

ipv6.disable=1

centos отключить ipv6 в grub

После всех настроек, сохраните файл и обновите grub:

# grub2-mkconfig -o /boot/grub2/grub.cfg

Выполните перезагрузку сервера и проверьте конфигурацию сети:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 185.*.*.* netmask 255.255.255.0 broadcast 185.*.*.255
ether 52:54:00:d3:1c:3e txqueuelen 1000 (Ethernet)
RX packets 10068 bytes 613092 (598.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 32 bytes 5399 (5.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Протокол ipv6 на сервере отключен.

Как указать DNS сервера для сетевого интерфейса в CentOS?

Настроить DNS-сервера для вашего сервера, вы можете с помощью файла /etc/resolv.conf или указать их в настройках сетевого интерфейса. При настройке static конфигурации для сетевого интерфейса, мы уже указывали DNS-сервера, через параметры:

DNS1=
DNS2=
DNS3=

Установите нужные вам DNS-сервера и перезагрузите сервис network.

В файл /etc/resolv.conf, DNS-сервера прописываются автоматически при перезагрузке сервера, забирая их с файла конфигурации сети. Если же вы не указали DNS-сервера при настройке сети, пропишите их вручную в файл /etc/resolv.conf:

nameserver 77.88.8.8
nameserver 8.8.8.8
nameserver 8.8.4.4

Как настроить несколько IP адресов на одном сетевом интерфейсе CentOS?

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

И измените его следующим образом:

# Generated by parse-kickstart
UUID="b8bccd4c-fb1b-4d36-9d45-044c7c0194eb"
IPADDR1="*.*.*.*"
IPADDR2="*.*.*.*"
GATEWAY="*.*.*.*"
NETMASK="255.255.255.0"
BOOTPROTO="static"
DEVICE="eth0"
ONBOOT="yes"
DNS1=77.88.8.8
DNS2=8.8.8.8
DNS3=8.8.4.4

GATEWAY — основной шлюз

Либо создайте alias к вашему основному файлу конфигурации:

# nano /etc/sysconfig/network-scripts/ifcfg-eth0:1

И добавьте несколько строк, без основного шлюза:

несколько ip на одном интерфейсе в centos

После всех настроек нужно выполнить перезапуск сети:

Restarting network (via systemctl): [ OK ]

В Windows тоже можно настроить несколько IP адресов (алиасов) на одном интерфейсе.

Настройка VLAN (802. 1Q) в CentOS

Подробнее о настройке нескольких VLAN для одного сетевого интерфейса в CentOS мы говорили в статье: Настройка VLAN на сетевом интерфейсе в CentOS.

Настройка нескольких сетевых интерфейсов в CentOS

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:d3:1c:3e brd ff:ff:ff:ff:ff:ff
inet 185.*.*.*/16 brd 185.*.*.255 scope global eth0
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 52:54:00:5f:f3:b8 brd ff:ff:ff:ff:ff:f

Чтобы сконфигурировать второй интерфейс, нужно создать для него файл:

# nano /etc/sysconfig/network-scripts/ifcfg-eth1

И добавьте следующую конфигурацию:

IPADDR="*.*.*.*"
GATEWAY="*.*.*.*"
NETMASK="255.255.255.0"
BOOTPROTO="static"
DEVICE="eth1"
ONBOOT="yes"

настройка дополнительного сетевого интерфейса в linux centos

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

Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 185.*.*.1 0.0.0.0 UG 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
185.*.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
185.*.*.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

В качестве основного шлюза у нас выступает интерфейс eth1. Я же хочу использовать eth0, для этого изменим его:

# route add default gw *.*.*.*
– заменяем шлюз на тот, который указан в сетевом интерфейсе eth0

Читайте также:  Как переместить сертификат в личные

# route delete default gw *.*.*.*
— удаляем шлюз интерфейса eth1

netstat - проверка шлюза по умолчанию

Если вы хотите, чтобы данная настройка сохранилась после перезагрузки сервера, добавьте эти команды в rc.local (см. статью об автозагрузке сервисов в CentOS).

Полезные команды по работе с сетью в CentOS

  • ifdown eth1
    — отключить указанный сетевой интерфейс.
  • ifup eth1
    – поднять указанный сетевой интерфейс.
  • ifconfig
    – проверить информацию о всех интерфейсах.
  • ifconfig -a | grep ether | gawk '{print $2}'
    — команда для вывода MAC-адресов интерфейсов
  • ip a | grep ether | gawk '{print $2}'
    — тоже самое, только через утилиту ip a
  • service network restart
    или
    systemctl restart network
    – перезапустить сервис network с помощью systemctl
  • systemctl restart NetworkManager.service
    – перезапустить NM
  • ip route
    или
    ip route show
    — посмотреть таблицу маршрутизации (https://winitpro.ru/index.php/2020/04/13/nastrojka-marshrutov-v-linux/)
  • ping host
    – пропинговать указанный хост
  • whois domain
    – получить информацию whois для домена
  • dig domain
    – получить DNS информацию о домене

Утилиты администрирования сети в CentOS

Если сервер уже работает некоторое время или же настройкой занимались вообще не вы, первое действие которое нужно сделать, это узнать какие интерфейсы присутствуют на сервере. Для удобства установите необходимые инструменты из базового репозитория:

# yum install net-tools -y

После установки, можно воспользоваться утилитой ifconfig:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 185.*.*.* netmask 255.255.255.0 broadcast 185.*.*.255
inet6 fe80::5054:ff:fed3:1c3e prefixlen 64 scopeid 0x20<link>
ether 52:54:00:d3:1c:3e txqueuelen 1000 (Ethernet)
RX packets 2189424 bytes 144208326 (137.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2350 bytes 260486 (254.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Как видим, имя нашего сетевого интерфейса eth0.

Без установки пакета net-tools, вы можете проверить ваши интерфейсы с помощью следующей команды:

# ip a

Результат будет практически тот же:

ip a - проверка состояния сетевого интерфейса centos

Управление сетью с помощью NetworkManager в CentOS 8

В CentOS 8 для настройки сети рекомендуется использовать только NetworkManager. Эта служба управление сетевыми подключениями, контролирует настройки и применяет изменения к сетевым адаптерам.

Чтобы проверить статус NM, используйте команду:

# systemctl status NetworkManager.service

systemctl status NetworkManager.service

В CentOS предлагается использовать для настройки сети командную консоль nmcli или графическую утилиту nmtui.

Чтобы перейти в режим настройк сети, введите команду:

nmtui - утилита настройки сети в centos

При выборе первого пункта, у вас откроется окно с выбором сетевого интерфейса для редактирования:

настроить ens3 итерфейса на сервере centos

Выбираем нужный нам интерфейс и редактируем:

настройка ip адреса, шлюза и dns для сетевого интерфейса в centos

nmtui - способ получения ipv4 адреса manual/automatic

Замените “manual” на “automatic”:

настройка dhcp для интерфейса в network manager

После чего сохраните настройки. С помощью nmtui в графическом режиме, вы можете выполнить любые настройки, которые выполняете вручную через конфигурационные файлы. Если вы предпочитаете использовать командную строку для настройки интерфейсов, можете использовать nmcli. Например, следующие команды изменят IP адрес, щлюз и DNS сервера для интерефейса eth1.

# nmcli con mod eth1 ipv4.addresses 192.168.10.14/24
# nmcli con mod eth1 ipv4.gateway 192.168.10.1
# nmcli con mod eth1 ipv4.dns "8.8.8.8"

Для применения изменений, перезагрузите интерфейс:

# nmcli con up eth1

Если же вам удобнее работать с файлами конфигурации, установите через yum отдельный пакет network-scripts (в CentOS 8 по умолчанию его нет):

# yum install network-scripts -y

Upgraded:
initscripts-10.00.1-1.el8_0.1.x86_64
Installed:
network-scripts-10.00.1-1.el8_0.1.x86_64 network-scripts-team-1.27-10.el8.x86_64
Complete!

После установки данного пакета, вы можете редактировать настройки сети, как мы описывали ранее, через конфигурационные файлы:

network-scripts в centos 8

В этой статье мы рассмотрим особенности настройки маршрутизации и управления маршрутами в Linux (просмотр таблицы маршрутизации, добавление/удаление статических маршрутов и т.д.) на примере CentOS с помощью утилиты ip. Статья применима и для любого другого дистрибутива Linux с утилитой ip (Red Hat, Fedora и т.д.).

Для управления маршрутизацией в Linux предпочтительно исопльзовать утилиту
ip
, а не
route
. Команда route не позволяет настраивать расширенные возможности маршрутизации (например, политики маршрутизации), и не покажет специальные настройки маршрутизации, если они уже сделаны через ip.

Просмотр таблицы маршрутизации в Linux

Чтобы вывести текущую таблицу маршрутизации в Linux выполните команду:

# ip route

вывести таблицу маршрутизации в linux centos ip router

  • default via 192.168.1.1 dev enp0s3
    – шлюз по умолчанию, в данном примере работающий через интерфейс enp0s3. Если для target адреса в таблице маршрутизации отсутствует маршрут, то такой пакет отправляется через данный шлюз (маршрут по умолчанию)
  • 192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201
    — статический маршрут для сети 192.168.1.0/24 через адрес 192.168.1.201, который прописан на интерфейсе
  • proto kernel
    – маршрут создан ядром (
    proto static
    – маршрут добавлен администратором)
  • metric
    – приоритет маршрута (чем меньше значение metric, тем выше приоритет). При наличии двух маршрутов с одинаковой метрикой (не стоит так делать!), ядро начинает выбирать маршруты случайным образом.

Чтобы узнать через какой интерфейс (шлюз) должен маршрутизироваться трафик к определенному IP адресу используется команда:

# ip route get 192.168.2.45

192.168.2.45 via 192.168.1.1 dev enp0s3 src 192.168.1.201

Вы можете использовать ваш Linux сервер с двумя и более интерфейсами как маршрутизатор или интернет-шлюз. Чтобы разрешить маршрутизацию пакетов между несколькими интерфейсами, нужно включить параметр ядра net.ipv4.ip_forward = 1.

Как добавить или удалить статический маршрут?

Чтобы добавить новый маршрут к определенной IP подсети в таблицу маршрутизации Linux, нужно выполнить следующую команду:

# ip route add 192.168.0.0/24 via 192.168.1.1

Таким образом, мы добавим маршрут для IP сети 192.168.0.0/24 через шлюз 192.168.1.1.

Формат команды ip route очень похоже на синтаксис в Cisco IOS. Здесь также можно исопльзовать сокращений, например вместо
ip route add
можно написать
ip pro ad
.

добавление маршрута в centos

Также можно добавить отдельный маршрут для одного IP адреса (хоста):

# ip route add 192.168.1.0 via 192.168.1.1

Можно сделать аналог null route маршрута в Cisco (ip route null0), пакеты в такую сеть удаляются по причине No route to host:

# ip route add blackhole 10.1.20.0/24

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

Чтобы удалить созданный вручную маршрут, выполните:

# ip route del 192.168.0.0/24

удалить маршрут из таблицы маршрутизации в linux centos

Как видите, маршрут удален из таблицы маршрутизации.

Чтобы добавить постоянный маршрут, нужно создать файл для этого маршрута, либо добавить правило в файл rc.local (выполняется при загрузке сервера).

Чтобы добавить постоянный (статический) маршрут, нужно знать имя сетевого интерфейса, который будет использоваться для маршрутизации. Узнать имя сетевого интерфейса можно командой:

# ip a

В моем случае, интерфейс enp0s3.

сетевые интерфейсы в centos

Далее открываем следующий файл:

# nano /etc/sysconfig/network-scripts/route-enp0s3

И добавляем туда строку с маршрутом:

192.168.0.0/24 via 192.168.1.1

После добавления маршрута в файл нужно перезапустить сервис network:

# service network restart

добавить постоянный (persistent) маршрут в centos linux

После перещаауска сетевого сервиса, в таблице маршрутизации появился статический маршрут.

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

# nano /etc/rc.local

И укажите команду добавления маршрута:

# ip route add 192.168.0.0/24 via 192.168.1.1

добавление persistent маршрута через rc.local

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

Изменить маршрут в Linux

Чтобы изменить уже существующий маршрут, можно использовать команду ip route replace:

# ip route replace 192.168.0.0/24 via 192.168.1.1

изменитть маршрут ip route replace

Чтобы сбросить все временные маршруты в таблице маршрутизации, просто перезапустите сетевой сервис:

Restarting network (via systemctl): [ OK ]
default via 192.168.1.1 dev enp0s3 proto static metric 100
192.168.0.0/24 via 192.168.1.1 dev enp0s3 proto static metric 100
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201 metric 100

Изменить маршрут по умолчанию

Вы можете удалить маршрут по-умолчаню с помощью команды ip route del:

# ip route del default via 192.168.1.1 dev enp0s3

Чтобы указать новый маршрут по-умолчанию в CentOS используется команда:

# ip route add default via 192.168.1.2
(маршрут через IP адрес шлюза)

Читайте также:  What is Heroku | Heroku

# ip route add default via enp0s3
(маршрут через имя устройства)

Чтобы изменить параметры маршрута по умолчанию, используется команда:

# ip route replace default via 192.168.1.2

ip route replace default

В этой статье мы покажем, как настроить тегированный интерфейс VLAN (виртуальной локальной сети) встроенными программными средствами Linux в операционных системах CentOS/Fedora/RedHat. Рассмотим настройку через subinterface, отдельный файл vlanX, а также с помощью инстументов NetworkManager и vconfig.

В операционных системах CentOS/Fedora/RedHat, есть два варианта настройки VLAN:

  • Использование subinterface (например eth12.7);
  • Использование отдельного файла vlanXX(vlan7).

VLAN (Virtual Local Area Network) позволяет разделить сеть на канальном уровне на несколько изолированных широковещательных доменов. С помощью VLAN вы можете настроить несколько сетей на одном физическом порту сервера., Маршрутизаторы, коммутаторы и сервера при использовании 802.1Q VLAN могут присваивать сетевым пакетам специальный тег (тегированный трафик) с номером VLAN (VLAN ID: от 0 до 4095).

  • Сегментирование сети (разделение устройств на изолированные группы);
  • Уменьшение количества сетевого оборудования;
  • Снижение нагрузки на сеть для уменьшения широковещательного трафика;
  • Улучшение безопасности и управляемости сети.

Создаем VLAN через subinterface

Для настройки тегированного интерфейса, на сервере должен быть загружен модуль ядра Linux — 8021q. Для загрузки модуля, выполните:

# modprobe 8021q

Если модуль уже загрузен, появится ошибка:
modprobe: ERROR: could not insert '8021q': Module already in kernel
.

Проверим, загрузился ли модуль:

8021q 33080 0
garp 14384 1 8021q
mrp 18542 1 8021q

Все ок, модуль 8021q имеется.

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

Создадим VLAN c ID 7 для сетевого интерфейса eth0. Добавляем конфигурационный файл ifcfg-eth0.7 (7 после точки это назначаемый номер VLAN). В этом файле содержится описание подинтерфейса VLAN.

# nano /etc/sysconfig/network-scripts/ifcfg-eth0.7

И вписываем следующее содержимое:

ONBOOT=yes
TYPE=Ethernet
VLAN=yes DEVICE=eth0.7
BOOTPROTO=static
IPADDR=10.16.20.10
NETMASK=255.255.255.0

Данный файл конфигурации связывает виртуальный интерфейс eth0.7 с физическим интерфейсом eth0. После создания файла конфигурации, нужно перезапустить сервис network:

# systemctl restart network

создание файла с сабинтерфейсом vlan в linux centos

Проверим сетевые настройки:

# ip a

проверка сетевых настроек и vlan

Как видим, сабинтерфейс с нужным нам VLAN7 добавлен.

Текущие привязки интерфейсов и VLAN можно вывести:

# cat /proc/net/vlan/config

Статистику интерфейса можно получить так (с помощью счетчиков пакетов можно убедиться, что VLAN интерфейс получает маркированный трафик) :

# cat /proc/net/vlan/eth0.7

Чтобы выполнить ping с определенного интерфейса VLAN, используйте формат команды:

# ping -I eth0.7 192.168.1.22

Настройка VLAN через отдельный файл vlanXX

Теперь попробуем создать VLAN с ID 8 через отдельный файл конфигурации:

# nano /etc/sysconfig/network-scripts/ifcfg-vlan8

Добавим в него следующие строки:

ONBOOT=yes
TYPE=Ethernet
VLAN=yes
VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD
DEVICE=vlan8
PHYSDEV=eth0.8
VLAN_ID=8
BOOTPROTO=static
IPADDR=10.16.20.10
NETMASK=255.255.255.0

Обратите внимание, что файл конфигурации немного отличается от предыдущего. В данной настройке, нужно указывать строку «PHYSDEV», которая направляет конфигурационный файл на физический сетевой интерфейс.

/etc/sysconfig/network-scripts/ifcfg-vlan8 - настройка файла с vlan в centos

После всех настроек, так же требуется перезагрузка сервиса network:

# systemctl restart network

Если при перезапуске службы сетти вы получаете ошибку No suitable device found for this connection, проверьте что в конфигурационном файле ifcfg-vlan8 указано значение для опции VLAN_ID.

ip l ls

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:1d:4b:67 brd ff:ff:ff:ff:ff:ff
5: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:1d:4b:67 brd ff:ff:ff:ff:ff:ff
6: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 52:54:00:1d:4b:67 brd ff:ff:ff:ff:ff:ff

Нужный сетевой интерфейс с VLAN8 так же доступен.

Используем NetworkManager для настройки VLAN интерфейса

Начиная с 8 версии CentOS/RedHat по умолчанию сетью на сервере управляет NetworkManager. Ранее это инструмент так же был доступен, но большинство аминистраторов использовали привычный network.

Рассмотрим вариант настройки VLAN через NM. Создадим виртуальный интерфейс ens3.7 для VLAN 7 на физическом интерфейсе ens3 и зададим IP:

# nmcli con add type vlan con-name ens3.7 ifname VLAN7 id 7 dev ens3 ip4 15.12.10.11/24 gw4 15.12.10.254

Чтобы проверить сетевые интерфейсы на сервере, используйте команду:

# nmcli con show

NAME UUID TYPE DEVICE
ens3 8bd5cfbc-5ffc-4554-8ae1-9e02e4b57ceb ethernet ens3
virbr0 e64e63a5-76ae-4661-91ae-009f566c5e66 bridge virbr0
ens3.7 e5e91557-49a8-4389-bdfc-c9bfc099714b vlan VLAN7

После настройки, выполните перезагрузку NetworkManager:

# systemctl restart NetworkManager

После перезапуска сервиса NM, интерфейс не пропал.

nmcli - NetworkManager - создание vlan Вывести текущие настройки созданного VLAN интерфейса можно так:

# nmcli connection show ens3.7

Настройка временного VLAN с помощью утилиты vconfig

Для тестовых настроек лучше использовать утилиту vconfig. Ее особенность — после перезагрузки сервера все настройки сети возвращаются к исходному состоянию. Vconfig очень полезная утилита на этапах тестирования или обучения, так как если вы потеряете доступ к серверу из-за неправильных сетевых настроек, можно вернуться к начальной конфигурации простой перезагрузкой. Данная утилита доступна в репозитории EPEL, установим ее:

# yum install epel-release-y && yum install vconfig

Создадим интерфейс с VLAN9:

# vconfig add eth0 9

Added VLAN with VID == 9 to IF -:eth0:-

# ifconfig eth0.9 10.18.0.15 netmask 255.255.255.0 up

Временный интерфейс c VLAN был создан.

ip l ls - виртуальный сетевой интерфейс vlan

P.S. На момент написания статьи, утилита vconfig была недоступна для дистрибутивов CentOS 8 и RedHat 8.

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

Ути­ли­та ip явля­ет­ся частью паке­та iproute2, кото­рый уста­нав­ли­ва­ет­ся во всех совре­мен­ных дис­три­бу­ти­вах Linux.

Син­так­сис коман­ды ip следующий:

– это тип объ­ек­та, кото­рым вы хоти­те управ­лять. Наи­бо­лее часто исполь­зу­е­мые объ­ек­ты (или подкоманды):

  • link( l) – Отоб­ра­же­ние и изме­не­ние сете­вых интерфейсов.
  • address( a) – Отоб­ра­же­ние и изме­не­ние IP-адресов.
  • route( r) – Пока­зать и изме­нить таб­ли­цу маршрутизации.
  • neigh( n) – Отоб­ра­жать и мани­пу­ли­ро­вать сосед­ни­ми объ­ек­та­ми (таб­ли­ца ).

Объ­ект может быть напи­сан в пол­ной или сокра­щен­ной (крат­кой) фор­ме. Для отоб­ра­же­ния спис­ка команд и аргу­мен­тов для каж­до­го типа объ­ек­та ip help.

При настрой­ке сете­вых интер­фей­сов вы долж­ны запус­кать коман­ды как root или поль­зо­ва­тель с при­ви­ле­ги­я­ми sudo, в про­тив­ном слу­чае коман­да выве­дет  answers: Operation not permitted.

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

При рабо­те с объ­ек­том коман­ды addr при­ни­ма­ют сле­ду­ю­щую форму:

Наи­бо­лее часто исполь­зу­е­мые коман­ды объ­ек­та addr – это show, add и del.

Для отоб­ра­же­ния спис­ка всех сете­вых интер­фей­сов и свя­зан­но­го с ним IP-адре­са вве­ди­те сле­ду­ю­щую команду:

Вывод будет выгля­деть при­мер­но так:

Когда коман­да show опу­ще­на, все устрой­ства пере­чис­ле­ны. Вы полу­чи­те тот же вывод, если вы набе­ре­те ip addr.

Если вы хоти­те отоб­ра­жать толь­ко IP-адре­са IPv4 или IPv6, исполь­зуй­те ip -4 addr или ip -6 addr.

Для полу­че­ния инфор­ма­ции о кон­крет­ном сете­вом интер­фей­се исполь­зуй­те имя устрой­ства ip addr show dev. Напри­мер, что­бы запро­сить вас eth0, введите:

Что­бы доба­вить адрес 192.168.101.12 с сете­вой мас­кой 24 на устрой­ство eth0, введите:

В слу­чае успе­ха коман­да не будет отоб­ра­жать ника­ких выход­ных дан­ных. Если интер­фейс не суще­ству­ет, вы полу­чи­те Cannot find device “eth0”.

Оцените статью
Хостинги