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

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

Сетевые настройки на сервере CentOS

Первый раз с сетевыми настройками сервера CentOS 7 или 8 мы сталкиваемся, когда производим установку. На экране первоначальной настройки есть отдельный пункт, касающийся настройки сетевых интерфейсов:

Зайдя в него мы видим список подключенных сетевых карт. Каждую из них можно включить соответствующим ползунком (пункт 1 на картинке). При активировании интерфейса он автоматически получает настройки по dhcp. Результат работы dhcp можно посмотреть тут же. Если вас не устраивают эти настройки, их можно отредактировать, нажав configure (пункт 3 на картинке). Здесь же можно задать hostname (пункт 2 на картинке):

Открыв окно дополнительный настроек Ehernet, вы сможете изменить имя сетевого интерфейса, указать настройки IP (пункт 1 на картинке), выбрать ручные настройки (пункт 2 на картинке), назначить ip адрес (пункт 3 на картинке), установить dns сервер (пункт 4 на картинке) и сохранить сетевые настройки (пункт 5 на картинке):

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

Теперь рассмотрим другую ситуацию. Сервер, а соответственно и конфигурацию сети, производили не вы, а теперь вам надо ее посмотреть либо изменить. В вашем распоряжении консоль сервера, в ней и будем работать. Если у вас установка производилась с дистрибутива minimal, то при попытке посмотреть сетевые настройки с помощью команды ifconfig в консоли вы увидите следующее:

или в русской версии:

Для работы с ifconfig и прочими сетевыми утилитами необходимо установить пакет net-tools. Сделаем это:

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

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

Мы увидели конфигурацию сети, теперь давайте ее отредактируем. Допустим, нам нужно сменить ip адрес. Для этого идем в директорию /etc/sysconfig/network-scripts и открываем на редактирование файл ifcfg-eth0 или ifcfg-ens18. Название файла будет зависеть от имени сетевого интерфейса. В Centos 8 по-умолчанию убрали поддержку настройки сети через конфигурационные скрипты, поэтому установите отдельно пакет network-scripts.

По настройкам из этого файла мы получаем ip адрес по dhcp. Чтобы вручную прописать статический ip, приводим файл к следующему содержанию:

Мы изменили параметры:

BOOTPROTO с dhcp на none
DNS1 указали dns сервер
IPADDR0 настроили статический ip адрес
PREFIX0 указали маску подсети
GATEWAY0 настроили шлюз по-умолчанию

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

Проверяем, применилась ли новая конфигурация сети:

Все в порядке, новые настройки сетевого интерфейса установлены.

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

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

Файлы конфигурации сети вашего сервера хранятся в каталоге /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

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

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

ONBOOT=”yes”

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

Restarting network (via systemctl):

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

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

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

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

Сеть «по умолчанию»

Когда libvirt уже используется, и libvirtd демон запущен, сеть по умолчанию создана. Мы можем проверить, что эта сеть существует, используя утилита, которая в большинстве дистрибутивов Linux обычно поставляется с упаковка. Чтобы вызвать утилиту, чтобы она отображала все доступные виртуальные сети, мы должны включить подкоманда:

$ sudo virsh net-list --all. 

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

Имя Состояние Автостарт Постоянный. по умолчанию активен да да. 

Чтобы получить подробную информацию о сети и, в конечном итоге, изменить ее, мы можем вызвать virsh с вместо этого подкоманда, указав имя сети в качестве аргумента:

$ sudo virsh net-edit default. 

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

дефолт168f6909-715c-4333-a34b-f74584d26328

Как мы видим, сеть по умолчанию основана на использовании виртуальный мост и использует NAT основанная на подключении возможность подключения виртуальных машин, которые являются частью сети, к внешнему миру. Мы можем проверить, что мост существует, используя команда:

$ ip link показать тип моста. 

В нашем случае приведенная выше команда возвращает следующий вывод:

5: virbr0:  mtu 1500 qdisc noqueue state Режим DOWN по умолчанию группа по умолчанию qlen 1000 link / ether 52: 54: 00: 48: 3f: 0c brd ff: ff: ff: ff: ff: ff. 

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

$ ip ссылка показывает мастер virbr0. 

Результат выполнения команды:

6: virbr0-nic:  mtu 1500 qdisc fq_codel master состояние virbr0 DOWN mode DEFAULT группа по умолчанию qlen 1000 link / ether 52: 54: 00: 48: 3f: 0c brd ff: ff: ff: ff: ff: ff. 

Как мы видим, в настоящее время к мосту подключен только один интерфейс, . В interface — это виртуальный интерфейс Ethernet: он создается и добавляется к мосту автоматически, и его цель — просто обеспечить стабильную работу. MAC адрес (в данном случае 52: 54: 00: 48: 3f: 0c) моста.

Другие виртуальные интерфейсы будут добавлены к мосту при создании и запуске виртуальных машин. Для этого руководства я создал и запустил виртуальную машину Debian (Buster); если мы повторно запустим команду, которую мы использовали выше, чтобы отобразить подчиненные интерфейсы моста, мы увидим, что был добавлен новый, :

$ ip ссылка показывает мастер virbr0. 6: virbr0-nic:  mtu 1500 qdisc fq_codel master состояние virbr0 DOWN mode DEFAULT группа по умолчанию qlen 1000 link / ether 52: 54: 00: 48: 3f: 0c brd ff: ff: ff: ff: ff: ff. 7: vnet0:  mtu 1500 qdisc fq_codel master virbr0 state UNKNOWN mode DEFAULT group default qlen 1000 link / ether fe: 54: 00: e2: fe: 7b brd ff: ff: ff: ff: ff: ff. 

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

Протокол VRRP

VRRP — это аббревиатура Virtual Redundant Router Protocol. Группа физических маршрутизаторов объединяется в один виртуальный. Каждый участник группы может находиться в 3 состояниях:

  • неопределенном (initialize)
  • основном (master)
  • резервном (backup)

У всех участников группы в настройках присутствует 1 или несколько виртуальных адресов. У основного эти адреса присвоены сетевой карте, а у других — просто ждут своего часа.

Прежде всего надо сказать, что VRRP работает поверх IP, а не напрямую поверх канального уровня. Если быть точным, он использует групповой (multicast) адрес 224.0.0.18. Поскольку multicast по умолчанию не маршрутизируется, взаимодействие возможно только в пределах одной физической сети.

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

Надо сразу сказать, что основной (служебный) адрес совсем не должен быть из одной сети с виртуальными. Если у вас недостаточно публичных адресов для тех сетевых карт, которые смотрят в интернет, вы вполне можете использовать частные адреса из RFC 1918 в качестве служебных. Ну, если настройки вашего провайдера этого не запрещают.

У каждой группы маршрутизаторов есть VRID — Virtual Router Identifier. Это просто число в диапазоне от 1 до 255. С каждой такой группой может быть ассоциирован 1 или несколько виртуальных адресов. На уровне протокола список адресов передается, но только для отладочных целей. Процесс VRRP их никак не использует, тем более что передаются они без маски подсети, так что за идентичностью настроек виртуальных адресов надо следить самому.

Группы с разным VRID друг с другом не взаимодействуют, поэтому в одной физической сети может быть любое количество независимых групп резервирования, главное — настроить.

При загрузке или первичной настройке VRRP участники группы оказываются в неопределенном состоянии (initialize) и выбирают, кому быть основным, а кому резервным. В настройках VRRP можно указать приоритет (priority) — маршрутизатор с наибольшим приоритетом выигрывает выборы.

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

Маршрутизатор, который выбрали основным, присваивает своей сетевой карте виртуальные адреса и начинает посылать остальным пакеты VRRP advertisement. Таким образом он сообщает, что еще функционирует и работоспособен.

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

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

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

Автозапуска скриптов и сервисов с помощью rc.local

Для запуска различных скриптов при загрузке Linux чаще всего используется rc.local.

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

Начнем с того, что файл /etc/rc.local должен быть исполняемым:

Rc.local должен быть добавлен в автозагрузку systemd:

И на примере того же nginx, мы можем добавить в rc.local команду запуска веб-сервера:

Но я редко использую rc.local для запуска сервисов. Чаще rc.local используется, когда нужно запустить скрипт, либо выполнить разово какую-то команду.

К примеру, я создал скрипт /root/test.sh который выполняет некоторые действия, и хочу запустить его сразу после запуска системы. Добавляем в файл rc.local строку:

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

О vlan windows

В Windows vlan не идет как встроенная поддержка. Вы не можете, так из коробки, после установки операционной системы, сказать, что данная сетевая карта будет работать в нужном vlan и задать Vlan ID, НО есть исключения и это специализированные драйвера сетевых карт. Например есть программное обеспечение Realtek Ethernet Diagnostic Utility, как вы можете заметить для сетевых карт Realtek, она то и умеет работать с виртуальными тегами. Карты с поддержкой 802.1Q, так же умеют обрабатывать теги, например могут их удалить или по особому обработать. Не знаю нужен ли вообще для Windows обрабатывать vlan на ее стороне, так как правильнее все это сделать на коммутаторе.

Как правило, в этом случае существуют механизм, позволяющий отключить обработку тегов сетевой картой, сделать её более «тупой» и доставлять трафик вместе с тегами. Обычно, это делается через правку реестра, указанием соответствующего ключа.

Например, для карт Intel в ветке:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\00xx

Ставим значение MonitorModeEnabled= 1

xx — это номер сетевого адаптера в системе, хочу отметить, что у каждого вендора есть свои утилиты и свои драйвера, о их наличии нужно читать спецификацию. Надеюсь, вы не забросите изучение технологии vlan портов и более досконально изучите ее и примените на практике.

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

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

ip a

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

1lo<LOOPBACK,UP,LOWER_UP>mtu65536qdisc noqueue state UNKNOWN

link/loopback000000000000brd000000000000

inet127.0.0.1/8scope host lo

2eth0<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdisc pfifo_fast state UP qlen1000

link/ether001517185fd8 brd ffffffffffff

inet10.15.0.1/28brd91.241.22.15scope globaleth0

3eth1<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdisc pfifo_fast state UP qlen1000

link/ether001517185fd9 brd ffffffffffff

inet192.168.11.101/24brd192.168.11.255scope globaleth1

inet10.49.0.1/8brd10.255.255.255scope globaleth13

inet192.168.70.16/24brd192.168.70.255scope globaleth11

4gre0<NOARP>mtu1476qdisc noop state DOWN

link/gre0.0.0.0brd0.0.0.0

5gretap0<BROADCAST,MULTICAST>mtu1476qdisc noop state DOWN qlen1000

link/ether000000000000brd ffffffffffff

link/ether001517185fd9 brd ffffffffffff

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

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

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

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

DEVICE=»eth0″

BOOTPROTO=none

NM_CONTROLLED=»yes»

ONBOOT=yes

TYPE=»Ethernet»

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

HWADDR=001517185FD8

IPADDR=10.15.0.1

PREFIX=28

GATEWAY=10.15.0.254

DNS3=8.8.4.4

DNS2=8.8.8.8

DNS1=192.168.11.3

DEFROUTE=yes

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME=»System eth0″

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

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

1
2
3

service network restart

или так

1
2
3

 
/etc/init.d/network restart

Настройка VLAN100, все порты подключены в него.

Согласно нашей схеме, нам нужно принять два тега: 100 и 99. Первый для ПК, второй для управления самим коммутатором (service tag). Создадим bridge.

Добавим в него tagged ether1.

Untagged ether2, ether3. Указав PVID 100 на вкладке VLAN.

Переходим в вкладку VLANs бриджа. Указываем тегированные и не тегированные порты. В нашем случае tagged ether1, untagged ether2 и ether3.

Добавляем VLAN для управления.

Перепроверив, включаем фильтрацию.

Далее нужно получить адрес из сети управления.

Повесим DHCP-Client на него.

После чего мы удачно получили адрес.

Далее нам нужно включить наши ПК и проверить какие адреса мы получили на них.

Транкинг и маршрутизация между vlan

Термин “маршрутизатор на палочке” часто используется для описания подключения маршрутизатора и коммутатора, соединенных Ethernet линком, настроенным как транк по стандарту 802.1Q. В данном случае коммутатор настроен на использование нескольких vlan, а маршрутизатор выполняет все функции по маршрутизации между различными подсетями/vlan.

Для некоторых пользователей данный термин звучит немного странно, но он является очень популярным и повсеместно используется в сетях, в которых нет коммутаторов с функциями 3-го уровня сетевой модели OSI. Хорошим примером конфигурации «маршрутизатор на палочке» может быть установка Cisco CCME, что подразумевает необходимость отделить VoIP сеть, состоящую из ваших ip-телефонов, от общей сети, где находятся рабочие станции и сервера.

Как отключить ipv6 в Debian

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

На свежеустановленном сервере debian программы ssh, exim, dhclient и rpcbind используют ipv6. Отключим это. Начнем с ssh. Открываем файл /etc/ssh/sshd_config и раскомментируем параметр ListenAddress:

Перезапускаем ssh:

Сделаем то же самое с exim4. Открываем файл конфигурации /etc/exim4/exim4.conf.template и в самом начале, после вступительных комментариев пишем:

Перезапускаем exim:

В dhclient для отключения ipv6 в конфиге убираем все параметры в запросе request, начинающиеся с dhcp6. Должно получиться вот так:

Перезапускаем сеть:

Отключаем ipv6 в rpcbind. Открываем конфигурацию /etc/netconfig и комментируем 2 строки с udp6 и tcp6:

Перезапускаем службу rpcbind и nfs-common, которая от него зависит:

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

dhclient почему-то остался висеть на ipv6 порту, но ладно, это не страшно, запрашивать по ipv6 он все равно ничего не будет. Теперь полностью отключаем ipv6 в Debian:

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

Проверяем свойства сетевых интерфейсов командами ifconfig и ip. Информации об ipv6 быть не должно, мы его полностью отключили.

Более подробно по об отключении ipv6 в различных приложениях читайте в отдельной статье — как отключить ipv6.

Шаг 3: Присвойте статический IP DHCP-клиенту#

Вы можете присвоить статический IP-адрес конкретному клиентскому компьютеру в сети, просто определите раздел, описанный ниже, в файле /etc/dhcp/dhcpd.conf, в котором необходимо указать MAC-адреса и фиксированный IP адрес для назначения:

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

Примечание: Вы можете узнать MAC адрес в Linux, используя следующую команду:

  1. Теперь запустите службу DHCP и включите параметр для её автоматического запуска со следующей загрузки системы, используя команды:
  1. Затем не забудьте разрешить службу DHCP (DHCPD-служба прослушивает порт 67/UDP), как показано ниже:

Troubleshooting

udev renames the virtual devices

An annoyance is that udev may try to rename virtual devices as they are added, thus ignoring the name configured for them (in this case ).

For instance, if the following commands are issued:

# ip link add link eth0 name eth0.100 type vlan id 100
# ip link show 

This could generate the following output:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    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 mq state UP qlen 1000
    link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
3: rename1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff

udev has ignored the configured virtual interface name and autonamed it rename1.

The solution is to edit and append DRIVERS==»?*» to the end of the physical interface’s configuration line.

For example, for the interface aa:bb:cc:dd:ee:ff (eth0):

/etc/udev/rules.d/network_persistent.rules
SUBSYSTEM=="net", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="eth0", DRIVERS=="?*"

A reboot should mean that VLANs configure correctly with the names assigned to them.

Создаем виртуальный интерфейс в linux вручную

Создавать и удалять интерфейсы, назначать IP и MAC адреса, изменять MTU и многое другое нам помогает утилита ip. Пользоваться ip удобно и легко, но помните, что произведенные изменения будут потеряны после перезагрузки компьютера. Используйте ip в целях тестирования.

Создаем интерфейс типа tun

ip tuntap add dev tun0 mode tun ip address add 192.168.99.1/30 dev tun0 ip address show tun0 2: tun0:

mtu 1500 qdisc noop state DOWN group default qlen 500 link/none inet 192.168.99.1/30 scope global tun0 valid_lft forever preferred_lft forever

Как видим у нас теперь есть виртуальный интерфейс с именем «tun0», у него есть IP-адрес, и ни слова о MAC-адресе — всё, как мы и рассчитывали. Его уже можно пинговать, и на нем уже можно запускать слушающие сервисы. Но что будет, если мы попытаемся добавить этот интерфейс в бридж?

ip link set dev tun0 master br0 RTNETLINK answers: Invalid argument

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

Создаем интерфейс типа tap

ip tuntap add dev tap0 mode tap ip address add 192.168.99.5/30 dev tap0 ip address show tap0 3: tap0: mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether d6:1c:67:cd:6f:80 brd ff:ff:ff:ff:ff:ff inet 192.168.99.5/30 scope global tap0 valid_lft forever preferred_lft forever

У нас теперь появился новый виртуальный интерфейс с именем «tap0», у него есть как IP-адрес, так и MAC-адреса. Его также можно пинговать, и на нем также можно запускать слушающие сервисы. Команда, добавляющая интерфейс в бридж уже не выдаст ошибку, потому что это интерфейс, обладающий поддержкой ethernet:

ip link set dev tap0 master br0

Создаем интерфейс типа dummy

ip link add dev dum0 type dummy ip address add 192.168.99.9/30 dev dum0 ip address show dum0 4: dum0: mtu 1500 qdisc noop master br0 state DOWN group default qlen 1000 link/ether 1a:37:3b:0f:da:be brd ff:ff:ff:ff:ff:ff inet 192.168.99.9/30 scope global dum0 valid_lft forever preferred_lft forever

Вы наверняка заметили, что команда для добавления интерфейса изменилась. Ничего необычного. Так написана утилита «ip». Ну и конечно, виртуальный интерфейс типа dummy можно легко добавить в бридж:

ip link set dev dum0 master br0

Настройка сети при установке 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», чтобы ограничить подключения только к локальной сети.

Возможные проблемы

Наиболее распространенные при настройке VLAN в Linux проблемы следующие:

  • Не все сетевые драйверы поддерживают VLAN. Может потребоваться обновление драйвера.
  • Возможны проблемы с MTU. Работа VLAN основана на присвоении каждому кадру тега длиной 4 байта, то есть заголовок фактически расширяется с 14 до 18 байт. Тег VLAN содержит идентификатор (VLAN ID) и приоритет.
  • Лучше не использовать VLAN ID, равный 1, так как он может быть зарезервирован для административных целей.

Сначала убедитесь, что драйвер (модуль) ядра Linux под названием 8021 загружен:

# lsmod | grep 8021q

Если он не загружен, загрузите его командой modprobe:

# modprobe 8021q

1.5 Настройка пула адресов

Компьютерам сети предприятия и гостевой сети будем по DHCP присваивать IP адреса из разных подсетей. Сеть предприятия будет использовать диапазон 192.168.88.2–192.168.88.254, а гостевая сеть 192.168.10.2–192.168.10.254. Зададим с помощью пула диапазоны IP адресов.

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

  1. Откройте меню IP — Pool;
  2. Нажмите «красный плюсик»;
  3. В появившемся окне в поле Name укажите название dhcp_pool_main;
  4. В поле Addresses пропишите диапазон 192.168.88.2–192.168.88.254 ;
  5. Нажмите кнопку OK для сохранения пула адресов.

Добавляем диапазон IP адресов гостевой сети аналогичным образом:

  1. Нажмите «красный плюсик»;
  2. В появившемся окне в поле Name указываем название dhcp_pool_vlan2;
  3. В поле Addresses прописываем диапазон 192.168.10.2–192.168.10.254 ;
  4. Нажимаем кнопку OK для сохранения пула адресов.

How to Create VLAN Using Subinterface?

In order to configure a tagged interface, the 8021q module of Linux kernel must be enabled on your server. To load the module, use the command:

If the module is already loaded, the following error appears: modprobe: ERROR: could not insert ‘8021q’: Module already in kernel.

Let’s make sure that the module has been loaded:

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

It’s OK, the module 8021q exists in the system.

You must add this module to the Linux system startup:

Create a VLAN with the ID 7 for eth0 interface. Add the configuration file (7 after the dot is the VLAN number). The file contains the description of VLAN subinterface.

Add the following config to it:

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

This configuration file binds eth0.7 virtual interface to the eth0 physical interface. After creating the configuration file, restart the network service:

Check the network settings:

As you can see, the subinterface with the VLAN 7 has been added.

You can display the current interface and VLAN bindings as follows:

To get the interface statistics (using packet counters, you can make sure that the VLAN interface gets tagged traffic):

To ping from the specific VLAN interface, use this command:

Как создать VLAN с помощью субинтерфейса?

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

Если модуль уже загружен, появляется следующая ошибка: modprobe: ОШИБКА: не удалось вставить ‘8021q’: модуль уже в ядре.

Убедимся, что модуль загрузился:

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

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

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

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

Как видите, субинтерфейс с VLAN 7 добавлен.

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

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

Как выполнить перезапуск сети

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

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

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

Требования к программному обеспечению и используемые условные обозначения

Требования к программному обеспечению и условные обозначения командной строки Linux
Категория Требования, условные обозначения или используемая версия программного обеспечения
Система Независимое распределение
Программного обеспечения libvirt, iproute, brctl
Другой Административные привилегии для создания и управления интерфейсом моста
Условные обозначения # — требуется данный linux-команды для выполнения с привилегиями root либо непосредственно как пользователь root, либо с использованием команда$ — требуется данный linux-команды будет выполняться как обычный непривилегированный пользователь
Понравилась статья? Поделиться с друзьями:
Быть в курсе нового
Добавить комментарий

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