私が見つけた解決策のどれも効果がないようで、数日間これを調べてきたので、あきらめて助けを求めることにしました。
私は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
だから私は多くの情報を確認しました。
- https://serverfault.com/questions/680635/mtu-on-open-vswitch-bridge-port#81789
- https://docs.openvswitch.org/en/latest/faq/issues/
- https://stackoverflow.com/questions/48784098/issue-with-kvm-libvirt-and-linux-namespaces
何百万ものガイドがありますが、ほとんどは機能しません。したがって、それらの多くは古くなったと仮定します。
とにかく、インターフェイスと内部インターフェイスの両方で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