FutureNet

NXR,WXRシリーズ

ルーティング編

7. DNSインターセプト+PBR設定

7-1. DNSインターセプトとPBRの利用1

DNSインターセプト機能とポリシーベースルーティング機能を併用し、指定した宛先に該当する通信を通常とは異なる経路に振り分ける設定例です。

 

コンテンツ
構成図 設定データ 設定例 設定例解説 端末の設定例 補足1 補足2 付録

 

【 構成図 】

fnw_dnsi_1

  • ドメイン名「example.com」を指定した定義ファイルを適用し、example.com宛のTCPポート22,80,443の通信をethernet2(プロバイダ2)経由で行います。
  • ppp0インタフェースをデフォルトルートとして利用しますが、この例ではppp0インタフェースがダウンした場合、ethernet2インタフェースをデフォルトルートとして利用できるように設定しています。(ethernet2側の障害は考慮していませんので、考慮する場合は必要に応じてネットイベント機能等を設定して下さい)

 

【 設定データ 】

設定項目 設定内容
LAN側インタフェース ethernet0のIPアドレス 192.168.10.1/24
classify input intercept
IPポリシルートマップ pbr
WAN側インタフェース PPPoEクライアント(ethernet1) ppp0
ppp0インタフェース ppp0のIPアドレス 動的IPアドレス
IPマスカレード 有効
SPIフィルタ 有効
TCP MSS調整 オート
DNSインターセプト 0
ISP接続用ユーザID test1@example.jp
ISP接続用パスワード test1pass
ethernet2インタフェース ethernet2のIPアドレス 10.10.20.1/30
IPマスカレード 有効
SPIフィルタ 有効
DNSインターセプト 0
スタティックルート No.1 宛先IPアドレス 10.10.30.1/32
ゲートウェイ(IPアドレス) 10.10.20.2
No.2 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(インタフェース) ppp0
No.3 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(IPアドレス) 10.10.20.2
ネットイベント No. 1
動作 active
DNSインターセプト 定義ファイル セットネーム DNSI
ファイル dnsi-list.txt
設定番号0 DNSサーバアドレス 10.10.30.1
セットネーム DNSI
クラスアクセスリスト アクセスリスト名 dnsi_acl
dnsi_acl No.1 送信元IPアドレス any
宛先DNSセットネーム DNSI
プロトコル TCP
送信元ポート番号 any
宛先ポート番号 22
No.2 送信元IPアドレス any
宛先DNSセットネーム DNSI
プロトコル TCP
送信元ポート番号 any
宛先ポート番号 80
No.3 送信元IPアドレス any
宛先DNSセットネーム DNSI
プロトコル TCP
送信元ポート番号 any
宛先ポート番号 443
ルートマップ ルートマップ名 intercept
intercept マッチIPアドレス dnsi_acl
セット(mark) 1
ルートマップ名 pbr
pbr マッチIPmark 1
セットIPネクストホップ 10.10.20.2
トラック No.1 監視方式 リンク監視
インタフェース ppp0
イニシャルタイムアウト 30秒
DNS サービス 有効
DNSサーバ プライマリ 10.10.30.1
プライオリティ  ppp0 10
タイムアウト 5秒
FastFowarding 有効

【 設定例 】

nxrg240#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxrg240(config)#track 1 interface ppp 0 initial-timeout 30
nxrg240(config)#ip dns-intercept setname DNSI file disk0:dnsi-list.txt
nxrg240(config)#dns-intercept 0
nxrg240(config-dns-intercept)#address 10.10.30.1
nxrg240(config-dns-intercept)#match ip setname DNSI
nxrg240(config-dns-intercept)#exit
nxrg240(config)#class access-list dnsi_acl ip any dns-set DNSI tcp any 22
nxrg240(config)#class access-list dnsi_acl ip any dns-set DNSI tcp any 80
nxrg240(config)#class access-list dnsi_acl ip any dns-set DNSI tcp any 443
nxrg240(config)#route-map intercept permit 1
nxrg240(config-route-map)#match ip address dnsi_acl
nxrg240(config-route-map)#set mark 1
nxrg240(config-route-map)#exit
nxrg240(config)#route-map pbr permit 1
nxrg240(config-route-map)#match ip mark 1
nxrg240(config-route-map)#set ip next-hop 10.10.20.2
nxrg240(config-route-map)#exit
nxrg240(config)#interface ethernet 0
nxrg240(config-if)#ip address 192.168.10.1/24
nxrg240(config-if)#classify input route-map intercept
nxrg240(config-if)#ip policy route-map pbr
nxrg240(config-if)#exit
nxrg240(config)#ip route 10.10.30.1/32 10.10.20.2
nxrg240(config)#ip route 0.0.0.0/0 ppp 0
nxrg240(config)#ip route 0.0.0.0/0 10.10.20.2 netevent 1 active
nxrg240(config)#ppp account username test1@example.jp password test1pass
nxrg240(config)#interface ppp 0
nxrg240(config-ppp)#ip address negotiated
nxrg240(config-ppp)#ip masquerade
nxrg240(config-ppp)#ip spi-filter
nxrg240(config-ppp)#ip tcp adjust-mss auto
nxrg240(config-ppp)#ip dns-intercept 0
nxrg240(config-ppp)#ppp username test1@example.jp
nxrg240(config-ppp)#exit
nxrg240(config)#interface ethernet 1
nxrg240(config-if)#no ip address
nxrg240(config-if)#pppoe-client ppp 0
nxrg240(config-if)#exit
nxrg240(config)#interface ethernet 2
nxrg240(config-if)#ip address 10.10.20.1/30
nxrg240(config-if)#ip masquerade
nxrg240(config-if)#ip spi-filter
nxrg240(config-if)#ip dns-intercept 0
nxrg240(config-if)#exit
nxrg240(config)#dns
nxrg240(config-dns)#service enable
nxrg240(config-dns)#address 10.10.30.1
nxrg240(config-dns)#priority ppp 0 10
nxrg240(config-dns)#timeout 5
nxrg240(config-dns)#exit
nxrg240(config)#fast-forwarding enable
nxrg240(config)#exit
nxrg240#save config

【 設定例解説 】

1. <トラック設定(リンク監視)>
nxrg240(config)#track 1 interface ppp 0 initial-timeout 30

ppp0インタフェースのリンク監視設定をトラックNo.1に登録します。
(☞) インタフェースのリンク監視設定時、初期のトラック状態はイニット(init)でppp0インタフェースのリンクアップ後、トラックはアップ状態になります。またppp0インタフェースがリンクダウン状態の場合、すぐにトラックはダウン状態にはなりません。そのため設定したタイムアウト時間経過後、トラックをダウン状態にするためにイニシャルタイムアウトを設定します。

 

2. <DNSインターセプト用定義ファイルの取得設定>
nxrg240(config)#ip dns-intercept setname DNSI file disk0:dnsi-list.txt

DNSインターセプト用のセットネームをDNSIとし、定義ファイルをインポートします。
(☞) DNSインターセプト用の定義ファイルはFTP,SSH,外部ストレージからインポートすることができます。

 

3. <DNSインターセプト設定>
nxrg240(config)#dns-intercept 0

DNSインターセプトの設定番号を0とします。

nxrg240(config-dns-intercept)#address 10.10.30.1

DNSインターセプト対象のDNSサーバのIPアドレスを設定します。
(☞) IPCPやDHCPで取得するDNSサーバのIPアドレスは該当インタフェースでDNSインターセプトを指定することで自動的に設定されます。

nxrg240(config-dns-intercept)#match ip setname DNSI

DNSインターセプト用のセットネームを指定します。

 

4. <クラスアクセスリスト設定>
nxrg240(config)#class access-list dnsi_acl ip any dns-set DNSI tcp any 22
nxrg240(config)#class access-list dnsi_acl ip any dns-set DNSI tcp any 80
nxrg240(config)#class access-list dnsi_acl ip any dns-set DNSI tcp any 443

クラスアクセスリスト名をdnsi_aclとし、宛先にDNSインターセプト用のセットネームおよびTCPポート番号22,80,443を設定します。

 

5. <ルートマップ設定>
nxrg240(config)#route-map intercept permit 1

ルートマップ名をinterceptとし、No.1のルールを作成します。

nxrg240(config-route-map)#match ip address dnsi_acl

マッチ条件としてクラスアクセスリストで設定したdnsi_aclを設定します。

nxrg240(config-route-map)#set mark 1

該当条件にマッチした場合、マーク値1を設定します。

nxrg240(config)#route-map pbr permit 1
nxrg240(config-route-map)#match ip mark 1
nxrg240(config-route-map)#set ip next-hop 10.10.20.2

次にルートマップ名をpbrとし、No.1のルールを作成します。
マッチ条件として先ほどルートマップ名interceptで指定したマーク値1を、該当条件にマッチした際のネクストホップIPアドレスとして10.10.20.2を設定します。
(☞) markはルータ内でのみ利用可能なマーキング値です。

 

6. <LAN側(ethernet0)インタフェース設定>
nxrg240(config)#interface ethernet 0
nxrg240(config-if)#ip address 192.168.10.1/24

ethernet0インタフェースのIPアドレスを設定します。

nxrg240(config-if)#classify input route-map intercept

パケット受信時にルートマップによるパケット分類を行うように設定します。

nxrg240(config-if)#ip policy route-map pbr

ポリシーベースルーティング用のルートマップを登録します。

 

7. <スタティックルート設定>
nxrg240(config)#ip route 10.10.30.1/32 10.10.20.2

DNSサーバ10.10.30.1へのルートを設定します。

nxrg240(config)#ip route 0.0.0.0/0 ppp 0

デフォルトルートを設定します。

nxrg240(config)#ip route 0.0.0.0/0 10.10.20.2 netevent 1 active

デフォルトルートを設定するとともにネットイベントを設定します。ここではtrack 1で指定したリンク監視で障害を検知した場合、ルート設定を有効にします。

 

8. <PPPアカウント設定>
nxrg240(config)#ppp account username test1@example.jp password test1pass

ppp0インタフェースで使用するISP接続用ユーザID,パスワードを設定します。
(☞) ここで設定したアカウントはppp0インタフェースの設定で利用します。

 

9. <WAN側(ppp0)インタフェース設定>
nxrg240(config)#interface ppp 0
nxrg240(config-ppp)#ip address negotiated

ppp0インタフェースのIPアドレスを設定します。

nxrg240(config-ppp)#ip masquerade
nxrg240(config-ppp)#ip spi-filter
nxrg240(config-ppp)#ip tcp adjust-mss auto

IPマスカレード、ステートフルパケットインスペクションを有効に設定します。またTCP MSSの調整機能をオートに設定します。

nxrg240(config-ppp)#ip dns-intercept 0

DNSインターセプト設定0を指定します。

nxrg240(config-ppp)#ppp username test1@example.jp

ISP接続用ユーザIDを設定します。

 

10. <ethernet1インタフェース設定>
nxrg240(config)#interface ethernet 1
nxrg240(config-if)#no ip address
nxrg240(config-if)#pppoe-client ppp 0

PPPoEクライアントとしてppp0インタフェースを使用できるように設定します。

 

11. <WAN側(ethernet2)インタフェース設定>
nxrg240(config)#interface ethernet 2
nxrg240(config-if)#ip address 10.10.20.1/30

ethernet1インタフェースのIPアドレスを設定します。

nxrg240(config-if)#ip masquerade
nxrg240(config-if)#ip spi-filter

IPマスカレード、ステートフルパケットインスペクションを有効に設定します。

nxrg240(config-if)#ip dns-intercept 0 

DNSインターセプト設定0を指定します。

 

12. <DNS設定>
nxrg240(config)#dns
nxrg240(config-dns)#service enable

DNSサービスを有効にします。

nxrg240(config-dns)#address 10.10.30.1

ethernet2インタフェース(プロバイダ2)側のDNSサーバアドレスを設定します。

nxrg240(config-dns)#priority ppp 0 10

DNSサーバのプライオリティを設定します。ここではDNS設定で指定したDNSサーバアドレスよりもppp0インタフェースのDNSサーバアドレスを優先させるため、優先度10を設定します。
(☞) デフォルトの優先度は20となります。

nxrg240(config-dns)#timeout 5

DNSのタイムアウト値を設定します。

 

13. <ファストフォワーディングの有効化>
nxrg240(config)#fast-forwarding enable

ファストフォワーディングを有効にします。ファストフォワーディングを設定することによりパケット転送の高速化を行うことができます。
(☞) ファストフォワーディングの詳細および利用時の制約については、NXR,WXRシリーズのユーザーズガイド(CLI版)に記載されているファストフォワーディングの解説をご参照ください。

 

【 端末の設定例 】

IPアドレス 192.168.10.100
サブネットマスク 255.255.255.0
デフォルトゲートウェイ 192.168.10.1
DNSサーバ

【 補足1 】

DNSインターセプト用の定義ファイルの作成例です。

<DNSインターセプト用定義ファイル作成例>
*.example.com
*.example.co.jp

「*.example.com」は末尾がexample.comに該当するFQDNを対象とします。また「*.example.co.jp」についても同様です。

 

【 補足2 】

Microsoft Office365の通信を振り分ける場合、弊社ホームページからOffice365のリストファイルを取得することができます。

nxrg240(config)#ip dns-intercept setname [セットネーム] file http://www.centurysys.co.jp/dns-intercept/o365_address.xml ms-o365

なお定期更新の設定も合わせて行う場合、上記設定を行った上で、スケジュールも合わせて設定します。

nxrg240(config)#schedule 1 *:0 * * dns-intercept ip setname [セットネーム] update http://www.centurysys.co.jp/dns-intercept/o365_address.xml

※Office365は、Microsoft Corporationの米国及びその他の国における登録商標または商標です。

 

【 付録 】