물리적 어댑터가없는 머신에서 가상 이더넷 인터페이스를 작성하려면 어떻게해야합니까?


68

Wi-Fi는 있지만 물리적 이더넷 닉은 없지만 (wlan0, eth0은 없음) Dell XPS 13 울트라 북이 있습니다. NFS와 함께 Vagrant를 사용하기 위해 가상 어댑터를 만들어야하지만으로 일반적인 ifup eth0:1...실패를 발견하고 ignoring unknown interface eth0:1=eth0:1있습니다. 에 대한 가상 인터페이스를 만들려고했지만 wlan0동일한 결과를 받았습니다.

물리적 인터페이스없이이 머신에서 가상 인터페이스를 작성하려면 어떻게해야합니까?


우선 wlan0에서 사용중인 드라이버가 앨리어싱을 지원하는지 확인하십시오. 그것은 가상 인터페이스가 사용하는 다른 이름입니다. 내 A를 통해이 Q에 대한 방법을 확인하십시오 : unix.stackexchange.com/questions/108396/… . BTW는 물리적 장치가 없으면 eth0에 대한 별칭을 만들 수 없습니다.
slm

다음 ip명령을 사용하여 IP를 추가 할 수도 있습니다 . xmodulo.com/2013/02/…
slm

답변:


103

더미 인터페이스 설정

네트워크 인터페이스를 만들려고하지만 물리적 NIC가 부족한 경우 더미 링크 유형을 사용할 수 있습니다. iproute2 Wikipedia page 에서 자세한 내용을 확인할 수 있습니다 .

eth10 만들기

이 인터페이스를 만들려면 먼저 더미 커널 모듈이로드되어 있는지 확인해야합니다. 당신은 이렇게 할 수 있습니다 :

$ sudo lsmod | grep dummy
$ sudo modprobe dummy
$ sudo lsmod | grep dummy
dummy                  12960  0 

드라이버가로드되면 원하는 네트워크 인터페이스를 만들 수 있습니다.

$ sudo ip link set name eth10 dev dummy0

그리고 그것을 확인하십시오 :

$ ip link show eth10
6: eth10: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default 
    link/ether c6:ad:af:42:80:45 brd ff:ff:ff:ff:ff:ff

MAC 변경

그런 다음 원하는 경우 MAC 주소를 변경할 수 있습니다.

$ sudo ifconfig eth10 hw ether 00:22:22:ff:ff:ff
$ ip link show eth10
6: eth10: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default 
    link/ether 00:22:22:ff:ff:ff brd ff:ff:ff:ff:ff:ff

별명 작성

그런 다음 eth10 위에 별칭을 만들 수 있습니다.

$ sudo ip addr add 192.168.100.199/24 brd + dev eth10 label eth10:0

다음과 같이 확인하십시오.

$ ifconfig -a eth10
eth10: flags=130<BROADCAST,NOARP>  mtu 1500
        ether 00:22:22:ff:ff:ff  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

$ ifconfig -a eth10:0
eth10:0: flags=130<BROADCAST,NOARP>  mtu 1500
        inet 192.168.100.199  netmask 255.255.255.0  broadcast 192.168.100.255
        ether 00:22:22:ff:ff:ff  txqueuelen 0  (Ethernet)

또는 사용 ip:

$ ip a | grep -w inet
    inet 127.0.0.1/8 scope host lo
    inet 192.168.1.20/24 brd 192.168.1.255 scope global wlp3s0
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
    inet 192.168.100.199/24 brd 192.168.100.255 scope global eth10:0

이 모든 것을 제거 하시겠습니까?

이 모든 것을 풀려면 다음 명령을 실행하십시오.

$ sudo ip addr del 192.168.100.199/24 brd + dev eth10 label eth10:0
$ sudo ip link delete eth10 type dummy
$ sudo rmmod dummy

참고 문헌


4
이 명령은 나를 위해 작동하지 않았습니다 : sudo ip link set name eth10 dev dummy0. ip link add dummy0 type dummy다음 명령에서 dummy0 인터페이스를 사용 하고 사용했습니다. 다른 명령은 잘 작동했습니다. 감사!
Ikrom

1
굉장히, 이것은 새로운 RHEL 7 장치 이름 (ethX 대신 emX)에서 MAC 주소를 읽을 수 없었던 이전 lmgrd에 필요한 것입니다
Thesane

26

iproute2 툴킷을 사용하여 가상 인터페이스를 작성할 수 있습니다 .

ip link add veth0 type veth peer name veth1

이 두 인터페이스를 만들 것입니다 veth0veth1. 그것들을 파이프의 두 끝으로 생각하십시오. 전송 된 모든 트래픽 veth0이 나오고 veth1그 반대도 마찬가지입니다.

트래픽을 라우팅하려면 다음을 수행하십시오.

sysctl -w net.ipv4.conf.veth0.forwarding=1

그러면 커널이 트래픽을 전달하도록 지시합니다 veth0( veth1사용 된 엔드 포인트에 사용).

다른 옵션은 브리지와 veth0다른 인터페이스 를 설정하는 것 입니다. 그러면 가상 인터페이스를 통해 들어오는 트래픽은 마치 마치 마치 마치 마치 스위치 역할을하는 것처럼 네트워크로 라우팅됩니다.

이 트래픽으로 수행 할 수있는 다른 많은 작업 (가장 무도회, 리디렉션, DNAT 등)이 있지만 수행하려는 작업에 따라 다릅니다.

그것을 찢어 :

ip link del veth0

멋진 것들이지만,이 경우에 필요한 것은 아닙니다 (VM이 VBox 파일 공유를 사용하지 않고 NFS 공유를 마운트 할 수 있도록 가상 인터페이스 만 필요했습니다)
STW

veth0 예제에서 IP 주소를 설정하는 방법은 무엇입니까?
MURATSPLAT
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.