Skip to content
システム

Debian 13 の VM のネットワークを Hyper-V で構成する

Avatar illustré de Julien Macé 1 min read
Serveur relié à un commutateur virtuel et à une machine Debian dans Hyper-V
La carte physique, le commutateur virtuel et la VM doivent appartenir au même chemin réseau.

VMが起動し、Debian 13がインストールされましたが、ネットワークからは見えません。あるいは、Hyper-Vホストの移動後にアドレスが変更されることがあります。いずれの場合も、Debianを無闇に変更するのは避けてください:障害は仮想ネットワークアダプタ、スイッチ、またはゲストのインターフェイスに存在する可能性があります。

Hyper-V上のDebian 13のネットワークは、外部から内部に向かって読み取ります:Hyper-Vアダプタ、仮想スイッチ、ホストのネットワーク、そしてDebian内のインターフェイスとルート。VMがまだ作成されていない場合は、Hyper-V VMとそのDebian 13のインストールから始めてください。そうでない場合は、変更する前に各層を確認してください。

仮想スイッチとHyper-V内のDebianマシンに接続されたサーバー
物理アダプタ、仮想スイッチ、およびVMはすべて同じネットワークパスに属する必要があります。

Debianの前にHyper-Vアダプタを確認する

Windowsホスト上で管理者として開いたPowerShellから、現在使用されているスイッチ、アダプタ、およびMACアドレスをメモしてください。

Get-VMSwitch
Get-VMNetworkAdapter -VMName "<vm-name>" | Format-List *

Get-VMSwitchはスイッチのタイプを示します:External、Internal、またはPrivate。2つ目のコマンドはVMのアダプタのプロパティを展開します。変更する前にスイッチ名とMACをノートに留めておいてください。ホスト側の出力にIPアドレスがないからといって、Debianにないことを証明するわけではありません:ゲストでアドレスを確認してください。

Hyper-VのネットワークアダプタのタイプはVM作成後には変更できません。誤ってレガシーアダプタを追加した場合、ネットブートの実際の必要がない限り、Hyper-V専用アダプタを保持し古いものを削除することをお勧めします。スイッチタイプを変更する場合は、接続されている他のVMに通知してください:全て影響を受けます。

接続するマシンに応じてスイッチを選択する

スイッチは単純な質問に答えます:誰がVMと通信し、誰がアドレスを与えるのか?これはDebianファイルを編集する前に判断すべきことです。

スイッチアクセスIPアドレス使用法
外部VMと物理ネットワーク一般的にローカルネットワークのDHCPLAN上のVMにアクセス可能
内部VMとホスト設定により提供されるWindowsとのやり取りやローカルサービス間の通信
プライベートVM同士ゲスト内で提供される他の層から隔離されたネットワーク
内部NATVMがホスト経由で外部に接続VM内で設定するアドレス、ゲートウェイ、DNS直接的な露出なしで管理されたアウトバウンド

WinNATはVMに自動でアドレスを供給しません。内部NATネットワークに関しては、Microsoftがスイッチとゲートウェイの作成、その後ゲストの手動設定について文書化しています。以下の値は例です:ホストで見つけたインデックスを置き換えてください。

New-VMSwitch -Name "LEC-NAT" -SwitchType Internal
Get-NetAdapter
New-NetIPAddress -IPAddress 192.168.50.1 -PrefixLength 24 -InterfaceIndex <ifIndex-of-vEthernet>
New-NetNat -Name "LEC-NAT" -InternalIPInterfaceAddressPrefix 192.168.50.0/24
Get-NetNat

Get-NetAdapterはvEthernet (LEC-NAT)とそのifIndexを特定するのに役立ちます。Get-NetNatはその後、作成されたネットワークを再確認します。Microsoftのドキュメントによると、現在のところホストごとに可能なNATネットワークは1つだけです:既にNATが存在する場合は二つ目を追加しないでください。

Debianで合成アダプタを確認する

Debian 13では、まずインターフェイスの正しい名前を確認してください。この名前をenp1s0に自動的に置き換えないでください:これは最後の二つのコマンドのための例として使われています。

ip -brief link
ip -brief addr
ethtool -i enp1s0
lsmod | grep -E 'hv_netvsc|hv_vmbus'
dmesg | grep -i -E 'hv_netvsc|hv_vmbus'

ip -brief linkはloに加えてEthernetインターフェイスを示す必要があります。実際の名前がわかれば、ethtool -iは合成Hyper-Vアダプタのドライバhv_netvscを示します。また、ethtoolを使ってリンクとドライバの状態を確認することもできます。

Linux Integration ServicesのサポートはMicrosoftによって文書化されたディストリビューションに組み込まれています。MicrosoftのLISパッケージをインストールしないでください。また、ネットワーク修正のためにapt install hyperv-daemonsを実行しないでください:これらのデーモンはIPアドレスを提供しません。古いレガシーアダプタがさらに接続されている場合は、設定を取り留めた後にそれを削除してください。Microsoftは、この場合に不整合なインターフェイス名を報告しています。

アドレス、ルート、DNSを確認する

外部スイッチ上では、アドレスは通常ローカルネットワークのDHCPから発生します。DebianインストーラはデフォルトでネットワークをベンチマークするためにDHCPを使用します。この順序で確認を行い、変更を重ねないようにしてください。

ip -brief addr
ip route
cat /etc/resolv.conf
ping -c 3 <ip-routeで読み取ったゲートウェイ>
ping -c 3 1.1.1.1
getent hosts deb.debian.org

正しいプレフィックス内のアドレス、default via行、到達可能なゲートウェイ、IPアドレスに対する応答、最後に解決された名前を探します。アドレスがない場合は、割り当てやネットワークマネージャに問題があります。到達可能なゲートウェイがあっても外部へのアクセスがない場合は、ルートやNATの問題を示します。応答があるIPアドレスが解決できない場合はDNSの問題があるので、digを使ってDNS解決をテストすることで最後の確認を行います。

DHCPが不十分な場合はゲスト内でアドレスを固定する

内部またはNATスイッチでは、ホストはDebianに自動的にアドレスを与えません。Microsoftのマトリックスでは、Debianへの静的IPの注入がチェックされていません。そのため、アドレス、ゲートウェイ、およびDNSはゲスト内で一貫している必要があります。

systemctl is-active NetworkManager
systemctl is-active systemd-networkd

これらの2つのコマンドはどのサービスがアクティブであるかを示します。NetworkManagerは最小限のDebianサーバーにはデフォルトでインストールされていません。この確認を行ってからアドレスを設定することをお勧めします。その後、現在使用している管理者に適したDebianでの静的IPアドレス設定方法に従ってください。VMにSSHでしかアクセスできない場合は、ネットワークを再ロードする前に別のセッションを開くか、Hyper-Vコンソールを維持し、その後接続が切れた場合に保存したファイルを元に戻してください。

ホスト変更の際にのみMACを固定する

テスト用VMには通常固定MACは必要ありません。この設定は、ホストの変更、フェイルオーバークラスタ、またはMACに関連するDHCP予約が必要な場合に役立ちます。

Get-VMNetworkAdapter -VMName "<vm-name>" | Format-List *
Set-VMNetworkAdapter -VMName "<vm-name>" -StaticMacAddress "00155D012345"
Get-VMNetworkAdapter -VMName "<vm-name>" | Format-List *

アクション前にMACをメモし、その後に再確認した値を比較します。例を有効なアドレスに置き換え、元の値を保持して以前の構成に戻せるようにしてください。-DynamicMacAddressオプションを使用すると、自動割り当てに戻すことができます。MACスプーフィングは、ルーティングやネストされた仮想化など、別のニーズによります。

失敗した確認で停止する

こちらがホストからDebianへの最終確認です:

  • Hyper-Vアダプタが期待されたスイッチに接続されている;
  • 再確認されたMACが記録されていたまたは選ばれた値と一致している;
  • ip -brief addrが期待されるインターフェイスおよびアドレスを示している;
  • ip routeがデフォルトルートを含む;
  • ゲートウェイが応答し、Debian名が解決される。
udevadm test-builtin net_setup_link /sys/class/net/enp1s0 2>/dev/null

この最後のコマンドでは、再度enp1s0を実際の名前と置き換えてください。行ID_NET_NAMEはDebian 13が適用する名前を示します。この名前が異なる場合は、Trixieのリリースノートでは再起動前に固定するためのsystemd.linkファイルが計画されています。

注意:Debian 13はMicrosoftのDebian VMマトリックスには出ておらず、Debian 12で停止しています。この文書ではゲストファイアウォール、IPv6、インテグレーションサービスはカバーしていません。アダプタ、スイッチ、ルート、およびDNSが一貫している場合、ネットワーク変更を停止し、対象のサービスの診断に移ってください。

Share Facebook X WhatsApp LinkedIn Pinterest Reddit Email