メインコンテンツまでスキップ

Guest / IoT client の分離

同じ LAN に接続されている特定の MAC address を guest / IoT client として扱い、 internet は許可しつつ、trusted LAN や管理網への到達を止める例です。

完全な YAML は examples/guest-mode.yaml にあります。

構成図

図の対応表

番号意味主な resource
[1]client policy を適用する router。FirewallPolicy/default
[2]trusted client と guest client が同居する shared LAN。FirewallZone/lan
[3]guest policy に一致しない通常 client。default zone behavior
[4]guest / IoT として扱う MAC address。ClientPolicy/guest-devices
[5]guest client から到達させない管理宛先。ClientPolicy.spec.isolation.lanMgmt

要点

# [4] listed MAC address を isolated guest / IoT client として扱う。
- apiVersion: firewall.routerd.net/v1alpha1
kind: ClientPolicy
metadata:
name: guest-devices
spec:
mode: include
macs:
- 18:ec:e7:33:12:6c
# [4] -> [1] internet は許可し、LAN と管理網は拒否する。
isolation:
lanInternet: allow
lanLAN: deny
lanMgmt: deny
mDNSBroadcast: deny

確認

routerd validate --config examples/guest-mode.yaml
routerd apply --config examples/guest-mode.yaml --once --dry-run
routerctl describe ClientPolicy/guest-devices
nft list table inet routerd_filter

guest client から internet へ出られること、trusted LAN と管理網へ届かないことを確認します。

よく変えるところ

  • listed MAC address だけを分離するなら mode: include
  • 原則 guest にして、listed device だけ trusted にするなら mode: exclude
  • Web Console で分かりやすくするため、DHCP reservation と組み合わせる。