IPv6 IPoE / IPv4 IP-IP(transix 固定IP)

「transix IPv4接続(固定IP)」を利用する、デュアルスタックインターネット接続の設定例。

このタスクについて

  • ルータ広告を利用してIPv6ネットワークに接続し、IPv4 over IPv6トンネルを構成します。
  • IPv4インターネットアクセスには、固定割り当てされたIPv4グローバルアドレスを使用します。
  • 設定例ではDHCPにより配下の端末へIPv4アドレス情報を配布してIPv4インターネットアクセスを提供します。また、ルータ広告およびDHCPv6により配下の端末へIPv6アドレス情報を配布してIPv6インターネットアクセスを提供します。
適合機種
SEIL/X4, SEIL/x86 Ayame:ver.2.30以降

始める前に

  • インターネットマルチフィード株式会社が提供する「transix IPv4接続(固定IP)」は、アクセス回線にNTT フレッツ・光を使用するISP事業者向けのローミングサービスです。利用するにはtransixへの接続を提供するISP事業者のサービスを契約する必要があります。
  • NTT フレッツ・光ネクストにおいて本装置配下のクライアント端末にIPv6グローバルアドレスを割り当てるには、IPv6プレフィクスの委譲を受けるため「ひかり電話」の契約が必要です。

構成イメージ

サンプルコンフィグ

hostname : ${hostname}

interface.ge0.ipv6.address                           : router-advertisement
interface.ge0.ipv6.router-advertisement.interface-id : ${interface_id}
option.ipv6.router-advertisement.fast-switch.service : enable

interface.loopback0.ipv4.address   : ${assigned_global_address}/32
interface.tunnel0.ipv6.source      : ge0
interface.tunnel0.ipv6.destination : ${tunnel_peers_address}
interface.tunnel0.ipv4.address     : loopback0
interface.tunnel0.ipv4.tcp-mss     : 1420
interface.tunnel0.mtu              : 1460

interface.ge1.ipv4.address : ${lan_address}${lan_prefixlen}

nat.ipv4.napt.0.private   : ${napt_private}
nat.ipv4.napt.0.interface : tunnel0

ddns.service             : enable
ddns.0.url               : ${ddns_url}?username=${ddns_username}&password=${ddns_password}
ddns.0.trigger.interface : ge0
ddns.0.address-family    : ipv6

dhcp6.client.service                            : enable
dhcp6.client.0.interface                        : ge0
dhcp6.client.0.prefix-delegation.0.interface-id : ::1
dhcp6.client.0.prefix-delegation.0.sla-id       : 0x0000
dhcp6.client.0.prefix-delegation.0.subnet       : ge1

route.ipv4.0.destination : default
route.ipv4.0.gateway     : tunnel0

route.ipv6.0.destination : default
route.ipv6.0.gateway     : router-advertisement

dns-forwarder.service                 : enable
dns-forwarder.0.address               : dhcp6
dns-forwarder.listen.ipv4.0.interface : ge1

dhcp.server.service         : enable
dhcp.server.0.interface     : ge1
dhcp.server.0.pool.address  : ${pool_address}${lan_prefixlen}
dhcp.server.0.pool.count    : ${pool_count}
dhcp.server.0.dns.0.address : ${lan_address}

router-advertisement.service              : enable
router-advertisement.0.interface          : ge1
router-advertisement.0.advertise.0.prefix : auto
router-advertisement.0.other-flag         : enable

dhcp6.server.service                   : enable
dhcp6.server.0.interface               : ge1
dhcp6.server.0.dns.0.address           : dhcp6
dhcp6.server.0.dns.0.client-interface  : ge0

ntp.service          : enable
ntp.client.0.address : ${ntp_address}
 
resolver.service   : enable
resolver.0.address : dhcp6

filter.ipv6.1.action    : pass
filter.ipv6.1.interface : ge0
filter.ipv6.1.direction : inout
filter.ipv6.1.protocol  : 4
filter.ipv6.1.logging   : off
filter.ipv6.2.action    : block
filter.ipv6.2.interface : tunnel0
filter.ipv6.2.direction : inout
filter.ipv6.2.logging   : on 

filter.ipv4.0.action              : pass
filter.ipv4.0.interface           : any
filter.ipv4.0.direction           : in
filter.ipv4.0.source.address      : 202.221.49.0/24
filter.ipv4.0.destination.address : self
filter.ipv4.0.logging             : off
filter.ipv4.2.action              : pass
filter.ipv4.2.interface           : any
filter.ipv4.2.direction           : in
filter.ipv4.2.source.address      : 202.221.50.0/23
filter.ipv4.2.destination.address : self
filter.ipv4.2.logging             : off

filter.ipv6.0.action              : pass
filter.ipv6.0.interface           : any
filter.ipv6.0.direction           : in
filter.ipv6.0.source.address      : 2001:240:bb88::/48
filter.ipv6.0.destination.address : self
filter.ipv6.0.logging             : off

route.ipv4.10001.destination : 202.221.49.0/24
route.ipv4.10001.gateway     : tunnel0
route.ipv4.10001.distance    : 1
route.ipv4.10002.destination : 202.221.49.0/24
route.ipv4.10002.gateway     : discard
route.ipv4.10002.distance    : 100
route.ipv4.10003.destination : 202.221.50.0/23
route.ipv4.10003.gateway     : tunnel0
route.ipv4.10003.distance    : 1
route.ipv4.10004.destination : 202.221.50.0/23
route.ipv4.10004.gateway     : discard
route.ipv4.10004.distance    : 100

用意するパラメータ

項目 設定箇所 サンプル拠点の値 備考
ホスト名 ${hostname} SA01
IP-IPトンネルの接続元IPv6アドレスの下位64 bit ${interface_id} ::1 ISPの指定に従う
IP-IPトンネルの接続先IPv6アドレス ${tunnel_peers_address} 2001:db8::1 ISPの指定に従う
インターネット通信用に割り当てられたIPv4アドレス ${assigned_global_address} 203.0.113.1 ISPの指定に従う
アドレス情報アップデートサーバのURL ${ddns_url} http://update.example.jp ISPの指示に従う
アドレス情報アップデートサーバ用ユーザ名 ${ddns_username} USR01 ISPの指定に従う
アドレス情報アップデートサーバ用パスワード ${ddns_password} PWD01 ISPの指定に従う
SAのLAN側アドレス ${lan_address} 192.168.1.1
LANのサブネットマスク ${lan_prefixlen} /24
NAPT適用範囲 ${napt_private} 192.168.1.0-192.168.1.255
DHCPのアドレスプールの先頭 ${pool_address} 192.168.1.2
DHCPのアドレスプールの個数 ${pool_count} 253 192.168.1.2-192.168.1.254の範囲
NTPサーバアドレス ${ntp_address} 192.0.2.123 置換必須/無指定時はNTPが動作しない
サンプルCSV(SACMテンプレートセット向け)
【ダウンロード】

テンプレート用サンプルCSV

[name],[sa_label],hostname,interface_id,tunnel_peers_address,assigned_global_address,ddns_url,ddns_username,ddns_password,lan_address,lan_prefixlen,napt_private,pool_address,pool_count,ntp_address
[default],,,,,,,,,,,,,,
<sa-Code>,サンプル拠点の値,SA01,::1,2001:db8::1,203.0.113.1,http://update.example.jp,USR01,PWD01,192.168.1.1,/24,192.168.1.0-192.168.1.255,192.168.1.2,253,192.0.2.123
注:<SA-Code> を実在するSAコードに書き換える必要があります。
警告:
CSV操作に関する注意
インポート操作は取り消せません。
変数や所属SAが存在するテンプレートセットにインポートするときは、必ず事前にバックアップとしてエクスポートしてください。
インポートは、当該テンプレートの所属SAのリスト全体を置き換えます。CSVに含まれないサービスアダプタは所属が解除され変数は初期化されます。

コンフィグの説明

WANインタフェース (interface.ge0...)
インタフェースのIPv6アドレスはルータ広告の受信を設定し、IPv6のデフォルトルータとプレフィックスを取得します。
取得したプレフィックスからIPアドレスを生成するにあたり、ISPから指定されたインタフェースID(IPv6アドレスの下位64 bit)を設定します。
また、プレフィックスが変化したとき迅速に追従するために、最近受信したプレフィックスを優先するオプションを設定します。
ループバックインタフェース(interface.loopback0...)
ISPから割り当てられたIPv4グローバルアドレスを、ループバックインタフェースに設定します。
IP-IPトンネル (interface.tunnel0...)
IPv4 over IPv6トンネルを構成します。
接続元(CPE)のIPv6アドレスは、広告されたプレフィックスから生成したge0インタフェースのアドレスに追従させるために、ge0を設定します。
接続先(トンネル終端装置)のIPv6アドレスは、ISPから指定されたアドレスを設定します。
トンネル内の通信に用いるIPv4グローバルアドレスは、IP-IPトンネルがloopback0から借り受けるように設定します。
ヒント: ISPから割り当てられたIPv4アドレスはIP-IPトンネルで使用しますが、ISPからリモートアドレスが提示されないためIP-IPトンネルに直接設定することができません。このためIP-IPインタフェースはIP Unnumberedとし、送信アドレスを他のインタフェースから借り受けるように設定します。借り受け元に使用するインタフェースはloopback0である必要は無く、vlan[]bridge[]、またはge0インタフェースでも構いません。
1. IP-IPトンネルに付与されるアドレスの構成
アドレス設定箇所 付与されるアドレス
IP-IPトンネルの接続元IPv6アドレス ルータ広告のプレフィックスと、ISPから指定されたインタフェースIDによるIPv6アドレス(ge0のアドレスに追従する)
IP-IPトンネルの接続先IPv6アドレス ISPから指定されたIPv6アドレス
インタフェースのローカルIPv4アドレス ISPから指定されたIPv4アドレス(loopback0に設定した上で借り受ける)
インタフェースのリモートIPv4アドレス 付与しない(ISPから提示されない)
IPv4静的経路 (route.ipv4...)
IPv4デフォルト経路のゲートウェイにtunnel0インタフェースを指定します。
サンプルでは末尾にSMFv2サービスの通信要件に当たる経路を記載していますが、デフォルト経路とゲートウェイが同一のため省略できます。
IPv6静的経路 (route.ipv6...)
IPv6デフォルト経路のゲートウェイにrouter-advertisementを指定します。
LANインタフェース (interface.ge1...)
LANのプライベートアドレスを設定します。
DHCPv6クライアント(dhcp6.client...)
DNSアドレス等を取得するためにWANインタフェース(ge0)でDHCPv6クライアントを有効化します。
委譲されたIPv6プレフィックスをLANインタフェース(ge1)に割り当てます。
NAPT (nat.ipv4.napt...)
指定範囲に一致するプライベートアドレスを送信元とするパケットをIP-IPインタフェースから送信するときNAPTが適用されます。
SA自身がIP-IPインタフェースから送信する自発パケットは、送信元アドレスはIP-IPインタフェースのIPアドレスとなるため通常は適用されません。
ダイナミックDNS(ddns...)
広告されたプレフィックスから生成した自分側のトンネル終端アドレスをアドレス情報アップデートサーバに通知するために、ダイナミックDNSクライアント機能を使用します。
注: アドレス情報アップデートサーバは、SMFv2サービスのサービスホストではありません。経路やフィルタを厳密に設定する場合は、疎通性を確保するように設定してください。
DNS中継 (dns-forwarder...)
LAN内のホストからDNSクエリを受信し中継することができます。キャッシュ機能は持ちません。
NTT フレッツ光ネクストではアドレス情報をDHCPで取得できるため、それによって取得したDNSを中継先に使用します。
DHCPサーバ (dhcp.server...)
LAN内のホストがアドレス設定を自動構成するための情報を提供します。
アドレスプールの個数は、払い出す先頭のアドレスからブロードキャストアドレスを含まない範囲を指定します。
ルータ広告(router-advertisement...)
LAN内にIPv6ルータ広告を送信します。
DHCPv6を併用するためOther Flagを付加します。
NTPクライアント (ntp...)
システムの時刻合わせによりログ等の確認がしやすくなります。
ここではNTPクライアント機能のみ使用しNTPサーバ機能は無効化(デフォルト)しています。
注: NTPサーバ機能を有効化する場合はオープンNTPとならないよう適切なフィルタリングを設定する必要があります。
リゾルバ (resolver)
SA自身が名前解決するために必要です。
IPフィルタ (filter.ipv4...)
サンプルではSMFv2サービスの通信要件に当たるネットワークを明示的にパスしていますが、これを含む範囲をブロックするフィルタを設定しない場合は省略できます。
LAN側ネットワークはプライベートアドレスであり、かつ、NAPTを適用しているため、基本的にWAN側が起点となる通信はLAN側へ到達しません。
注:

SMFサービスで使用し、かつ、本設定例とは異なる厳密なIPv6フィルタ設定を追加する場合は、ファームウェア更新時の動作に気を付けてください。

本設定例では、IPv4アドレスの設定にループバックインタフェースを使用しています。このため、適合ファームウェアに満たないファームウェアバージョンで起動した場合は、ループバックインタフェースが使用できないことによりIPv4経路によるファームウェア更新ができません。この場合でも通常はIPv6経路によってファームウェア更新が行われますが、インターネット通信をIPv4のみに制限するようなフィルタが設定されていると、IPv6によるファームウェア更新も失敗しシステム起動が完了しません。

このようなトラブルを防ぐために、サービスホストとの通信を阻害する可能性のあるフィルタ設定は避けてください。