가상 NIC: "SIOCSIFFLAGS: 요청한 주소를 할당할 수 없습니다"가 생성되었지만 생성됨

가상 NIC: "SIOCSIFFLAGS: 요청한 주소를 할당할 수 없습니다"가 생성되었지만 생성됨

Linux 시스템(사용자 정의 배포, Debian 기반)의 물리적 네트워크 카드에 가상 네트워크 어댑터를 생성하는 겉으로는 간단해 보이는 작업에 약간의 문제가 있습니다.

내가 달리면

ifconfig eth0:1 10.50.55.130 netmask 255.255.255.0

모든 것이 잘 진행되었습니다. 가상 네트워크 카드가 자동으로 추가되고 에 의해 올바르게 표시되었습니다 ifconfig.

이 가상 네트워크 카드의 정의가 여기에 표시되기를 원합니다 /etc/network/interfaces. 다음 섹션을 추가했습니다.

# virtual NIC
# auto eth0:1
iface eth0:1 inet static
    address 10.50.55.130
    netmask 255.255.255.0

첫 번째 줄은 주석 처리되었습니다. 지금까지는 시스템이 네트워크 인터페이스를 자동으로 시작하는 데 관심이 없었기 때문입니다.

모든 것이 괜찮아 보입니다.

하지만 실행하면 ifup eth0:1알 수 있습니다 SIOCSIFFLAGS: Cannot assign requested address.

정말 이해할 수 없는 것은 가상 네트워크 카드가 실제로 생성된다는 것입니다. 이것이 출력입니다 ifconfig.

can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-                        00-00-00  
      UP RUNNING NOARP  MTU:16  Metric:1
      RX packets:1206446 errors:0 dropped:0 overruns:0 frame:0
      TX packets:193280 errors:0 dropped:12 overruns:0 carrier:12
      collisions:0 txqueuelen:10 
      RX bytes:7645126 (7.2 MiB)  TX bytes:1393003 (1.3 MiB)
      Interrupt:68 

can1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
      UP RUNNING NOARP  MTU:16  Metric:1
      RX packets:299171 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:10 
      RX bytes:2393368 (2.2 MiB)  TX bytes:0 (0.0 B)
      Interrupt:71 

eth0      Link encap:Ethernet  HWaddr 98:5d:ad:c2:30:30  
      inet addr:10.90.100.43  Bcast:0.0.0.0  Mask:255.255.248.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:1560275 errors:0 dropped:1 overruns:0 frame:0
      TX packets:790 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:96964255 (92.4 MiB)  TX bytes:176882 (172.7 KiB)
      Interrupt:56 

eth0:1    Link encap:Ethernet  HWaddr 98:5d:ad:c2:30:30 
      inet addr:10.50.55.130  Bcast:10.50.55.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      Interrupt:56 

eth1      Link encap:Ethernet  HWaddr 98:5d:ad:c2:30:32  
      inet addr:169.254.8.141  Bcast:169.254.255.255  Mask:255.255.0.0
      UP BROADCAST MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:65536  Metric:1
      RX packets:140932 errors:0 dropped:0 overruns:0 frame:0
      TX packets:140932 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:8522761 (8.1 MiB)  TX bytes:8522761 (8.1 MiB)

이 오류가 발생하는 이유는 무엇입니까? 아니면... NIC를 만드는 이유는 무엇입니까?

ifup -f eth0:1강제 옵션을 사용하여 호출하면 오류 메시지가 표시되지 않고 가상 네트워크 어댑터가 정상적으로 시작된다는 점을 추가해야 합니다 .

답변1

ifconfig이제 쓸모없는 것으로 간주됩니다. 대신 도구를 사용해 보세요 ip. 모든 최신 배포판은 이를 지원해야 하며 이는 iproute도구 세트의 일부입니다.

인터페이스에 추가 IP 주소만 추가하려면 다음 명령을 사용하십시오.

ip addr add 10.50.55.130/24 dev eth0

귀하의 질문에 대한 Johan Myréen의 의견에 동의합니다.

답변2

명령줄 방법 외에도 Debian 기반 시스템에서 선호하는 방법은 네트워크 구성 파일을 사용하는 것입니다.

별칭 방법은 다음 순서를 사용하는 것을 선호합니다. eth0, eth:0:0, eth0:1,...

따라서 시스템의 첫 번째 별칭은 eth0:0입니다. 시스템 재부팅 시에도 이 별칭을 유지하려면 /etc/network/interfaces.d/eth0다음 내용이 포함된 파일을 생성하세요.

auto eth0:0
allow-hotplug eth0:0
iface eth0:0 inet static
      address 10.50.55.130/24

또는 파일을 직접 편집할 수도 있지만 /etc/network/interfaces자동으로 덮어쓸 수 있으므로 권장되지 않습니다.

핵심은 슬래시 서브넷과 더 이상 netmask키워드가 없는 주소 형식을 사용하는 것입니다.address 10.50.55.130/24

물론

service networking restart

테스트 구성. 그런 다음 다음 명령으로 확인하십시오.

service networking status

그리고

ip address

주석에서 언급한 것처럼 인터페이스의 실제 이름은 무엇이든 될 수 있으므로 ip addr명령을 사용하여 인터페이스 이름을 확인하고 해당 이름을 사용하고 수정하는 :0등의 작업 을 수행해야 합니다.enp3s0f0:0그리고enp3s0f0:1등.

관련 정보