별칭을 다운하면 기본 인터페이스가 제거되는 이유는 무엇입니까?

별칭을 다운하면 기본 인터페이스가 제거되는 이유는 무엇입니까?

내 컴퓨터에 인터페이스 eth0이 정의되어 있고 이와 관련된 별칭 eth0: 1이 있습니다.

# ifconfig
eth0      Link encap:Ethernet  HWaddr X:5D:X:3F:X:89  
          inet addr:X.X.0.156  Bcast:0.0.0.0  Mask:X.X.X.X
          inet6 addr: X::9a5d:X:fe3f:X/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:677 errors:0 dropped:0 overruns:0 frame:0
          TX packets:180 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:56767 (55.4 KiB)  TX bytes:16019 (15.6 KiB)
          Interrupt:175 

eth0:1    Link encap:Ethernet  HWaddr X:5D:X:3F:X:89   
          inet addr:X.X.0.181  Bcast:0.0.0.0  Mask:X.X.X.X
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:175 

하지만 아래 명령을 사용하여 별칭을 비활성화하려는 경우 eth0도 삭제됩니다.

/sbin/ifdown eth0:1

왜 이런 일이 발생합니까?

반면에 명령을 사용하여 별칭을 비활성화하려고 하면 작동하여 스스로 제거됩니다.

ifconfig eth0:1 down

그런데 다시 별칭을 복원하면 아래와 같은 상황이 됩니다.

# /sbin/ifup eth0:1
ifup: interface eth0:1 already configured
# /sbin/ifdown eth0:1
# /sbin/ifup eth0:1

# ifconfig 
eth0      Link encap:Ethernet  HWaddr X:5D:X:3F:X:89  
          inet6 addr: X::9a5d:X:fe3f:X/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1321 errors:0 dropped:0 overruns:0 frame:0
          TX packets:235 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:111766 (109.1 KiB)  TX bytes:20421 (19.9 KiB)
          Interrupt:175 

eth0:1    Link encap:Ethernet  HWaddr X:5D:X:3F:X:89   
          inet addr:X.X.0.181  Bcast:0.0.0.0  Mask:X.X.X.X
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:175 

Eth0은 IP 주소와 설정을 잃습니다. 별칭을 개별적으로 삭제하고 설정할 수 없는 이유는 무엇입니까?

/etc/network/interfaces 파일에는 eth0 및 eth0: 1이 정의되어 있습니다.

# cat /etc/network/interfaces
auto eth0
iface eth0 inet static
    address X.X.0.156
    netmask X.X.X.X
    gateway X.X.0.1

auto eth0:1
iface eth0:1 inet static
    address X.X.0.181
    netmask X.X.X.X

답변1

서브넷 마스크가 동일하다고 가정합니다.

적어도 Linux 커널 4.19에는 관찰과 관련된 버그가 있습니다. 동일한 서브넷에 있는 2개의 IP 주소를 하나의 인터페이스에 추가하고 첫 번째 주소를 삭제하면 두 주소가 모두 삭제됩니다.

    ifconfig eth0 1.1.1.1/24
    ifconfig eth0:2 1.1.1.2/24
    ifconfig eth0 0

그러나 하나의 인터페이스에 동일한 서브넷의 IP 주소 2개를 갖는 것은 여전히 ​​잘못된 구성이라는 점을 기억하십시오. 두 IP 주소를 모두 수신하지만 응답 IP 주소는 지정되지 않습니다. 이 구성은 일시적으로만 사용하십시오. Linux 커널 5.10은 이 상황에서 올바른 IP 주소를 삭제합니다.

관련 정보