네트워크 인터페이스 개선 - debian 12

네트워크 인터페이스 개선 - debian 12

기본 IP 1개, 추가 IP 2개, IP6 1개를 추가하려고 합니다. 이것은 다음 위치에 있는 내 인터페이스 파일입니다 /etc/network/interfaces.

source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
allow-hotplug ens192
iface ens192 inet static
        address 23.227.198.250/26
        gateway 23.227.198.194
        dns-nameservers 8.8.8.8
        dns-search deb12.domain.com
auto ens192:0
iface ens192:0 inet static
        address 23.227.198.253
        gateway 23.227.198.194
auto ens192:1
iface ens192:1 inet static
        address 23.227.198.254
        gateway 23.227.198.194
iface ens192 inet6 static
        address 2a02:748:4000:6::0199/64
        gateway 2a02:748:4000:6::1

그런 다음 다음 명령을 사용하여 네트워크를 다시 시작했습니다. 명령 출력 systemctl restart networking:

Job for networking.service failed because the control process exited with error code.
See "systemctl status networking.service" and "journalctl -xeu networking.service" for details.

그런 다음 다음과 같이 journalctl -x말하세요.

Subject: A start job for unit networking.service has begun execution
Defined-By: systemd
Support: https://www.debian.org/support
A start job for unit networking.service has begun execution.
The job identifier is 412.
ifup[2057]: RTNETLINK answers: File exists
ifup[2048]: ifup: failed to bring up ens192:1
systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Subject: Unit process exited
Defined-By: systemd
Support: https://www.debian.org/support
An ExecStart= process belonging to unit networking.service has exited.
The process' exit code is 'exited' and its exit status is 1.
systemd[1]: networking.service: Failed with result 'exit-code'.
Subject: Unit failed
Defined-By: systemd
Support: https://www.debian.org/support
The unit networking.service has entered the 'failed' state with result 'exit-code'.
systemd[1]: Failed to start networking.service - Raise network interfaces.
Subject: A start job for unit networking.service has failed
Defined-By: systemd
A start job for unit networking.service has finished with a failure.
The job identifier is 412 and the job result is failed.

출력 systemctl status networking:

 networking.service - Raise network interfaces
     Loaded: loaded (/lib/systemd/system/networking.service; enabled; preset: enabled)
     Active: failed (Result: exit-code) since Mon 2023-11-20 04:53:15 EST; 3min 15s ago
       Docs: man:interfaces(5)
    Process: 2048 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
    Process: 2074 ExecStopPost=/usr/bin/touch /run/network/restart-hotplug (code=exited, status=0/SUCCESS)
   Main PID: 2048 (code=exited, status=1/FAILURE)
        CPU: 18ms
systemd[1]: Starting networking.service - Raise network interfaces...
fup[2057]: RTNETLINK answers: File exists
ifup[2048]: ifup: failed to bring up ens192:1
systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: networking.service: Failed with result 'exit-code'.
ystemd[1]: Failed to start networking.service - Raise network interfaces.

웹에서는 이 문제에 대한 해결책을 찾을 수 없습니다. 이 문제를 해결하는 데 당신이 도움을 준다면 그것은 나에게 큰 의미가 있을 것입니다.

네트워크 파일을 다시 작성하고 오타가 있는지 확인해 보았습니다. 또한 vim은 파일의 주석을 강조 표시하지 않으므로(여기에 게시할 때 주석을 제거했습니다) OS가 파일을 인식하지 못할 수도 있다고 생각합니다. 파일 chmod합계 도 확인했는데 chown모든 것이 정상입니다.

뭔가 이상한 일이 일어나고 있습니다. 위에서 언급한 오류가 발생하더라도 로컬 네트워크에서 모든 IP(V4 및 V6)를 ping할 수 있습니다. 또한 이 서버에서 Google IPv4 및 IPv6를 핑할 수 있습니다.

답변1

단 하나기본게이트웨이:이것기본 게이트웨이는 다음 용도로 사용됩니다.이것기본 경로는 gateway제어됩니다. 네트워크 구성 도구가 동일한 메트릭 RTNETLINK answers: File exists등을 사용하여 기본 경로를 추가하려고 두 번째로 시도하면 오류가 발생합니다.

첫 번째 인스턴스를 유지하세요.

        gateway 23.227.198.194

두 개의 중복 항목을 제거합니다.

ifdown ens192참고: 인터페이스 간의 비동기화를 방지하려면 구성을 변경하기 전에 인터페이스를 종료(사용)하는 것이 가장 좋습니다.위 아래라면도구 상태와 실제 네트워크 상태입니다. 물론, 원격으로 접속(또는 재부팅)하는 경우에는 시스템에 접속하는 방법을 유지해야 합니다.


다음 정보는 문제를 해결하는 데 필요한 것은 아니며 단지 참고 사항일 뿐이므로 완전히 피할 수 있고 피해야 ens192:0하지만 ens192:1이 참고 사항은 무시할 수 있습니다.

소위 별칭 인터페이스를 사용할 이유가 없습니다. 인터페이스는 인터페이스가 아니며 추가 주소에 부착된 레이블입니다. 오늘위 아래라면사용IP 경로 2: ip link내부 ip addr가 아닌 내부적으로 ifconfig이러한 가짜 인터페이스 중 유일하게 알려진 "클라이언트"는 이전 API를 통해 처리됩니다(netdevice(7)): ifconfigLinux에서는 더 이상 사용되지 않으며 도구나 사람이 더 이상 사용해서는 안 됩니다. 이는 ip link최신 ip addr커널 API(rtnetlink(7)). 예를 들어,IPv4 주소(동일한 인터페이스의 다른 주소 대신) 이와 같은 호환성 레이블을 사용하면 다음과 같이 사용할 수 있습니다.

ip -details addr show dev ens192 label ens192:0

하지만 물론 다음과 같이 하십시오:

ip addr show dev ens192

3개의 주소가 모두 인터페이스에 표시됩니다.

구성의 모든 곳에서 합계를 제거 :0하고 .:1ens192위 아래라면평소대로 주소만 추가됩니다(라벨이 없으므로 더 이상 표시되지 않습니다 ifconfig). 또한 이것은 IPv6에 대한 유일한 방법이 될 것입니다(추가 인터페이스는 :x무시되지만). Linux의 소위 별칭 인터페이스는 IPv6가 아닌 IPv4에 대한 해결 방법이기 때문입니다. IPv6에는 전혀 필요하지 않기 때문입니다( ifconfigIPv6의 경우 add대신 에 다른 문법 del).

관련 정보