오류: 'ovs-bridge'에서 인터페이스 MTU를 가져올 수 없습니다. 해당 장치가 없습니다.

오류: 'ovs-bridge'에서 인터페이스 MTU를 가져올 수 없습니다. 해당 장치가 없습니다.

내가 찾은 해결책 중 어느 것도 효과가 없는 것 같았고 며칠 동안 이것을 조사해 왔기 때문에 포기하고 도움을 요청하기로 결정했습니다.

저는 nmcli를 사용하여 ovs-bridge라는 개방형 vswitch를 만들었습니다. 포트와 인터페이스를 생성하고 eno1을 연결했습니다. 모든 것이 잘 작동합니다. VLAN 태그가 있는 포트를 만들었고 새 인터페이스는 해당 VLAN의 dhcp 서버에서 IP 주소를 가져옵니다.

다음 단계는 VLAN 태그 여부에 관계없이 vswitch 포트에 연결하려면 kvm 게스트 프로그램이 필요하다는 것입니다. 내 인생에서 나는 그것을 작동시킬 수 없습니다.

ovs-vsctl은 다음을 보여줍니다:

4511e03b-87b5-44a2-a16f-dac79b43cbf7
    Bridge ovs-bridge
        Port ovs-p99
            Interface eno1
                type: system
        Port ovs-p1
            tag: 50
            Interface ovs-int-p1
                type: internal
        Port ovs-p0
            Interface ovs-int-p0
                type: internal

nmcli 콘솔에 다음이 표시됩니다.

NAME           UUID                                  TYPE           DEVICE
ovs-int-p0     c6d2243f-8a96-4647-887a-d2cdfb8ae878  ovs-interface  ovs-int-p0
virbr0         ad67349b-3e2b-45ed-b66d-b148c7d01d4d  bridge         virbr0
ovs-bridge     dbb6960e-ac13-4452-b4c2-44782bbc54ac  ovs-bridge     ovs-bridge
ovs-int-p1     1af100a3-b08d-41bd-ab1f-a5c3059807f3  ovs-interface  ovs-int-p1
ovs-int-p99    3d64f617-4c9b-47a0-b48c-44380ea7d2bb  ethernet       eno1
ovs-p0         6e3a5415-8756-4069-a788-d661da078d46  ovs-port       ovs-p0
ovs-p1-vlan50  62f4cfe7-0317-4ca8-96f9-d37ac771b308  ovs-port       ovs-p1
ovs-p99        0a9c184c-0246-4cb1-a5bf-7c7b186b40e5  ovs-port       ovs-p99
wired-dhcp     760eda5d-f092-3ee0-998d-d923ff8bf5ca  ethernet       --

nmcli 개발은 다음을 보여줍니다:

DEVICE      TYPE           STATE                   CONNECTION
virbr0      bridge         connected (externally)  virbr0
ovs-int-p0  ovs-interface  connected               ovs-int-p0
eno1        ethernet       connected               ovs-int-p99
ovs-bridge  ovs-bridge     connected               ovs-bridge
ovs-int-p1  ovs-interface  connected               ovs-int-p1
ovs-p0      ovs-port       connected               ovs-p0
ovs-p1      ovs-port       connected               ovs-p1-vlan50
ovs-p99     ovs-port       connected               ovs-p99
lo          loopback       unmanaged               --
virbr0-nic  tun            unmanaged               --

libvirt에서 사용할 네트워크를 정의했습니다.

<network>
  <name>ovs-network</name>
  <uuid>03026f19-5615-4d23-a8f0-adf1064a796a</uuid>
  <forward mode='bridge'/>
  <bridge name='ovs-bridge'/>
  <virtualport type='openvswitch'/>
  <portgroup name='untagged' default='yes'>
  </portgroup>
  <portgroup name='vlan50'>
    <vlan>
      <tag id='50'/>
    </vlan>
  </portgroup>
  <portgroup name='vlan60'>
    <vlan>
      <tag id='60'/>
    </vlan>
  </portgroup>
  <portgroup name='vlan-all'>
    <vlan trunk='yes'>
      <tag id='2'/>
      <tag id='3'/>
    </vlan>
  </portgroup>
</network>

virt-manager에서 게스트를 편집하면 네트워크가 표시됩니다. 게스트 네트워크를 다음과 같이 정의합니다.

<interface type="network">
  <mac address="52:54:00:a6:dc:48"/>
  <source network="ovs-network" portgroup="untagged"/>
  <model type="virtio"/>
  <address type="pci" domain="0x0000" bus="0x07" slot="0x00" function="0x0"/>
</interface>

게스트를 시작하면 다음이 반환됩니다: virsh start fed32srv:

error: Failed to start domain fed32srv
error: Cannot get interface MTU on 'ovs-bridge': No such device

그래서 나는 많은 정보를 확인했습니다.

수백만 개의 가이드가 있지만 대부분은 작동하지도 않습니다. 따라서 그 중 상당수가 오래되었다고 가정합니다.

어쨌든 인터페이스와 내부 인터페이스 모두에서 MTU 크기를 설정해 보았지만 도움이 되지 않았습니다. 모든 것을 다시 시작했고 재부팅도 했습니다.

질문으로 돌아가서, vlan 태그 지정 여부에 관계없이(ovs 포트에서) kvm 게스트를 vswitch 포트에 연결하도록 설정하려면 어떻게 해야 합니까?

더 많은 정보가 필요한지 물어보십시오.

도와주셔서 감사합니다!

답변1

브리지에 관리 포트 및 인터페이스가 없습니다.

4511e03b-87b5-44a2-a16f-dac79b43cbf7
    Bridge ovs-bridge
...
        Port ovs-bridge
            Interface ovs-bridge
                type: system
...

ovs-vsctl을 사용하여 ovs 브리지를 생성하면 기본적으로 둘 다 존재하게 됩니다. NM으로 생성할 때는 그렇지 않습니다. 명시적으로 생성해야 합니다.

sudo nmcli con add type ovs-port conn.interface ovs-bridge master ovs-bridge con-name ovs-px
sudo nmcli con add type ovs-interface slave-type ovs-port conn.interface ovs-bridge master ovs-px con-name ovs-int-px

답변2

따라서 nmcli 설정을 사용할 때 문제가 재현 가능합니다. ovs-vsctl 명령을 사용하여 브리지와 인터페이스를 설정할 때 모든 것이 예상대로 작동합니다.

기본 설정을 완료한 후 다음을 수행합니다. https://blog.scottlowe.org/2012/11/12/libvirt-ovs-integration-revisited/

모두 제일 좋다.

관련 정보