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

Материал из Rosalab Wiki
Перейти к: навигация, поиск

Настройка сети через 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