Настройка ospf centos 8

Обновлено: 07.07.2024

Что мы научимся делать

  1. Разберем способы позволяющие вам настроить сеть в CentOS 8
  2. Научимся задавать статический IP-адрес в CentOS 8
  3. Настраивать DNS и основной шлюз в CentOS 8
  4. Получать IP-адрес по DHCP, автоматически в CentOS 8
  5. Разберем утилиты Network Manager, System config network tui, Nmcli
  6. Находить и дублировать сетевую конфигурацию сети
  7. Как создать конфигурацию виртуального интерфейса
  8. Разберем траблшутинг сети, отсутствие сетевых карт, недоступен шлюз. Разберем использование утилит ping, traceroute, dig
  9. Покажу как производится настройка VLAN в CentOS 8

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

Подобный методом мы рассматривали, когда во время установки задавали статический Ip адрес CentOS 7, кто не помнит может посмотреть по ссылке. Данный способ хорош тем, что если вы инсталлируете новый сервер, можете все сделать из красивого, графического интерфейса. Находясь на окне "Installation Summary" вам необходимо выбрать пункт "Network & Host Name".

В окне "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 - отключение получения настроек

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

Настройка 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, можно дальше продолжить инсталляцию.

Настройка сети CentOS 8 через конфигурационные файлы

Первый метод мы с вами разобрали, он подходит всем, кто делает установку системы сам. Теперь ситуация, когда вам передали уже готовую CentOS 8, пусть в установке Minimal, это стандартный нормальный вариант использования CentOS 8, в качестве серверной ОС. Нет графики, нет кучи компонентов, меньше фронт атаки. Подключаемся к вашему терминалу. Первое, что вам необходимо сделать, это посмотреть список и названия всех ваших сетевых интерфейсов, для этого есть команда:

Как видим у меня два сетевых интерфейса ens33 и ens36. У меня почему, то у интерфейса ens33 нет IPv4 адреса, у второго я получил 192.168.253.145, это мой интернет шнурок.

Если у вас один интерфейс и он не получил ни какого IP-адреса, то логично что вы поставить IFCONFIG не сможете, поэтому сразу переходите к редактированию конфигурационных файлов и настройке статического или динамического IP

Просмотр всех сетевых карт entos 8

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

Но в случае с CentOS 8 Minimal у вас выскочит ошибка "Command not found" или в русском варианте "ifconfig команда не найдена". Нам ее нужно установить

ifconfig command not found

Установка IFCONFIG в CentOS 8

Давайте выясним, в каком пакете у нас идет утилита IFCONFIG, для этого вам необходимо выполнить команду:

На выходе я получил "Basic networking tools (BaseOS)"

Установка ifconfig centos 8

Установим данный пакет, пишем команду:

install ifcfg on centos 8

Вас спросят хотите ли вы установить данный пакет net-tools, нажмите "Y". Видим, что все успешно установилось.

Пробуем теперь запустить IFCONFIG. Как видим в таком варианте считывание информации, о настройках сети CentOS 8 куда приятнее.

утилита ifconfig

Давайте теперь я отредактирую сетевые настройки для интерфейса ens33 и задам ему:

  • IP - 192.168.31.31
  • Маску - 255.255.255.0
  • Шлюз - 192.168.31.1
  • DNS - 192.168.31.1, 192.168.31.2
  • Автоматическое включение при старте CentOS 8

В операционных системах CentOS настройки сетевых интерфейсах лежат по пути /etc/sysconfig/network-scripts/. Давайте посмотрим содержимое Для этого введите:

Вы увидите конфигурационные файлы ваших сетевых интерфейсов, в моем случае, это ens33 и ens36

Список конфигурационных файлов утещы 8

Чтобы настроить сеть на интерфейсах CentOS 8, вам необходимо отредактировать нужный конфигурационный файл. Для этого я воспользуюсь встроенным редактором vi. Пишем команду:

Чтобы начать редактировать файл нажмите клавишу "INSERT"

Настройка статического IP centos 8

Далее чтобы задать статический IP-адрес приведите настройки вот к такому виду:

Чтобы сохранить настройки нажмите ESC, потом введите :wq если нужно выйти без сохранения введите :qa!

Сохранение сетевых настроек centos 8

Чтобы получать динамический IP-адрес по DHCP, выставите в опции BOOTPROTO=dhcp и удалите пункты DNS, IPADDR, PREFIX, GATEWAY

Получение ip по dhcp в Centos 8

осталось теперь поднять наш сетевой интерфейс для этого есть несколько методов, самый простой использование ifup введите:

Как видим, у меня сетевой интерфейс стал в состояние подключено и я вижу через ifconfig его ip адрес.

Поднимаем интерфейс в centos 8

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

ping в centos 8

Другие методы перезапустить сеть CentOS 8

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

В итоге я вижу успешный перезапуск сети в CentOS 8.

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

Снова потушу сетевой интерфейс командой:

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

nmcli перезапуск сети в centos 8

Как настроить DNS в CentOS 8

Начиная с CentOS 6, основные настройки DNS стали прописываться в файлах /etc/sysconfig/network-scripts/, но в CentOS есть специальный файл куда попадают настройки из конфига интерфейса, называется он resolv.conf. Честно не знаю, почему так сделали. Resolv.conf - это имя компьютерного файла, используемого в различных операционных системах для настройки преобразователя системы доменных имен (DNS). Файл представляет собой простой текстовый файл, который обычно создается сетевым администратором или приложениями, которые управляют задачами конфигурации системы. Программа resolvconf - это одна из таких программ на FreeBSD или других Unix- машинах, которая управляет файлом resolv.conf.

В большинстве Unix-подобных операционных систем и других, в которых реализована библиотека распознавателя BIND Domain Name System (DNS), файл конфигурации resolv.conf содержит информацию, которая определяет рабочие параметры распознавателя DNS. DNS-распознаватель позволяет приложениям, работающим в операционной системе, преобразовывать понятные человеку доменные имена в числовые IP-адреса, необходимые для доступа к ресурсам в локальной сети или в Интернете. Процесс определения IP-адресов по доменным именам называется разрешением. В системных дистрибутивах Linux /etc/resolv.conf есть символическая ссылка на /run/systemd/resolve/stub-resolv.conf.

Хочу отметить, что если вы соберетесь редактировать отдельно файл Resolv.conf и вносить альтернативные DNS сервера отличные от тех, что прописаны на сетевых интерфейсах, то после перезагрузки сервера они снова будут затерты на те, что прописаны в конфигурационных файлах сетевых интерфейсов. Давайте я для примера добавлю в это файл сервера Google 8.8.8.8 и 8.8.4.4.

Редактирование resolv.conf

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

Просмотр файла resolf.cfg

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

Давайте я покажу вам какой конфигурационный файл отвечает за имя хоста (Hostname). Если вы или не вы во время установки CENTOS 8 не удосужились задать правильное DNS имя вашего сервера, то у вас оно по умолчанию будет localhost.localdomain. Посмотреть, это можно командой uname или hostname.

В моем примере, это CentOS 8

поменять имя centos 8

Предположим, что я хочу сделать имя SuperCentOS01, для этого отредактируйте конфигурационный файл etc/hostname. Пишем команду;

Меняем имя в centos 8

либо вы можете воспользоваться и вот такой командой, чтобы задать нужное имя хоста в CentOS 8:

Настройка шлюза по-умолчанию в CentOS 8

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

Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.253.2 0.0.0.0 UG 0 0 0 ens36
192.168.31.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
192.168.253.0 0.0.0.0 255.255.255.0 U 0 0 0 ens36

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

Если хотите поменять его, то для этого вы можете ввести команду:

Если нужно удалить шлюз или маршрут, то для этого есть ключ del.

Настройка сети CentOS 8 через Nmcli

nmcli - это интерфейс командной строки NetworkManager, он идет по умолчанию в CentOS 8, это новое и более удобное средство по настройке сети в centOS 8. Как я показывал выше вы можете посмотреть список ваших интерфейсов командой ip addr show, у меня это ens33 и ens36. Чтобы получить более подробную информацию о сетевом интерфейсе ens33, вы можете выполнить следующую команду:

На выходе ужен больше полезных данныж, тут видно и статус подключения, Ip-адрес, шлюз, DNS, маску, MTU:

GENERAL.DEVICE: ens33
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:E1:D0:26
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ens33
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.31.31/24
IP4.GATEWAY: --
IP4.ROUTE[1]: dst = 192.168.31.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]: 192.168.31.1
IP4.DNS[2]: 192.168.31.2
IP6.ADDRESS[1]: fe80::ae8e:ebde:2fa6:dea0/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = . mt = 100
IP6.ROUTE[2]: dst = ff00::/8, nh = . mt = 256, table=255

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

  • Ip - поменяем на 192.168.31.10/24
  • Шлюзом сделаю 192.168.31.131
  • DNS 192.168.31.231

Первой командой мы зададим или поменяем текущий IP-адрес.

далее зададим шлюз:

Теперь нужно перезапустить ваш сетевой интерфейс или сеть centOS 8. Сделать, это можно командой:

Эти изменения также будут сохранены в файле /etc/ sysconfig/network-scripts/ens33.

Добавить дополнительный DNS:

Как видите утилита nmcli позволяет очень быстро задать статический IP или произвести полную настройку сети в CentOS 8.

Инструкция применима к CentOS версий 7 и 8, CentOS mini (минимальная сборка), Fedora.

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

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

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

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
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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.

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

Настройка сети из консоли (командами)

Настройка из консоли будет работать только до перезагрузки системы. Ее удобно применять для временного конфигурирования или проведения тестов.

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

ip a add 192.168.0.156/24 dev ens32

* в данном примере к сетевому интерфейсу ens32 будет добавлен IP 192.168.0.156.

Изменение IP-адреса:

ip a change 192.168.0.157/24 dev ens32

* однако, по факту, команда отработает также, как add.

Удаление адреса:

ip a del 192.168.163.157/24 dev ens32

Добавление маршрута по умолчанию:

ip r add default via 192.168.0.1

Добавление статического маршрута:

ip r add 192.168.1.0/24 via 192.168.0.18

Удаление маршрутов:

ip r del default via 192.168.160.1

ip r del 192.168.1.0/24 via 192.168.0.18

Команда ifconfig

В новых версиях CentOS утилита ifconfig не установлена и при вводе одноименной команды можно увидеть ошибку «Команда не найдена». Необходимо либо воспользоваться командой ip (ip address), либо установить утилиту ifconfig.

yum install ifconfig

yum install net-tools

Настройка WiFi

Принцип настройки беспроводной сети на CentOS не сильно отличается от проводной.

Создаем конфигурационный файл со следующим содержимым:

ESSID="dmoskwifi"
MODE=Managed
KEY_MGMT=WPA-PSK
TYPE=Wireless
BOOTPROTO=none
NAME=dmoskwifi
ONBOOT=yes
IPADDR=192.168.1.50
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DNS2=77.88.8.8

* где dmoskwifi — название WiFi сети (SSID).

Несколько IP на одном сетевом адаптере

В зависимости от версии операционной системы, дополнительные адреса добавляются посредством:

  1. Псевдонимов — создание нового виртуального интерфейса с названием <имя интерфейса>:<номер>.
  2. Добавлением IPADDRx и NETMASKx в конфигурационном файле.

Рассмотрим оба варианта подробнее.

Создание псевдонимов (более ранние версии CentOS 7 и ниже)

Создаем новый конфигурационный файл для сетевого интерфейса:

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

* где ens32 — имя физического интерфейса, :1 — виртуальный номер.

Перезапускаем сетевые службы.

Настройка конфигурационного файла (поздние версии CentOS 7 и выше)

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

DEVICE=ens32
BOOTPROTO=static
IPADDR=192.168.0.155
NETMASK=255.255.255.0
IPADDR1=192.168.0.156
NETMASK1=255.255.255.0
IPADDR2=192.168.0.157
NETMASK2=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.0.54
DNS2=192.168.0.11
ONBOOT=yes

* где ens32 — имя физического интерфейса, дополнительные адреса задаются с помощью опций IPADDR1, IPADDR2, NETMASK1, NETMASK2.

Перезапускаем сетевые службы.

Для автоматического получения IP-адреса от сервера DHCP мы должны задать следующее значение для опции BOOTPROTO в конфигурационном файле:

* в наших примерах выше данный параметр имеет значение static.

Переопределение DNS с помощью dhclient.conf

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

interface "enp0s3"
supersede domain-name-servers 8.8.8.8, 8.8.4.4;
>

* где enp0s3 — имя сетевого интерфейса, который будет получать адрес от сервера DHCP. 8.8.8.8, 8.8.4.4 — адреса, которые будут настоены на интерфейсе, независимо от того, какие предложит сервер DHCP.

Или мы можем использовать адреса от DHCP, но сделать приоритетными свои:

interface "enp0s3"
prepend domain-name-servers 127.0.0.1;
>

* в данном примере, мы зададим в качестве основного сервера DNS — 127.0.0.1.

Чтобы данный метод сработал в CentOS 8, необходимо открыть файл:

В раздел [main] добавить:

Переопределение DNS в NetworkManager (альтернативный способ)

Метод, описанный выше по переопределению DNS не подходит для NetworkManager без изменения настройки dhcp, так как адреса будут получены и обработаны с помощью встроенных методов. Выше, предоставлено решение в виде настройки dhcp=dhclient, однако мы рассмотрим альтернативный способ, на случай, если кому-то это пригодится.

Я так понимаю нужно арендовать сеть у RIPN (или как он там), поставить роутер с поддержкой OSPF и BGP, и анонсировать свою сеть в сеть провайдеров, так или нет?

Ликвидируйте безграмотность, недавно послушал 3-х часовую лекцию про OSPF, пытаюсь осмыслить.

Как раз описания такой сети там не раскрывалось, было лишь упоминание, что именно так это и делается, исходя из возможностей OSPF

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

У менять есть устройство «А». На этом устройстве Linux и настроен протокол BGP и OSPF для пакета Quagga. По BGP я получаю несколько подсетей и далее в протоколе OSPF делаю редистрибуцию из BGP с route-map, в котором добавляю метку «match tag 33». Номер метки может быть произвольным. Далее я передаю эти маршруты на другое устройство по OSPF, пусть это будет устройство «B». На нем, если посмотреть маршруты в протоколе OSPF я вижу, что они пришли ко мне с меткой «tag 33». Также на устройстве «B» запущен протокол BGP и я хочу передавать только маршруты с метками. Для этого я при редистрибуции указываю «route-map», в котором ловлю заданные метки с помощью команды «match tag 33».

Кто-нибудь пробовал настраивать что-то подобное, может быть вы сможете поделиться своими мыслями, буду безмерно благодарен. Версия zebra version 1.2.4.

исходные данные gns3 (L3SW - с3725 модуль NM-16ESV - 2 два порта L3, плюс GT96100-FE 10 портов L2SW) Соединил два коммутатора портами c возможность L3, настроил ospf На L2 портах настроил vlanы , проанонсировал подсети этих vlan. И впал в ступор на предмет того как передать информацию о vlan по этому соединению, так чтобы на порту с тем же vlan на втором коммутаторе было установлено соединение. Информации не нашел, скорее всего не в ту сторону копаю. Кто может подсказать правильный путь.

Схема сети: роутер подключенный к интернет -> kvm (2 сетевые платы) -> гостевая ОС (centos7) -> остальные гостевые ос + рабочие станции.

Конфигурация KVM и гостевой системы после всех манипуляций здесь

Роутер вещает в 192.168.0.0/24

на KVM один интерфейс 192.168.0.2

второй интерфейс 192.168.1.1

маршрутизатор 2 сетевых 192.168.0.254 192.168.1.254

настраиваю Quagga по гайдам но проблема что отказывается работать..

firewalld и Selinux отключаю во время настройки

Листинги zebra.conf и ospfd.conf

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

Настройки сети на квм такие

с маршрутизатора пинги идут в любую сеть без проблем, до любого интерфейса маршрутизатора пинг доходит но из одной сети в другую пинг не проходит. в какую сторону копать?

Здравствуйте.
При откючении интерфейса, который смотрит в локалку (допустим выпал патчкорд из селевухи) перестает анонситься сеть, которая на этом интрфейсе.
Как сделать, что бы не пропарал анонс данной сети?

router ospf
ospf router-id 192.168.1.1
network 10.10.10.1/30 area 0.0.0.0
network 192.168.1.0/24 area 0.0.0.0
!

ifconfig
enp1s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255

Имею вот такой конфиг (конфиг под сполерем), все работает, но не могу добавить маршрут в подсеть 192.168.22.0/24 и передать его всем остальным. Делаю через redistribute connected route-map, но что то видать не понимаю и делаю не так. Помогите пожалуйста :)

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

1. Подскажите можно ли как-то в quagga(ospf) указать что бы маршруты добавлялись не только в таблицу main (Linux), а еще в какую-нибудь другую?

2. При настройке через vty ospfd.conf имеет все интерфейсы(пустые) даже те которые не используются. Можно ли как-то сохранять только те у которых есть конфигурация?

Добрый день! Начальством поставлена задача о замене помирающего сервера на новый. За просрок по задаче уже должен 29 литров пива. ;D Все настроенно, но есть одна проблема с OSPF и nat-правилами, а именно:

При запуске скрипта с nat-правилами на сервере 192.168.0.22 не работает OSPF. В логах пишет следующее:

2017/03/29 16:36:32 OSPF: Link State Update: Neighbor[192.168.0.27] state Init is less than Exchange 2017/03/29 16:36:32 OSPF: Link State Update: Neighbor[192.168.0.21] state Init is less than Exchange 2017/03/29 16:37:02 OSPF: Link State Acknowledgment: Neighbor[192.168.0.27] state Init is less than Exchange 2017/03/29 16:37:02 OSPF: Link State Acknowledgment: Neighbor[192.168.0.21] state Init is less than Exchange

Конфиг OSPF: hostname pl-route

enable password quagga

ospf router-id 192.168.0.22

network 192.168.0.0/24 area 0

log file /var/log/quagga/ospfd.log

enable password quagga

log file /var/log/quagga/zebra.log

Скрипт с nat-правилами:

iptables -t nat -A POSTROUTING -s 0/0 -d 192.168.0.0/24 -j RETURN

iptables -t nat -A PREROUTING -s 0/0 -d 188.94.xx.xx -j NETMAP --to 192.168.0.0/24

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -j SNAT --to-source 188.94.xx.xx

Если скрипт с nat убрать при загрузке ОС, то OSPF начинает работать корректно. Как заставить OSPF работать с nat-правилами.

Ситуация простая, есть два роутера, на одном(M1) два канала в интернет, у второго(M2) один канал. С M2 на M1 прокинуто два L2tp/Ipsec соединения(по одному на каждый интернет канал). Настроил OSPF, для основного канала(C1) cost: 10, для резервного(C2) cost: 40. Одна зона: backbone.

И если одновременно работают оба канала, то OSPF странно выстраивает маршруты. От M1 маршрут идет по C1. От M2 маршрут идет по C2. Соответственно каналы работают одновременно в полудюплексном режиме и у конечных пользователей начинают возникать непонятные проблемы(вроде зависаний сессий в 1с и шипений в телефонии). Если один из каналов отключить, то все работает как требуется, но теряется изначальная задумка внедрение OSPF: автоматическое переключение каналов. Что можно подкрутить что-бы соединения не разрывались на все доступные каналы?

Нужно поднять OSPF поверх OpenVPN поднятом между двумя Linux серверами. Основная проблема здесь в том, что один из серверов находится за NAT'ом. В чем спрашивается проблема то? Если использовать топологию p2m, то клиента из-за NAT'а спокойно подключится к серверу но в этом случае на стороне сервера будет недостаточно прописать маршруты через tun/tap интерфейс OpenVPN, так-как OpenVPN предполагает, что к нему могут подключится несколько клиентов и за каждым клиентом могут находится разные подсети, а интерфейс в системе один, для решения этой проблемы OpenVPN использует правила внутренней маршрутизации, параметр --iroute. С помощью iroute прописываются маршруты на конкретного клиента и это замечательно работает, но мне же нужен OSPF, я не хочу руками прописывать iroute, маршруты на клиента не фиксированы у меня.

Собственно p2m режим мне и не особо нужен, я могу для разных клиентов поднять отдельный OpenVPN сервер, но тут тогда встаёт вопрос как соединить два OpenVPN сервера точка-точка, если одна из сторон за NAT'ом?

Есть у кого идеи как поднять OSPF через OpenVPN, когда одна сторона за NAT'ом или как победить/обойти --iroute?

День добрый! Настраиваю OSPF поверх OpenVPN.
Основной шлюз на FreeBSD;
есть два провайдера, на каждом поднято по OpenVPN'у;
настроена Quagga, конфиг

hostname Server
password zebra
enable password zebra
log file /var/log/ospfd.log
!
!
router ospf
ospf router-id 192.168.77.1
network 10.0.0.0/30 area 0.0.0.0
network 10.10.0.0/30 area 0.0.0.0
!
!
interface tun1
ip ospf cost 10
!
!
interface tun0
ip ospf cost 20
!
!
!
ip prefix-list Local_Network seq 10 permit 192.168.77.0/24
ip prefix-list Local_Network seq 100 deny any
!
route-map Local_Network permit 10
match ip address prefix-list Local_Network
!
line vty
!

На CentOS тоже два провайдера и два OpenVPN клиента;
Настроена Quagga, конфиг

hostname gate
password zebra
log file /var/log/quagga/ospfd.log
!
interface tun0
ip ospf cost 20
!
interface tun1
ip ospf cost 10
!
router ospf
ospf router-id 192.168.76.1
redistribute connected route-map Local_Network
network 10.0.0.0/30 area 0.0.0.0
network 10.10.0.0/30 area 0.0.0.0
!
ip prefix-list Local_Network seq 10 permit 192.168.76.0/24
ip prefix-list Local_Network seq 100 deny any
!
route-map Local_Network permit 10
match ip address prefix-list Local_Network
!
line vty
!

OSPF: ospf_nexthop_calculation(): could not determine nexthop for link

Небольшой провайдер. Имею на обслуживании несколько серверов, которые обмениваются маршрутами (клиентами) по OSPF.

Поставили новый сервер. особенность — подключение клиентов через SuperVLAN (если я не ошибаюсь).

Вот данные сервера:

Интерфейс в сторону OSPF-соседей:

Интерфейсы которые смотрят в сторону клиентов:

Каждому клиенту свой VLAN. Клиент по DHCP получает или серую IP (с последующим NAT) з пула 10.10.0.0/16 или белую с пула 195.55.85.120/29.

Уже упростил конфиг Quagga до минимума , но сеть 195.55.85.120/29 или клиент 195.55.85.122 не анонсируются:

Хотя клиент есть:

В системе маршрут на него есть:

Но в OSPF маршрута на 195.55.85.122 нету. Ни на сервере не вижу в OSPF ни на соседях.

Проверяю наличие маршрута на соседях через show ip ospf routes. IP сервера вижу:

IP клиента 195.55.85.122 не вижу нигде.

Извините за много букв. Что еще нужно показать для прояснения ситуации?

Спасибо! Выручайте, (второй) третий день не ем, не сплю. ;)

С Quagga раньше не работал.

Добрый день, есть такая ситуация.

Три НАТа, на базе Debian, стоит квага, настраиваю OSPF.

У каждого ната есть ip из 172.16.0.xxx. Что бы Наты могли ходить в инет, понятно что они СНАТяться.

Все бы ок, но вот беда.

Когда поднимаю ОСПФ на данном интерфейсе, то сервера не могут увидеть друг друга, tcpdump-ом посмотрел, и вижу что hello пакеты идут от IPшников на которые я делаю СНАТ. Стоит мне поднять Алиас, из другой сети (который не снатится) все друг друга видят и все ок.

Собственно вопрос, каким образом можно добавить исключение в iptables что бы эти правила не распространялись на OSPF пакеты?

пробовал:
-d 224.0.0.0/4 -j ACCEPT
-d 224.0.0.5 -j ACCEPT
-d 224.0.0.6 -j ACCEPT
-p ospf -j ACCEPT

ни одно из них не помогло, пакеты все равно приходят от ip на который делаю снат. :(

На квагге пытаюсь настроить передачу маршрутов из OSPF в RIP (для сервера оффтопика).

Есть R1, у которого 2 интерфейса: eth0 в сети 192.168.9.234/24 и eth1 в другой подсети, не важно в какой.

У маршрутизатора R2 есть 2 интерфейса. Один смотрит в ту же сеть 192.168.9.0/24, другой в другие подсети, одна из них допустим 192.168.50.0/24.

В сети 192.168.9.0/24 работает OSPF и R1 получает от другого маршрутизатора R2 192.168.9.1 скажем маршрут в сеть 192.168.50.0/24 через оный (192.168.9.1).

Т.е. на R1 есть маршрут - 192.168.50.0/24 via 192.168.9.1.

С R1 хочу по RIP рассказать оффтопику (R3) про данный маршрут. Сам оффтопик тоже подключен к сети 192.168.9.0/24.

На R3 появляются маршруты в сети, которые были объявлены в OSPF. Только маршрут через R1 192.186.9.234.

Т.е. 192.168.50.0/24 via 192.168.9.234.

И так, я обноружил такую проблему: если от основной ospf-шары отключить дополнительную, то демон ospf6d в quagga почему-то вылетает. При попытке подключиться телнетом выдаёт:

Как я понял, это баг.

Столкнулся с оной. В инете статьи по Quagga и Zebra. Тут же на ЛОРе натыкался на тред, в котором говорилось, что первое - УГ, а второе застряло в пещере 5 лет назад. Чем нонче делается динамическая маршрутизация на онтопике?

Ebgp-multihop(больница) — точка обмена(netmap) (больница) - сеть медработников(ipip) - сервер
(Больница) - интернет - сервер

С рс больницы на сервер через ebgp-multihop идет fullview инта и сети медработников. Там сеть медработников идет через mr0 интернет через internet0(на точке обмена), сервер выставил next-hop на эту точку. Задача:
Сделать так, чтобы сеть медработников шла через mr0 а интернет через internet0.

date

29.10.2020

directory

CentOS, Linux

comments

комментария 3

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

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

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

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

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

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

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

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

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

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

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

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

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

ip a - centos

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

То есть мы убрали все настройки, связанные с IP-адресами и маской, а так же поменяли способ назначения IP-адреcа на dhcp (BOOTPROTO=”dhcp”). После всех изменений, не забываем выполнять перезагрузку network.

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

На время написания статьи активного использования ipv6 в России нет, да и зачастую если таковая возможность имеется, администраторы предпочитают протокол ipv4. Поэтому если вы все же не используете данный протокол, его нужно отключить на сервере. Если вы точно уверены, что ни один из сервисов не настроен под работу с ipv6, можете сразу перейти к настройке сетевого интерфейса, если же нет, то начните с проверки. Нам нужно проверить, какие сервисы используют ipv6 и отключить данный протокол в конфигурации сервиса. Запустим команду:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

IPADDR1 — первый IP-адрес

IPADDR2 — второй IP-адрес

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

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

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

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

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

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

Настройка VLAN (802.1Q) в CentOS

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

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

Если у вас на сервере несколько сетевых интерфейсов, для них можно указать разные IP-адреса. Разберемся как это сделать. Если у вас на сервере более одного сетевого интерфейса, команда “ip a” должна отобразить эту информацию:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

systemctl status NetworkManager.service

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

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

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

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

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

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

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

Нам доступно редактирование имени, IP-адреса, Шлюза, DNS-серверов. Так же в интерактивном меню NM, мы можем изменить способ назначения IP адреса, на DHCP:

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

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

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

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

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

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

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

Читайте также: