virbr0-nic은 어떻게 생성됩니까?


11

어떻게 가상 네트워크 인터페이스를 만들 수 virbr0-nic있습니까? 나는 NIC를 만드는 방법을 찾으려고 노력하고 virbr0-nic있지만 인터넷에서 찾을 수있는 모든 것은 물리적 인터페이스에 연결된 인터페이스를 만드는 방법 eth0:0입니다. 내가 쓸 때

# brctl show
bridge name bridge id       STP enabled interfaces
virbr0      8000.525400e0af01   yes virbr0-nic
virbr1      8000.525400e8a6b1   yes virbr1-nic
                            vnet1

그래서 virbr0할 수있는 다리 virbr0-nic부착됩니다. 그럼 어떻게되는 virbr0-nicvnet1생성?


일반적으로 이는 약간의 소프트웨어에 특정한 브리지와 관련이 있습니다. 당신은 정말로 무엇을하려고합니까?
Journeyman Geek

KVM을 설치했으며 새 NIC virbr0-nic을 생성 한 것으로 나타났습니다. 이 NIC와 같은 NIC를 어떻게 만들 수 있을지 궁금합니다.
cosimo 2016 년

답변:


10

이들은 더미 장치입니다. 당신은 실행할 수 있습니다

modprobe dummy

라는 네트워크 인터페이스를 만들려면 dummy0.

하나 이상의 장치를 원한다면

modprobe dummy numdummies=5

그런 다음 다른 네트워크 장치처럼 이러한 장치를 제어 할 수 있습니다.

MAC 주소를

ip link set dummy0 address aa:aa:aa:bb:bb:bb

IP 주소를

ip addr add 10.0.0.1/24 dev dummy0

기존 브리지에 추가

brctl addif virbr0 dummy0

설정, 설정 해제, NAT 해제 등.


1
이 답변은 대안 보다 더 정확한 것 같지만 기본적으로 KVM 설정 (virbr0-nic)과 동일한 인터페이스를 만드는 것에 대한 세부 정보는 부족합니다.
pepper_chico

이 질문의 포스터는 브리지의 기능과 더미 장치의 기능을 이해하는 것으로 보이며, 유사한 인터페이스를 만드는 방법을 알고 싶었습니다. 더 좋을 것이라고 생각되면 답변을 개선 할 수 있습니다.
suprjami

6

libvirt가이 목적으로 TUN 장치를 사용하고 있습니다. 다음 명령으로이 장치를 수동으로 만들 수 있습니다.

# /usr/bin/tunctl -t virbr0-nic

3

virbr0-nic 가상 브리지 NIC를 나타냅니다.

기본적으로 실제 네트워크 카드와 가상 시스템의 가상 네트워크 카드를 연결합니다.

브리지 된 인터페이스를 관리하기 위해 brctl명령을 사용할 수 있습니다 . 연결된 모든 인터페이스를 나열 할 수 있습니다

brctl show 

필요에 따라 브리지를 추가하거나 수정하십시오. 새로운 브리지 사용을 만들려면

brctl addbr <name>

여기서 <name>새 다리의 이름이됩니다 당신이 다리에 인터페이스를 추가 할 수 있습니다 그 때는 (virbr0-NIC 등)

brctl addif <brname> <ifname>

추가 정보 는 매뉴얼 페이지 를 참조하십시오 .


1
이것은 실제로 새로운 "virbr1-nic"을 만드는 것에 대해 말하지 않고, 인터페이스를 설정할 새로운 "virbr1"( "virbr1-nic")은 이전에 존재했음을 암시합니다.
pepper_chico

나는 그것이 물리적과 가상의 다리라고 생각하지 않습니다. 패킷이 라우팅되도록 virbr0과 물리적 사이를 가장해야합니다.
피트 애쉬 다운

2

그것은 정확하게 장치의 어떤 유형을 취소하지 않는 virbr0-nicvnet1사용자의 설정에 있습니다. 브리지에 포함하는 데 유용한 몇 가지 유형의 가상 장치가 있으며이 중 일부는 ip명령을 사용하여 만들 수 있습니다 .

한 종류의 가상 장치는 veth연결된 가상 이더넷 인터페이스 쌍을 생성합니다.

ip link add veth0 type veth peer name veth1

이 예제에서 veth0그리고 예제에서 veth1생각해 낸 임의의 인터페이스 이름입니다. 이 방법은 예를 들어 두 인터페이스 중 하나를 다른 네트워킹 네임 스페이스로 이동하려는 경우 유용 할 수 있습니다.

다른 종류의 가상 인터페이스는 vlan물리적 인터페이스의 특정 802.1q 태그에 연결된 단일 가상 이더넷 인터페이스를 만드는 곳입니다.

ip link add link eth0 name eth0.10 type vlan id 10

ip명령으로 작성할 수있는 훨씬 더 많은 유형의 가상 인터페이스에 대한 정보가있는 매뉴얼 페이지가 있습니다 . 맨 페이지의 이름은, 나는 그것이라는 이름의 본 버전을 설치 한에 의존 ip-link하거나 ip.

또한 가상화를 사용하는 경우 호스트와 VM을 연결하는 가상 인터페이스가 있습니다. 구체적인 내용은 사용중인 가상화 솔루션에 따라 다릅니다.


1

그러나 나는이 / usr / bin / tunctl을 가지고 있지 않습니다. systemd-networkd를 사용하면 많은 문제가 있습니다. Cockpit은 Network-Manager 및 구성 파일을 사용합니다. 설치 후 내 네트워크가 다운되고 모든 장치와 응용 프로그램이 많은 실패로 작동합니다.

RHEL / CentOS 6,7 시스템을 새로 설치 한 후 'ifconfig -a'를 확인하면 인터페이스 virbr0 이름이 표시됩니다. 다음은 새로 설치된 CentOS 7 시스템의 예입니다.

ifconfig -a

....

virbr0: flags=4099[UP,BROADCAST,MULTICAST]  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:d5:f2:0c  txqueuelen 1000  (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

virbr0-nic: flags=4098[BROADCAST,MULTICAST]  mtu 1500
        ether 52:54:00:d5:f2:0c  txqueuelen 1000  (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

virbr0 인터페이스 란 virbr0 브리지 인터페이스는 libvirtd의 기본 네트워크 구성에 의해 생성됩니다. libvirtd는 호스트가 하이퍼 바이저 역할을 할 수있는 기반을 제공하는 서비스입니다. 따라서 xen 가상화를 사용하지 않는 경우 부팅시 libvirtd의 기본 네트워크가 활성화되지 않도록하거나 부팅시 libvirtd 자체가 활성화되지 않도록 할 수 있습니다. 전자는 libvirtd의 기본 네트워크에 연결된 VM 게스트가 네트워크 연결을하지 못하게하고 후자는 VM이 ​​전혀 실행되지 못하게합니다. 사용하지 않으면 괜찮습니다. libvirtd 기본 네트워크 비활성화

  1. virsh 명령을 사용하여 libvirtd의 기본 네트워크를 일시적으로 비활성화 할 수 있습니다. 재부팅해도 지속되지 않습니다.

    virsh net-destroy 기본값

  2. 부팅시 libvirtd 기본 네트워크가 생성되지 않도록 영구적으로 비활성화하려면 :

    virsh net-autostart 기본-비활성화

libvirtd 기본 네트워크 제거 libvirtd 기본 네트워크를 영구적으로 제거하려면 다음을 수행하십시오.

virsh net-undefine default

RHEL5 및 RHEL6에서 부팅시 libvirtd 서비스가 영구적으로 비활성화되도록하려면 :

chkconfig libvirtd off

RHEL7에서 부팅시 libvirtd 서비스가 영구적으로 비활성화되도록하려면 :

systemctl disable libvirtd.service
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.