Hyper-VでNAT環境を作り、仮想PCにインターネット接続させる

テスト用のLinuxを持ち運びたくて、WindowsノートPC上にHyper-Vで仮想PCを作りましたが、ネットワーク接続に困った。
・外のPCからはアクセスされなくて良い
・自分のWindowsからは固定されたIPでアクセスしたい
 ↑or 独自のローカルドメイン名でアクセスさせる(unbound DNS使用)
・仮想PCからインターネット接続も使いたい

Hyper-Vのネットワーク接続は仮想スイッチで行う。
仮想スイッチは「外部」「内部」「プライベート」があって、
・「外部」ホストPCの物理NICに相乗りする。なのでWiFiなど環境が変わると仮想PCもDHCPの影響を受ける。
・「内部」ホストPCと仮想PCでLANを作る。
・「プライベート」仮想PC同士だけでLANを作る。ホストPCとも繋がらない。
という違いがある。

仮想PCのIPアドレスを固定しつつインターネット接続を行うには、「内部」仮想スイッチを作成して、そこからNAT(WinNAT)で仮想PCのアクセスを確保する。

仮想スイッチのIPアドレスを 192.168.99.1、仮想PCのIPアドレスを192.168.99.2として
ホストPC上管理者権限で
New-NetNat -Name hogeNAT -InternalIPInterfaceAddressPrefix 192.168.99.0/24
とするとNATが使えるようになる。
やってみたけどすぐには使えなくて、再起動したら使えるようになってた。

NAPTでポート転送もできる。
Add-NetNatStaticMapping -NatName hogeNAT -ExternalIPAddress 0.0.0.0 -InternalIPAddress 192.168.99.2 -ExternalPort 10022 -InternalPort 22 -Protocol TCP
これで他のPCからホストPC:10022宛で仮想PC:sshができるようになったりする。

仮想PC側はIP固定にして、DNSはGoogle Public DNSなりホストPCに立てたDNSなりを使えば良い。DHCPサーバーを立てることもできるようだ(やってない)。

現在どんなNatが存在しているかはGet-NetNat、削除はRemove-NetNatのようだ。
コマンドが長いけどオプションまでタブ補完してくれて助かる。

ローカルドメインでワイルドカード名を使う

webサーバー作るときに最終的には *.example.com とか使うつもりだけど、開発テストで *.hogehoge.local みたいな名前を使いたい。
Windows上でHyper-Vで仮想PCをサーバーにしてLinuxを動作させる。
Linuxはwebサーバー、DB等。Windowsでブラウザを開いて使うため、Windowsにワイルドカードなホスト名を認識させないといけない。hostsにはワイルドカードが書けないので、LinuxでもWindowsでもどっちでもいいのでDNSを立てる。

今回はWindows上にUnboundを使ってみました。ちゃんとwindows用インストーラーがある。
NLnet Labs – Unbound – About

インストールしたら c:\Program Files\Unbound\service.conf を編集。

server:
    interface: ::1
    interface: ::0
    interface: 192.168.99.1 #Hyper-Vの仮想スイッチ(内部)接続で使ってるIPアドレス
    interface: 127.0.0.1
    interface: 0.0.0.0
    access-control: 0.0.0.0/0 refuse #外部には使わせない
    access-control: ::0/0 refuse
    access-control: 127.0.0.1/8 allow
    access-control: 192.168.99.1/24 allow #仮想スイッチ内からは使わせる
    access-control: ::1 allow

    auth-zone:
        name: "hogehoge.local"
        for-downstream: yes
        for-upstream: no
        zonemd-check: no
        zonemd-reject-absence: no
        zonefile "hogehoge.local.zone"

forward-zone: #ローカル該当ドメイン以外はGoogle Public DNSに問い合わせる
    name:"."
    forward-addr: 2001:4860:4860::8888
    forward-addr: 2001:4860:4860::8844
    forward-addr: 8.8.8.8
    forward-addr: 8.8.4.4

hogehoge.local.zoneも作成

$ORIGIN hogehoge.local
*.hogehoge.local    A    192.168.99.2

unbound-checkconfでチェック後、WindowsなのでサービスからUnboundを再起動して読み込ませる。

nslookup fuga.hogehoge.local localhost で結果が返ってくればOK。
ネットワークアダプタの設定でDNSを手動にしてlocalhost指定。
ワイルドカードを使う際はauth-zoneじゃなきゃダメみたい。

ローカルにbind立てるのは面倒だったのですが、unboundは簡単な感じでいいですね。

サンバーディアスの冬タイヤ購入

今年も冬がやってきた、ということで冬タイヤに交換してみたら、作シーズンにスタックから脱出するときに相当擦ってしまったのか、後輪2本の真ん中が坊主に近くなっておりました。前輪2本はまだ十分溝もあるんですが、まぁ中古入手で最低4年以上経ってるわけだし、ということで交換しました。

サンバーディアスワゴン(TW1)のタイヤサイズは165/70R13。ネットで調べても妙に選択肢が少ないなーと思って販売店で聞くと、レアなタイヤサイズなんだそうです。というか年式古すぎて「今どきのタイヤじゃない」ってことだろうね。
イエローハットでは入荷未定・入り次第と言われ、別のガソリンスタンドで探して貰ったら別支店が在庫持ってるということで取り寄せてもらい、交換。2023年生産の在庫なので少しお値引きしてくれました。

ハンドルがとても軽くなった!前のタイヤはなんだったんだ!空気が抜けててべったり接地してたのかもしれないですね。
新品タイヤでいきなり東京往復他1200kmドライブしてきましたのでまぁ特に不具合もないということで。

NILLKIN CUBE 折りたたみキーボードを入手

4月にぽちっとしてしまったNuphy Air60 V2ですが、どうにもA段とZ段のズレでのミスタイプが出てしまいまして、慣れなかったので手放しました。
小さいキーボード Nuphy Air60 V2 でどこでも文章を書きたかった | Nacky – Snowland.net

HHKBとか通常のキーボードはAとZがキー半個分ずれてるんですが、Nuphy Air60 V2は1/4個分しかずれていない。これが意外と私には大きかった。
キーマップいじれたりしてもキーの物理配置はいじれないからな…

で次にポチッとしてしまったのがNILLKIN CUBEという折りたたみキーボード。公式サイトで買ったけどよく見たらAmazonのほうがクーポン付いたりして安かった上に配送も早かった…

キーピッチはフルではないものの大体フルっぽい感じの広さ。タッチパッドもついててAndroidでもマウスポインタが出て使える。

これで1万円切ってるしBluetoothで3デバイス切り替えて使えるし、全然良いのでは?と思ってLenovo TAB B11に接続。これで理想形…!

使ってみるとなかなか良いのですが、一度Bluetoothを切断すると二度と繋がらない。タブレット側を再起動すると初回は繋がるが、やはり切断後は繋がらない。他のAndroid端末ではそんなことはないので、Lenovo TAB B11側の不具合のようだ。がっかりだよ…

ということで、期待は高く、実際なかなか使えたのにもかかわらず、タブレット側のペアリング問題であまり活躍の場が無いまま、今日も私のカバンの重りになっております…

ノートPCのBluetoothが突然死したらハードリセット

旅先でノートPCを開いたらBluetoothマウスが認識されない。
デバイスマネージャを開いたらBluetoothが死んでる。
前の晩まで使えていたのに起きたらコレ。

エラーメッセージで検索してみると、ハード的な不具合らしく、デバイスのアンインストール→自動インストールでは直らないらしい。実際やってみたけどダメだった。
さらにデバイスマネージャを見るとBluetooth以外にも「UCM- UCSI ACPIデバイス」にも⚠マークがあった。

海外情報等ではノートPCの電源ボタンを長押しして強制終了すれば直るなどとも書かれていたが、だったら長押しじゃなくてもWindowsをShift押しながらシャットダウン再起動とかでいいんじゃないの~と思ったらその通り回復。

【解消済】Windows UpdateしたらUSB Type-Cとキーボードが反応しない|とりーぬ

あとからこちらの記事も発見。最近のWindowsは完全終了しないからね…なるほど。