OpenWRT の設定で迷った時に見てください
OpenWRTの設定でipv6の設定になると、良く分からずに設定してしまっている事ってありませんか?
RA? DHCPv6? Oフラグ/Mフラグ? relay/serverモード? PD?
良く分からない専門用語が次々と出てきて何を設定していいやら。
こういう方を対象に、解説していきたいと思います。
まず、前提知識としてこちらを理解したうえで話をしていきます。
それでは、OpenWRTのLuCI画面から設定の意味を探っていきましょう。
Network - Interfaces - Global network options
- IPv6 ULA-Prefix
IPv6のULAとプレフィックスを指定します。この値は初回起動時(OpenWRT化した後かファクトリーリセットした後)に乱数によって決定されます。ULAのプレフィックスは標準で/48が指定されます。通常はこのまま使って問題ありません。この後説明するIPv6 prefix filterでGUAとULAのプレフィックスを同じにしたい場合は、/56などに変更する必要があります。
- TCP Layer 3 Master Device (tcp_l3mdev) accept / UDP Layer 3 Master Device (udp_l3mdev) accept
この設定は、VRF環境で使うときに有効な設定です。OpenWRTではVRFを使うことまず無いと思いますので、チェックを入れる必要はありません。
VRF(Virtual Routing and Forwarding)
ルーターの中に仮想的に複数のルーターを作って、それぞれ別々のルーターとして振る舞うようにする技術です。
- Packet Steering
ルーターのCPUがマルチコアCPUで、処理を分散させる場合はEnabledに設定します。通常はEnabledで問題ありません。 - Steering flows(RPS)
受信パケットを複数のCPUコアに分散して処理する仕組みです。フロー単位でCPUを選択するハッシュベースの分散が有効になります。通常はデフォルトのままで問題ありません。
Network - Interface - lan - Advanced Settings
- Override IPv6 routing table
ルーティングテーブルを指定します。コンボボックスから選択しますが、これは/etc/iproute2/rt_tablesファイルの中身になります。
#
# reserved values
#
128 prelocal
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
200 pppoe
200 pppoeは自分で追加しています。
この設定は、Routing設定の以下と繋がっています。

この辺のことはnftablesの動作に関わる部分です。ルーティングに関する部分になるので、別の機会に取り上げたいと思います。
nftbales
Linuxに標準で備わっているパケットルーティング機能です。昔はiptablesを使っていましたが、nftablesに置き換わりました。
- Delegate IPv6 prefixes
チェックすると、DHCPv6-PDが有効になります。ISPからのプレフィックスが/48/56の場合はチェックします。PDの委譲がない場合は、ULAに対してDHCPv6-PDを有効にするかの選択になります。(ULAに対してもDHCPv6-PDが効きます)
ISPからDHCPv6-PDで委譲されているかは、OpenWRTルーターにTeraTermなどでログインしたあと、以下のコマンドを実行します。
ubus call network.interface.wan6 status
ipv6-prefixの項目が空だと、ISPからDHCPv6-PDの委譲はありません。
下は空の例、つまりDHCPv6-PDの委譲がなかった例です。
{
"ipv6-address": [
{
"address": "2001:f77:e86a:5925:eafc:2512:fe62:3176",
"mask": 64,
"preferred": 604796,
"valid": 2591996
}
],
"ipv6-prefix": [
],
"ipv6-prefix-assignment": [
],
}
下はプレフィックス/56で委譲された場合の例です。
{
"ipv6-prefix": [
{
"address": "2400:1234:abcd:5600::",
"mask": 56,
"preferred": 7000,
"valid": 8000,
"class": "wan6",
"assigned": {
"lan": {
"address": "2400:1234:abcd:5600::",
"mask": 64
},
"iot": {
"address": "2400:1234:abcd:5601::",
"mask": 64
}
}
}
],
}
- IPv6 assignment length
LANインターフェースに割り当てるIPv6プレフィックスの長さを指定します。通常は64にしておいてください。
ISPからプレフィックス/56で委譲された場合、下記のIPv6 assignment hintで残り8ビット分を結合して決定した値が、クライアントに通知されます。
- IPv6 assignment hint
DHCPv6-PDが移譲された場合、このインターフェースのsubprefixを16進数で指定します。/48なら16ビット分(0000~FFFF)、/56なら8ビット分(00~FF)を指定します。これと委譲されたプレフィックスを結合して、クライアントにプレフィックス/64として伝わります。
- IPv6 prefix filter
上記subprefixを適用するのが、ULAかGUAかを決めます。
wan6(GUA) /local(ULA) /未指定のいずれかを指定します。
未指定だと、ULAとGUAの区別はしません。なのでULA/GUAは同じプレフィックスに設定する必要があります。GUAのプレフィックスが/56で委譲された場合は、ULAのプレフィックスもGUAに合わせてプレフィックス/56に設定すべきです。
ISPからPDの委譲が無く、上記Delegate IPv6 prefixesがチェックされている場合は、localに設定しておきます。
- IPv6 suffix
このインターフェースのIPv6 Suffix部64ビットを指定します。ab:8765:4321などを16進表記で記述します。他には、HELPに書いてある通りeui64randomも指定できます。
EUI64
IEEEが定めた64ビット長の識別子で、MACアドレスの中間に「FFFE」を挿入し、7ビット目の「universal/localビット」を反転させる「Modified EUI-64」という方式でsuffixを生成します。
- IPv6 preference
DHCPv6-PDで委譲する際の優先度を指定します。WANが複数あるようなルーターでは、この値が小さい方のインターフェースが優先されます。
Network - Interface - lan - DHCP Server - IPv6 Settings
- Designated master
DHCPv6/RA relay構成で使うフラグです。複数のインターフェースでrelayモードを使う場合、どのインターフェースが「マスター」として動作するかを決める必要があります。
ONにするとこのインターフェースがマスターとして扱われ、IPv6アドレスやプレフィクス情報を取得し、下流インターフェイスに転送する役割を担います。通常はWAN6のインターフェースではチェックしておきます。
| mode | 説明 |
|---|---|
| server mode | 自身でRAパケットを生成し、クライアントへ送出します |
| relay mode | 上流インターフェイスから受け取ったRAを下流へ中継します |
| hybrid mode | 自動判別し、マスター・スレーブインターフェイスに応じて使い分けます |
server mode / hybrid mode に設定すると、画面上のタブが増えてRAの設定項目が現れます。この項目は後ほど説明します。
| mode | 説明 |
|---|---|
| server mode | このインターフェースがDHCPv6サーバとして動作します。クライアントへIPv6アドレス、DNS情報などを配布します |
| relay mode | 上流から受け取ったDHCP情報を下流へ中継します |
| hybrid mode | 上流から受け取った情報を中継しつつ、独自に設定された項目は変更してクライアントへ配布します |
server mode / hybrid mode に設定した場合は、下記の項目が現れて設定できるようになります。

これらの項目について解説します。

- PD minimum length
プレフィックス委譲(PD)で下流に配布する最小プレフィックス長を制御します。
例:PD minimum length : 60 下流に/60以下のサイズを割り当てる(/62や/64は不可)
- Announced IPv6 DNS servers
クライアントに配布するDNSサーバー情報を設定します。
設定しないと、下記の設定次第では、DHCPv6ではDNS情報が配布されません。(RAでも配布することが可能です)
外部のパブリックDNSを配布したいときなどに設定します。
例:Google DNS(2001:4860:4860::8888,2001:4860:4860::8844)
- Local IPv6 DNS server
ONにすると、このルーターのLLA(リンクローカルアドレス)がDNSサーバーとして通知されます。
上記両方に設定した場合は、両方が通知されますが、どちらを採用するかはクライアント次第です。なので両方設定することはお勧めしません。
- Announced DNS domains
ライアントに対してDNSサフィックスを通知します。--
例えば、example.local を設定すると、クライアントがhost1を名前解決しようとしたときにhost1.example.localで名前解決しようとします。(クライアントに通知するだけでなので、名前解決自体はクライアント自身で行います)
- NTP Servers
クライアントに対してNTPサーバーを通知します。NTPサーバーの通知はRAではできません。DHCPv6のみ可能です。
NTPサーバー
ネットワーク上の機器に正確な時刻を配布するためのサーバー。
代表的なパブリックサーバーとして、jp.pool.ntp.orgtime.google.comntp.nict.jpなどがあります。
| mode | 説明 |
|---|---|
| relay mode | クライアントに対して上位のNDPを中継します。ISPからプレフィックス委譲がない場合、クライアントにGUAを割り当てるためには、ISPが送ってくるNDPを中継してクライアントに送る必要があります。 |
| hybrid mode | ルーター自身がNDP応答を直接処理できる高機能モードです。上流から1つの/64プレフィックスしかもらえない環境で、LAN全体にIPv6を確実に届けたい場合に最適な選択肢です。上流からのRAをリレーしつつ、LAN側に自前でRAを送信できるため、クライアントの自動設定がスムーズに行えます。 |
- Learn routes
ONの場合、ISPからプレフィックス委譲がないのに、クライアント機器へ/64を割り当てたい場合、ルーターが学習したホストルートにより、戻りの通信が正しくクライアント側へ届けられます。プレフィックス委譲がない場合はONにしておいてください。
プレフィックス委譲がある場合は、プレフィックスごとにルーティングができるためOFFにしておくことをお勧めします。
- IPv6 Prefix Lifetime
Prefix Lifetime(プレフィックス有効期限)を設定します。
- Follow IPv4 Lifetime
ONにした場合、IPv6の有効期限をIPv4 DHCPリース時間に同期させます。IPv6 Prefix Lifetimeと同時に設定した場合は、こちらの設定が優先されます。
Network - Interface - lan - DHCP Server - IPv6 RA Settings
| mode | 説明 |
|---|---|
| automatic | プレフィックスが有効で、WAN側にIPv6接続がある場合に、クライアントにデフォルトルートを広告します |
| on available prefix | WAN側でIPv6プレフィックスが取得できない場合は、RAでRouter Lifetimeを0に設定し、クライアントに「このルーターはデフォルトゲートウェイではない」と通知します |
| forced | 常にRouter Lifetimeを設定し、必ずデフォルトルーターとして広告します。WAN接続がなくてもRAでデフォルトルートを通知するため、クライアントはこのルーターをゲートウェイと認識します。 |
- Enable SLAAC
ONにすると、クライアントにSLAACでIPv6アドレスを生成することを通知します。
| mode | 説明 |
|---|---|
| managed config | ここを参照 |
| other config | ここを参照 |
| mobile home agent | Mobile用ローミングのための設定です。Mobileでは、移動すると接続ルーターが変わるため通信の遮断が頻繁に起きます。これを解消する技術がMobile Home Agentです。この設定だけの話ではないので、通常は選択しないでください。 |
Mobile Home Agent
モバイル端末がネットワークを移動しても(接続しているルーターが切り替わることをローミングと言います)同じIPアドレスを維持できるようにするための技術です。
- NAT64 prefix
NAT64機能(通常はtaygaやjoolなどのパッケージ)を提供する場合、このプレフィックスを設定します。IPv6オンリーのネットワークで、IPv4サービスに接続する必要がある場合に限られます。現在のISPでは、MAP-EやDS-Liteなど、IPv4への接続手段がISPから提供されるので設定する必要はありません。
NAT64プレフィックス
NAT64では、IPv4アドレスをIPv6アドレスに埋め込むため、特定のIPv6プレフィックスを使います。標準的なプレフィックスは64:ff9b::/96です。
NAT64
IPv6ネットワークで、IPv4サービスにアクセスするための技術です。IPv6移行を進めつつ、IPv4互換性を維持することができます。NAT64パッケージ(taygaやjool)が必要です。
- Max RA interval / Min RA interval
| mode | 説明 |
|---|---|
| Max RA interval | RAを送信する最大間隔(秒)。RFCでは 最大値は1800秒(30分)が推奨 |
| Min RA interval | RAを送信する最小間隔(秒)。RFCでは 最大値の1/3以上であることが推奨 |
- RA Lifetime
このルーターをデフォルトゲートウェイとして利用できる時間(秒)です。クライアントはこの値が0以外なら、そのルーターをデフォルトルートとして使います。値が0なら、「このルーターはデフォルトゲートウェイではない」と通知します。
- RA MTU
IPv6では標準MTUは1280バイト以上ですが、LAN環境では通常1500バイト(Ethernet標準)を通知します。
MTU(Maximum Transmission Unit)
ネットワークインターフェースが一度に送信できる最大パケットサイズ(バイト単位)です。標準EthernetのMTUは 1500バイトです。
- RA Hop Limit
IPv6のRAで通知されるHop Limit値を指します。これはIPv6におけるTTL(Time To Live)相当で、パケットがネットワークを通過できる最大ホップ数を示します。RAにこのHop Limitを含めることで、クライアントは送信するIPv6パケットのHop Limitをこの値に設定します。標準は64です。
Hop Limit
パケットの寿命を示す値で、IPv4の TTL(Time To Live) に相当します。Hop Limitは、パケットがネットワークを通過できる最大ホップ数(ルーター数)を指定します。
各ルーターを通過するたびにHop Limitが1減り、0になるとパケットは破棄されます





































