UuniFi OS コンソールの最上位機種 Ubiquiti UniFi Dream Machine Special Edition (UDM-SE) を使用する機会を得たので、現在使っている YAMAHA RTX1200 をUDM-SEに置き換えてみようと思います。UDM-SEはVPN, DPI (Deep Packet Inspection), IDS/IPS(不正侵入検知防御システム)をそなえた10Gbps対応エンタープライズグレードルーターです。UDM-SEのネットワーク関連は、内蔵されている UniFi Network Application から設定します。以下は UniFi Network 7.2 の内容です。
Networks
NetworksはLAN側の設定です。大規模ネットワークの効率性を高めるために、IGMP Snooping のようなマルチキャストを制御する機能が付いています。また、Create New Network からVLANを構築することができます。
Auto-Scale Network をオンにしておくと、クライアント数に応じて自動的にネットマスクを調整してくれるようです。Content Filitering は悪意のあるサイト / フィッシングサイト / アダルトサイトをブロックします。また、検索エンジンとYoutubeを強制的にセーフモードにします。FamilyではさらにVPNを禁止します。
Internet
InternetはWAN側の設定です。Backup (WAN2) を Port 8 の 1Gbps RJ45 に変更することができるため、2.5Gbps以下で良ければ、SFP+モジュールを購入しなくても冗長構成を組むことができます。Load Balancing には2つの方法が選べます。Failover Only はWAN1が通信できない場合のみWAN2を使う設定で、WAN1が復帰した場合は自動でFailbackします。DistributedはActive-Activeの構成で、WAN1とWAN2の比率を50:50から変更することもできます。
我が家ではマンションに標準でCYBERHOMEというインターネット回線が来ているもののプライベートIPしか割り当てられず、外から自宅に入ってこられないので、別途auひかりを契約しています。そのため、インターネット回線が2つある状況のため、auひかりを Port 9、CYBERHOMEを Port 8 につないで、Load Balacing を Failover Only にしました。これによって、通常はグローバルIPでインターネット通信するものの、auひかり側が何らかの障害で使えない場合はCYBERHOMEにフェイルオーバーすることで、外から内には入れないけど、内から外の通信だけは確保できます。
Automatic Speed Test を有効にしておくと、定期的にインターネット通信速度を自動計測してくれます。この値はインターネット帯域が飽和していないかどうかの監視に使われます。
Smart Queues は帯域が飽和しているときにトラフィックの優先付けをしてくれるそうです。ただし、300Mbpsを超える環境ではオフが推奨です。IPv4 Connection にStaticを選んだ場合、複数のIPアドレスを割り当てることができます。
Teleport & VPN
Teleportは、WiFimanアプリがインストールされたMac / iOS / Android端末からのリモートアクセスVPNをURLワンクリックで構築できる機能です。Generate new link で生成したURLをiOS / Android端末でクリックするとWiFimanが起動し、それだけでVPNが構築されます。次回以降は、iOSの場合は「設定」からVPNを接続にするだけです。URLは一度きりしか使えないため、ひも付いたあとのURLは漏洩しても安全です。Macの場合はURLをクリックするだけではダメで、URLをデスクトップなどにドラッグ & ドロップしてweblocファイルを作り、それを右クリックしてWiFimanで開くと設定されます。非常に手軽なので、クライアントがMac / iOS / Androidに限られる環境であれば、これだけでも良いかもしれません。詳しくは UniFi - Get to Know: Teleport – Ubiquiti Support and Help Center を参照してください。
VPNサーバーはL2TPに対応しています。Site-to-Site VPN はIPSec/IKEv2またはOpenVPNに対応しています。VPNクライアントはOpenVPNに対応しています。AWSとの Site-to-Site VPN の構築方法については、以下の記事をご覧ください。
※VPNサーバーは UniFi Network 7.3 からWireGuard、7.4からOpenVPNにも対応しました(2023-06-04追記)
なお、dmesgを読んでいるとWireGuardもロードされています。トラベルルーターである GL.iNet Slate (GL-AR750S-Ext) から自宅に Site-to-Site VPN を構築する際は Raspberry Pi 4 にインストールしたWireGuardにつないでいたのですが、UDM-SEで置き換えられるかもしれません。wireguard-toolsもインストールされています。
root@sierra:~# dmesg | grep wireguard [ 10.735426] wireguard: WireGuard 1.0.20210606-dirty loaded. See www.wireguard.com for information. [ 10.735428] wireguard: Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. root@sierra:~# wg --version wireguard-tools v1.0.20210914 - https://git.zx2c4.com/wireguard-tools/
Traffic Managemet
Traffic Identication はDPI (Deep Packet Inspection) するかどうかです。
DPIを有効にすることで、Create New Rule から特定のデバイスの特定のアプリだけをブロックするということができます。例えば子どもの端末で動画アプリを視聴できる時刻を限定したり、業務に関係ないけど帯域を大きく消費しているアプリを帯域制限したりできます。
Create New Route はアプリごとにWANのインタフェースを変えられるように書いてあるのですが、実際にはCategoryにAppがないため、例示されているようなアプリごとの設定はできません。これが未実装なのか、バグなのか、何かほかの設定に依存しているのかは分かりません。現状の設定だと Static Routing と大して変わらない気がします。
Static Routes ではどこにも到達せずに捨てる Black Hole を設定することもできます。
Firewall & Security
Coutnry Restriction では、特定の国をまとめてブロックすることができます。少し古いですが、2020年までのトレンドは 日本を狙うサイバー攻撃 発信元は中国からオランダに:日本経済新聞 に載っていました。Thread Management を Detect Only にするとIDS(Intrusion Detection System、不正侵入検知システム)、Detect and Block にするとIPS(Intrusion Prevention System、不正侵入防止システム)が動作します。以下の Firewall Rules はデフォルトで設定されているものです。Internal Honeypot にダミーのIPアドレスを指定しておくと、そこにアクセスがあった場合は不正アクセスと見なすということができます。
System Sensitivity では何を脅威と見なすかを設定できます。以下はMediumに設定したときのデフォルト値です。必要あれば、IPアドレスやサブネット、VLAN単位でホワイトリストに入れることや、シグネチャ単位で許可することもできます。しばらくIDSで動かして正しい通信が誤検知されないようにチューニングしたあとにIPSを有効にするのが良いでしょう。
Firewall Rule では以下のような設定が可能です。
Port Forwarding では以下のような設定が可能です。Port Forwarding を設定すると自動的に Firewall Rule も作成され、ポート開放されます。
System
Systemでは以下のような設定が可能です。Network Device SSH Authentication はWi-FiアクセスポイントのようなUniFiネットワーク端末にログインするためのSSHであって、UDM-SE自体の設定ではないのでご注意ください。
Port Management
ポートの設定はSettingsではなく、UniFi Devices > UDM-SE > Ports > Port Management から行います。
WANポートを選ぶと、どのポートをWANに使うのかのアサイン変更ができます。
LANポートを選び、Port Isolation をオンにすると、ポート間の通信を遮断することができます。
Legacy Interface
Systemの Legacy Interface をオンにすると、旧インターフェースに変更することができます。一部の機能は新インターフェースに実装されていないため、旧インターフェースも見ておいたほうが良いです。
Site
旧インターフェースのSiteでは、液晶ディスプレイの設定が行えます。
Networks
Networksは新インターフェースのNetworks / Internet / VPN をまとめたものになっています。
Routing & Firewall
Routing & Firewall は新インターフェースの Traffic Management の一部 / Firewall & Security をまとめたものとなっています。
Threat Management
Threat Management は新インターフェースの Traffic Management の一部となっています。
DPI
DPIは新インターフェースの Traffic Management の一部となっています。
Services
Servicesでは、Raidus / DHCP / Dynamic DNS / SIP / SNMP / UPNP / NTP の設定ができます。NTPサーバーは旧インターフェースからしか指定できません。
Network Application
旧インターフェース Network Application では、テストメール送信が行えます。
User Interface
User Interface では、旧インターフェースに関する設定ができます。New User Interface に戻す場合はこちらから設定します。また、旧インターフェースの User browser theme をオンにすれば、新インターフェースでもOSの設定に基づいてライトテーマとダークテーマが自動で切り替わるようになります。
Maintenance
Maintenanceでは、ファームウェアアップデートなどを行えます。
Backup
Backupでは、設定ファイルと履歴データのバックアップとリストアが行えます。
主な非対応機能
私が気づいたUDM-SEが非対応な機能は以下です。
BGPなどの動的ルーティング
AWSに静的ルーティングで Site-to-Site VPN を組むことはできますが、BGPに非対応なため、AWS側の2つのトンネルの片側ずつしか接続できず、同時接続することができません。そのため、接続先のAWS側のトンネルが落ちた場合、手動でバックアップトンネルに切り替える必要があります。トンネルが落ちているかどうかは aws ec2 describe-vpn-connections
で取得できるので、UDM-SEの 静的ルーティングの有効/無効をコマンドラインから切り替えられれば自動化できるのですが、コマンドがまだ分かっていません。
MAP-E / DS-Lite
※ transix IPv4接続 (DS-Lite) には UniFi OS 3.2 + UniFi Network 8.0.7 から対応しました。詳しくは IPv6 IPoE transix IPv4 (DS-Lite)の設定手順|Ubiquiti UniFi |Ubiquiti Japan (UI Japan)(2024-02-04追記)
MAP-EまたはDS-Liteはフレッツ光で IPv4 over IPv6 するための機能ですが、世界規模でいうとマイナーな仕様のため、海外製ルーターで対応しているものはUDM-SE含めて少ない印象です。MAP-E / DS-Liteが必要な場合は、UDM-SEの上流に別のMAP-E / DS-Liteに対応したHGW (Home Gateway) などを置く必要があります。詳しくは Unifi Dream Machine で MAP-E方式の IPv6 に対応する - tech.guitarrapc.cóm が参考になるでしょう。私が使っているauひかりはMAP-E / DS-Liteが不要なので問題ありませんでした。
IGMP Proxy / MLD Proxy
※ IGMP Proxy には UniFi Network 7.4 から対応しました。しかし、auひかり テレビサービスは引き続き表示されません(2023-06-04追記)
IGMP Proxy または MLD Proxy はIPTV(インターネットテレビ)を使うときに必要な場合があります。 UDM-SEの下に auひかり テレビサービス のセットトップボックスであるSTW2000を置くと、IPTVだけが表示されず、Amazon Prime Video などは問題なく表示されるという症状が起きます。auひかり テレビサービス の仕様が全く不明なのですが、HGWに直接つなげばSTW2000にIPv6アドレスを割り当てなくてもIPTVが見られるので、おそらくIPv4の規格である IGMP Proxy への対応が必要となりそうです。なお、ぷららのひかりTVはIPv6の規格であるMLDv2を必要とします。
そのため、我が家では以下のような構成を取っています。HGWとSTW2000を有線でつなぐ、またはHGWがVLANに対応していればシンプルに解決できるのですが、我が家の環境ではどちらもできないため、IGMP Proxy に対応しているWi-Fiアクセスポイントである TP-Link TL-WR902AC をHGWから直接生やしています。
欧州では IGMP Proxy を必要とするIPTVが多いようで、公式 UI Community でかなり話題になっています。fabianishere/udm-iptv: Helper tool for configuring routed IPTV on the UniFi Dream Machine (Pro) というのも公開されているので、がんばれば設定できるかもしれません。IGMPとMLDについては MLD スヌーピングとひかり TV | yabe.jp が詳しいです。
まとめ
UDM-SEはVPN, DPI, IDS/IPSをそなえた10Gbps対応エンタープライズグレードのルーターです。すべての設定がGUIから行えます。しかし、BGP, MAP-E, MLD Proxy には非対応です。