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

Ручная настройка сети в linux

Базовая настройка сети

Смотрим все установленные сетевые адаптеры в системе:

В результате получаем что-то подобное:

1: lo: mtu 65536 qdisc noqueue state UNKNOWN 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: ens32: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:50:56:81:28:3c brd ff:ff:ff:ff:ff:ff inet 192.168.156.22/22 brd 192.168.159.255 scope global ens32 valid_lft forever preferred_lft forever 3: ens34: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:50:56:81:3f:22 brd ff:ff:ff:ff:ff:ff inet 10.243.254.68/26 brd 10.243.254.127 scope global ens34 valid_lft forever preferred_lft forever

* Из примера видно, что в моем CentOS есть 3 сетевых карты — lo (локальная петля), ens32 и ens34 — сетевые Ethernet адаптеры.

Если нужно настроить сеть для адаптера ens32, открываем на редактирование следующий конфигурационный файл:

И приводим его к следующему виду:

DEVICE=ens32 BOOTPROTO=static IPADDR=192.168.0.155 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 DNS1=192.168.0.54 DNS2=192.168.0.11 ONBOOT=yes

. а также для CentOS 8 добавим:

Основные опции

Опция Описание Возможные значения
DEVICE Имя сетевого адаптера Должно совпадать с именем в системе. В данном примере ens32
BOOTPROTO способ назначения IP-адреса static: ручное назначение IP, dhcp: автоматическое получение IP
IPADDR IP-адрес адрес, соответствующий вашей сети
NETMASK Сетевая маска должна соответствовать вашей сети
GATEWAY Шлюз по умолчанию IP-адрес сетевого шлюза
DNS1 Основной DNS-сервер IP-адрес сервера имен
DNS2 Альтернативный DNS-сервер IP-адрес сервера имен
ONBOOT Способ запуска сетевого интерфейса yes: автоматически при старте сервера, no: запускать вручную командой
NM_CONTROLLED Указываем, должен ли интерфейс управляться с помощью NetworkManager yes: управляется NetworkManager, no: не может управляться NetworkManager

Чтобы настройки применились, перезапускаем сетевую службу.

systemctl restart network

б) для CentOS 8 вводим 2 команды:

systemctl restart NetworkManager

nmcli networking off; nmcli networking on

* в большей степени, это основное отличие версий 7 и 8. Чтобы команды смогли поменять настройки, для интерфейсов необходима настройка NM_CONTROLLED=yes.

Дополнительные опции (не обязательны для работы сети)

Опция Описание Возможные значения
IPV4_FAILURE_FATAL Отключение сетевого интерфейса, если IP-адрес (v4) имеет неверную конфигурацию yes: отключать, no: не отключать
IPV6_FAILURE_FATAL Отключение сетевого интерфейса, если IP-адрес (v6) имеет неверную конфигурацию yes: отключать, no: не отключать
IPV6_AUTOCONF Разрешает или запрещает автоконфигурирование IPv6 с помощью протокола Neighbor Discovery yes: разрешить автоконфигурирование, no: запретить
IPV6INIT Говорит о возможности использовать сетевой интерфейс для адресации IPv6 yes: адресация может использоваться, no: не используется
PEERROUTES Задает приоритет настройки шлюза по умолчанию, полученного от DHCP yes: маршрут от DHCP важнее, чем назначенный вручную, no: важнее маршрут, заданный вручную
IPV6_PEERROUTES Задает приоритет настройки шлюза по умолчанию, полученного от DHCP (для IPv6)
UUID Уникальный идентификатор сетевого интерфейса. Его можно сгенерировать самостоятельно командой uuidgen Строка из 32-х символов в формате 8-4-4-4-12. Например: fca8cc84-6f21-4bac-9ccb-36f281321ba4

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

Создадим файл настройки:

# touch /etc/keepalived/keepalived.conf

Комментарии в файле настройки выделяются знаком «!»
Добавим блок global_defs:

global_defs {
  ! имя балансера
  router_id LVS_1
}

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

vrrp_instance DOVECOT {
        !Указывает на то что в каком состоянии стартует нода
        state MASTER
        !Интерфейс для виртуальных IP
        interface ens18
        !Интерфейс для обмена служебными пакетами между нодами
        lvs_sync_daemon_inteface ens18
        !Уникальное имя виртуального роутера
        virtual_router_id 102
        !Приоритет данной ноды относительно других, нода с наибольшим приоритетом переходит в состояние MASTER
        priority 150
        !Как часто происходит обновление состояния кластера
        advert_int 1
        !Аутентификация используется для синхронизации между нодами
        authentication {
                auth_type PASS
                auth_pass 12345678
        }
        !Виртуальные адреса, которые настроит keealived
        virtual_ipaddress {
                192.168.135.237/24
        }
}

Далее следует блок настройки виртуального сервера:

virtual_server 192.168.135.237 22 {
        !Частота проверок
        delay_loop 6
        !Выбираем режим балансировки, для dovecot лучше выбрать Locality-Based Least-Connection
        lb_algo lblc
        !Выбираем метод перенаправления, в нашем случае Direct Routing
        lb_kind DR
        protocol TCP
        !Описываем back-end серверы
        real_server 192.168.135.238 143 {
                !Задаем вес сервера
                weight 1
                !Настраиваем проверку на доступность
                TCP_CHECK {
                        connect_timeout 3
                        connect_port 143
                        nb_get_retry 3
                        delay_before_retry 3
                }
        }
        real_server 192.168.135.239 143 {
                weight 1
                TCP_CHECK {
                        connect_timeout 3
                        connect_port 143
                        nb_get_retry 3
                        delay_before_retry 3
                }
        }
}

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

# systemctl enable keepalived
# systemctl start keepalived

На MASTER ноде должен добавится виртуальный IP:

# ip a | grep ens18
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.135.235/24 brd 192.168.135.255 scope global ens18
    inet 192.168.135.237/24 scope global secondary ens18

Установка и настройка dnsmasq в CentOS 7

С большой долей вероятности dnsmasq у вас уже установлен. Проверить это можно следующей командой:

Если вывод такой же, значит пакет уже стоит. Если нет, то устанавливаем dnsmasq командой:

Редактируем файл конфигурации /etc/dnsmasq.conf и приводим его к очень простому виду:

Запускаем dnsmasq:

Либо перезапускаем, если он был у вас запущен:

Добавляем dnsmasq в автозагрузку:

Я редактировал конфиг, когда у меня уже был установлен и запущен dnsmasq. И он то ли завис, то ли просто затупил, но я не мог его перезагрузить или остановить с помощью systemctl. Пришлось перезагрузить сервер. После этого все нормально заработало. Клиент на windows получил сетевые настройки. Информация об этом появилась в логе /var/log/messages. Я проверил на клиенте интернет, все было в порядке, он работал.

На этом настройка завершена, шлюзом под CentOS 7 можно пользоваться.

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

Синтаксис ip по структуре напоминает синтаксис Cisco IOS. Любые опции могут быть сокращены до потери двусмысленности, например ip ro ad вместо ip route add.

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

1
2
3

ip route add defaultvia192.168.1.1

Действия с маршрутами
Кроме add также поддерживаются и другие действия:

del — удалить маршрут.
replace — заменить маршрут другим.
change — изменить параметры маршрута.
Equal Cost Multi Path

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

1
2
3
4

ip route add defaultdev eth0

ip route add defaultdev eth1

Настройка IPv6 при установке CentOS 8

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

  • Игнорировать (Ignore) — IPv6 игнорируется для этого соединения.
  • Автоматическая (Automatic) — NetworkManager использует объявление маршрутизатора (RA) для создания автоматической конфигурации без сохранения состояния.
  • Автоматически, только адреса (Automatic, addresses only) — NetworkManager использует RA для создания автоматической конфигурации без сохранения состояния, но DNS-серверы и поисковые домены игнорируются и должны настраиваться вручную.
  • Автоматический, только DHCP (Automatic, DHCP only) — NetworkManager не использует RA, но запрашивает информацию у DHCPv6 напрямую для создания конфигурации с сохранением состояния.
  • Ручная (Manual) — Параметры IPv6 настраиваются вручную для статической конфигурации.
  • Link-Local Only — link-local адрес с FE80 ::/10 префиксом назначается интерфейсу

Если вы выбрали метод, который требует ввода параметров вручную, введите сведения об IP-адресе для этого интерфейса, маске сети и шлюзе. Используйте кнопки Добавить и Удалить, чтобы добавить или удалить адреса. Введите разделенный запятыми список DNS-серверов в поле DNS-серверов и разделенный запятыми список доменов в поле «Search Domain» для любых доменов, которые вы хотите включить в поиск серверов имен. При желании введите имя для этого сетевого подключения в поле идентификатора клиента DHCP (DHCP client ID).Это имя должно быть уникальным в подсети. Когда вы назначаете значимый идентификатор клиента DHCP для соединения, это соединение легко идентифицировать при устранении неполадок в сети. Снимите флажок, если он стоит «Require IPv6 addressing for this connection to complete (Требовать адресацию IPv6 для этого соединения для завершения)», чтобы разрешить системе устанавливать это соединение в сети с поддержкой IPv4, если конфигурация IPv6 не удалась, но конфигурация IPv4 прошла успешно. Сохраняем все сетевые настройки. Теперь можно сказать, что вы произвели базовую настройку сети при установке CentOS 8, можно дальше продолжить инсталляцию.

# System config network tui в CentOS 7

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

# nmtui

Главный экран:

Допустим, мы хотим изменить IP адрес через графический интерфейс, выбираем «Изменить соединение»

Выбираем сетевое подключение, в моем случае оно одно, и нажимаем «Изменить …»

Меняем настройки, которые вы хотите изменить и нажимаем «ОК«.

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

yum install NetworkManager-tui

Configuration File

Configuring a Static IP

A static address is one that is permanently assigned to one host. It is an address that is manually configured by the administrator.

  1. Open the configuration file for your network interface.
    vi /etc/sysconfig/network-scripts/ifcfg-eth0
  2. Add the following settings to the file:
    DEVICE=enp3s0
    ONBOOT=yes
    IPADDR=192.168.1.10
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
  3. Save your changes and exit
  4. Your new settings will not apply until the network interface is restarted or brought online. If you are remotely logged into the server and modifying the network settings of the interface you are connected to, reboot the system.
  5. Restarting the network interface.
    ifdown enp0s3
    ifup enp0s3

Configuring DHCP Settings

A dynamic address is one leased from a DHCP server when a system boots or a network interface comes online. The following settings configure a network interface for DHCP.

  1. Open the configuration file for your network interface.
    vi /etc/sysconfig/network-scripts/ifcfg-
  2. Add the following settings. If a configuration already exists, modify it to look like the following:
    DEVICE=enp3s0
    ONBOOT=yes
    DHCP=yes
    
  3. Save your changes and exit
  4. Your new settings will not apply until the network interface is restarted or brought online. If you are remotely logged into the server and modifying the network settings of the interface you are connected to, reboot the system.
  5. Restarting the network interface.
    ifdown enp0s3
    ifup enp0s3

Validate Your Network Settings

You will want to ensure that your network interface has applied your new settings. You can use the IP command to output its settings.

ip a show enps3s0

The output will display basic information about the interface, such as device name, IP address, MAC address, etc. The following is an example of the output.

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:b2:73:09 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.218/24 brd 192.168.1.255 scope global dynamic enp0s3
       valid_lft 604708sec preferred_lft 604708sec
    inet6 fe80::340f:7dd6:76fc:780b/64 scope link tentative dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::18f3:7b5:6d27:2b78/64 scope link tentative dadfailed 
       valid_lft forever preferred_lft forever
    inet6 fe80::303d:1226:78e0:763e/64 scope link tentative dadfailed 
       valid_lft forever preferred_lft forever

Настройка сети при установке CentOS 8

В окне «Network & Host Name» вы увидите список ваших сетевых интерфейсов, они по умолчанию отключены. В моем примере их два. Каждый сетевой интерфейс имеет отличительное имя, в моем примере, это ens33 и ens36. Видно, что текущий статус «Disconnected», чтобы это изменить переведите тумблер с состояния «Off» на «On».

Если в вашей с локальной сети есть сервер DHCP, в моем примере на CISCO, то вы должны получить нужные настройки, как видно я поймал IP адрес 192.168.31.10/24 и DNS 192.168.31.1, 192.168.31.2. Чуть ниже в левом нижнем углу вы можете сразу задать имя вашего сервера CentOS 8. Если вас не устраивает, что CentOS 8 будет получать настройки сети по DHCP и вы хотите задать статический IP-адрес, то нажмите кнопку «Configure».

В окне свойств сетевого интерфейса найдите вкладку IPV4 Settings, обратите внимание, что тут будет поле «Method», в котором по умолчанию стоит «Automatic (DHCP)», то есть динамическое получение сетевых настроек в CentOS 8. На выбор у вас будут вот такие пункты:

  • Automatic (DHCP) — автоматическое получение всех настроек: IP, маску, DNS, Основной шлюз, маршруты
  • Automatic (DHCP) addresses only — вы получите автоматически только IP-адрес
  • Manual — ручная настройка сети CentOS 8
  • Link-Local Only — Локальные ссылки назначаются автоматически, когда компьютер не настроен на использование статического IP-адреса и не может найти DHCP-сервер. По сути, то APIPA адрес из диапазона 169.254.0.0
  • Shared to other computers — это совместное использование сетевого интерфейса. Простой пример у вас есть сервер с двумя сетевыми интерфейсами один LAN второй WAN, и есть другой сервер, где просто один сетевой интерфейс с LAN и без интернета. Вы можете выставить на первом сервере WAN в режим «Shared to other computers» и указать его в маршрутах для выхода в интернет.
  • Disabled — отключение получения настроек

Давайте я настрою статический IP-адрес на моем сетевом интерфейсе ens33. Выставляю в методе получения «Manual». В поле «Address» я нажимаю кнопку «Add», для добавления новых настроек, задаю Ip-адрес, маску в «Netmask» и основной шлюз в «Gateway». Чуть ниже я указываю свои DNS сервера, у меня это 192.168.31.1, 192.168.31.2, так же можете в поле «Search domains» указать ваше имя домена Active Directory, у меня это root.pyatilistnik.org.

Галка «Require IPv4 addressing for this connection to complete (Требовать адресацию IPv4 для этого соединения)» — Чтобы разрешить системе устанавливать это соединение в сети с поддержкой IPv6, если конфигурация IPv4 завершится неудачно, но конфигурация IPv6 будет успешной. Кнопка «Routes» позволяет вам настроить дополнительные маршруты в CentOS 8.

Нажмите кнопку «Add», чтобы добавить IP-адрес, маску сети, адрес шлюза и метрику для нового статического маршрута. Можете выбрать «Use this connection only for resources on its network», чтобы ограничить подключения только к локальной сети.

В Ubuntu/Debian/Linux Mint

В системах на основе DEB, таких как Ubuntu, Linux Mint, Elementary OS и т.д. файл конфигурации сетевой карты хранится в каталоге /etc/network/

Чтобы настроить статический IP-адрес в любых системах на основе DEB, выполните следующие действия.

Отредактируйте файл /etc/network/interfaces в любом удобном текстовом редакторе

$ sudo nano /etc/network/interfaces

Добавьте или измените следующие строки для настройки статического IP-адреса.

auto enp0s3
iface enp0s3 inet static
 address 192.168.1.105
 netmask 255.255.255.0
 gateway 192.168.1.1
 dns-nameservers 192.168.1.1

Сохраните и закройте файл

Перезапустите сетевой интерфейс:

$ sudo systemctl restart ifup@enp0s3

Или перезагрузите систему.

Теперь проверьте новый статический IP-адрес с помощью одной из следующих команд:

$ ifconfig
$ ip addr
$ ip a s enp0s3

Пример вывода последней команды

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 link/ether 08:00:27:12:f8:c1 brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.105/24 brd 192.168.1.255 scope global enp0s3
 valid_lft forever preferred_lft forever
 inet6 fe80::a00:27ff:fe12:f8c1/64 scope link
 valid_lft forever preferred_lft forever

Переменные окружения

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

Существует три типа переменных окружения:

 — локальные переменные окружения (environmental variables) — определены только для текущей сессии, будут безвозвратно стерты по ее завершении. Вывести текущие переменные окружения — команда printenv или env без параметров

 — пользовательские переменные окружения (shell variables) — определяются для конкретного пользователя и устанавливаются при входе в систему или удаленном подключении. Хранятся в файлах конфигурации  .bashrc, .bash_profile, .bash_login, .profile и других, размещенных в директории пользователя. Для просмотра используется команда set.

 — системные переменные окружения — доступны всем пользователям, загружаются при старте системы из файлов  /etc/environment, /etc/profile, /etc/profile.d/ /etc/bash.bashrc.

Конфигурационные файлы переменных окружения:

  •  .bashrc — переменные конкретного пользователя, загружается каждый раз при создании пользователем терминального сеанса
  • .bash_profile — загружается каждый раз при удаленном подключении по SSH
  • /etc/environment — файл для работы с переменными окружения на системном уровне, будут доступны всем пользователям системы, в том числе при удаленном подключении
  • /etc/bashrc — выполняется для всех локальных пользователей при создании сессии в терминале
  • /etc/profile — выполняется для всех удаленных пользователей при открытии терминала

Команды для работы с переменными окружения:

Установить шлюз по-умолчанию в CentOS 7

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

# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 149.154.71.254 0.0.0.0 UG 0 0 0 eth0

10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
149.154.70.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0
192.168.1.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0

Строка с Destination 0.0.0.0 определяет адрес шлюза. Если у вас ее нет, либо в поле Gateway установлен неверный шлюз, то можно это изменить. Устанавливаем шлюз по-умолчанию:

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

Назначить DNS сервера в Debian можно несколькими способами. Правкой файла /etc/resolv.conf и использованием утилиты resolvconf, только не путайте, это совершенно разные вещи.

Прежде чем настраивать DNS нужно узнать стоит ли пакет resolvconf или нет. Узнать можно так:

dpkg -l

Если есть такая строка в выводе, то resolvconf установлен:
ii  resolvconf         1.76.1       all            name server information handler

Если  resolvconf не установлен, то можно добавить адреса DNS сразу в файл /etc/resolv.conf, сохранить изменения и перезапустить интерфейс.

nano /etc/resolv.conf

Содержание файла:
nameserver 192.168.1.1 # тут у меня адрес шлюза/роутера

Можно добавить столько серверов, сколько необходимо, например DNS гугла:
nameserver 8.8.8.8
nameserver 8.8.4.4

Со временем система обживается, появляются новые программы изменяющие содержимое файла resolv.conf, поэтому лучше использовать утилиту resolvconf. Если утилита отсутствует, например при минимальной установке системы, то ее необходимо поставить.

apt-get install -y resolvconf

После установки файл /etc/resolv.conf заменяется ссылкой на /etc/resolvconf/run/resolv.conf. Если понадобится внести свои значения DNS, то сделать это можно через файл интерфейсов.

nano /etc/network/interfaces

Добавляем свои DNS, прописываем значения
dns-nameservers 8.8.8.8 8.8.4.4  # писать адреса через пробел

Перезапустим интерфейс:
ifdown eth0 && ifup eth0

Проверяем:
cat /etc/resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 192.168.1.1

После чего добавленные DNS адреса, пропишутся в файл resolv.conf автоматически.

Настройка DNS на сетевом интерфейсе CentOS 7

Пропишем DNS. они находятся в файле resolv.conf. Пишем.

И прописываем в нем nameserver 192.168.102.1

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

/etc/init.d/network restart

или

service network restart

Пингуем яндекс, видим, что все ок.

Если у вас два интерфейса и вам нужно поставить основной, то делается это в файле /etc/sysconfig/network

Так же тут можно поменять имя хоста.

Задаем шлюз и имя сервера

Третий способ. Утилита system-config-network-tui

поставить ее можно из репозитория.

После установки пишем system-config-network-tui

Выбираем Device configuration

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

Задаем настройки

Задаем DNS

Задаем нужные DNS сервера и имя сервера

Save & out.

Четвертый способ через консоль mc

ставим ее yum install mc -y

Запускаем командой mc. Переходим для примера в каталог /etc/sysconfig/network-scripts

выбираем ifcfg-eth0 и нажимаем F4. Выбираем 3 пункт редактировать с помощью mc.

Как в CentOS 6-7 настроить статический ip адрес-01

Как в CentOS 6-7 настроить статический ip адрес-02

F10 чтобы выйти.

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

Материал сайта pyatilistnik.org

Управление маршрутизацией с помощью iproute2

Из статьи Основные понятия сетей мы знаем, что если текущему узлу необходимо куда-либо отправить IP пакет, то сетевая подсистема ядра использует таблицу маршрутизации. Если пакет отправляется в ту же подсеть, которой принадлежит хост, то с помощью ARP определяется физический адрес хоста назначения и пакет отправляется напрямую хосту назначения. Если адрес назначения принадлежит не «локальной сети», то пакет отправляется на шлюз (читай — направляется по маршруту), который указан в таблице маршрутизации для сети, которой принадлежит хост назначения. При этом, выбирается та сеть, в которой адрес сети наиболее заполнен (читай — меньше хостов в подсети). Если для хоста назначения не найден маршрут, то пакет отправляется на «шлюз по умолчанию». Все шлюзы должны находиться в той же подсети, что и исходный хост.

Допустим, в локальной сети есть некоторый хост с адресом 192.168.1.100/24, а так же есть хост 192.168.1.1, который является шлюзом в глобальную сеть, а так же есть хост с адресом 192.168.1.2, который является связующим маршрутизатором с сетью 192.168.24.0/24 (то есть имеет еще один интерфейс  в сеть 192.168.24.0/24 и на нем включен форвардинг). Для того, чтобы хост с адресом 192.168.1.100/24 имел доступ в сеть Интернет и к локальной сети 192.168.24.0/24, необходимо внести в таблицу маршрутизации соответствующие записи, например с помощью команды ip route add:

# ip route add default via 192.168.1.1
# ip route add 192.168.24.0/24 via 192.168.1.2
# ip route show
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.100
192.168.24.0/24 via 192.168.1.2 dev eth1
default via 192.168.1.1 dev eth

Первая команда добавляет маршрут по умолчанию (default) через узел 192.168.1.1 (параметр via ). Вторая команда устанавливает маршрут на сеть 192.168.24.0/24 через узел 192.168.1.2.

Для вывода на экран содержимого таблицы маршрутизации используется команда ip route show. В данном случае в таблице маршрутизации три записи: первая о том, что сеть 192.168.1.0/24 доступна непосредственно на интерфейсе eth1 (запись добавляется автоматически), и две записи, добавленные пользователем: альтернативный маршрут и маршрут по умолчанию.

Добавление постоянного статического маршрута при инициализации сети

О настройке сети через конфигурационные файлы я рассказывал в статье  Настройка сети в Linux, диагностика и мониторинг, в сегодняшней статье я немного дополню эту информацию. С помощью файла /etc/network/interfaces есть возможность задать постоянные маршрута при поднятии интерфейса и удаление маршрута при выключении интерфейса. Это делается с помощью параметра up и down соответственно. Нижеприведенная конфигурация позволяет задать маршрут до сети 192.168.100.0/24 через шлюз 192.168.1.1:

iface eth1 inet static
      address 192.168.1.100
      netmask 255.255.255.0
      up ip route add 192.168.100.0/24 via 192.168.1.1
      down ip route del 192.168.100.0/24
      gateway 192.168.1.3

Выводы

На этом, данную заметку заканчиваю. Подведу краткие итоги. Для управления физическими интерфейсами применяется команда ip link из пакета iproute. Для настройки свойств физического подключения (скорость, технология, тип дуплекса используется команда ethtool. Для того, чтобы хост мог взаимодействовать с другими узлами подсети в рамках локального сегмента (широковещательного домена) на нем должен быть установлен IP-адрес и определена маска подсети. Для управления IP-адресами в Linux можно использовать команду ip addr. В локальной сети данный узел для определения физических адресов(MAC) по IP — адресам других узлов использует протокол ARP и локальный ARP -кэш (таблица). Управление ARP -таблицей осуществляется командой ip neigh. Для взаимодействия с удаленными подсетями на данном узле необходимо определить шлюз по умолчанию или/и альтернативные шлюзы. Все шлюзы должны находиться в той же подсети, что и исходный узел. Управление таблицей маршрутизации на узле может осуществляться командой ip route. У параметров команд пакета iproute2 есть сокращенный синтаксис, например, ip link show eth0 можно записать как ip l sh eth0.

Что почитать

man ip
man interfaces

примеры файлов

Пример файла /etc/sysconfig/network-scripts/ifcfg-eth0:

# название устройства:
DEVICE=»eth0″
# в случае, если IP получаем автоматически:
#BOOTPROTO=»dhcp»
# статический IP:
BOOTPROTO=»none»
# MAC адрес сетевой карты (в этом случае привязка к MAC адресу, а не к положению в слоте и т.п.):
HWADDR=»00:00:00:00:00:00″
NM_CONTROLLED=»yes»
# инициализировать при загрузке (иначен нужен ifup):
ONBOOT=»yes»
TYPE=»Ethernet»
UUID=»ffffffff-ffff-ffff-ffff-ffffffffffff»
IPADDR=192.168.1.3
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1

Пример файла /etc/sysconfig/network-scripts/route-eth0:

192.168.5.50/24 via 192.168.0.2 dev eth0

Пример файла /etc/resolv.conf:

nameserver=192.168.1.5
nameserver=192.168.1.7
domain=mydomain.ru

В RHEL/CentOS/Fedora/Scientific Linux

В Fedora, RHEL и его клонах, таких как CentOS, Scientific Linux, конфигурация сетевой карты (кратко NIC) хранится в каталоге /etc/sysconfig/network-scripts/. Для выполнения следующих команд используйте пользователя root. Если же вы вошли в систему как обычный пользователь, просто используйте sudo перед каждой командой.

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

# ip addr

Пример вывода

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
 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
 inet6 ::1/128 scope host 
 valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.150/24 brd 192.168.1.255 scope global enp0s3
 valid_lft forever preferred_lft forever
 inet6 fe80::a00:27ff:fe80:6319/64 scope link
 valid_lft forever preferred_lft forever

Обычно имя проводной сетевой карты начинается с буквы «е», а имя беспроводной карты начинается с буквы «w».

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

Давайте настроим статический IP-адрес для этого сетевого адаптера.

Откройте файл конфигурации сетевой карты в любом редакторе:

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

nano — текстовый редактор. Вы можете использовать любой текстовый редактор на ваш выбор, например, vi или gedit.

Добавьте IP-адрес, маску подсети, шлюз и DNS-сервер, как показано ниже.

TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="e9f9caef-cb9e-4a19-aace-767c6ee6f849"
ONBOOT="yes"
HWADDR="08:00:27:80:63:19"
IPADDR0="192.168.1.150"
PREFIX0="24"
GATEWAY0="192.168.1.1"
DNS1="192.168.1.1"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
  • BOOTPROTO = ”none” — эта строка показывает, что IP-адрес сетевой карты должен быть настроен вручную. Если вы установите значение «dhcp», то сетевая карта будет принимать IP-адрес от любого DHCP-сервера в сети;
  • IPADDR0 = ”192.168.1.150″ — в этой строке указывается IP-адрес сетевой карты. Здесь вы можете заметить число 0 (ноль) после IPADDR. Это означает, что эта карта имеет только один IP-адрес. Если вы хотите установить более одного IP-адреса (то есть виртуального IP-адреса, то вам нужно добавить строки обозначенные как IPADDR1, IPADDR2 и т.д.;
  • PREFIX0 = ”24″ — эта строка указывает маску подсети, т.е. 25.255.255.0. Здесь вы можете указать более одного PREFIX со строками PREFIX1, PREFIX2 и т.д., в соответствии с числом виртуальных IP-адресов;
  • GATEWAY0 = ”192.168.1.1″ — это адрес шлюза NIC;
  • DNS1 = ”192.168.1.1″ — адрес сервера имен.

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

# systemctl restart network

Или перезагружаем систему.

Проверим правильность настройки сетевых интерфейсов:

# ip addr

Или можно проверить адрес конкретной сетевой карты, как показано ниже.

# ip a s enp0s3

Пример вывода последней команды

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.150/24 brd 192.168.1.255 scope global enp0s3
 valid_lft forever preferred_lft forever
 inet6 fe80::a00:27ff:fe80:6319/64 scope link
 valid_lft forever preferred_lft forever

Кроме того, вы можете использовать команду nmtui для настройки IP-адреса.

Введите IP-адрес, маску сети, шлюз, DNS и т.д.

Нажмите OK, чтобы сохранить изменения, и перезапустите сетевую службу или перезагрузите систему, чтобы изменения вступили в силу.

Как изменить hostname в CentOS

По-умолчанию, во время установки CentOS ставит имя хоста localhost.localdomain. Если вы его не поменяли, то можно это сделать позже. Для начала давайте проверим, какое имя хоста у вас установлено. Делается это с помощью команды в консоли hostname, либо с помощью uname:

Для того, чтобы изменить имя хоста в CentOS, необходимо отредактировать файл /etc/hostname. Проверим его содержимое:

Отредактируем этот файл, чтобы изменить hostname:

Сохраняем файл и проверяем:

Есть готовая команда, которая сразу устанавливает необходимое имя сервера:

Все в порядке, мы изменили имя хоста на centos.localhost

Понравилась статья? Поделиться с друзьями:
Быть в курсе нового
Добавить комментарий

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