0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UTMでLANセグメント

Posted at

MacのUTMで

Mac(Silicon)のUTMにて、「VMware FusionでLANセグメント」と同一内容を実現。

検証環境

image.png

net0およびnet1という2つのLANセグメントが存在し、中央のLinux Network Bridgeにより接続され、両側のVM PCが同一ネットワークに属する。IPアドレスは記載のとおり。

設定

ネットを調べても情報見つからず、、、ChatGPTに聞きながらトライ&エラー(無料版利用なので、精度悪し)。なかなか解答にたどりつかずであったが、ようやく実現できるConfiguraionが見つかる。

既存ネットワークを削除

まずは、対象VMを選択して、右クリックし、編集する。

右クリック編集のコピー.png

既存ネットワークを削除する。

既存のネットワーク削除のコピー.png

設定ファイル(config.plist)

対象VMの設定ファイル(config.plist)を直接編集する。右クリックにより、”パッケージの内容を表示”をクリック。

パッケージの内容のコピー.png

config.plistが表示される。

config_plistのコピー.png

エディタにて編集する。

Network Bridge

関連部分のみ記載。

	<key>Network</key>
	<array/>
	<key>QEMU</key>
	<dict>
		<key>AdditionalArguments</key>
		<array>
			<string>-netdev</string>
			<string>socket,id=net0,listen=:1234</string>
			<string>-device</string>
			<string>virtio-net-pci,netdev=net0,mac=52:54:00:12:34:57</string>
			<string>-netdev</string>
			<string>socket,id=net1,listen=:1235</string>
			<string>-device</string>
			<string>virtio-net-pci,netdev=net1,mac=52:54:00:12:34:58</string>
		</array>
		<key>BalloonDevice</key>
		<false/>
		<key>DebugLog</key>
		<true/>
		<key>Hypervisor</key>
		<true/>
		<key>PS2Controller</key>
		<false/>
		<key>RNGDevice</key>
		<true/>
		<key>RTCLocalTime</key>
		<false/>
		<key>TPMDevice</key>
		<false/>
		<key>TSO</key>
		<false/>
		<key>UEFIBoot</key>
		<true/>
	</dict>
  • Network:前述した「既存ネットワーク」の削除により空エントリ
  • QEMU:AdditionalArgumentsによりネットワークI/Fを追加(ブリッジなので2つ)
    • 1st I/F(下記内容を表現すると上記のような記載となるらしい)
      • -netdev socket,id=net0,listen=:1234
      • -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:57
        • LANセグメント”net0”、内部ソケットのポート1234でListen
    • 2nd I/F
      • -netdev socket,id=net1,listen=:1235
      • -device irtio-net-pci,netdev=net1,mac=52:54:00:12:34:58
        • LANセグメント”net1”、内部ソケットのポート1235でListen
    • Macアドレス指定が必須(指定しないと、全てのVMで同じMacアドレスとなってしまうようだ)
    • 他のQEMUの記述は手を加えておらず

左のVM

	<key>Network</key>
	<array/>
	<key>QEMU</key>
	<dict>
		<key>AdditionalArguments</key>
		<array>
			<string>-netdev</string>
			<string>socket,id=net0,connect=127.0.0.1:1234</string>
			<string>-device</string>
			<string>virtio-net-pci,netdev=net0,mac=52:54:00:12:34:51</string>
		</array>
		<key>BalloonDevice</key>
		<false/>
		<key>DebugLog</key>
		<false/>
		<key>Hypervisor</key>
		<true/>
		<key>PS2Controller</key>
		<false/>
		<key>RNGDevice</key>
		<true/>
		<key>RTCLocalTime</key>
		<false/>
		<key>TPMDevice</key>
		<false/>
		<key>TSO</key>
		<false/>
		<key>UEFIBoot</key>
		<true/>
	</dict>
  • QEMU:AdditionalArgumentsによりネットワークI/Fを追加
    • -netdev socket,id=net0,connect=127.0.0.1:1234
    • -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:51
      • LANセグメント”net0”、内部ソケットでループバックのポート1234にConnect

右のVM

	<key>Network</key>
	<array/>
	<key>QEMU</key>
	<dict>
		<key>AdditionalArguments</key>
		<array>
			<string>-netdev</string>
			<string>socket,id=net1,connect=127.0.0.1:1235</string>
			<string>-device</string>
			<string>virtio-net-pci,netdev=net1,mac=52:54:00:12:34:52</string>
		</array>
		<key>BalloonDevice</key>
		<false/>
		<key>DebugLog</key>
		<false/>
		<key>Hypervisor</key>
		<true/>
		<key>PS2Controller</key>
		<false/>
		<key>RNGDevice</key>
		<true/>
		<key>RTCLocalTime</key>
		<false/>
		<key>TPMDevice</key>
		<false/>
		<key>TSO</key>
		<false/>
		<key>UEFIBoot</key>
		<true/>
	</dict>
  • QEMU:AdditionalArgumentsによりネットワークI/Fを追加
    • -netdev ocket,id=net1,connect=127.0.0.1:1235
    • -device virtio-net-pci,netdev=net1,mac=52:54:00:12:34:52
      • LANセグメント”net1”、内部ソケットでループバックのポート1235にConnect

修正後、UTMを再起動する。ただし、Listenする、Network Bridge VMを最初に起動した後、Connectする2つのVMを起動する。

Linuxによるネットワークブリッジ

設定方法は、インターネット上に多数見つかる。

$ sudo ip link add name br0 type bridge
$ sudo ip link set dev br0 up
$ sudo ip link set dev enp0s8 promisc on
$ sudo ip link set dev enp0s9 promisc on
$ sudo ip link set dev enp0s9 up
$ sudo ip link set dev enp0s8 up
$ sudo ip link set dev enp0s8 master br0
$ sudo ip link set dev enp0s9 master br0
$ bridge link show

検証

pingによる疎通があるのみ。省略。

終わりに

LANセグメントを仮想環境で利用する場合、Mac(Silicon)では、VMware Fusionの方がいくらかまし。ただ、UTMでx64のVMも使えるので、何かの時に役立つかも。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?