LogNotes

2025-07-01 12:53:09
В Red Hat Enterprise Linux 8 (RHEL 8) управление сетью осуществляется преимущественно с помощью **NetworkManager**, который предоставляет мощные инструменты для конфигурации сетевых интерфейсов через командную строку (с использованием утилиты `nmcli`), файлы конфигурации или графический интерфейс (например, Cockpit). Ниже приведены примеры конфигурирования сети в RHEL 8 с использованием различных подходов, включая настройку статического IP, DHCP, VLAN, мостов и других распространённых сценариев.

---

### 1. **Проверка текущей сетевой конфигурации**
Перед началом настройки полезно узнать текущие параметры сети.

```bash
# Просмотр активных соединений
nmcli connection show

# Просмотр статуса всех интерфейсов
nmcli device status

# Подробная информация о конкретном соединении
nmcli connection show "System eth0"
```

---

### 2. **Настройка статического IP-адреса с помощью nmcli**
Для настройки статического IP-адреса на интерфейсе `eth0`:

```bash
# Создание или модификация соединения
nmcli connection modify "System eth0" ipv4.addresses 192.168.1.100/24
nmcli connection modify "System eth0" ipv4.gateway 192.168.1.1
nmcli connection modify "System eth0" ipv4.dns 8.8.8.8,8.8.4.4
nmcli connection modify "System eth0" ipv4.method manual

# Применение изменений
nmcli connection up "System eth0"
```

**Пояснение**:
- `ipv4.addresses`: Указывает IP-адрес и маску подсети.
- `ipv4.gateway`: Шлюз по умолчанию.
- `ipv4.dns`: DNS-серверы.
- `ipv4.method manual`: Указывает, что используется статическая конфигурация (вместо DHCP).

---

### 3. **Настройка DHCP**
Для настройки интерфейса `eth0` на получение IP-адреса через DHCP:

```bash
# Настройка соединения для использования DHCP
nmcli connection modify "System eth0" ipv4.method auto

# Применение изменений
nmcli connection up "System eth0"
```

**Пояснение**:
- `ipv4.method auto`: Включает автоматическое получение IP-адреса через DHCP.

---

### 4. **Редактирование сетевых настроек через файлы конфигурации**
NetworkManager в RHEL 8 хранит конфигурации в каталоге `/etc/NetworkManager/system-connections/`. Для настройки статического IP через файл:

1. Создайте или отредактируйте файл для соединения, например `/etc/NetworkManager/system-connections/eth0.nmconnection`:

```ini
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
method=manual
addresses=192.168.1.100/24
gateway=192.168.1.1
dns=8.8.8.8;8.8.4.4

[ipv6]
method=ignore
```

2. Перезагрузите конфигурацию NetworkManager:

```bash
nmcli connection reload
nmcli connection up eth0
```

**Пояснение**:
- Файлы `.nmconnection` используют формат ключ-значение.
- `method=manual` указывает на статическую конфигурацию.
- `method=ignore` отключает IPv6 (если не нужен).

---

### 5. **Настройка VLAN**
Для создания VLAN (например, VLAN ID 10 на интерфейсе `eth0`):

```bash
# Создание VLAN-соединения
nmcli connection add type vlan con-name vlan10 dev eth0 id 10 ipv4.method manual ipv4.addresses 192.168.10.100/24 ipv4.gateway 192.168.10.1

# Применение изменений
nmcli connection up vlan10
```

**Пояснение**:
- `type vlan`: Указывает, что создаётся VLAN-соединение.
- `dev eth0`: Родительский интерфейс.
- `id 10`: VLAN ID.

---

### 6. **Настройка сетевого моста (Bridge)**
Сетевой мост используется, например, для виртуализации или контейнеров. Пример создания моста `br0` с подключением интерфейса `eth0`:

```bash
# Создание моста
nmcli connection add type bridge con-name br0 ifname br0 ipv4.method manual ipv4.addresses 192.168.1.200/24 ipv4.gateway 192.168.1.1

# Подключение физического интерфейса к мосту
nmcli connection add type bridge-slave con-name eth0-slave ifname eth0 master br0

# Активация моста и интерфейса
nmcli connection up br0
nmcli connection up eth0-slave
```

**Пояснение**:
- `type bridge`: Создаёт мост.
- `type bridge-slave`: Подключает интерфейс к мосту.
- `master br0`: Указывает, к какому мосту привязан интерфейс.

---

### 7. **Настройка агрегации каналов (Bonding)**
Bonding объединяет несколько интерфейсов для повышения пропускной способности или отказоустойчивости. Пример создания bond-интерфейса:

```bash
# Создание bond-интерфейса
nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=100" ipv4.method manual ipv4.addresses 192.168.1.150/24 ipv4.gateway 192.168.1.1

# Добавление интерфейсов eth0 и eth1 к bond
nmcli connection add type bond-slave con-name bond0-slave1 ifname eth0 master bond0
nmcli connection add type bond-slave con-name bond0-slave2 ifname eth1 master bond0

# Активация bond
nmcli connection up bond0
```

**Пояснение**:
- `mode=active-backup`: Режим отказоустойчивости (один интерфейс активен, другой — резервный).
- `miimon=100`: Интервал проверки состояния интерфейса (в миллисекундах).

---

### 8. **Настройка DNS**
Для явного указания DNS-серверов:

```bash
nmcli connection modify "System eth0" ipv4.dns "8.8.8.8,8.8.4.4"
nmcli connection up "System eth0"
```

Или через файл `/etc/NetworkManager/system-connections/eth0.nmconnection`:

```ini
[ipv4]
dns=8.8.8.8;8.8.4.4
```

---

### 9. **Отключение NetworkManager и использование network-scripts (устаревший метод)**
Хотя NetworkManager является предпочтительным методом в RHEL 8, можно использовать старый подход через `network-scripts` (не рекомендуется, так как поддержка ограничена):

1. Убедитесь, что пакет `network-scripts` установлен:

```bash
dnf install network-scripts
```

2. Отключите NetworkManager для интерфейса:

```bash
systemctl stop NetworkManager
systemctl disable NetworkManager
```

3. Настройте интерфейс через файл `/etc/sysconfig/network-scripts/ifcfg-eth0`:

```bash
TYPE=Ethernet
DEVICE=eth0
BOOTPROTO=none
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
```

4. Перезапустите сеть:

```bash
systemctl restart network
```

**Пояснение**:
- Этот метод устарел и не рекомендуется, так как NetworkManager более гибок и интегрирован с современными инструментами.

---

### 10. **Настройка через Cockpit (графический интерфейс)**
Если установлен Cockpit, сеть можно настроить через веб-интерфейс:

1. Установите Cockpit:

```bash
dnf install cockpit
systemctl enable --now cockpit.socket
```

2. Откройте браузер и перейдите по адресу `https://<IP-адрес>:9090`.
3. В разделе **Networking** настройте интерфейсы, IP-адреса, VLAN, мосты и т.д. через графический интерфейс.

---

### 11. **Проверка и отладка**
- **Проверка статуса соединения**:

```bash
nmcli connection show
nmcli device show eth0
```

- **Логи NetworkManager**:

```bash
journalctl -u NetworkManager
```

- **Тестирование подключения**:

```bash
ping 8.8.8.8
curl google.com
```

---

### Итог
NetworkManager в RHEL 8 предоставляет гибкие и мощные инструменты для настройки сети через `nmcli`, файлы конфигурации или Cockpit. Основные сценарии включают настройку статического IP, DHCP, VLAN, мостов и bonding. В отличие от CentOS 7, где `network-scripts` был основным методом, RHEL 8 делает акцент на NetworkManager, что упрощает управление и интеграцию с современными технологиями. Для продвинутых сценариев (например, контейнеризация или виртуализация) рекомендуется использовать мосты или VLAN, как показано в примерах выше.
← Previous Next →
Back to list