Как настроить сетевое соединение в Linux
Пошаговое руководство по настройке сетевого соединения в Linux с использованием Netplan и nmcli.
Связывание сетей в Linux - это метод, который позволяет объединить несколько сетевых интерфейсов (NIC) в один логический интерфейс для повышения избыточности и производительности. В этом подробном руководстве мы рассмотрим концепцию сетевого соединения, его преимущества, различные режимы соединения и настройку сетевого соединения в Linux.
Что такое сетевое соединение?
Объединение сетей, также известное как Объединение сетевых карт или объединение, - это метод объединения двух или более сетевых интерфейсов в один логический интерфейс, называемый Объединение сетей. сильная>связь.
Два важных преимущества настройки сетевых связей в Linux:
- Резервирование. Объединение обеспечивает возможность аварийного переключения, гарантируя сетевое подключение даже в случае сбоя одного интерфейса.
- Балансировка нагрузки. Он может распределять сетевой трафик по связанным интерфейсам, улучшая общую производительность сети.
Режимы склеивания
Linux поддерживает несколько режимов связывания, каждый из которых предназначен для конкретных случаев использования. Вот два наиболее часто используемых режима:
- Режим 0 (циклический перебор): пакеты отправляются по круговому принципу на каждый связанный интерфейс.
- Режим 1 (активное резервное копирование): один интерфейс активен, а остальные находятся в режиме ожидания. Если активный интерфейс выходит из строя, его берет на себя другой.
Давайте кратко рассмотрим эти два режима.
1. Режим 0: Круговой алгоритм
В этом режиме пакеты передаются по связанным интерфейсам в циклическом режиме. Хотя он обеспечивает базовую форму балансировки нагрузки, он не учитывает фактическую нагрузку или состояние каждого интерфейса.
Этот режим полезен, если вы хотите равномерно распределить трафик по интерфейсам.
2. Режим 1: активное резервное копирование.
В режиме Active-Backup один интерфейс назначается активным каналом, а остальные остаются в режиме ожидания. Если активный интерфейс выходит из строя, его работу берет на себя один из резервных интерфейсов.
Этот режим идеально подходит для резервирования, гарантируя, что ваша сеть останется работоспособной, даже если один сетевой адаптер выйдет из строя.
Надеюсь, вы получили базовое представление о сетевых связях в Linux. Теперь давайте посмотрим, как создать интерфейс сетевого соединения с помощью Netplan и команды nmcli
в Linux.
Сначала мы увидим метод Netplan.
Способ 1. Настройка сетевого соединения в Linux с помощью Netplan
Создание сетевых связей с помощью Netplan в Linux — простой процесс. Netplan — это утилита настройки сети на основе YAML, используемая в современных дистрибутивах Linux, таких как Ubuntu. Чтобы настроить сетевое соединение, выполните следующие действия:
1. Проверьте имена сетевых интерфейсов
Прежде чем создавать конфигурацию Netplan для сетевого соединения, важно определить имена сетевых интерфейсов, которые вы хотите объединить.
Вы можете использовать команды ip link show
или ifconfig
, чтобы просмотреть список доступных сетевых интерфейсов. Обычно эти интерфейсы имеют такие имена, как enp0sX
или ensX
или ethX
.
ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 6e:26:0b:8e:33:8c brd ff:ff:ff:ff:ff:ff
altname enp0s18
3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 96:d2:11:4a:6d:ad brd ff:ff:ff:ff:ff:ff
altname enp0s19
4: ens20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether ea:3a:8b:6c:38:e1 brd ff:ff:ff:ff:ff:ff
altname enp0s20
Как видите, моя система имеет три сетевых интерфейса, а именно ens18
, ens19
и ens20
.
2. Создайте файл конфигурации Netplan
Создайте или отредактируйте файл конфигурации Netplan. Файлы конфигурации Netplan обычно хранятся в каталоге /etc/netplan/
и имеют расширение .yaml
. Для создания или редактирования файла конфигурации можно использовать любой текстовый редактор, например nano
или vim
.
Например, создайте файл с именем 01-bond.yaml
:
sudo nano /etc/netplan/01-bond.yaml
3. Настройте интерфейс связи
В файле конфигурации Netplan определите интерфейс связи и его параметры. Вот пример конфигурации для создания связи с тремя интерфейсами (ens18, ens19 и ens34) в режиме активного резервного копирования:
network:
version: 2
renderer: networkd
ethernets:
ens18:
dhcp4: no
ens19:
dhcp4: no
ens20:
dhcp4: no
bonds:
bond0:
interfaces: [ens18, ens19, ens20]
addresses: [192.168.1.10/24]
routes:
- to: 0.0.0.0/0
via: 192.168.1.101
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
parameters:
mode: active-backup
primary: ens18
Замените имена интерфейсов, IP-адрес, подсеть, шлюз и другие параметры на вашу конкретную конфигурацию сети. Вы можете использовать различные режимы соединения, изменив параметр mode
(например, balance-rr
для циклического перебора или 802.3ad
для LACP).
4. Применить конфигурацию
После создания или редактирования файла конфигурации Netplan примените изменения с помощью команды netplan apply
:
sudo netplan apply
5. Проверьте конфигурацию
Проверьте состояние вашего связанного интерфейса с помощью команд ip link
или ifconfig
. Например:
ip link show bond0
Вы должны увидеть связанный интерфейс (bond0) и его статус.
6. Проверка сетевого подключения
Убедитесь, что ваш сервер или рабочая станция могут получить доступ к сети через связанный интерфейс. Вы можете выполнить проверку связи с другими устройствами в сети, чтобы проверить подключение.
У нас также есть различные методы проверки наличия раздела интерфейса связи. Перейдите в раздел «Тестирование сетевого интерфейса Linux» и используйте любой из методов, чтобы проверить, работает ли интерфейс соединения должным образом.
Вот и все! Вы успешно создали конфигурацию сетевого соединения с помощью Netplan. Не забудьте адаптировать конфигурацию к вашим конкретным требованиям, таким как режим соединения, IP-адрес и настройки шлюза, в соответствии с вашей сетевой средой.
Способ 2. Настройка сетевого соединения в Linux с помощью nmcli
Чтобы создать сетевое соединение с помощью команды nmcli
в Linux, вы можете выполнить следующие действия. nmcli
— это утилита командной строки для управления NetworkManager, инструментом настройки сети, обычно используемым во многих дистрибутивах Linux.
1. Проверьте имена сетевых интерфейсов
Прежде чем создавать связанный интерфейс с помощью nmcli
, вам следует определить имена сетевых интерфейсов, которые вы хотите объединить.
Вы можете использовать команды ip link show
или ifconfig
, чтобы просмотреть список доступных сетевых интерфейсов. Интерфейсы обычно имеют такие имена, как ensX
или enp0sX
или ethX
.
ip link show
Пример вывода:
Проверьте имена сетевых интерфейсов
Как вы видите в приведенном выше выводе, у меня есть три сетевых интерфейса, а именно ens18
, ens19
и ens20
.
2. Проверьте статус NetworkManager
Убедитесь, что NetworkManager установлен и работает в вашей системе. Вы можете проверить его статус с помощью следующей команды:
sudo systemctl status NetworkManager
Если он не запущен, вы можете запустить его, используя:
sudo systemctl start NetworkManager
sudo systemctl enable NetworkManager
3. Создать новое соединение
Вы можете создать новое соединение с помощью команды nmcli
. Вот основной синтаксис:
sudo nmcli connection add type bond ifname bond0 mode MODE_NAME
Замените bond0
именем, которое вы хотите дать связанному интерфейсу, и замените MODE_NAME
режимом связывания, который вы хотите использовать, например active-backup
, balance-rr
или 802.3ad
.
Например, чтобы создать связь под названием bond0
в режиме активного резервного копирования:
sudo nmcli connection add type bond ifname bond0 mode active-backup
Эта команда создаст новое сетевое соединение с именем 'bond-bond0
'.
Connection 'bond-bond0' (e68041f8-d836-4b83-a743-1bcadec9d19e) successfully added.
4. Добавить интерфейсы участников
Теперь вам нужно добавить сетевые интерфейсы, которые вы хотите включить в связь, в качестве интерфейсов-членов.
Например, я собираюсь добавить ens19
и ens20
в качестве членов bond0
с помощью команды nmcli
.
Замените ens19
и ens20
именами ваших реальных сетевых интерфейсов:
sudo nmcli connection add type ethernet ifname ens19 master bond0
sudo nmcli connection add type ethernet ifname ens20 master bond0
Это добавит ens18
, ens19
и ens20
в качестве интерфейсов-членов к связному соединению bond0
.
Вы можете проверить вновь созданные сетевые подключения с помощью команды:
nmcli connection show
Пример вывода:
NAME UUID TYPE DEVICE
bond-bond0 e68041f8-d836-4b83-a743-1bcadec9d19e bond bond0
Wired connection 1 60e8eaf3-89f9-3e9f-9919-1944e7abee20 ethernet ens18
bond-slave-ens19 578bb27f-f3ff-4059-bd94-5291b98ce2fb ethernet ens19
bond-slave-ens20 e338b080-6dc6-41b2-bb08-53d0470dccbd ethernet ens20
Wired connection 2 5527636c-50a9-35a4-b92b-adcc4f106cba ethernet --
Wired connection 3 878666ef-2160-338b-aadf-e24e9a52509a ethernet --
5. Настройте параметры связывания
Возможно, вам придется настроить дополнительные параметры в зависимости от режима соединения и настроек сети. Например, если вы используете режим активного резервного копирования, вы можете указать основной интерфейс:
sudo nmcli connection modify bond-bond0 primary ens19
Шаг указания основного интерфейса необходим в некоторых режимах связывания, таких как активное резервное копирование, чтобы определить, какой интерфейс должен быть основным, который активно передает сетевой трафик в нормальных условиях.
Этот параметр имеет решающее значение для обеспечения правильной работы режима связывания и правильного распределения трафика или переключения при сбое сети.
Например, в режиме активного резервного копирования назначение основного интерфейса гарантирует, что сетевой трафик в первую очередь будет проходить через этот интерфейс, а если он станет недоступным, резервный интерфейс возьмет на себя управление.
Без указания основного интерфейса связь может не знать, какой интерфейс использовать по умолчанию для отправки и получения трафика.
6. Настройте IP-адрес и настройки DNS
Вы можете установить IP-адрес, маску подсети, шлюз и настройки DNS для соединения bond0
с помощью команды nmcli
. Например:
sudo nmcli connection modify bond-bond0 ipv4.method manual
sudo nmcli connection modify bond-bond0 ipv4.addresses "192.168.1.10/24"
sudo nmcli connection modify bond-bond0 ipv4.gateway "192.168.1.101"
sudo nmcli connection modify bond-bond0 ipv4.dns "8.8.8.8, 8.8.4.4"
Вы также можете указать все детали сети в одной команде, как показано ниже:
sudo nmcli connection modify bond-bond0 ipv4.method manual ipv4.addresses "192.168.1.10/24" ipv4.gateway "192.168.1.101" ipv4.dns "8.8.8.8,8.8.4.4"
Настройте IP-адрес, маску подсети, шлюз и DNS-серверы в соответствии с конфигурацией вашей сети.
7. Активируйте Bond Connection
Наконец, активируйте соединение с помощью команды nmcli
:
sudo nmcli connection up bond-bond0
Это приведет к появлению связанного интерфейса и сделает его доступным для сетевого взаимодействия.
Настройте сетевое соединение в Linux с помощью nmcli
8. Проверьте конфигурацию
Убедитесь, что связанный интерфейс bond0
запущен и работает с помощью команды nmcli
:
sudo nmcli connection show
Вот и все! Вы успешно создали конфигурацию сетевого соединения с помощью команды nmcli
. Теперь ваш связанный интерфейс настроен на резервирование и балансировку нагрузки в зависимости от выбранного вами режима связывания.
Вы можете использовать любой из следующих методов, чтобы проверить, работает ли ваш сетевой интерфейс связи или нет.
Тестирование интерфейса сетевого соединения Linux
Чтобы проверить, правильно ли работает интерфейс связи, вы можете выполнить различные тесты и проверки, чтобы убедиться, что он обеспечивает ожидаемую избыточность и балансировку нагрузки.
Вот несколько шагов, которые помогут вам проверить функциональность интерфейса связи в Linux:
1. Проверьте статус залога
Используйте следующую команду, чтобы проверить состояние вашего интерфейса связи (замените bond0
фактическим именем вашего интерфейса связи):
sudo cat /proc/net/bonding/bond0
Эта команда отобразит подробную информацию об интерфейсе связи, включая его режим, состояние подчиненных интерфейсов, а также любые ошибки или сбои.
Просмотр сведений об интерфейсе Network Bond
2. Тестовое аварийное переключение
Чтобы убедиться, что аварийное переключение работает должным образом, вы можете физически отключить один из подчиненных интерфейсов (например, отсоединить сетевой кабель) и отслеживать поведение соединения.
Соединение должно автоматически переключать трафик на оставшийся активный подчиненный интерфейс. Вы можете проверить это, наблюдая за состоянием облигации с помощью команды, упомянутой в шаге 1.
3. Тестирование балансировки нагрузки
Если ваша связь настроена для балансировки нагрузки (например, с использованием режима «balance-rr»), вы можете использовать такие инструменты, как iperf
, чтобы генерировать сетевой трафик и проверять, равномерно ли он распределяется по связанным интерфейсам.
Установите iperf
, если он еще не установлен, и запустите тесты между вашим сервером и другими сетевыми устройствами.
Пример:
- На сервере (связанный интерфейс):
iperf -s
- На клиенте:
iperf -c
Убедитесь, что трафик проходит через все связанные интерфейсы и что вы получаете увеличенную пропускную способность по сравнению с одним интерфейсом.
Если интерфейс сетевого соединения работает правильно, вы должны увидеть выходные данные, аналогичные показанному ниже, в системе, в которой вы настроили интерфейс соединения.
iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 128 KByte (default)
------------------------------------------------------------
[ 1] local 192.168.1.10 port 5001 connected with 192.168.1.101 port 39808
[ ID] Interval Transfer Bandwidth
[ 1] 0.0000-10.0011 sec 38.7 GBytes 33.3 Gbits/sec
[...]
4. Проверьте статус интерфейса
Используйте стандартные инструменты диагностики сети, такие как ifconfig
, ip
или nmcli
, чтобы проверить состояние отдельных сетевых интерфейсов (как подчиненных, так и связанных). Убедитесь, что все интерфейсы работают и имеют ожидаемые IP-адреса и конфигурацию.
Пример:
ip addr show
Проверьте состояние интерфейса сетевого соединения
5. Просмотр системных журналов
Проверьте системные журналы (например, /var/log/syslog
, /var/log/messages
) на наличие сообщений об ошибках или уведомлений, связанных с интерфейсом связи. Ищите любые сообщения, указывающие на сбои или проблемы интерфейса.
6. Мониторинг сетевого трафика
Вы можете использовать инструменты мониторинга сети, такие как tcpdump
или wireshark
, для захвата и анализа сетевого трафика на интерфейсе Bond. Это может помочь вам убедиться, что трафик сбалансирован или отработка отказа работает должным образом.
7. Пинг и проверка подключения
Выполните ping-тесты и проверьте сетевое соединение между вашим подключенным сервером и другими устройствами в сети. Убедитесь, что вы можете добраться до различных пунктов назначения и нет проблем с подключением.
8. Нагрузочное тестирование
В дополнение к iperf
вы можете выполнить более комплексное нагрузочное тестирование с помощью таких инструментов, как netperf
или ttcp
, чтобы оценить производительность соединения при больших нагрузках на сеть.
Проводя эти тесты и проверки, вы можете убедиться, что ваш интерфейс связи работает правильно, обеспечивая как резервирование, так и балансировку нагрузки в соответствии с настройками.
Этот комплексный подход поможет вам выявить любые проблемы и убедиться, что настройка сетевого соединения соответствует вашим ожиданиям и требованиям.
Изменить IP-адрес интерфейса Bond
Чтобы позже изменить IP-адрес интерфейса связи в Linux, вы можете выполнить следующие действия:
Измените IP-адрес интерфейса Bond с помощью Netplan
1. Отредактируйте конфигурацию Netplan (для систем, использующих Netplan):
Если вы используете Netplan для настройки сети (обычно в современных дистрибутивах Linux), вам необходимо отредактировать файл конфигурации Netplan. Например, если ваш интерфейс связи настроен в файле с именем 01-bond.yaml
, вы можете редактировать его с помощью текстового редактора:
sudo nano /etc/netplan/01-bond.yaml
2. Измените IP-адрес:
В файле конфигурации Netplan найдите раздел адреса
в конфигурации вашего интерфейса связи. Это будет выглядеть примерно так:
addresses: [192.168.1.10/24]
Измените IP-адрес и маску подсети на нужные значения. Например:
addresses: [192.168.1.20/24]
3. Примените конфигурацию:
После внесения изменений сохраните файл конфигурации и примените изменения с помощью команды netplan apply
:
sudo netplan apply
Это применит новый IP-адрес к интерфейсу связи.
Если вы не используете Netplan и вместо этого используете другие методы настройки сети, такие как NetworkManager или ifupdown, шаги могут немного отличаться.
В таких случаях вам потребуется изменить файлы конфигурации для интерфейса связи, а затем перезапустить или перезагрузить сетевую службу, чтобы применить изменения.
Измените IP-адрес интерфейса Bond с помощью nmcli
Например, чтобы изменить IP-адрес интерфейса связи с помощью команды nmcli
, выполните следующие действия.
1. Проверьте существующую конфигурацию облигаций:
Прежде чем вносить изменения, проверьте существующую конфигурацию вашего интерфейса Bond с помощью команды nmcli
:
nmcli connection show bond0
Замените bond0
именем вашего интерфейса связи.
2. Измените IP-адрес:
Используйте команду nmcli
, чтобы изменить IP-адрес интерфейса связи. Замените bond0
на имя вашего интерфейса связи и new_ip_address
на новый IP-адрес, который вы хотите назначить:
sudo nmcli connection modify bond0 ipv4.addresses new_ip_address/24
Например, чтобы изменить IP-адрес на «192.168.1.20/24»:
sudo nmcli connection modify bond0 ipv4.addresses 192.168.1.20/24
3. Примените изменения:
После изменения IP-адреса вы можете применить изменения к интерфейсу связи с помощью следующей команды:
sudo nmcli connection up bond0
Эта команда активирует интерфейс связи с новым IP-адресом.
4. Проверьте изменения:
Убедитесь, что изменения вступили в силу, проверив состояние и IP-адрес интерфейса связи:
nmcli connection show bond0
Вы должны увидеть обновленный IP-адрес в выходных данных.
Выполнив эти шаги, вы сможете успешно изменить IP-адрес интерфейса связи с помощью nmcli
. Обязательно замените bond0
и new_ip_address
именем вашего конкретного интерфейса связи и желаемым IP-адресом, который вы хотите назначить.
Конкретные файлы конфигурации и команды могут различаться в зависимости от используемого вами дистрибутива Linux и инструментов управления сетью.
Часто задаваемые вопросы (FAQ)
Вот некоторые часто задаваемые вопросы по объединению сетей в Linux.
Вопрос: Что такое сетевое соединение в Linux?
Ответ: Объединение сетей, также известное как объединение или объединение сетевых карт, — это метод в Linux, который объединяет несколько сетевых интерфейсов в один логический интерфейс. Это повышает резервирование и производительность серверов или рабочих станций.
Вопрос: Почему мне следует использовать сетевое соединение?
Ответ: Объединение сетей повышает надежность сети за счет возможности аварийного переключения. Это также повышает производительность сети за счет балансировки нагрузки между несколькими сетевыми интерфейсами.
Вопрос: Какие режимы объединения доступны в Linux?
О: Linux поддерживает различные режимы связывания, включая «активное резервное копирование» (переключение при отказе), «баланс-RR» (циклический), «802.3ad» (LACP) и другие. Каждый режим служит различным целям и подходит для определенных конфигураций сети.
В: Как я могу проверить, правильно ли работает мой интерфейс связи?
О: Вы можете протестировать свой интерфейс связи, отслеживая его состояние, моделируя сбои сети для проверки поведения при отказе и используя такие инструменты, как iperf
, для проверки балансировки нагрузки.
Вопрос: Что делать, если мне нужно изменить IP-адрес интерфейса связи?
О: Чтобы изменить IP-адрес интерфейса связи, измените соответствующий файл конфигурации (например, Netplan, ifupdown, NetworkManager), обновите IP-адрес и примените изменения с помощью соответствующей команды или инструмента (например, netplan apply).
, Подключение к nmcli
).
Вопрос: Можно ли сочетать разные режимы связывания в одной системе?
О: Да, в одной системе можно иметь несколько интерфейсов связи с разными режимами связи. Каждый интерфейс связи работает независимо.
Вопрос: Могу ли я добавлять или удалять подчиненные интерфейсы из связного интерфейса, не нарушая сетевое соединение?
О: Да, вы можете динамически добавлять или удалять подчиненные интерфейсы из интерфейса связи, не нарушая сетевое соединение. Интерфейс связи адаптируется к изменениям, если он настроен правильно.
Заключение
Связывание сетей - это ценный метод повышения доступности сети, резервирования и балансировки нагрузки в системах Linux. Объединив несколько физических сетевых интерфейсов в один логический интерфейс, объединение сетей может обеспечить повышенную пропускную способность, отказоустойчивость и распределение трафика.
Netplan и nmcli
— два мощных инструмента, которые можно использовать для настройки сетевых соединений в Linux. Netplan предлагает декларативный подход на основе YAML для определения сетевых конфигураций, а nmcli
предоставляет интерфейс командной строки для управления сетевыми подключениями.
Благодаря сочетанию netplan и nmcli
сетевое соединение может быть эффективно реализовано в системах Linux, обеспечивая надежное и высокопроизводительное сетевое соединение.
Связанное чтение:
- Как настроить статический IP-адрес в Ubuntu
- Как назначить несколько IP-адресов одной сетевой карте в Linux
- Как назначить IP-адрес удаленным системам Linux через SSH