configurations/linux/src/network.md

5.9 KiB
Raw Blame History

Настройка сети

Проброс данных из одного интерфейса в другой

На сервере имеются два сетевых интерфейса (две сетевые платы):

  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
...
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
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

Добавить маскарадинг для трафика eth0:

iptables -t nat -A POSTROUTING -o eth0 -s 172.16.0.0/24 -j MASQUERADE

Перезагрузить сетевые интерфейсы.

Netplan

Настройка профиля netplan в файле /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 - получение подробной информации при применении команд

Проверка конфигурационного файла на ошибки и создание файлов конфигурации для программы-обработчика:

sudo netplan --debug generate

Применение конфигурации:

sudo netplan --debug apply

Перезагрузка сетевого интерфейса

Перезагрузка сетефого интерфейса в Ubuntu:

sudo systemctl restart systemd-networkd.service

В других дистрибутивах:

sudo systemctl restart networking
sudo /etc/init.d/networking restart

Примеры netplan

Настройка сети, где enp3s0, enp8s0 и wlp3s0 - сетевые интерфейсы:

  • enp3s0 - динамическая адресация
  • enp8s0 - статическая адресация
  • wlp3s0 - беспроводное подключение
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