メインコンテンツへスキップ
見出し画像

プリンターが消える前に|DHCP予約でNAS・カメラ・業務端末のIPを整理する【OpenWrt集中連載012】

    昨日まで使えたプリンターやNASが見つからない。IPアドレスが変わり、アプリが以前の宛先へ接続していることがあります。

    IPが変わると困る機器には、ルーター側で同じアドレスを予約しておくと管理が楽になります。端末側へ固定IPを手入力せず、MACアドレスを見て毎回同じIPアドレスを渡す「DHCP予約」です。

    この記事では、Linksys Velop WRT Pro 7(LN6001-JP)のメーカー提供のOpenWrtベースのOS(ver. 1.2.0.15)で、NAS・プリンター・カメラ・録画機・管理PCのIPアドレスを整理します。003で扱うOpenWrt本流への移行後の画面や設定の引き継ぎを保証する手順ではありません。

    ここではLN6001-JPが対象ネットワークのDHCPサーバーとして動く構成を前提にします。AP・ブリッジ構成で上位HGWがIPを配っている場合は、予約する場所もそのHGWです。LN6001-JPに予約を作るためだけに、同じネットワークで二台目のDHCPサーバーを有効にしないでください。

    今回の構成に使っているOpenWrtルーターはこちらです。


    連載目次: LN6001-JPで始めるOpenWrtルーター実践ガイド

    IPが変わると困る機器だけ予約する

    すべての端末を固定する必要はありません。判断は「IPが変わったら、接続先や業務が止まるか」で決めます。

    DHCP予約する機器と通常DHCPのままでよい端末

    NAS、プリンター、録画機、サーバー、管理PCは予約候補です。スマートフォン、来客端末、一時利用のPCは、通常のDHCPで困らないことが多いでしょう。

    POSや決済端末は別扱いにします。ベンダー指定のIP、DNS、ネットワーク構成、サポート条件がある場合は、その手順を優先してください。

    端末側固定IPより、まずDHCP予約

    「固定IP」には二つの方法があります。

    端末側固定IPは、機器ごとにIP、ネットマスク、ゲートウェイ、DNSを入力します。ネットワーク変更時も各機器で直します。

    DHCP予約なら、端末は自動取得のまま、ルーター側でMACアドレスと配るIPを管理します。家庭や小さなオフィスでは、変更点を一か所へ集めやすい方法です。

    端末側固定IPとルーター側DHCP予約の違い

    業務機器が端末側固定IPを指定している、DHCPのないネットワークで使う、といった事情がある場合は例外です。端末側で固定したアドレスも、同じ機器台帳へ記録します。

    予約帯と自動配布帯を分ける

    予約IPは通常のDHCP配布範囲内でも動作します。ただし、人が見て区別しやすいように、予約帯と自動配布帯を分ける運用がおすすめです。

    192.168.1.0/24 のLANなら、次のように整理できます。

    重要機器の予約帯と通常DHCPの配布帯
    • 192.168.1.1:LN6001-JP

    • 192.168.1.10–19:NAS、サーバー、ミニPC

    • 192.168.1.20–29:プリンター、複合機

    • 192.168.1.30–49:管理PC、ネットワーク機器

    • 192.168.1.100–199:通常のDHCP端末

    LuCIのDHCP Serverで Start=100、Limit=100 なら、配布対象は 192.168.1.100 から 192.168.1.199 です。Limit は最後の番号ではなく、配る個数です。

    既存のVPN、Guest、Deviceなどとサブネットが重なっていないことも確認します。

    先に機器台帳を作る

    予約を追加する前に、機器名、MACアドレス、予約IP、接続先、設置場所を一枚にまとめます。

    DHCP予約の機器台帳サンプル

    画像内のMACアドレスは説明用の架空例です。実際の台帳や /tmp/dhcp.leases には端末を特定できる情報が含まれるため、SNSや公開リポジトリには載せません。

    ホスト名は nas-office、printer-front、camera-entrance のように、役割と場所が分かる英数字とハイフンで付けます。機種名だけより、交換後も使い回しやすくなります。

    設定前にバックアップする

    LuCIで System → Backup / Flash Firmware → Generate archive を開き、現在の設定を保存します。

    SSHでもDHCP設定と現在のリースを残せます。

    BACKUP_DIR="/root/dhcp-before-$(date +%Y%m%d-%H%M)"
    mkdir -p "$BACKUP_DIR"
    
    cp /etc/config/dhcp "$BACKUP_DIR/dhcp"
    uci show dhcp > "$BACKUP_DIR/dhcp.uci.txt"
    cat /tmp/dhcp.leases > "$BACKUP_DIR/dhcp-leases.txt"
    ip addr show > "$BACKUP_DIR/ip-addr.txt"
    
    ls -l "$BACKUP_DIR"
    

    バックアップ先のフォルダー名は、復元時に使うので控えておきます。

    LuCIでDHCP予約を追加する

    作業は四つの工程です。

    LuCIでDHCP予約を追加して確認する四つの工程

    1. 現在の端末情報を確認する

    Network → DHCP and DNS → Active DHCP Leases を開き、予約したい端末のホスト名、MACアドレス、現在のIPアドレスを確認します。

    CLIでは次を使います。

    cat /tmp/dhcp.leases
    

    出力は、おおむね「有効期限、MACアドレス、IPアドレス、ホスト名、クライアントID」の順です。有線とWi-Fiの両方を持つPCは、それぞれ別のMACアドレスを使う点に注意してください。

    2. Static Leaseを作る

    Network → DHCP and DNS → Static Leases → Add を開き、次を入力します。

    • Hostname:nas-office

    • MAC address:対象機器のMACアドレス

    • IPv4 address:192.168.1.10

    IPアドレスは、機器が接続するネットワークと同じサブネットから選びます。Device側のカメラなら、LANの 192.168.1.x ではなく、Device側の 192.168.3.x を使います。この予約はIPv4用です。IPv6を使う管理画面やアクセス制御は別に確認します。

    3. Save & Applyする

    複数台を追加するときも、最初は一台だけ保存します。保留中の変更を確認し、Save & Apply します。

    4. 端末のリースを更新する

    予約を作っても、端末が古いリースを保持している間はIPアドレスが変わらないことがあります。Wi-Fiを切断して再接続する、有線ケーブルを抜き差しする、端末を再起動する、いずれかでリースを更新します。

    Windowsでは次の操作も使えます。

    ipconfig /release
    ipconfig /renew
    ipconfig
    

    最後にActive DHCP Leasesと /tmp/dhcp.leases の両方で、予約したIPになったことを確認します。

    スマートフォンやPCはMACランダム化を確認する

    近年のスマートフォンやPCは、Wi-FiネットワークごとにプライベートMACアドレスを使います。同じSSIDでは同じ値を維持する実装もありますが、設定の変更やネットワークの再登録で値が変われば、予約と一致しません。

    DHCP予約前に確認するMACアドレス

    固定設置のNAS、プリンター、カメラは影響を受けにくい一方、スマートフォンやノートPCを予約するときは注意が必要です。LuCIで見えているMACアドレスと、対象SSIDで端末が実際に使っているMACアドレスを照合します。

    MACランダム化を一律に無効化する必要はありません。IPを固定する理由がなければ、スマートフォンは通常DHCPのままで構いません。

    CLIでは変更前後を見てから確定する

    CLIで一台追加する例です。MACアドレスは説明用なので、実機の値へ置き換えます。

    cp /etc/config/dhcp /etc/config/dhcp.backup.$(date +%Y%m%d-%H%M)
    
    uci add dhcp host
    uci set dhcp.@host[-1].name='nas-office'
    uci set dhcp.@host[-1].mac='02:11:22:33:44:55'
    uci set dhcp.@host[-1].ip='192.168.1.10'
    
    uci changes dhcp
    

    uci changes dhcp で名前、MAC、IPを確認してから確定します。

    uci commit dhcp
    /etc/init.d/dnsmasq restart
    
    uci show dhcp | grep -E '@host|nas-office|192.168.1.10'
    logread | grep -i dnsmasq | tail -n 50
    

    dnsmasqの再起動中は、短時間だけDHCPとローカルDNSが止まります。営業時間中の店舗やオフィスでは、LuCIのSave & Applyを含め、影響の少ない時間に行います。

    重複を機械的に確認する

    予約IPやMACアドレスが重なると、別の端末が想定外のアドレスを取ったり、dnsmasqが警告を出したりします。

    echo "### duplicate reserved IPs"
    uci show dhcp | sed -n "s/.*\.ip='\([^']*\)'.*/\1/p" | sort | uniq -d
    
    echo "### duplicate reserved MACs"
    uci show dhcp | sed -n "s/.*\.mac='\([^']*\)'.*/\1/p" \
      | tr 'A-F' 'a-f' | sort | uniq -d
    

    何も表示されなければ、同じ値を持つ予約は見つかっていません。これは、そのIPが未使用である証明ではありません。端末側固定IPや停止中の機器はリースや近隣キャッシュに出ないことがあるため、機器台帳も照合します。現在のリースは次で確認します。

    cat /tmp/dhcp.leases
    ip neigh show
    

    予約後は、IP・名前・利用機能を確認する

    予約後の確認は、IPが変わったことだけでは終わりません。

    DHCP予約後に確認する四つの項目
    1. 対象機器が予約IPを取得した

    2. 管理画面、印刷、共有フォルダー、録画など本来の機能が動く

    3. 同じIPを使う別端末がいない

    4. 必要ならホスト名で名前解決できる

    Static Leaseへホスト名を設定すると、dnsmasqのローカルDNSから名前を引ける場合があります。OpenWrtの既定ローカルドメインが .lan の構成では、次のように確認できます。

    nslookup nas-office 192.168.1.1
    nslookup nas-office.lan 192.168.1.1
    

    端末が外部DNSやDoHを直接使っている場合、ローカル名をLN6001-JPへ問い合わせず、名前解決できないことがあります。IP予約が成功しているかと、ローカルDNSが使えるかは分けて確認します。

    複数ネットワークでは、予約IPの所属を合わせる

    Guest、Device、Kidsを分けている場合、予約するIPは端末が入るネットワークに合わせます。

    複数ネットワークの予約帯と通常DHCP帯

    Guest端末は原則として予約しません。Device側では、カメラや録画機を 192.168.3.10–49 のような予約帯へまとめると、Staff側から限定的なファイアウォールルールを作りやすくなります。

    端末が想定外のサブネットを取得した場合は、Static Leaseより先にSSIDとnetworkの紐付けを確認します。

    uci show wireless | grep -E 'ssid|network|device|guest|kids|iot'
    cat /tmp/dhcp.leases
    

    機器交換では、同じIPへ新しいMACを割り当てる

    プリンターやNASを買い替えたら、古い予約を複製しません。既存のStatic Leaseを編集し、MACアドレスを新しい機器の値へ変更します。

    1. 新しい機器を一度DHCPで接続する

    2. 新しいMACアドレスを確認する

    3. 古い機器をネットワークから外す

    4. 既存予約のMACアドレスだけを更新し、Save & Applyする

    5. 新しい機器を再接続する

    6. 予約IPと、印刷や共有など必要な機能を確認する

    同じIPを引き継ぐと、印刷先や管理用のファイアウォールルールを変更せずに済む場合があります。ただし、新旧機器を同時に同じIPで使わないでください。

    うまくいかないときは、五つの順番で見る

    DHCP予約が反映されないときの確認順

    予約前のIPのまま

    端末が古いリースを保持しています。端末の再接続またはDHCPリース更新を行い、Active DHCP Leasesを確認します。

    別の端末が予約IPを使っている

    DHCP配布範囲、既存のStatic Lease、端末側固定IPを確認します。ルーターの管理外で手入力された固定IPは /tmp/dhcp.leases に出ない場合があります。

    予約が一致しない

    有線とWi-FiのMACアドレスを取り違えていないか、対象SSIDでプライベートMACを使っていないかを確認します。

    ホスト名だけ引けない

    IP予約が成功しているかを先に確認します。そのうえで、端末のDNSがLN6001-JPを向いているか、ローカルドメインと名前解決設定を確認します。

    別ネットワークのIPになる

    SSIDが意図したnetworkへ紐づいているかを確認します。Device用SSIDが lan のままなら、Device側で予約した 192.168.3.x は割り当てられません。

    戻すときはDHCP設定だけ復元する

    一台の予約だけが原因なら、まずLuCIのStatic Leasesでその変更を戻し、対象端末のリースを更新します。DHCP設定ファイル全体を戻すと、保存後に追加した別の予約やDNS設定も戻ります。以下は今回の作業前の状態へまとめて戻す必要がある場合の例です。

    BACKUP_DIR="/root/dhcp-before-YYYYMMDD-HHMM"
    cp "$BACKUP_DIR/dhcp" /etc/config/dhcp
    /etc/init.d/dnsmasq restart
    

    YYYYMMDD-HHMM は実際のフォルダー名へ置き換え、対象の dhcp ファイルが存在することを確認してから実行します。LuCIのバックアップを使う場合は、System → Backup / Flash Firmware から復元します。復元後は端末のリースを更新し、IPだけでなく印刷・共有・名前解決まで確認します。管理IPやLANのアドレス範囲も変えた場合は、052の管理IPを取り直す手順へ戻ってください。

    次に読むなら

    参考情報

     
     
    外資系テックの仕事と、ネットワーク・AI・動画制作を実際に試す人。日本の仕事を少し便利にする方法を書いています。Linksys / OpenWrt / IPoE / Apple / YouTube tools. 個人の発信です。

    あなたへのおすすめ