읽다https://wiki.archlinux.org/title/Network_configuration나는 여러 번 단순해 보이는 이 작업을 수행하면서 여전히 어려움을 겪고 있었습니다.
한 시스템에서는 파일을 생성하여 완벽하게 작동했습니다.
/etc/systemd/network/eth0.network
다음 콘텐츠가 포함되어 있습니다:
[Match]
Name=eth0
[Network]
Address=192.168.1.200/24
Gateway=192.168.1.1
DNS=192.168.1.1
하지만 eth0을 사용하므로 설정은 eth0에만 적용됩니다.
업데이트하고 재부팅한 후 eth0의 이름이 갑자기 enu1u1로 바뀌었습니다.
모니터나 키보드가 연결되지 않은 시스템에서는 이것이 갑자기 불가능해집니다.
이제 enu1u1.network 파일이 있고 다시 작동하며 재부팅 후에도 계속 작동합니다.
이 문제를 처리하는 올바른 방법은 무엇입니까? 이를 위해 udev 규칙을 만들어야 합니까? 내가 만든 이 규칙을 덮어쓰고 다시 원점으로 돌아가는 시스템 업데이트는 무엇입니까?
매우 간단한 설정이 있습니다.
시스템에는 이더넷 인터페이스가 있고 앞으로도 그럴 것입니다.
이것이 내가 원하는거야:
나는 이 이더넷 인터페이스가 항상 IP 192.168.1.200을 얻길 원합니다.
이 작업을 수행하고 업데이트 및 재부팅 후에도 지속되도록 하려면 어떻게 해야 합니까?
내 생각은 udev를 사용하고 잘 일치하도록 충분한 규칙을 만든 다음 업데이트를 수용할 수 있도록 udev 규칙 파일을 변경할 수 없게 만드는 것입니다. 그러나 그럼에도 불구하고 나는 완전히 안전하다고 느끼지 않았습니다. 내가 인식하지 못하는 일부 네트워크 관리자가 활성화되거나 기본적으로 설치되어 이제 고정 IP를 무시하고 DHCP를 사용하려는 경우 어떻게 됩니까?
요컨대 지금은 고정 IP를 설정하는 것이 매우 혼란스럽다고 생각합니다. 나는 아마도 이 작업을 수행하는 적절한 방법을 모르기 때문에 나이가 들고 시스템을 남용하고 있을 것입니다.
편집할 수 있는 간단한 RC 파일을 원합니다. DHCP=no, IP=...만 지정하면 항상 작동합니다.
답변1
v197부터 systemd/udev
배포됨"모든 로컬 인터페이스에 대한 예측 가능하고 안정적인 로컬 인터페이스 이름". systemd.io 릴리스 보기예측 가능한 네트워크 인터페이스 이름.
아치에서는 할 수 있습니다레거시 인터페이스 이름으로 되돌리기udev
마스킹 규칙을 통해 예측 가능한 인터페이스 이름을 비활성화합니다 .
# ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
또는 net.ifnames=0
추가커널 매개변수.
답변2
enu1u1
systemd 197에 도입된 "예측 가능한" 인터페이스 이름은 다음과 같습니다.https://systemd.io/PREDICTABLE_INTERFACE_NAMES/
이전 명명 방식(eth0, eth1...)은 커널이 인터페이스를 탐색하는 순서에 크게 의존하기 때문에 이 새로운 명명 방식을 고수하는 것이 좋습니다. 살아남은 업데이트와 재부팅에 관심이 있으므로 예측 가능한 이 새로운 이름이 올바른 선택입니다(그리고 이미 구성했습니다).