Использование nmcli — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
 
(не показано 8 промежуточных версий этого же участника)
Строка 1: Строка 1:
''' Настройка сети через nmcli '''
+
=== Настройка сети через nmcli ===
  
 
nmcli - Консольный инструмент от NetworkManager'а
 
nmcli - Консольный инструмент от NetworkManager'а
Строка 19: Строка 19:
 
[[Файл:Nm-1.png|400px]]
 
[[Файл:Nm-1.png|400px]]
  
Чтобы все это проделать в консоли, вводим следующее:
+
Чтобы все это проделать в консоли, вводим следующее (автодополнение по клавише Tab работает):
  
 
  nmcli connection modify enp0s3 connection.autoconnect yes ipv4.method manual ipv4.dns 192.168.1.100 ipv4.dns-search mydomen.dom ipv4.addresses 192.168.1.200/24 ipv4.gateway 192.168.1.1
 
  nmcli connection modify enp0s3 connection.autoconnect yes ipv4.method manual ipv4.dns 192.168.1.100 ipv4.dns-search mydomen.dom ipv4.addresses 192.168.1.200/24 ipv4.gateway 192.168.1.1
Строка 50: Строка 50:
  
 
[[Файл:Nm-3.png|400px]]
 
[[Файл:Nm-3.png|400px]]
 +
 +
Чтобы все это проделать в консоли, вводим следующее (автодополнение по клавише Tab работает):
  
 
  nmcli connection modify enp0s3 ipv4.method auto ipv4.ignore-auto-dns no
 
  nmcli connection modify enp0s3 ipv4.method auto ipv4.ignore-auto-dns no
Строка 75: Строка 77:
 
[[Файл:Nm-2.png|400px]]
 
[[Файл:Nm-2.png|400px]]
  
Чтобы все это проделать в консоли, вводим следующее:
+
Чтобы все это проделать в консоли, вводим следующее (автодополнение по клавише Tab работает):
  
 
  nmcli connection modify enp0s3 ipv4.ignore-auto-dns yes ipv4.dns 192.168.1.100
 
  nmcli connection modify enp0s3 ipv4.ignore-auto-dns yes ipv4.dns 192.168.1.100
Строка 95: Строка 97:
 
  nmcli device connect enp0s3
 
  nmcli device connect enp0s3
  
[[Категория:ROSA Server|ROSA Server]]
+
== Создание VLAN ==
 +
 
 +
Как известно, на одном интерфесе можно "повесить" несколько VLAN'ов. Для примера, нам нужно сделать vlan 100.
 +
 
 +
nmcli connection add type vlan con-name vlan-enp0s3.100 ifname enp0s3.100 dev enp0s3 id 100 ip4 10.10.1.10/24
 +
 
 +
У нас получится, что мы завели vlan 100 на интерфейс enp0s3 с именем vlan-enp0s3.100
 +
 
 +
Проверить, с другого сервера/клиента в этом же влане можно командой ping:
 +
 
 +
ping -I enp0s3.100 10.10.1.10
 +
 
 +
Просмотр интервейсов:
 +
 
 +
  nmcli connection
 +
 
 +
<pre>
 +
dc2 ~ # nmcli connection
 +
NAME            UUID                                  TYPE      DEVICE   
 +
enp0s3          8ceb1102-f61f-3fd1-9f6f-caaa08c51327  ethernet  enp0s3   
 +
vlan-enp0s3.100  0633a9a9-4da3-4a40-a7d8-c22f263ba54b  vlan      enp0s3.100
 +
</pre>
 +
либо:
 +
  ip -br a
 +
<pre>
 +
dc2 ~ # ip -br a
 +
lo              UNKNOWN        127.0.0.1/8 ::1/128
 +
enp0s3          UP            192.168.1.100/24 fe80::a00:27ff:fe2e:1f96/64
 +
enp0s3.100@enp0s3 UP            10.10.1.10/24 fe80::adbf:6483:4d41:aec9/64
 +
</pre>
 +
 
 +
== Создание teaming (bonding) ==
 +
 
 +
Bonding - это технология, поддерживаемая ядром Linux и Red Hat Enterprise Linux, которая позволяет объединить два и более сетевых интерфейса в один логический интерфейс для избыточности или увеличения пропускной способности.
 +
 
 +
Просмотр двух физических интерфейсов:
 +
nmcli
 +
Создаём связанный интерфейс с именем bond0, определяем интерфейс как bond0, устанавливаем режим "Dynamic Link Aggregation" (Канал агреггации) и назначаем IP-адрес для связанного интерфейса.
 +
nmcli con add type bond con-name bond0 ifname bond0 mode 802.3ad ip4 192.168.122.5/24
 +
Для teaming интерфейса создаем team1, определяем интерфейс как team1, устанавливаем режим "LACP (Dynamic Link Aggregation)" (Канал агреггации) и назначаем IP-адрес для связанного интерфейса.
 +
nmcli connection add type team con-name team1 ifname team1 team.runner lacp ip4 192.168.122.6/24
 +
 
 +
Для каждого интерфейса bond, который хотим связать, используем команду nmcli con add type bond-slave.
 +
 
 +
Для каждого интерфейса team, который хотим связать, используем команду nmcli con add type team-slave.
 +
 
 +
Команда не содержит аргумента con-name, поэтому имя генерируется автоматически. Добавим интерфейсы eth0 и eth1 в качестве вспомогательных.
 +
nmcli con add type bond-slave ifname eth0 master bond0
 +
nmcli con add type bond-slave ifname eth1 master bond0
 +
Для team интерфейса:
 +
nmcli conn add type team-slave ifname eth0 master team1
 +
nmcli conn add type team-slave ifname eth1 master team1
 +
 
 +
Команда nmcli con add type bond-slave автоматически создаёт необходимые файлы конфигурации интерфейса в директории /etc/sysconfig/network-scripts.
 +
Команда nmcli con add type team-slave автоматически создаёт необходимые файлы конфигурации интерфейса в директории /etc/sysconfig/network-scripts.
 +
 
 +
Активируем bonding. Сперва поднимаем вспомогательные интерфейсы (аналогично с teaming)
 +
nmcli con up bond-slave-eth0
 +
nmcli con up bond-slave-eth1
 +
Затем поднимаем логический интерфейс bond0 (аналогично с teaming)
 +
nmcli connection up bond0
 +
Проверяем статус bonding-интерфейса (аналогично с teaming):
 +
cat /proc/net/bonding/bond0
 +
<pre>
 +
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
 +
 
 +
Bonding Mode: fault-tolerance (active-backup)
 +
Primary Slave: None
 +
Currently Active Slave: eth1
 +
MII Status: up
 +
MII Polling Interval (ms): 100
 +
Up Delay (ms): 0
 +
Down Delay (ms): 0
 +
 
 +
Slave Interface: eth1
 +
MII Status: up
 +
Speed: Unknown
 +
Duplex: Unknown
 +
Link Failure Count: 0
 +
Permanent HW addr: 52:54:00:89:b8:cf
 +
Slave queue ID: 0
 +
 
 +
Slave Interface: eth0
 +
MII Status: up
 +
Speed: Unknown
 +
Duplex: Unknown
 +
Link Failure Count: 0
 +
Permanent HW addr: 52:54:00:20:46:42
 +
Slave queue ID: 0
 +
</pre>
 +
Для отключения IPv6 на bonding-интерфейсе используем команду:
 +
nmcli connection modify bond0 ipv6.method ignore
 +
 
 +
[[Категория:ROSA Server]]

Текущая версия на 14:04, 10 марта 2023

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

nmcli - Консольный инструмент от NetworkManager'а

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

nmcli
nmcli connection show
nmcli device show

Статика

Предположим, нам надо настроить все статически на нашем сетевом интерфейсе.

В NetworkManager'е мы обычно заполняем такие поля:

Nm-1.png

Чтобы все это проделать в консоли, вводим следующее (автодополнение по клавише Tab работает):

nmcli connection modify enp0s3 connection.autoconnect yes ipv4.method manual ipv4.dns 192.168.1.100 ipv4.dns-search mydomen.dom ipv4.addresses 192.168.1.200/24 ipv4.gateway 192.168.1.1

где:

  • connection modify - изменяем наше соединение на интерфейсе enp0s3
  • connection.autoconnect yes - делаем поднятие соединения при загрузке системы
  • ipv4.method manual - делаем наше соединение статическим
  • ipv4.dns - прописываем IP адрес нашего DNS сервера
  • ipv4.dns-search - прописываем домен поиска
  • ipv4.addresses - прописываем IP адрес и маску /24 нашего интерфейса
  • ipv4.gateway - прописываем IP адрес нашего шлюза

Далее надо перезапустить наш интерфейс:

nmcli connection down enp0s3
nmcli connection up enp0s3

Либо перезапускаем так:

nmcli device disconnect enp0s3
nmcli device connect enp0s3

Динамика

Предположим, нам надо настроить все динамически, на нашем сетевом интерфейсе.

В NetworkManager'е мы обычно заполняем такие поля:

Nm-3.png

Чтобы все это проделать в консоли, вводим следующее (автодополнение по клавише Tab работает):

nmcli connection modify enp0s3 ipv4.method auto ipv4.ignore-auto-dns no
  • connection modify - изменяем наше соединение на интерфейсе enp0s3
  • ipv4.ignore-auto-dns - делаем no, т.е. не игнорируем полученные по dhcp серверов DNS
  • ipv4.method auto - делаем наше соединение динамическим

Далее надо перезапустить наш интерфейс:

nmcli connection down enp0s3
nmcli connection up enp0s3

Либо перезапускаем так:

nmcli device disconnect enp0s3
nmcli device connect enp0s3

Динамика, кроме DNS

Предположим, нам надо настроить все динамически, кроме DNS, на нашем сетевом интерфейсе.

В NetworkManager'е мы обычно заполняем такие поля:

Nm-2.png

Чтобы все это проделать в консоли, вводим следующее (автодополнение по клавише Tab работает):

nmcli connection modify enp0s3 ipv4.ignore-auto-dns yes ipv4.dns 192.168.1.100

где:

  • connection modify - изменяем наше соединение на интерфейсе enp0s3
  • ipv4.ignore-auto-dns - делаем yes, т.е. игнорируем полученные по dhcp серверы DNS
  • ipv4.dns - прописываем IP адрес нашего DNS сервера

Далее надо перезапустить наш интерфейс:

nmcli connection down enp0s3
nmcli connection up enp0s3

Либо перезапускаем так:

nmcli device disconnect enp0s3
nmcli device connect enp0s3

Создание VLAN

Как известно, на одном интерфесе можно "повесить" несколько VLAN'ов. Для примера, нам нужно сделать vlan 100.

nmcli connection add type vlan con-name vlan-enp0s3.100 ifname enp0s3.100 dev enp0s3 id 100 ip4 10.10.1.10/24

У нас получится, что мы завели vlan 100 на интерфейс enp0s3 с именем vlan-enp0s3.100

Проверить, с другого сервера/клиента в этом же влане можно командой ping:

ping -I enp0s3.100 10.10.1.10

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

 nmcli connection
dc2 ~ # nmcli connection 
NAME             UUID                                  TYPE      DEVICE     
enp0s3           8ceb1102-f61f-3fd1-9f6f-caaa08c51327  ethernet  enp0s3     
vlan-enp0s3.100  0633a9a9-4da3-4a40-a7d8-c22f263ba54b  vlan      enp0s3.100

либо:

 ip -br a
dc2 ~ # ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128 
enp0s3           UP             192.168.1.100/24 fe80::a00:27ff:fe2e:1f96/64 
enp0s3.100@enp0s3 UP             10.10.1.10/24 fe80::adbf:6483:4d41:aec9/64

Создание teaming (bonding)

Bonding - это технология, поддерживаемая ядром Linux и Red Hat Enterprise Linux, которая позволяет объединить два и более сетевых интерфейса в один логический интерфейс для избыточности или увеличения пропускной способности.

Просмотр двух физических интерфейсов:

nmcli

Создаём связанный интерфейс с именем bond0, определяем интерфейс как bond0, устанавливаем режим "Dynamic Link Aggregation" (Канал агреггации) и назначаем IP-адрес для связанного интерфейса.

nmcli con add type bond con-name bond0 ifname bond0 mode 802.3ad ip4 192.168.122.5/24

Для teaming интерфейса создаем team1, определяем интерфейс как team1, устанавливаем режим "LACP (Dynamic Link Aggregation)" (Канал агреггации) и назначаем IP-адрес для связанного интерфейса.

nmcli connection add type team con-name team1 ifname team1 team.runner lacp ip4 192.168.122.6/24

Для каждого интерфейса bond, который хотим связать, используем команду nmcli con add type bond-slave.

Для каждого интерфейса team, который хотим связать, используем команду nmcli con add type team-slave.

Команда не содержит аргумента con-name, поэтому имя генерируется автоматически. Добавим интерфейсы eth0 и eth1 в качестве вспомогательных.

nmcli con add type bond-slave ifname eth0 master bond0
nmcli con add type bond-slave ifname eth1 master bond0

Для team интерфейса:

nmcli conn add type team-slave ifname eth0 master team1
nmcli conn add type team-slave ifname eth1 master team1

Команда nmcli con add type bond-slave автоматически создаёт необходимые файлы конфигурации интерфейса в директории /etc/sysconfig/network-scripts. Команда nmcli con add type team-slave автоматически создаёт необходимые файлы конфигурации интерфейса в директории /etc/sysconfig/network-scripts.

Активируем bonding. Сперва поднимаем вспомогательные интерфейсы (аналогично с teaming)

nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1

Затем поднимаем логический интерфейс bond0 (аналогично с teaming)

nmcli connection up bond0

Проверяем статус bonding-интерфейса (аналогично с teaming):

cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:89:b8:cf
Slave queue ID: 0

Slave Interface: eth0
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 52:54:00:20:46:42
Slave queue ID: 0

Для отключения IPv6 на bonding-интерфейсе используем команду:

nmcli connection modify bond0 ipv6.method ignore