1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

auひかりの宅内環境でIPv6リーチャブルなサブネットをFortigate 40Fで構築する

Posted at

自宅のインターネット環境はauひかり(ISPはニフティ)で、auから提供されるホームゲートウェイ(BL1500HM)をそのまま使っていました。生活で使うのには十分な環境ですが、ネットワークでセキュリティ懸賞などの実験をやるには不便なので、UTM(Fortigate 40F)を導入して、複数のサブネットを作ることにしました。Fortigate 40FはWANポート1個、LANポート3個を備えているので、最大3つのサブネットが作れます。
UTMなので、設定次第でホームゲートウェイの代わりにもなるのですが、0ABJの電話サービスを契約している関係から、BL1500HMはそのままとして、LAN上にFortigate 40Fを置いてルーティングさせる方針としました。

UTMにIPv4関連の設定を行う

UTMのIPv4関連の設定はそれほど難しくありません。下図のようにUTMのWANインタフェースに192.168.0.11、LAN1インタフェースに192.168.1.1のアドレスをつけて、デフォルトゲートウェイを192.168.0.1に設定する程度でインターネットと通信できるようになります。なお、UTMなのでデフォルトのフィルタリング設定で、LAN1からWANインターフェース方向のIPv4通信のみが許可されていて、その通信もUTMで監視できるようになっていました。
これで、従来からあったLAN0に加えて、LAN1のサブネットが追加でできました。
Fortigate-IPv4.png

UTMにIPv6関連の設定を行う

IPv6関連の設定は少し複雑です。auひかりの環境でホームゲートウェイの配下にUTM(ルータ)を配置してIPv6を有効化しているような情報(ブログなど)がほぼ無く、試行錯誤を重ねながらやってみました。

自分が使えるIPv6アドレスを確認する

まずは、どのIPv6アドレスが使えるのかを確認しました。ホームゲートウェイの管理画面では、ホームゲートウェイのLAN側につけられたIPv6アドレスとして「240f:xx:xx:1:xx:xx:xx:xx」の情報がありました。xxで伏せ字にしたところはそれぞれ次の通りでした。

  • 第2~第3フィールド:ISPから割り振られたIPv6アドレスの情報
  • 第5~第8フィールド:インタフェースのMACアドレスから計算されたEUI-64形式のアドレス

注目する点は第4フィールドが「1」というところです。ホームゲートウェイにつけられたIPv6アドレスは/64だけですが、実際には/48で割り振られているはずなので、この第4フィールドは自由に使えるだろうと想像しました。そこで、UTMのLAN1インタフェースでは、下図のように「240f:xx:xx:2:xx:xx:xx:xx」と、第4フィールドが「2」のIPv6アドレスを使う方針としました。Fortigate-IPv6.png

UTMにIPv6アドレスを設定する

上記の方針でUTMのWANインタフェースとLAN1インタフェースにIPv6アドレスを設定します。

WAN側

管理画面で「IPv6アドレッシングモード」を「マニュアル」にして、「IPv6アドレスの自動設定」をONにします。これで、第4フィールドが「1」、第5~第8フィールドがEUI-64のアドレスがWANインタフェースに付きます。

LAN1側

管理画面で、「IPv6アドレッシングモード」を「マニュアル」にして、「IPv6アドレス/プレフィックス」を「240f:xx:xx:2:xx:xx:xx/64」にします。

LAN1上の端末がIPv6を使えるようにする

続いて、LAN1上の端末にIPv6アドレスやデフォルトゲートウェイ、DNSサーバの情報を配付する設定を行います。

IPv6のDNSサーバを設定する

管理画面の「IPv6 DNS設定」にプライマリ/セカンダリDNSサーバのIPv6アドレスを設定します。IPv6対応のパブリックDNSサーバはいろいろありますが、今回はGoogle Public DNSのIPv6アドレスを使いました。
https://developers.google.com/speed/public-dns/docs/using?hl=ja

SLAACとDHCPv6を設定する

IPv4の場合、端末にIPアドレスなどの情報を配付する際にはDHCPを使いますが、IPv6の場合はSLAAC(ステートレスアドレス自動設定、RFC 4862)とDHCPv6を使います。
IPv6黎明期にはRA(ルータ広告)の機能だけでIPv6アドレスを配っていましたが、それだとDNSの情報等を配れないために、DHCPv6が開発され、普及してきたと理解していました。しかし、ネットの情報を見ると、Android系の端末がDHCPv6を使えない(Googleのポリシーらしい。。)ので、RAを使ってIPv6アドレスを自動設定するSLAACでIPv6アドレスを配り、さらにDHCPv6をステートレスで使ってDNSサーバのIPv6アドレスを配る必要があります。
UTMでは次のように設定します。

  • 「ステートレスアドレス自動設定(SLAAC)」を有効化して、IPv6プレフィックスに「240f:xx:xx:2::/64」を追加します。
  • 「DHCpv6サーバ」を有効化して、「DNSサービス」は「システムDNSと同じ」を選択します。「ステートフルサーバ」はOFFのままにします。

IPv6のファイアウォールポリシーを追加する

上記の設定までで、LAN1上の端末からインターネットに向けてのIPv6通信ができるはずでしたが、実際にpingやtraceroute で疎通確認してみると、インターネットに出て行けないことが分かりました。確認するとホームゲートウェイのLAN側のIPv6アドレスにもpingが通らないので、UTMのファイアウォールで落とされていると判断しました。
そこで、UTMの「ファイアウォールポリシー」で「LAN→WAN」のポリシーを次のように追加しました。

  • 着信インタフェース: lan
  • 発信インタフェース: wan
  • 送信元: all(ipv6)
  • 宛先: all(ipv6)
  • スケジュール: always
  • サービス: ALL
  • アクション: 許可

設定確認

以上でUTMの設定は完了です。実際にLAN1にWindows端末を接続して、設定が問題無くできているか確認してみました。

ipconfig /all

パワーシェルでipconfig /all コマンドを実行してみたところ、IPv6アドレスがイーサネットアダプタに付与されていて、DNSサーバにもIPv6のGoogle Public DNSのアドレスが表示されます。

ブラウザからIPv6確認サイトをアクセス

IPv6の接続性を確認するサイト(test-ipv6.com)にアクセスしてみました。こちらも問題無く、10点満点となりました。
https://test-ipv6.com/

久しぶりにKame Projectのサイトにアクセスしてみましたが、泳いでいる亀が問題無く見られました。
https://www.kame.net/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?