FreeBSD는 인터페이스의 mac 주소를 변경합니까?

FreeBSD는 인터페이스의 mac 주소를 변경합니까?

KVM을 사용하여 게스트 VM을 호스팅하고 있습니다. 내 호스트 VM에서 2개의 브리지를 생성하고 각 브리지를 물리적 인터페이스에 할당했습니다(서브넷에도 할당).

라우팅은 모두 잘 작동하며 인터페이스에서 외부 리소스를 ping할 수 있습니다.

그런 다음 FreeBSD를 실행하는 게스트 VM에 이 2개의 브리지를 할당했습니다. FreeBSD Guest에 로그인하여 네트워크 구성을 보면 다음 2가 표시됩니다 curr medias.

root@VM% ifconfig -a | grep "curr media"
        curr media: i802 52:53:f:6f:e2:b2
        curr media: i802 52:53:f:3b:24:22

호스트 Ubuntu VM의 모든 인터페이스를 확인하면 다음이 표시됩니다.

vnet1     Link encap:Ethernet  HWaddr fe:53:0f:6f:e2:b2
vnet2     Link encap:Ethernet  HWaddr fe:53:0f:3b:24:22

FreeBSD의 인터페이스가 연결된 VNET과 동일한 MAC 주소를 가지고 있다고 가정하기 때문에 이는 매우 혼란스럽습니다.

feFreeBSD는 mac 주소를 에서 로 변경합니까 52? 아니면 freeBSD 인터페이스가 연결된 VNET과 다른 MAC 주소를 사용합니까?

더 관련된 혼란:
1) 라우팅이 포함된 브리지 2개가 게스트 VM에 할당되면 호스트의 각 브리지에 대해 VNET이 생성되나요?
2) 2개의 브리지를 생성하면 하나는 1개의 VM에 할당되고 다른 하나는 다른 VM에 할당됩니다. 여전히 2개의 VNETS가 있습니까?
3) 호스트 가상 머신에 2개의 브리지가 생성된 경우. 그러나 하나의 브리지가 1개의 VM에 할당되고 다른 브리지가 2개의 VM에 할당되면 호스트 VM에 3개의 VNET이 생성됩니까?

이렇게 설명하는 이유는 VNET이 많이 보이기 때문입니다. 그리고 그것이 어디서 왔는지 모르며(MAC 주소를 이해할 수 없는 것 같기 때문에) 그것들을 삭제할 수 없는 것 같습니다. 우분투 파일에 없습니다 network/interfaces.

답변1

KVM을 사용할 때 호스트 측의 인터페이스 MAC 주소는 운영 체제에 관계없이 VM 내부의 MAC 주소와 절대 동일하지 않습니다. 이는 TUN/TAP 네트워크의 결과입니다.

예를 들어 CentOS 7 VM을 실행하면 다음과 같습니다.

$ ip link show v-test1
64: v-test1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
    link/ether fe:54:00:0c:d8:88 brd ff:ff:ff:ff:ff:ff

$ ssh test1 /sbin/ip link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:0c:d8:88 brd ff:ff:ff:ff:ff:ff

Solaris 11 VM에서도 비슷한 상황을 볼 수 있습니다.

55: v-solaris: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
    link/ether fe:54:00:94:47:6d brd ff:ff:ff:ff:ff:ff

$ ssh solaris ifconfig -a
....
net0: flags=100001004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4,PHYSRUNNING> mtu 1500 index 2
        inet 10.0.0.157 netmask ffffff00 broadcast 10.0.0.255
        ether 52:54:0:94:47:6d 

따라서 VM 운영 체제가 무엇인지는 중요하지 않습니다. 가상 머신 내부에 표시되는 MAC 주소는 항상 호스트 측에 표시되는 주소와 다릅니다.

이제 일반적으로 구성을 통해 호스트 측의 인터페이스 이름과 게스트 측의 MAC 주소를 선택할 수 있습니다. 나는 libvirt를 사용하여 가상 머신을 관리하므로 guest.xml 파일에

<interface type='bridge'>
  <mac address='52:54:00:0c:d8:88'/>
  <source bridge='br0'/>
  <target dev='v-test1'/>
  <model type='virtio'/>
</interface>

그러면 호스트에 "v-test1"이라는 네트워크가 생성되고 게스트의 내부 MAC 주소가 지정됩니다. 이는 위의 첫 번째 예와 일치합니다.

호스트에 대해 두 개의 네트워크 어댑터를 지정하는 경우 해당 어댑터가 상주하는 호스트의 브리지, 호스트에 나타나는 네트워크 인터페이스 이름 및 MAC 주소를 독립적으로 선택할 수 있습니다.

예를 들어

<interface type='bridge'>
  <mac address='52:54:00:0c:44:5d'/>
  <source bridge='br0'/>
  <target dev='v-test2'/>
  <model type='virtio'/>
</interface>
<interface type='bridge'>
  <mac address='52:54:00:0c:44:5e'/>
  <source bridge='internal'/>
  <target dev='v-test2b'/>
  <model type='virtio'/>
</interface>

이제 두 개의 인터페이스가 정의되었습니다. 하나는 v-test2라고 하며 브리지 "br0"에 배치하고 다른 하나는 v-test2b라고 하며 브리지 "내부"에 배치합니다.

$ ip addr show v-test2
68: v-test2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
    link/ether fe:54:00:0c:44:5d brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fe0c:445d/64 scope link 
       valid_lft forever preferred_lft forever

$ ip addr show v-test2b
69: v-test2b: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
    link/ether fe:54:00:0c:44:5e brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fe0c:445e/64 scope link 
       valid_lft forever preferred_lft forever

$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.0025222613c0       no              eth0
....
                                                        v-test2

internal                8000.fe54000c445e       no              v-test2b

손님 중에는 다음과 같은 사람들이 있습니다.

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:0c:44:5d brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:0c:44:5e brd ff:ff:ff:ff:ff:ff

이를 통해 각 가상 머신에 어떤 인터페이스, MAC 주소 및 브리지가 있는지 정확하게 정의할 수 있습니다.

관련 정보