Netplan은 시작시 적용되지 않습니다


13

vmware 가상 머신에 최신 업데이트로 Ubuntu 17.10을 설치했습니다. Netplan이 2 개의 이더넷을 구성하지 않습니다.

여기 내 /etc/netplan/01-netcfg.yaml이 있습니다.

network:
  version: 2
  renderer: networkd
  ethernets:
    lan:
      match:
        macaddress: 00:12:34:a8:29:e8
      set-name: lan
      dhcp4: false
      dhcp6: false
      accept-ra: false
      addresses:
        - 10.10.0.48/24
        - 1701:5740:5000:3301::48/64

    failover:
      match:
        macaddress: 00:45:57:89:27:e8
      set-name: failover
      dhcp4: false
      dhcp6: false
      accept-ra: false
      addresses:
        - 17.25.111.30/27
        - 1701:5740:5000:3300::30/64
      gateway4: 17.25.111.1
      gateway6: 1701:5740:5000:3300::1

      nameservers:
        search:
          - example.at
          - intern.example.at
        addresses:
          - 10.10.0.1
          - 1701:5740::66

eth0과 같은 예측 가능한 장치로 다시 전환했으며 부팅 후 모든 장치의 이름이 올바르게 지정되었지만 구성되지 않았습니다.

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
       valid_lft forever preferred_lft forever
2: lan: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:12:34:a8:29:e8 brd ff:ff:ff:ff:ff:ff
3: failover: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:45:57:89:27:e8 brd ff:ff:ff:ff:ff:ff

로그인 및 실행 후 systemctl restart 시스템으로 연결된 장치가 구성됩니다. netplan apply 도 작업을 수행합니다.

systemd-networkd.service 및 systemd-networkd.timer로 많은 일을했지만 아무것도 도움이되지 않았습니다.

재부팅 할 때마다 네트워크를 수동으로 설정하는 것은 상당히 실망 스럽습니다. 누구든지 이것을 해결하는 방법을 알고 있습니까?


2
부팅시 / run / systemd / network 및 / run / systemd / netif의 내용은 무엇입니까?
slangasek

netplan 0.36.3으로 Bionic에서 수정되었습니다. 테스트하고 알려주시겠습니까?
dja

2
나는 18.04를 사용하고 동일한 문제에 직면하고 있습니다. 해결책이 있습니까?
gtzinos

답변:


3

LP를 쳤다고 생각합니다 : # 1770082- "시스템 네트워크로 부팅 할 때 장치 이름을 바꾸지 않습니다".

로 기본적으로 시스템이 부팅 될 때, 네트워크 장치는 올 것이다 eth0/ eth1순서는 예측할 수없는 등 udev에이 같은 것들에 대한 장치 이름을 변경 있도록, ens3또는 enp2s0부츠의 initrd를 단계에있다. (의 출력을 grepping하여 이것을 볼 수 있어야합니다 dmesg.)

당신은이 set-name당신의 netplan YAML의 연을. 나중에 부팅 set-name하면 시스템 링크 파일 에서 이름 변경 규칙 을 생성하며 ,이 규칙은 udev에서 읽습니다. 그러나 링크 파일은 장치 이름이 이미 바뀐 경우 장치 이름을 바꾸지 않습니다. 귀하의 경우, 장치는 아마도 initrd에서 초기에 이름이 변경 되었기 때문에 이름이 변경되지 않습니다.

이것에 대해 systemd ( 문제 # 9006- "udev : 링크 파일의 인터페이스 이름이 적용되지 않았습니다")에 대한 버그를 열었습니다 . 또한 netplan ( PR # 31- "장치 이름을 바꾸기 위해 udev 규칙 파일 생성")에 대한 변경을 제안했습니다. 이 규칙을 사용하면 장치가있는 경우에도 규칙 파일이 적용되므로 링크 된 파일뿐만 아니라 시스템 규칙 파일도 생성됩니다. 이미 이름이 변경되었습니다.

이 문제를 해결 net.ifnames=0하려면 커널 명령 줄에서 부팅하십시오 . 장기적인 해결책을 위해, 넷 플랜에 대한 나의 변경 사항은 Bionic으로 백 포트되어 다음 달쯤에 출시 될 것으로 예상됩니다.


이것은 이제 netplan 0.36.3으로 수정되었습니다.
dja

이것은 2018-09-17에 제안 된 백 포트 업데이트 및 보안을 포함하여 최신 Ubuntu 18.04.1에서 나를 해결했습니다. 나는 set-name지금 지시문을 비활성화하고 net.ifnames=0커널 cmdline을 시도하지 않았습니다 . 로 set-name장치 이름이 바뀌었지만 표시되지 않았습니다.
TheJJ

2

우분투 18.04에서 정확히 같은 문제가 있지만 R. Pietsch의 솔루션으로는 해결되지 않습니다 :(

sudo crontab -e
@reboot /usr/sbin/netplan apply

또한 루트 사용자를 활성화하려고 시도했지만 우분투에서는 기본적으로 비활성화되어 있지만 운이 없습니다.

연결을 얻는 유일한 방법은 다음과 같습니다.

  1. 자체 키보드를 사용하여 머신에 로그인하십시오.
  2. "sudo netplan apply"유형;
  3. 그런 다음 마침내 컴퓨터에 SSH를 사용할 수 있습니다.

"sudo netplan apply"를 사용하지 않으면 컴퓨터에 연결되지 않은 것입니다. 이렇게 깨진 소프트웨어 조각을 LTS 릴리스에 넣는 방법은 무엇입니까?

시나리오에 대한 자세한 내용을 추가하고 싶습니다. 다른 사람들이 우리가 이야기하고있는 현상을 인식하는 데 유용합니다. 이것이 내 경우에 일어난 일입니다.

  • netinstall을 사용하여 Intel NUC에 Ubuntu 18.04를 설치했습니다.
  • 무선 연결시 고정 IP 주소를 얻도록 netplan YAML 파일을 구성했습니다.
  • "sudo netplan apply"로 적용했습니다.
  • NUC를 재부팅했습니다.
  • Windows 컴퓨터에서 "ping -t"를 시작했습니다.
  • 다시 시작되면 NUC는 LXDE 로그인 프롬프트를 표시했습니다.
  • 이때 Ping에 따라 NUC에 연결할 수 없었습니다.
  • 로그인 한 후 "sudo netplan apply"를 입력하고 몇 초 후에 연결할 수있게되었습니다.

netplan은 / etc / network / interfaces에 비해 개선 된 것으로 생각되지만 가능한 빨리 수정해야합니다. :)

최신 정보:

다음 명령을 사용하여 문제를 디버깅했습니다.

$ journalctl --no-pager -lu systemd-networkd
$ networkctl

LXDE의 네트워크 관리자 패널이이를 방해하는 것 같습니다. 연결이 "관리되지 않음"으로 표시 되더라도 "네트워킹 사용"의 선택을 해제했는데 문제가 해결 된 것 같습니다.

우리는 이것을 닫을 수 있습니다 :)


2

이제 우분투 18.04로 시도 했으며이 버그가 수정되었다고 생각합니다.
그것은 지금 나를 위해 작동합니다.


netplan 0.36.3으로 수정되어야합니다.
dja

1
아니, 내가 바로 오늘 그것을 가지고
다리오 FUMAGALLI

그리고 ... 오늘날, 나는 새로 업데이트 된 Ubuntu 18.04 서버를 가지고 있는데 이것은 여전히 ​​발생합니다!
Dario Fumagalli

0

삽입 하여이 문제를 해결했습니다.

@reboot /usr/sbin/netplan apply

루트의 crontab에. 문제에 대한 실제 해결책은 아니지만 해결 방법으로 해결했습니다.


0

우분투 18.04에서 netplan도 ​​나에게 아주 새롭습니다 . 파일 을 만들고 실행 하는 지침 을 따라 다시 부팅하면 연결이 끊어졌습니다./etc/netplan/01-netcfg.yamlsudo netplan apply

수동으로 실행 sudo netplan apply하면 다시 작동합니다. 그러나 그것은 성가신 일이었습니다.

필자의 경우 해결책은 /etc/network/interfaces모든 enp0 ** 스탠자 를 편집 하고 주석 처리하는 것입니다 (시스템에서 호출되는 방법을 확인하십시오).

그런 다음 재부팅하십시오.

기본적으로 / etc / nwtwork / interfaces의 이전 구성은 netplan과 충돌했습니다.


1
이 질문에 대답하지 않습니다.
토마스 워드

0

이벤트를 다시 트리거해야하는 문제가있었습니다. 기본적으로 netplan은 모든 구성을 올바르게 수행했지만 네트워크 연결은 무시했습니다. "netplan apply"로 장치를 다시 연결하면 문제가 해결됩니다.

따라서 일부 솔루션은 다음과 같습니다.

$ echo virtio0 | sudo tee /sys/bus/virtio/drivers/virtio_net/virtio0/driver/unbind
$ echo virtio0 | sudo tee /sys/bus/virtio/drivers/virtio_net/bind
(or other devices / drivers in your case)

아마도 이것은이 문제를 찾는 데 도움이 될 것입니다.

나는 이것이 실제로 내가 제기 버그라고 생각하기 때문에 이 버그를 그것에 대해.


0

더 나은 대답은 netplan이 수정 될 때까지 ifupdown으로 돌아갑니다. sudo apt install ifupdown 그런 다음 sudo nano / etc / network / interfaces 인터페이스를 구성하십시오.

자동 enp3s0 iface enp3s0 inet 정적 주소 192.168.1.100 넷 마스크 255.255.255.0 네트워크 192.168.1.0 브로드 캐스트 192.168.1.255 게이트웨이 192.168.1.11.2 dns-nameservers 192.168.1.0,8.8.8.8

LTS 서버 릴리스에서 이것을 구현 한 사람은 분명히 테스트하지 않았습니다.


0

이것은 지속적인 문제이므로이 문제를 해결하는 또 다른 방법이 있습니다.

부팅 후 시스템 타이머를 작성하고 네트워크 스테 팅을 적용하십시오.

다음은 스크립트입니다 : check_network. 인터페이스 ens32를 사용자 인터페이스로 교체해야합니다.

#!/bin/bash
#
CMD="$(ip address | egrep -c "^[\s\t]*inet .* ens32$")"
if [ ${CMD} -eq "0" ]
then
   echo "check network not configured, configuring now..." | systemd-cat -p info
   netplan apply
else
   echo "check network ok" | systemd-cat -p info
fi

이것은 서비스 단위 check_network.service입니다.

[Unit]
Description=check if netplan configured network

[Service]
ExecStart=/root/jobs/check_network

[Install]
WantedBy=multi-user.target

그리고 이것은 시스템 타이머 타이머 check_network.timer입니다. 부팅 후 30 초 후

[Unit]
Description=check_network timer

[Timer]
OnBootSec=30s
OnUnitActiveSec=3600s
Persistent=true
Unit=check_network.service

[Install]
WantedBy=timers.target

check_network를 / root / jobs에 복사하십시오

check_network.service를 / etc / systemd / system에 복사하십시오.

check_network.timer를 / etc / systemd / system에 복사하십시오

그런 다음 서비스 및 타이머를 활성화하십시오.

systemctl enable check_network.service
systemctl enable check_network.timer

0

18.04.1의 netplan 사용자 네트워크 재시작시 netplan 구성을 읽었다 고 가정합니다. systemctl이 알고있는 10 개의 서로 다른 네트워크 서비스가 있기 때문에 이는 그 자체로는 약간의 문제였습니다. 그들 중 어느 것도 원하는 결과를 얻지 못했기 때문에 전체 시스템을 재부팅했습니다. 아무 소용이 없습니다. 결국 'netplan apply'가 여기에서 구문 오류를 적용 할뿐만 아니라 표시하는 데 도움이된다는 것을 알게되었습니다. 따라서 변경 후 netplan 적용을 수행 한 다음 완료된 것으로 보입니다. 이것은 내가 그리워하지 않는 한 수동으로 설명되어 있지 않으므로 나 같은 다른 가난한 작은 벌레를 위해 여기에 포함시킵니다.


0

/ etc / netplan 파일의 모든 것은 cloud-init 항목에 의해 생성됩니다 (기술 용어).

/etc/netplan/*.yaml 파일을 편집 할 때와 동일하게 /etc/cloud/cloud.cfg/50-curtin-networking.cfg를 편집하십시오.

그런 다음 cloud-init clean cloud-init init sudo netplan apply를 실행하십시오.

netplan으로 wifi를 포기하고 ifupdown으로 돌아갔습니다. netplan 으로이 작업을 수행하려는 사람에게 행운을 빕니다. 우분투는 ifupdown을 완전히 버리지 않고 클라우드 초기화를 완전히 지원하지 않았을 때 18.04에 실제로 망쳤습니다. :( 어쩌면 19.04에 상황이 나아질 것입니다. 위의 정보가 누군가를 돕기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.