FortinetのUTM Fortigate 60dでPPPoE Unnumberedするときの基本的な設定です。
PPPoE Unnumberedについてはこちらが参考になります。
「ネットワークエンジニアとして」
(http://www.infraexpert.com/study/ip13.html)
FortigateにインストールされているOS(FortiOS)の動きを知ってないとはまるので、共有したいと思います。
例によって会社はほぼこの設定で動いてます。
あじぇんだ
- ネットワーク構成
- PPPoE Unnumberedの設定
- DMZのネットワーク設定
#ネットワーク構成
今回のネットワーク構成は以下になります。
また、インターネットへの接続形態はPPPoEのLAN型接続の場合です。
- ISPからIP8(グローバルIP8個分のセグメント)を提供されている。
- ISPとはPPPoEで接続する。
今回の構成のポイントは、
- 60Dをフロントに配置
- 通常業務を行うセグメントは192.168.1.0/24
- 192.168.2.0/24セグメントは、業務ネットワークから分離し、特定の業務用のセグメントとする。ASA5505のPublic側に、グローバルIPのうち1つを割り振って、特定業務のためだけにある別拠点へVPNを張る。
になります。
この構成を取るために、WAN1とDMZを同じグローバルIPセグメントのネットワークとして構成します。
PPPoE Unnumbered の設定
Fortigate 60d でPPPoEを設定するとすぐにはまるポイントがやってきます。
FortoOS HandbookのPPPoE addressing mode on an interface
を確認すると、以下のような記載がみられます。
Unnumbered IP
Specify the IP address for the interface. If your ISP has assigned you a block of IP addresses, use one of them. Otherwise, this IP address can be the same as the IP address of another interface or can be any IP address.
... どうも、IPセグメントが割り当てられている場合は、UnnumberedIPにISPから割り当てられたうちの一つを設定しろ、とのこと。
これで、WAN側がUnnumberedで通信するようになりましたが、まだせっかく配布されたグローバルIPをすべて使うことはできません。
FortiOSは、PPPoE接続すると、ISPから配布されたIPセグメントの先頭アドレスが強制的に使われるという動きをするためです。
内部的には、せっかくUnnumbered(=0.0.0.0)として設定したフロントWAN1のアドレスが、1.1.1.1で上書きされてしまう、ということになってしまいます。
上書きではなく、1.1.1.1→0.0.0.0への経路設定してくれることが必要なのです。
そこで、pppoe-unnumbered-negotiateコマンドでこの上書きを停止し、0.0.0.0でWAN1が通信するようにします。
config system interface
edit wan1
set pppoe-unnumbered-negotiate disable
end
#DMZのネットワーク設定
Unnumberedで通信できるようになったので、WAN1には、1.1.1.0/28宛ての複数のグローバルIPに向けられたパケットが到着するようになりました。
次は、DMZをWAN側と同じネットワークセグメントにします。こちらも、GUIでは設定できないので、allow-subnet-overlapを使用して、DMZとWAN1を同じネットワークに設定することを許可します。
config system settings
set allow-subnet-overlap enable
end
次に、DMZにISPから配布されたネットワークセグメントを設定します。
これで、PPPoE UnnumberedでDMZ側に複数のグローバルIPを振ることができます。
自社では、ASA5505を接続していますが、DMZにHubを接続して、複数のWebServerを公開する、なんてことも容易にできるようになりました。
あとは、Fortigate 60DのFirewallでInbound、Outboundの必要なパケットを許可すればOKです。
せっかくIP8個もらっているので、有効活用したいですもんね。