# Настройка сети ## Проброс данных из одного интерфейса в другой На сервере имеются два сетевых интерфейса (две сетевые платы): 1. **eth0** - `address 10.100.0.12` - `netmask 255.255.254.0` - `gateway 10.100.1.254` 2. **eth1** - `address 172.16.0.1` - `netmask 255.255.255.0` - `gateway 172.16.0.1` Клиентам из подсети `172.16.0.0` предоставить доступ к подсетям, лежащим за `10.100.1.254`. (Debian/Ubuntu) Необходимо раскомментировать (добавить) параметр `net.ipv4.ip_forward=1` в файле `/etc/sysctl.conf`. Перезагрузиться. Добавить статические маршруты для сетевого интерфейса `eth1`: - Через редактирование `/etc/network/interfaces` ```sh ... auto eth1 iface eth1 inet static address 172.16.0.1 netmask 255.255.255.0 up ip route add 10.100.0.0/23 via 10.100.1.254 up ip route add 192.168.100.0/23 via 10.100.1.254 ... ``` - Через `Network Manager` ```sh nmcli connection modify eth1 +ipv4.routes "10.100.0.0/23 10.100.1.254" nmcli connection modify eth1 +ipv4.routes "192.168.100.0/23 10.100.1.254" ``` - Через графический интерфейс ![network_01](img/network_01.png) Добавить маскарадинг для трафика `eth0`: ```sh iptables -t nat -A POSTROUTING -o eth0 -s 172.16.0.0/24 -j MASQUERADE ``` Перезагрузить сетевые интерфейсы. ## Netplan Настройка профиля [netplan](https://netplan.io/examples/) в файле `/etc/netplan/config.yaml`. В `Ubuntu` файл расположен `/etc/netplan/00-installer-config.yaml` ### Параметры `netplan` - `renderer` - программа для обработки конфигурации (`networkd` или `NetworkManager`) - `ethernets` - настройка сетевых адаптеров `ethernet` - `wifis` - настройка беспроводных адаптеров - `dhcp4` - получение IPv4 адреса по DHCP - `dhcp6` - получение IPv6 адреса по DHCP - `dhcp-identifier` - если передать значение "mac", то будет использоваться MAC-адрес в качестве идентификатора DHCP - `addresses` - добавляет статические адреса к интерфейсу, можно несколько - `gateway4` - указывает шлюз IPv4 - `gateway6` - указывает шлюз IPv6 - `nameservers` - указывает DNS-серверы - `search` - дописывает окончание домена, если происходит обращание к узлу сети только по его имени - `macaddress` - устанавливает новый MAC-адрес - `routes` - позволяет настроить маршруты таблицы маршрутизации - `to` - адрес/подсеть до которой необходим маршрут - `via` - шлюз через которой будет доступна подсеть - `on-link` - прописывать маршруты всегда при поднятии линка - `routing-policy` - дополнительная настройка маршрутов, для IP или подсети - `access-points` - список точек доступа для Wi-Fi - `password` - пароль для точки доступа Wi-Fi - `mode` - режим работы сетевой карты Wi-Fi ### Команды `netplan` - `try` - попробовать применить конфигурацию с возможностью отмены - `apply` - применить конфигурацию - `generate` - проверка текущей конфигурации и запись на диск - `config` - записать текущую конфигурацию сети в YAML ### Отладка `netplan` - `--debug` - получение подробной информации при применении команд Проверка конфигурационного файла на ошибки и создание файлов конфигурации для программы-обработчика: ```sh sudo netplan --debug generate ``` Применение конфигурации: ```sh sudo netplan --debug apply ``` ### Перезагрузка сетевого интерфейса Перезагрузка сетефого интерфейса в `Ubuntu`: ```sh sudo systemctl restart systemd-networkd.service ``` В других дистрибутивах: ```sh sudo systemctl restart networking ``` ```sh sudo /etc/init.d/networking restart ``` ### Примеры `netplan` Настройка сети, где `enp3s0`, `enp8s0` и `wlp3s0` - сетевые интерфейсы: - `enp3s0` - динамическая адресация - `enp8s0` - статическая адресация - `wlp3s0` - беспроводное подключение ```sh network: version: 2 renderer: networkd ethernets: enp3s0: dhcp4: true enp8s0: addresses: - 10.10.10.2/24 gateway4: 10.10.10.1 nameservers: search: [mydomain, otherdomain] addresses: [10.10.10.1, 1.1.1.1] routes: - to: default via: 10.10.10.1 wifis: wlp3s0: dhcp4: no dhcp6: no addresses: [192.168.0.21/24] nameservers: addresses: [192.168.0.1, 8.8.8.8] access-points: "network_ssid_name": password: "**********" routes: - to: default via: 192.168.0.1 on-link: true ```