Использование nmcli
Содержание
Настройка сети через nmcli
nmcli - Консольный инструмент от NetworkManager'а
Просмотр доступных интерфейсов:
nmcli
nmcli connection show
nmcli device show
Статика
Предположим, нам надо настроить все статически на нашем сетевом интерфейсе.
В NetworkManager'е мы обычно заполняем такие поля:
Чтобы все это проделать в консоли, вводим следующее (автодополнение по клавише 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'е мы обычно заполняем такие поля:
Чтобы все это проделать в консоли, вводим следующее (автодополнение по клавише 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'е мы обычно заполняем такие поля:
Чтобы все это проделать в консоли, вводим следующее (автодополнение по клавише 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
Для каждого интерфейса, который хотим связать, используем команду nmcli con add type bond-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
Команда nmcli con add type bond-slave автоматически создаёт необходимые файлы конфигурации интерфейса в директории /etc/sysconfig/network-scripts.
Активируем bonding. Сперва поднимаем вспомогательные интерфейсы.
nmcli con up bond-slave-eth0 nmcli con up bond-slave-eth1
Затем поднимаем логический интерфейс bond0.
nmcli connection up bond0
Проверяем статус bonding-интерфейса:
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