좋은 저녁이에요,
가상 머신과 작동하려면 가상 인터페이스를 생성해야 하기 때문에 까다로운 문제가 있습니다. 하지만 계층 2만 가능합니다. 가상 머신은 사전 설정된 MAC 주소(이 어댑터에 대해 하나를 설정할 수 있음)와 통신합니다. , VM은 해당 어댑터를 사용합니다. 그렇지 않으면 VM은 미리 설정된 다른 MAC 주소를 스푸핑합니다. )
내가 찾은 대부분의 솔루션은 계층 3(예: IP 주소) 사용과 관련되어 있지만 불행히도 나에게는 작동하지 않습니다. 계층 3 구성은 VM 내부에서 수행되어야 하며 가상 NIC 및 가상 스위치는 VM 내부에서 구성되어야 합니다. L2 트래픽만 해당.
보안 및 운영상의 이유로 IP 주소 구성이 전혀 필요하지 않습니다(예: IPv4 및 IPv6 전용 링크 로컬 또는 레이어 3을 완전히 비활성화).
간단히 말해서 다음과 같은 토폴로지가 필요합니다.
My VM <-> vnic0 <-> vbr0 <-> eth0 <-> external network
(실제 어댑터 eth0과 함께) vbr0이라는 가상 브리지에 연결되는 vnic0이라는 가상 어댑터를 생성해야 합니다. 가급적이면 시스템 관리자 상호 작용 없이 재부팅 후 구성이 자동으로 작동할 수 있도록 하는 RHEL 7.4/CentOS 7.4용 구성 파일을 찾고 있습니다. 앞으로는 모두 vbr0에 연결된 vnic1, vnic2, vnic3 등을 만들어야 할 수도 있습니다.
VLAN 사용이 반드시 필요한 것은 아니지만(모든 것이 비VLAN/네이티브 VLAN에 있다고 가정) 천재라면 구성 방법(예: 네이티브 VLAN 50을 사용하여 태그가 지정된 dot1q 트래픽 활성화)을 보여줄 수 있습니다. vnic0, vnic1 네이티브 VLAN 51 등 on이고 eth0이 트렁크 역할을 하면(VLAN 전체 또는 일부가 이를 따라 이동할 수 있도록 허용) 심각한 브라우니 포인트를 얻게 됩니다. :)
나는 다음을 시도했습니다 :
modprobe dummy
ip link set name vnic0 dev dummy0
ip link add vbr0 type bridge
ip link eth0 down
ip link set dev eth0 master vbr0
ip link set dev vnic0 master vbr0
ip link set vbr0 up
ip link set vnic0 up
ip link set eth0 up
가장 큰 문제는 내 vnic0 네트워크가 패킷을 브로드캐스트하지만 수신하지 않는다는 것입니다. 내 네트워크는 그다지 활발하지 않지만 vnic0이 vbr0을 통해 수신하는 최소한 일부 브로드캐스트 패킷을 보고 싶습니다. 그러나 이것은 일어나지 않았습니다. eth0에 연결된 완벽하게 작동하는 DHCP 서버가 있더라도 vnic0에 연결된 가상 머신 내에서 DHCP를 실행하려고 하면 시간 초과가 발생합니다.
답변1
가상 장치를 사용하지 마십시오
이런 일이 너무 자주 발생하는데 왜 사람들이 이를 사용하려고 하는지 모르겠습니다. 가상 장치는 유용합니다.수명이 긴 애플리케이션이 특정 IP 주소에 바인딩되도록 허용, 필요한 경우 가상 장치를 이동하고 수명이 짧은 다른 장치로 브리지할 수 있습니다.
당신이 원하는 것은맥에버랜드또는 vnic*
이름에도 불구하고 macvlan은 VLAN 태깅과 관련이 없습니다. macvlan은 이미 기본 인터페이스( eth0
)에 브리지된 레이어 2에서 실행되며, 원하는 경우 브리지된 장치와의 상호 작용을 제한할 수 있는 여러 모드 중 하나를 선택할 수 있습니다.
답변2
가상 이더넷 인터페이스는 쌍으로 생성된 가상 인터페이스이며 점퍼와 같은 기능을 합니다.
ip link add name nic0 type veth peer name vnic0 address 00:11:22:33:44:55
ip link set dev eth-VM master vbr0
ip link set nic0 up
ip link set vnic0 up
vnic0
가상 머신에 할당할 수 있는 느슨한 00:11:22:33:44:55 MAC 주소 로 끝나야 합니다 . 그들은 안에 있다맥에버랜드위에서 언급한 페이지. 나는 macvlan에 대해 잘 모르지만 이것도 작동해야 하며 bridge 를 사용하지 않을 것입니다 vbr0
.
ip link add link eth0 name vnic0 address 00:11:22:33:44:55 type macvlan mode bridge
ip link set vnic0 up