네트워크 인터페이스 측면에서 systemd는 어떻게 작동합니까?

네트워크 인터페이스 측면에서 systemd는 어떻게 작동합니까?

Systemd는 네트워크 인터페이스 이름을 eth0에서 enp0s25로 변경하는 것으로 알려져 있는데, 이를 "예측 가능한 네트워크 인터페이스 이름"이라고 합니다.

내 시스템에서는 eth0을 "enp0s31f6"이라고 합니다.

이런 말을 해서 미안하지만 나도 이 사용자의 말에 동의한다."나는 '예측 가능'이라는 단어가 아이러니하다고 생각하지 않습니다." https://askubuntu.com/questions/704361/why-is-my-network-interface-named-enp0s25-instead-of-eth0

주제로 돌아가기:

내 시스템(물리적 PCI 이더넷 어댑터가 있는 Debian 9.8)에서 갑자기 DHCP가 더 이상 작동하지 않는 것을 발견했습니다.

IP를 얻으려면 dhclient를 수동으로 실행해야 합니다.

그런 다음 /etc/network/interfaces를 보고 다음을 확인했습니다.

auto eth0
iface eth0 inet dhcp

이것은 enp0s31f6이 아니어야합니까?

하지만 거기에 무엇을 넣어야 할지 어떻게 알 수 있으며, 예를 들어 이더넷 PCI 카드를 다른 슬롯으로 옮기는 등 다시 변경되면 어떻게 됩니까?

이 파일을 수동으로 편집하고 systemd가 내 인터페이스를 호출하기로 결정한 항목으로 eth0을 변경해야 합니까?

확실히 나는 systemd의 작동 방식, 데비안의 작동 방식, 예측 가능한 네트워크 인터페이스의 작동 방식에 대한 몇 가지 중요한 정보를 놓쳤음에 틀림없습니다. 어쩌면 이것들의 조합일 수도 있습니다.

/etc/network/interfaces에서 추상 네트워크 인터페이스를 참조해야 합니까? 일부 추상 문자열은 항상 "첫 번째 네트워크 인터페이스 카드"를 의미합니다(단지 eth0이 아닌가요?). 아니면 일부 UID로? PCI 도메인:버스:장치를 통해?

매우 혼란스럽습니다. 많은 문서에서 제가 생각하는 레거시 스크립트, 최신 시스템을 언급하고 있으며, 많은 배포판은 레거시 스크립트와 시스템 기능의 조합을 사용하는 것 같아서 마스터하기 어렵습니다.

질문:

  • 왜 작동이 멈췄나요?

  • 내가 뭘 잘못했나요?

  • 왜 이런거야?한 번데비안이 체계적이고 예측 가능한 네트워크 인터페이스를 사용할 때 /etc/network/interfaces의 eth0은 무엇입니까?

  • 이 문제를 해결하는 올바른 방법은 무엇입니까?

답변1

왜 작동이 멈췄나요? 내가 뭘 잘못했나요?

"갑자기" 무슨 일이 일어났는지 말하기는 어렵습니다. DHCP 작동이 중지되기 전후의 DHCP 로그를 살펴보면 /var/log/syslog답을 찾을 수 있습니다 . /var/log/messages에서 수정 시간도 확인하세요 stat /etc/network/interfaces.

/etc/network/interfaces데비안이 체계적이고 예측 가능한 네트워크 인터페이스를 사용할 때 내 eth0이 나타나는 이유는 무엇입니까?

이것은새로운 기본값데비안 확장 이후. 이전에 시스템을 설치했고 시스템이 /etc/network/interfacesjessie(또는 wheezy...)에서 시작된 경우 netcfg이전 명명 체계를 사용하여 설치 프로그램( )에 의해 생성되었습니다.

이 문제를 해결하는 올바른 방법은 무엇입니까?

당신에게 가장 적합한 것이 무엇이든.

  • 이 시스템에 여러 이더넷 인터페이스를 갖고 싶다면 이를 구별하는 방법을 고려하십시오. ethX 순서는 불안정하거나 예측할 수 없다는 점을 명심하세요.예측 가능한 네트워크 인터페이스 이름다양한 옵션이 제공되므로 사용 사례에 따라 선택하세요.

  • 기계에 이더넷 인터페이스가 하나만 있는 경우 다음을 수행할 수 있습니다.

    • 항상 eth0인 커널 이름을 다시 사용하십시오. (위 페이지에는 몇 가지 옵션이 있습니다. 제가 가장 좋아하는 옵션은 입니다 ln -s /dev/null /etc/systemd/network/99-default.link. 나중에 rebuild initramfs를 사용하는 것을 잊지 마세요 update-initramfs -u.)
    • 아니면 인터페이스 이름에 신경쓰지 말고 /etc/network/interfaces완전히 포기하고 모든 구성이 일치하는 systemd-networkd로 전환하세요.
[Network]
DHCP=ipv4

in /etc/systemd/network/dhcp.network(파일 이름 선택). 죄송합니다. 들여쓰기를 제대로 할 수 없습니다...

관련 정보