Необходимо применять конфигурацию netplan после каждой перезагрузки.

Вопрос или проблема

Я настроил свой Linux как маршрутизатор и точку доступа. Все работает очень хорошо, за исключением одного момента. После каждой перезагрузки мне нужно выполнять sudo netplan apply, чтобы все работало корректно. Также есть разница в результате команды ip a, которую можно увидеть после применения настроек netplan. Здесь вы можете видеть результат ip a после перезагрузки:

rdlver@rdlver1:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master br0 state DOWN group default qlen 1000
    link/ether 2c:cf:67:75:12:6d brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 2c:cf:67:75:12:6e brd ff:ff:ff:ff:ff:ff
4: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 1a:f1:3f:8c:c8:77 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global br0
       valid_lft forever preferred_lft forever

и после применения настроек netplan:

rdlver@rdlver1:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master br0 state DOWN group default qlen 1000
    link/ether 2c:cf:67:75:12:6d brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 2c:cf:67:75:12:6e brd ff:ff:ff:ff:ff:ff
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 1a:f1:3f:8c:c8:77 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::18f1:3fff:fe8c:c877/64 scope link 
       valid_lft forever preferred_lft forever

Здесь вы можете видеть файл /etc/netplan/01-netcfg.yaml, который применяется:

network:
  version: 2
  renderer: networkd
  ethernets:
    wlan0:
      dhcp4: no
    eth0:
      dhcp4: no
  bridges:
    br0:
      interfaces: [wlan0,eth0]
      dhcp4: no
      addresses:
        - 192.168.1.1/24

Обычно это применяется при запуске системы. Вот журнал загрузки, если кто-то сможет понять, что происходит:

rdlver@rdlver1:~$ journalctl -b | grep netplan
Aug 27 16:37:49 rdlver1 systemd[1]: netplan-ovs-cleanup.service - OpenVSwitch configuration for cleanup was skipped because of an unmet condition check (ConditionFileIsExecutable=/usr/bin/ovs-vsctl).
Aug 27 16:37:51 rdlver1 (udev-worker)[483]: eth0: Config file /run/systemd/network/10-netplan-eth0.link is applied to device based on potentially unpredictable interface name.
Feb 01 05:13:12 rdlver1 systemd-networkd[1035]: /run/systemd/network/10-netplan-eth0.network: DHCPv6 client is enabled but IPv6 link-local addressing is disabled. Disabling DHCPv6 client.
Feb 01 05:13:12 rdlver1 systemd-networkd[1035]: eth0: found matching network '/run/systemd/network/10-netplan-eth0.network', based on potentially unpredictable interface name.
Feb 01 05:13:12 rdlver1 systemd-networkd[1035]: eth0: Configuring with /run/systemd/network/10-netplan-eth0.network.
Feb 01 05:13:12 rdlver1 systemd-networkd[1035]: wlan0: Configuring with /run/systemd/network/10-netplan-wlan0.network.
Feb 01 05:13:12 rdlver1 systemd-networkd[1035]: br0: Configuring with /run/systemd/network/10-netplan-br0.network.
Feb 01 05:15:18 rdlver1 generate[1249]: Permissions for /etc/netplan/01-netcfg.yaml are too open. Netplan configuration should NOT be accessible by others.

Спасибо за любую помощь!

Вывод команды ip a показывает, что br0 находился в состоянии DOWN, а после применения Netplan изменился на UP.
Это может быть проблемой в вашей конфигурации Netplan, поэтому добавьте команду post-up, чтобы поднять интерфейс моста в вашей конфигурации Netplan:

network:
  version: 2
  renderer: networkd
  ethernets:
    wlan0:
      dhcp4: no
    eth0:
      dhcp4: no
  bridges:
    br0:
      interfaces: [wlan0, eth0]
      dhcp4: no
      addresses:
        - 192.168.1.1/24
      routes:
        - to: 0.0.0.0/0
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
      post-up:
        - ip link set br0 up

Затем снова примените Netplan и перезагрузите систему, чтобы проверить, решает ли это вашу проблему.

Также, согласно журналам, есть проблема с правами:

Permissions for /etc/netplan/01-netcfg.yaml are too open. Netplan configuration should NOT be accessible by others.

Конфигурационный файл Netplan не должен быть доступен другим пользователям. Чтобы решить эту проблему, введите следующую команду:

sudo chmod 600 /etc/netplan/01-netcfg.yaml

Если вышеуказанные шаги не решат проблему, вы можете создать службу systemd, чтобы обеспечить выполнение netplan apply при загрузке.

sudo vi /etc/systemd/system/netplan-apply.service

Добавьте следующее содержание:

[Unit]
Description=Apply Netplan configuration at boot
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/netplan apply

[Install]
WantedBy=multi-user.target

Затем активируйте эту службу:

sudo systemctl enable netplan-apply.service
sudo systemctl start netplan-apply.service

Ответ или решение

Проблема, с которой вы столкнулись, связана с тем, что после перезагрузки вашей Linux-машины, которую вы настроили в качестве маршрутизатора и точки доступа, необходимо повторно применять конфигурацию Netplan. Давайте разберемся с этим вопросом, учтя все предоставленные детали и сопутствующие факторы, чтобы предложить комплексное решение.

Теория

Netplan — это современный инструмент управления сетевыми настройками в дистрибутивах на базе Ubuntu. Он использует YAML-файлы для описания конфигураций сети и позволяет применять их через netplan apply. Однако, как показывает ваш случай, иногда конфигурации могут не примениться автоматически при загрузке системы. В основе вашей проблемы лежит несовершенство процесса инициализации сетевых интерфейсов и их конфигурации через Netplan.

Имеется несколько возможных причин этой проблемы:

  1. Проблемы с порядком загрузки сервисов: Некоторые сетевые интерфейсы могут быть не готовы в момент, когда Netplan пытается их настроить.

  2. Ошибки конфигурации Netplan: Возможны ошибки в самом конфигурационном файле YAML, включая несовместимости или конфликтующие настройки.

  3. Права доступа к файлу конфигурации: Журнал указывает, что права на файл /etc/netplan/01-netcfg.yaml слишком открытые, что может стать причиной проблем с безопасностью и возможностью применения конфигурации.

Пример

Ваш исходный конфигурационный файл выглядит следующим образом:

network:
  version: 2
  renderer: networkd
  ethernets:
    wlan0:
      dhcp4: no
    eth0:
      dhcp4: no
  bridges:
    br0:
      interfaces: [wlan0, eth0]
      dhcp4: no
      addresses:
        - 192.168.1.1/24

Как видно из вывода команды ip a, интерфейс br0 находится в состоянии DOWN сразу после загрузки и только после применения Netplan вручную становится UP.

Применение

Шаги для решения проблемы

  1. Проверьте и скорректируйте права доступа: Убедитесь, что ваш YAML файл имеет правильные права:

    sudo chmod 600 /etc/netplan/01-netcfg.yaml
  2. Измените конфигурацию Netplan: Добавьте секцию post-up в конфигурационный файл, чтобы принудительно поднимать интерфейс после загрузки:

    network:
     version: 2
     renderer: networkd
     ethernets:
       wlan0:
         dhcp4: no
       eth0:
         dhcp4: no
     bridges:
       br0:
         interfaces: [wlan0, eth0]
         dhcp4: no
         addresses:
           - 192.168.1.1/24
         post-up:
           - ip link set br0 up
  3. Перепроверьте порядок загрузки сервисов: Убедитесь, что другие сетевые службы и связи с ними настроены правильно, чтобы ваш интерфейс был доступен для конфигурации в нужный момент.

  4. Создание и настройка системного сервиса: Если предыдущие шаги не помогли, создайте системный сервис для принудительного применения Netplan при загрузке:

    Создайте новый файл службы:

    sudo vi /etc/systemd/system/netplan-apply.service

    Вставьте следующее содержание:

    [Unit]
    Description=Apply Netplan configuration at boot
    After=network.target
    
    [Service]
    Type=oneshot
    ExecStart=/usr/sbin/netplan apply
    
    [Install]
    WantedBy=multi-user.target

    Затем активируйте и запустите этот сервис:

    sudo systemctl enable netplan-apply.service
    sudo systemctl start netplan-apply.service

Экспериментируйте с этими методами и проверьте, будет ли проблема решена после перезагрузки системы. В случае успешного разрешения проблемы дальнейшая настройка может потребоваться для оптимизации работы и повышения устойчивости сети вашей системы. Этот подход не только решит вашу текущую проблему, но и повысит общую надежность и безопасность сетевых конфигураций.

Оцените материал
Добавить комментарий

Капча загружается...