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등.