ubuntu22 dhcp ip 할당 실패

Cute_Security15·2024년 9월 13일
0

설정

목록 보기
23/29

상황

오랜만에 부팅한 ubuntu22 vm 에서 dhcp ip 할당이 실패되고 있다.
"ERROR:Unknown state for interface NetworkctlListState"

결론

2가지 상황이 중첩되어 발생한 문제였다.

  • networkd 서비스 파일을 찾지 못해서, 부팅시 서비스를 올리지 못한 상황
  • 모종의 이유로, ens33 인터페이스의 carrier (물리 연결) 가 끊겨있었다

초기전략

정보를 좀더 모으고,
컨텍스트에서 해답을 분리할 필요가 있어 보인다.

(단순히 'a니까 b이다' 이런 느낌으로 접근하면, 다양한 ip 할당실패 케이스들에 압도되어,
필요한 생각을 만들어 내는데 방해가 될거란 생각이 들었다.)

내 상황과 100% 일치하는게 내 지금 생각, 내 지금 언어로 형편좋게 적혀있을꺼라는 생각을
의식적으로 멀리해야, 생각 키우기에 도움이 될것 같았다.

확인과정

networkd 서비스 유닛

이전에 비슷한 문제가 있었어서, 그때 분석문서를 참고하여 networkd 서비스 유닛 상태를 체크

올라가 있지 않은걸 확인

ubuntu22@ubuntu22-virtual-machine:~$ systemctl list-unit-files | grep enabled | grep networkd
UNIT FILE STATE VENDOR PRESET
....
networkd-dispatcher.service enabled enabled
systemd-networkd.service disabled enabled <-- !!
systemd-networkd.socket disabled enabled <-- !!
ubuntu22@ubuntu22-virtual-machine:~$

아래 명령으로 심볼릭 링크를 만들어준다
systemctl enable systemd-networkd.socket
systemctl enable systemd-networkd.service

root@user-virtual-machine:/mnt/hgfs/shared# systemctl enable systemd-networkd.socket
Created symlink /etc/systemd/system/sockets.target.wants/systemd-networkd.socket → /lib/systemd/system/systemd-networkd.socket.
root@user-virtual-machine:/mnt/hgfs/shared# systemctl enable systemd-networkd.service
Created symlink /etc/systemd/system/dbus-org.freedesktop.network1.service → /lib/systemd/system/systemd-networkd.service.
Created symlink /etc/systemd/system/multi-user.target.wants/systemd-networkd.service → /lib/systemd/system/systemd-networkd.service.
Created symlink /etc/systemd/system/sysinit.target.wants/systemd-network-generator.service → /lib/systemd/system/systemd-network-generator.service.
Created symlink /etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service → /lib/systemd/system/systemd-networkd-wait-online.service.
root@user-virtual-machine:/mnt/hgfs/shared# 

이후 ERROR:Unknown state for interface NetworkctlListState 에러는 사라졌으나

dhcp ip 를 받아오지 못하고 있었고, systemd-networkd 에서 기본정보 query 를 해보니
ens33 인터페이스가 no-carrier / unmanaged 상태로 떠있는걸 확인하였다.

root@user-virtual-machine:/usr/lib/systemd/system# networkctl
IDX LINK    TYPE     OPERATIONAL SETUP    
  1 lo      loopback carrier     unmanaged
  2 ens33   ether    no-carrier  unmanaged
  3 docker0 bridge   no-carrier  unmanaged

3 links listed.
root@user-virtual-machine:/usr/lib/systemd/system# 

처음 생각

ens33 인터페이스 파일 설정이 잘못되어서, unmanaged 가 된거라고 생각했고,
아래 작업들을 시도하며 생각을 보완해갔다

nmcli -f NAME,UUID,FILENAME connection

파일위치에 대해 여러가지 이야기가 많은데, 위 명령으로 파일위치를 확인하였다.

  • /run/NetworkManager/system-connections/Wired connection 1.nmconnection

설정파일을 확인 --> 몇개 시도해봤지만, 크게 느낌이 오진 않았고, 다른 부분을 생각

기존 인터페이스 파일을 실수로 삭제, 삭제한 김에 새로 만들기로 해봄

nmcli 로 만들고 up 하면, device ens33 not available because device has no carrier 에러를 확인

내가 모르는 설정들이 있는지 체크해보고 싶은 마음이 들었고, nmtui 로 다시 시도
--> 동일하게 no carrier 에러를 확인하였음, 뭔가 ens33 디바이스에 문제가 있다는 느낌이 듬

vmware workstation 에서 device disconnect 후 connect

  • 큰 변화는 확인되지 않음

journalctl --system -f 로 device connect 시 특별한 에러로그가 올라오는지도 체크

  • 로그없이 깔끔한걸 확인,

ethtool 을 사용해 speed 와 duplex 를 unknown / unknown 에서 100 / full 로 변경

이후 dhclient ens33 을 해보았으나, hang 상태인거 확인

뭔가 ens33 인터페이스가 이상하긴한데, 설정파일 문제는 아닌것 같다는 느낌이 조금씩 축적

nat 네트워크 gateway 가 안되어 있어서, dhclient 가 실패된다고 생각

gateway 를 확인해보니, 안되어 있는걸 확인

gateway 설정 시도하였으나, gateway 가 붙지않는걸 확인

--> ip 가 있어야 한다는 걸까, 조금 의아한 느낌

ip route add default via 192.168.171.2 dev ens33 시도

새로운 에러, Error: Nexthop has invalid gateway

ip route man 페이지를 확인하여도, 딱히 명령이 잘못된것 같아보이진 않는다.

/// man ip route

       ip route add default via 192.168.1.1 dev eth0
           Adds a default route (for all addresses) via the local gateway 192.168.1.1 that can be reached on device eth0.

no-carrier 에 대해

ubuntu22 에서 no-carrier 문제가 있을때, 답변자들이 어떤 생각으로, 어떤 확인을 요청하는지 보기로 함. 주로 ping 을 외부로 보내라고 하는데 나도 Network unreachable 로 뜨는걸 확인했고, 이는 예상한 결과였음

그런데, 큰 기대하지 않고, 요청대로 Setttings - Network - Wired 를 봤는데
"Cable unplugged" 인걸 확인

Cable unplugged

Cable unplugged 를 검색하고, 2015년에 어떤 분이 작성해주신 글을 확인하고,

vmware workstation 의 virtual network manager 에서 restore defaults 를 수행.
드라이버 삭제 팝업이랑, 설치 팝업이 뜨는걸 확인. 이후 vmware 를 power on

ens33 carrier 도 잡혔고, dhcp ip 할당도 성공적으로 된걸 확인

마지막 확인

ssh 연결이 잘붙는걸 확인하고 이슈 종료

profile
관심분야 : Filesystem, Data structure, user/kernel IPC

1개의 댓글