4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TTDCAdvent Calendar 2024

Day 4

wsl2 mirroredネットワーク、WindowsとLinuxの良いとこどり!

Last updated at Posted at 2024-12-04

本記事は「 TTDC Advent Calendar 2024 」4日目の記事です。

概要

wsl2にてシステムを構築する際、WindowsとLinuxで同じネットワークを使いたい場面が発生しました.
システム構成.png

ネットワーク設定を間違えると、深みにはまってしまい貴重な時間を無駄にしてしまうので、mirroredネットワーク設定とデバッグ方法を簡単に紹介します.

wsl2 mirroredネットワークとは

Windows(Windows11 22H2 以降)にあるネットワーク インターフェイスを wsl2 にミラーリングすることで、同じipアドレスを使うことができるようになります.

作業環境

Windowsホスト環境

 プロセッサ:13th Gen Intel(R) Core(TM) i7-1355U 1.70 GHz
 メモリ:32.0 GB
 エディション:Windows 11 professional
 バージョン:22H2

 WSL バージョン: 2.3.26.0
 カーネル バージョン: 5.15.153.1-2

wsl2 Linux 仮想環境
 ディストリビューション:Ubuntu 22.04 LTS

前準備

wsl2のバージョンが古いとmirroredネットワークが動作しないので、Windows PowerShellを使ってwsl2をアップデートします.

  • Windows PowerShellを 「管理者として実行する」 で選択、起動します.

  • wsl2 をアップデートします.

    wsl --update
    
  • wsl2 の設定を更新するため、wsl2をシャットダウンします.

    wsl --shutdown
    

設定手順

  • 新規で.wslconfigファイル作成する場合
    Windows PowerShellにて下記コマンド実行します.(不要な設定も入っているのでカスタマイズしてください)
    # %UserProfile%\.wslconfig
    # example C:\Users\【Windowsログインユーザ名】
    cd ~
    echo "[wsl2]
    memory=8GB        # examle 8GB (must be an integer)
    swap=0            # swap off:0, swap MB is manual, examole 500MB
    networkingMode=mirrored  # ここがポイント
    # エンコーディングを指定して保存(UTF-8にしないと動作しない)
    " | %{ $_+"`n" } | ForEach-Object{ [Text.Encoding]::UTF8.GetBytes($_) } | Set-Content -Encoding Byte -Path .wslconfig
    

  • .wslconfigファイルが既にある場合
    Windowsホスト側で.wslconfigファイルメモ帳で直接編集し、「networkingMode=mirrored」を設定します.
     .wslconfigファイルは、C:\Users\【Windowsログインユーザ名】の直下にあります.
    wslconfigイメージ

確認方法

wsl2を再起動してWindowsと同じipアドレスが設定されているか確認します.

  • Windowsホスト側:ipconfigコマンド
  • wsl2側:ifconfigコマンド

上段:Windowsホスト側,下段:wsl2側
Windowsホスト側とwsl2側で同じipアドレスが設定されていることを確認できます.

デバッグ方法

wsl2のパケットはWindows側には転送されないため、wsl2にてパケットキャプチャーして動作確認します.私は、パケットキャプチャーにWiresharkを使用しているため、インストールコマンドと起動方法を記載します.

# install 
sudo apt update
sudo apt upgrade
sudo apt install wireshark
# load wireshark
sudo wireshark

wsl2側のパケットキャプチャーに通信パケットが表示されます.

wsl2側 wiresharkイメージ
※想定パケットをキャプチャできない場合は、システム構成を見直してください.

まとめ

Windows11(Windows11 22H2 以降)に、WSL2を使い mirroredネットワークの設定を行い簡単にデバッグする方法を記載しました.
開発環境構築のお役に立てると幸いです.

最後まで読んでいただき、ありがとうございました!
今後も機械学習の活用を始め、開発環境やシミュレーションなど幅広く技術情報発信をしていく予定です!

最後になりますが、本記事の内容に誤りなどあれば、コメントにてご教授お願いいたします.

Reference

4
2
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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?