Magnolia Tech

いつもコードのことばかり考えている人のために。

ルータ側の設定でDHCPでUbuntu Serverに配布されるIPアドレスを固定化する

前回のエントリでは、ルータ側のDHCPの設定でIPアドレスを固定化しようとしたけど、上手くいかなかったので、Netplanを使って固定化する方法を調べた。

blog.magnolia.tech

今使っているルータは、MACアドレス指定でDHCPで配布されるIPアドレスを固定化する仕組みを提供しているけど、Ubuntu ServerではDHCPを使ってIPアドレスを取得する際のキーがMACアドレスではなく、DUIDを使っていることがわかった。

IPアドレスを指定するためには、Netplanの設定で、dhcp-identifierという項目に、macと指定する必要があった。

結果的に、設定はこれだけになった。

network:
  ethernets:
    device_ethernet:
      dhcp4: yes
      dhcp-identifier: mac
      wakeonlan: true
  version: 2

ちなみに、IPv6IPアドレスはSLAACという仕組みで、ルータからプリフィクスが配布される設定にしているので、dhcp6を有効にする必要はない。

使っているルータのDHCPの配布指定が20エントリまでしか使えないのがちょっと心許ない。あと、全然説明が足りなさ過ぎて、困った。

自宅ネットワークでもルータ側でIPアドレスの配布は集中管理したいよね。

ThinkCentre M75q Tiny Gen2で、Wake On LANを有効にする

UEFIのPOWERの設定を確認する

  • Enhanced Power Saving ModeDisabledになっていること

    現代のPCは、電源がオフになっている時でも多少の電力を消費するようになっているけど、それを最小化するための設定。 ただし、これがEnabledになっているとWake On LANは使えず、Wake On Alarmという日時指定の自動起動しか使えなくなる。

    また、これがEnabledになっていると、特定のポートに繋がったUSBキーボードからAlt+Pで電源をオンにするためのSmart Power Onも使えなくなる。

    Wake On LANを有効にするためには、まず項目がDisabledになっていることが条件。

  • Automatic Power OnWake On LANEnabledになっていること

    そのままの設定値だけど、続いて当然Wake On LANEnabledになっている必要がある。

    これでUEFIメニューの中の設定は終わり。

netplanの設定を確認する

  • netplanのEthernet用の設定に、wakeonlan: trueが含まれていること

    デフォルトがオフなので、明示的にtrueに設定しないと有効にならない。

なお、無線LAN側のインタフェースは設定しても反応しなかったので、残念ながらThinkCentre M75q Tiny Gen2は、無線LANによるWake on LANはサポートしていないようです。

スイッチングハブを買う……TP-Link LS105G

自宅サーバ構築用にPCを購入し。

blog.magnolia.tech

作業している部屋で使えるLANのポートが一つしかなく、有線LANと、無線LANのアクセスポイントが同時に利用できない。無線LANでもいいか……と思って作業を始めたけど、Ubuntuのインストールに異常に時間がかかるし、起動のたびに無線LANの接続に数分余計にかかるし、そもそもクライアントPCからのSSHが気持ち悪い遅延が発生して使い物にならない……

さっさと一番安いスイッチングハブを買ってきて接続。


手元の間に合わせだったので一番安い1Gbp対応のものを選ぶだけかなーと思ったけど、実際に買おうとすると選択肢も多いので、小一時間悩んでしまった。

  • 通信速度(1Gbps、2.5Gbps、10Gbps)……さすがに100Mbpsは無し
  • ポート数(たいてい家庭用は5か、8)
  • 金属筐体か、プラスチック筐体か
  • 電源内蔵か、ACアダプタか
  • POE+対応か
  • 筐体の大きさ
  • 保証

くらいが考慮事項か。このくらいのレベルだと電源内蔵モデルが少ないけど、絶対にACアダプタとの組み合わせが分からなくなるから迷ったけど、ちょっと高めだったので今回は見送り。あとPOE+に対していると今使っているMeraki GoのアクセスポイントのACアダプタが不要になって見栄えが良くなる…とか考えたけど、それはまた別途最終構成を考えてから…ということで、売り場で一番安かったTP-Linkの製品を購入。

物理Linuxサーバ構築用にThinkCentre M75q Tiny Gen2を購入

普段、メインで使っているPCがMacBook Air 2018なので、さすがにDockerでコンテナをたくさん立ち上げたまま、ブラウザで調べ物する、みたいな使い方が辛くなってきた。夏場はファンも凄い回っちゃうし、レスポンスはすごく悪くなるし。

メインPCを買い替えようかとも思ったけど、ブラウザを使うくらいの作業なら特に不満は無い。それにそもそもメインPCでLinuxが動いている必然性も無いし、画面も要らないのでサブPCとしてデスクトップPCを用意して、Linuxをインストールする方に方向に転換。


部屋に大きなデスクトップが有るとサイズ的に圧迫感が有るし、複数のマシンのファンの音が同時に鳴るのは苦手なので(データセンタではないので...)、作業している場所から離れた所の隙間に設置できるような、1リットルサイズの小型PCを探すことにした。

Amazonとかで探すと色々と出てくるけど、それなりのスペックを求めると(当たり前だけど)それなりに高くて、10万円に近づいていく。サブPCにそこまで使うのもなーと思って、中古を見てみると古い世代であればたくさん出回っているけど、決め手に欠けるものばかりで、さっさと買う、というモードにならず。

そういえば一時期「lenovoAMD搭載ThinkCentre Tiny」が安い、みたいな記事がたくさん出回っていたことを思い出して最新の価格を調べてみると...円安のせいか、数ヶ月の間にだいぶ値段が上がっている......そもそも即納モデル以外はどれも納期が3ヶ月後とかで、ちょっと手がでない。待っている間に新製品が出そう。

そこでlenovoのアウトレットストアを見てみると、割と常時開封後返品されたマシンを整備品として、リーズナブルな価格で販売していた。

www.lenovo.com

ただし、1リットルサイズのTinyモデルはほとんどない。普通のデスクトップモデルならいつでも有るけど……と思っていたら、年明けにAMD搭載ThinkCentreのTinyモデルが安く売られていたのですぐに購入。販売数が少ないので、すぐに売り切れていた。タイミングが良かった。

スペック的には即納モデルと同じみたいで、CPUがAMD Ryzen 5 PRO 5650GE、メモリ8GB、SSD256GB。Wi-Fiもある。あとは一応キーボード、マウス、スタンドも付いてきた、使わないけど。

価格は新品より2万円安く、ちょっと前の新品の価格をちょっと下回るくらい。

実際にに届いた物をチェックしたけど、特に使用感も全然無くて普通に新品と見分けがつかなかった。

梱包は簡素で、箱にはlenovoのマークも無し。

紙のマニュアルも一切付属せず、自分でダウンロードする必要がある。

Windows 11の立ち上げ確認

プリインストールされていたOSはWindows 11 Home

立ち上げ確認と、マイクロソフトアカウントの登録、ライセンス認証、インストールメディアの作成まで実施。

マイクロソフトアカウントにデジタルライセンスが登録されたので、再インストールの準備完了。

Ubuntu Server 22.10のインストール

Windows 11をいつでも再インストールできる状態にしたら、早速全部ストレージを初期化して、Ubuntu Serverのインストール。いつでも入れ替えられるので、最新の22.10をインストール。

注意点はインストール前に、セキュアブートをオフにしておくことを忘れない、くらい。SSHの鍵もGitHubから取得してくれて用意してくれるので、macOSからすぐにSSHでログインできたのが良かった。そういえば、Ubuntuインストーラを起動のもずいぶん久しぶりな気がする...

最初、無線LAN経由でインストールしたらめちゃめちゃ時間がかかったので、HUBを買ってきて有線LAN側で接続。レスポンスがかなり快適になった。

インストールが完了した後に、IPアドレスを固定化してから、Wake on LANを試す。macOSだと「WakeOnCommand」というツールで可能。特に設定は変えていないけど、MACアドレスを指定したらすぐに立ち上がった。これで遠隔操作もバッチリ。


考えてみれば物理ハードにUbuntuを自分でインストールしたのが初めてで、ネットワークの設定周りでちょっと戸惑ったけど、それが終わればいつものUbuntuなので、あとは特に困ることも無かった。

最近はLinuxもイメージから起動するようになってOSのインストーラ自体動かさなくなってたなぁ。

Ubuntu Serverでnetplanを使って固定IPアドレスを指定する(あと、Wake on LANを有効にする)

手元のPCにUbuntuをインストールした...よく考えてみると物理PCに直接Ubuntuをインストールしたのが初めてだと気がついた。 特にネットワーク周りの設定は、ネットワークインタフェースに影響を受けるので、今まで意識したことが無いところでの設定が必要になった。


自宅内サーバとしての使い方なのでIPアドレスは固定化したい。 本当はルータ側でMACアドレスを指定してIPアドレス払い出しを固定化する方法も有るはずなのだけど、上手くいかなかったので、まずはUbuntu側で設定することにした。

Ubuntuでは、netplanというコマンドを使ってIPアドレスを固定化する。

詳しい解説は、以下のサイトを参照のこと

netplan.io

公式ドキュメントでも、ネットの情報でも、明示的にrendererを指定している例が多いけど、公式ドキュメントには/etc/netplan/配下にYAMLファイルが置かれていると明示的にrendererNetworkManagerを指定しない限り、networkdが利用されるそうなので、明示的に指定する必要が無かった。

あと、Ubuntu ServerはデフォルトでNetworkManagerをインストールしないので、NetworkManagerのパッケージを追加インストールしない限り、rendererNetworkManagerを指定してもネットワークインタフェースは何も設定されないので、注意。初めてUbuntu Serverをインストールした時、nmcliではネットワークインタフェースが全てunmanagedになっていたので何事?と思ったけど、そもそもNetworkManagerでは管理されていない、というそのままの状態表示だった。


インストールしたPCには有線LANと無線LANの、2つのインタフェースが有るので、有線LAN側を固定IP化することにした。

有線LAN側の設定

network:
  ethernets:
    device_ethernet:
      dhcp4: false
      addresses: [192.168.0.xx/24]
      routes:
        - to: default
          via: 192.168.0.1
          metric: 100
      nameservers:
        addresses: [192.168.0.1]
      wakeonlan: true
  version: 2

バイス名と、IPアドレスはマスクしているけど、それ以外は設定した内容をそのまま載せている。静的にIPを指定する場合は、nameservermetricは明示的に設定する必要がある。

metricの意味は下記のサイトを参考にした。

qiita.com

デフォルトでは無線LANのインタフェースには600、有線LANのインタフェースには100が割り当てられた。同じゲートウェイを向いている時は、有線LANが選択されることになる。IPアドレスを固定化する際は、明示的に指定しないといけないの、デフォルトと同じ100を設定した。

name serverは、利用しているホームゲートウェイがWAN側にDNSサーバのアドレスを保持しているので、ゲートウェイに設定した。パブリックDNS 8.8.8.8でも別によいけど。

Wake on LANも明示的に設定しないと有効にならなかったので設定した......これで遠隔から電源をオンにできる。

無線LAN側の設定

同じ設定方法だとトラブった時に切り分けができないので、無線LAN側はDHCPを使うデフォルト設定のままとした。

network:
  version: 2
  wifis:
    device_wifi:
      access-points:
        name_of_access_point:
          password: xxxxxxxxxxxxxxxxxxx
      dhcp4: true

ip routeコマンドで反映した結果を確認する

なお、ゲートウェイを指定するgateway4記法はUbuntu 22.04より非推奨になっており、routesを使うのだそうだ。

KIOXIA USBフラッシュメモリ 16GBを買った......物理記録メディアを買うのはいったいいつ以来なのだろう

Windowsのインストールメディアと、Ubuntuのインストールメディアを作るために、USBメモリを買った。

もう最後にUSBメモリを買ったのがいつだったのか、まったく思い出せない。

というか買った記憶が無い。

最後に自宅でUSBメモリを使ったのは、まだ「ATOK for Mac」がパッケージ販売されていた頃、インストール用のUSBメモリの空き領域を使って何かのファイルを移動したような、そんな記憶しかない。

SDカードはデジカメのために買った記憶もあるけど、確実に10年以上前のような気がする。

記録メディアの類を、緊急用ですら買わなくなって、久しいけど、ほんと困らないというか、必要性が全くない。


ちなみに作ったインストールメディアは、将来絶対に分からなくなる自信が有ったので、それぞれチャック付きの袋に、ラベルを貼って保管することにした。だけど、きっとこのメディアをどこに保管したのか分からなくなって、同じ物を作るんだろうなぁ…。

そして、もっと先の未来で、うっかり見つかって、「こんな容量じゃ使えねー」って言って捨てるんだろうなぁ…。

すべてのエンジニアは、機関車トーマスの『じこはおこるさ』を聞くべきではないか

大事なことが、全部ここに集まっている!

utaten.com