FutureNet

NXR,WXRシリーズ

ルーティング編

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

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

DNSインターセプト機能とポリシーベースルーティング機能を併用し、原則インターネットアクセスを含む全ての通信はIPsec経由としますが、指定した宛先のみIPsecを経由せず直接通信する設定例です。

 

 

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

 

【 構成図 】

  • ドメイン名「example.com」を指定した定義ファイルを適用し、example.com宛のTCPポート22,80,443の通信をppp0経由で行います。それ以外のインターネットアクセスを含む全ての通信はIPsec経由で行います。

 

【 設定データ 】

〔NXR_Aの設定〕

設定項目 設定内容
ホスト名 NXR_A
LAN側インタフェース ethernet0のIPアドレス 192.168.10.1/24
WAN側インタフェース ethernet1のIPアドレス 10.10.10.1/30
IPマスカレード 有効
IPアクセスグループ in eth1_in
SPIフィルタ 有効
IPsecローカルポリシー 1
スタティックルート No.1 宛先IPアドレス 192.168.20.0/24
ゲートウェイ(インタフェース) tunnel1
ディスタンス 1
No.2 宛先IPアドレス 192.168.20.0/24
ゲートウェイ(インタフェース) null
ディスタンス 254
No.3 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(IPアドレス) 10.10.10.2
IPフィルタ ルール名 eth1_in
eth1_in No.1 動作 許可
送信元IPアドレス any
宛先IPアドレス 10.10.10.1
プロトコル UDP
送信元ポート 500
宛先ポート 500
No.2 動作 許可
送信元IPアドレス any
宛先IPアドレス 10.10.10.1
プロトコル 50(ESP)
IPsec IPsecアクセスリスト リスト名 ipsec_acl
送信元IPアドレス any
宛先IPアドレス any
IPsecローカルポリシー1 address ip
IPsec ISAKMPポリシー1 名前 NXR_B
認証方式 pre-share
認証鍵 ipseckey
認証アルゴリズム sha256
暗号化アルゴリズム aes128
DHグループ 5
ライフタイム 10800秒
ISAKMPモード アグレッシブモード
リモートアドレス any
リモートID(FQDN) nxrb
DPD 再送間隔 30秒
リトライ回数 3回
動作 clear
 ローカルポリシー 1
IPsecトンネルポリシー1 名前 NXR_B
ネゴシエーションモード レスポンダ
認証アルゴリズム sha256
暗号化アルゴリズム aes128
PFS 有効(グループ5)
ライフタイム 3600秒
ISAKMPポリシー 1
IPsecアクセスリスト ipsec_acl
トンネル1インタフェース トンネルモード IPsec(IPv4)
トンネルプロテクション ipsec policy 1
TCP MSS調整 オート
DNS サービス 有効
DNSサーバ プライマリ 10.10.30.1
FastFowarding 有効

〔NXR_Bの設定〕

設定項目 設定内容
ホスト名 NXR_B
LAN側インタフェース ethernet0のIPアドレス 192.168.20.1/24
classify input intercept
IPポリシルートマップ pbr
WAN側インタフェース PPPoEクライアント(ethernet1) ppp0
ppp0のIPアドレス 動的IPアドレス
ip send-source 有効
IPマスカレード 有効
IPアクセスグループ in ppp0_in
forward-out ppp0_forward-out
SPIフィルタ 有効
TCP MSS調整 オート
DNSインターセプト 0
ISP接続用ユーザID test2@example.jp
ISP接続用パスワード test2pass
IPsecローカルポリシー 1
スタティックルート No.1 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(インタフェース) tunnel1
ディスタンス 1
No.2 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(インタフェース) ppp0
ディスタンス 10
No.3 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(インタフェース) null
ディスタンス 254
IPフィルタ ルール名 ppp0_in
ppp0_in No.1 動作 許可
送信元IPアドレス 10.10.10.1
宛先IPアドレス any
プロトコル UDP
送信元ポート 500
宛先ポート 500
No.2 動作 許可
送信元IPアドレス 10.10.10.1
宛先IPアドレス any
プロトコル 50(ESP)
ppp0_forward-out 動作 破棄
送信元IPアドレス 192.168.20.0/24
宛先IPアドレス 192.168.10.0/24
IPsec IPsecアクセスリスト リスト名 ipsec_acl
送信元IPアドレス any
宛先IPアドレス any
IPsecローカルポリシー1 address ip
セルフID(FQDN) nxrb
IPsec ISAKMPポリシー1 名前 NXR_A
認証方式 pre-share
認証鍵 ipseckey
認証アルゴリズム sha256
暗号化アルゴリズム aes128
DHグループ 5
ライフタイム 10800秒
ISAKMPモード アグレッシブモード
リモートアドレス 10.10.10.1
DPD 再送間隔 30秒
リトライ回数 3回
動作 restart
ローカルポリシー 1
IPsecトンネルポリシー1 名前 NXR_A
ネゴシエーションモード オート
認証アルゴリズム sha256
暗号化アルゴリズム aes128
PFS 有効(グループ5)
ライフタイム 3600秒
ISAKMPポリシー 1
IPsecアクセスリスト ipsec_acl
トンネル1インタフェース トンネルモード IPsec(IPv4)
トンネルプロテクション ipsec policy 1
TCP MSS調整 オート
DNSインターセプト 0
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
セットインタフェース ppp0
DNS サービス 有効
DNSサーバ プライマリ 10.10.30.1
タイムアウト 5秒
FastFowarding 有効

【 設定例 】

〔NXR_Aの設定〕

nxr350#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxr350(config)#hostname NXR_A
NXR_A(config)#interface ethernet 0
NXR_A(config-if)#ip address 192.168.10.1/24
NXR_A(config-if)#exit
NXR_A(config)#ip route 192.168.20.0/24 tunnel 1 1
NXR_A(config)#ip route 192.168.20.0/24 null 254
NXR_A(config)#ip route 0.0.0.0/0 10.10.10.2
NXR_A(config)#ip access-list eth1_in permit any 10.10.10.1 udp 500 500
NXR_A(config)#ip access-list eth1_in permit any 10.10.10.1 50
NXR_A(config)#ipsec access-list ipsec_acl ip any any
NXR_A(config)#ipsec local policy 1
NXR_A(config-ipsec-local)#address ip
NXR_A(config-ipsec-local)#exit
NXR_A(config)#ipsec isakmp policy 1
NXR_A(config-ipsec-isakmp)#description NXR_B
NXR_A(config-ipsec-isakmp)#authentication pre-share ipseckey
NXR_A(config-ipsec-isakmp)#hash sha256
NXR_A(config-ipsec-isakmp)#encryption aes128
NXR_A(config-ipsec-isakmp)#group 5
NXR_A(config-ipsec-isakmp)#lifetime 10800
NXR_A(config-ipsec-isakmp)#isakmp-mode aggressive
NXR_A(config-ipsec-isakmp)#remote address ip any
NXR_A(config-ipsec-isakmp)#remote identity fqdn nxrb
NXR_A(config-ipsec-isakmp)#keepalive 30 3 periodic clear
NXR_A(config-ipsec-isakmp)#local policy 1
NXR_A(config-ipsec-isakmp)#exit
NXR_A(config)#ipsec tunnel policy 1
NXR_A(config-ipsec-tunnel)#description NXR_B
NXR_A(config-ipsec-tunnel)#negotiation-mode responder
NXR_A(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_A(config-ipsec-tunnel)#set pfs group5
NXR_A(config-ipsec-tunnel)#set sa lifetime 3600
NXR_A(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_A(config-ipsec-tunnel)#match address ipsec_acl
NXR_A(config-ipsec-tunnel)#exit
NXR_A(config)#interface tunnel 1
NXR_A(config-tunnel)#tunnel mode ipsec ipv4
NXR_A(config-tunnel)#tunnel protection ipsec policy 1
NXR_A(config-tunnel)#ip tcp adjust-mss auto
NXR_A(config-tunnel)#exit
NXR_A(config)#interface ethernet 1
NXR_A(config-if)#ip address 10.10.10.1/30
NXR_A(config-if)#ip masquerade
NXR_A(config-if)#ip access-group in eth1_in
NXR_A(config-if)#ip spi-filter
NXR_A(config-if)#ipsec policy 1
NXR_A(config-if)#exit
NXR_A(config)#dns
NXR_A(config-dns)#service enable
NXR_A(config-dns)#address 10.10.30.1
NXR_A(config-dns)#exit
NXR_A(config)#fast-forwarding enable
NXR_A(config)#exit
NXR_A#save config

〔NXR_Bの設定〕

nxrg240#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxrg240(config)#hostname NXR_B
NXR_B(config)#ip dns-intercept setname DNSI file disk0:dnsi-list.txt
NXR_B(config)#dns-intercept 0
NXR_B(config-dns-intercept)#address 10.10.30.1
NXR_B(config-dns-intercept)#match ip setname DNSI
NXR_B(config-dns-intercept)#exit
NXR_B(config)#class access-list dnsi_acl ip any dns-set DNSI tcp any 22
NXR_B(config)#class access-list dnsi_acl ip any dns-set DNSI tcp any 80
NXR_B(config)#class access-list dnsi_acl ip any dns-set DNSI tcp any 443
NXR_B(config)#route-map intercept permit 1
NXR_B(config-route-map)#match ip address dnsi_acl
NXR_B(config-route-map)#set mark 1
NXR_B(config-route-map)#exit
NXR_B(config)#route-map pbr permit 1
NXR_B(config-route-map)#match ip mark 1
NXR_B(config-route-map)#set interface ppp 0
NXR_B(config-route-map)#exit
NXR_B(config)#interface ethernet 0
NXR_B(config-if)#ip address 192.168.20.1/24
NXR_B(config-if)#classify input route-map intercept
NXR_B(config-if)#ip policy route-map pbr
NXR_B(config-if)#exit
NXR_B(config)#ip route 0.0.0.0/0 tunnel 1 1
NXR_B(config)#ip route 0.0.0.0/0 ppp 0 10
NXR_B(config)#ip route 0.0.0.0/0 null 254
NXR_B(config)#ip access-list ppp0_in permit 10.10.10.1 any udp 500 500
NXR_B(config)#ip access-list ppp0_in permit 10.10.10.1 any 50
NXR_B(config)#ip access-list ppp0_forward-out deny 192.168.20.0/24 192.168.10.0/24
NXR_B(config)#ipsec access-list ipsec_acl ip any any
NXR_B(config)#ipsec local policy 1
NXR_B(config-ipsec-local)#address ip
NXR_B(config-ipsec-local)#self-identity fqdn nxrb
NXR_B(config-ipsec-local)#exit
NXR_B(config)#ipsec isakmp policy 1
NXR_B(config-ipsec-isakmp)#description NXR_A
NXR_B(config-ipsec-isakmp)#authentication pre-share ipseckey
NXR_B(config-ipsec-isakmp)#hash sha256
NXR_B(config-ipsec-isakmp)#encryption aes128
NXR_B(config-ipsec-isakmp)#group 5
NXR_B(config-ipsec-isakmp)#lifetime 10800
NXR_B(config-ipsec-isakmp)#isakmp-mode aggressive
NXR_B(config-ipsec-isakmp)#remote address ip 10.10.10.1
NXR_B(config-ipsec-isakmp)#keepalive 30 3 periodic restart
NXR_B(config-ipsec-isakmp)#local policy 1
NXR_B(config-ipsec-isakmp)#exit
NXR_B(config)#ipsec tunnel policy 1
NXR_B(config-ipsec-tunnel)#description NXR_A
NXR_B(config-ipsec-tunnel)#negotiation-mode auto
NXR_B(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_B(config-ipsec-tunnel)#set pfs group5
NXR_B(config-ipsec-tunnel)#set sa lifetime 3600
NXR_B(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_B(config-ipsec-tunnel)#match address ipsec_acl
NXR_B(config-ipsec-tunnel)#exit
NXR_B(config)#interface tunnel 1
NXR_B(config-tunnel)#tunnel mode ipsec ipv4
NXR_B(config-tunnel)#tunnel protection ipsec policy 1
NXR_B(config-tunnel)#ip tcp adjust-mss auto
NXR_B(config-tunnel)#ip dns-intercept 0
NXR_B(config-tunnel)#exit
NXR_B(config)#ppp account username test2@example.jp password test2pass
NXR_B(config)#interface ppp 0
NXR_B(config-ppp)#ip address negotiated
NXR_B(config-ppp)#ip send-source
NXR_B(config-ppp)#ip masquerade
NXR_B(config-ppp)#ip access-group in ppp0_in
NXR_B(config-ppp)#ip access-group forward-out ppp0_forward-out
NXR_B(config-ppp)#ip spi-filter
NXR_B(config-ppp)#ip tcp adjust-mss auto
NXR_B(config-ppp)#ip dns-intercept 0
NXR_B(config-ppp)#ppp username test2@example.jp
NXR_B(config-ppp)#ipsec policy 1
NXR_B(config-ppp)#exit
NXR_B(config)#interface ethernet 1
NXR_B(config-if)#no ip address
NXR_B(config-if)#pppoe-client ppp 0
NXR_B(config-if)#exit
NXR_B(config)#dns
NXR_B(config-dns)#service enable
NXR_B(config-dns)#address 10.10.30.1
NXR_B(config-dns)#timeout 5
NXR_B(config-dns)#exit
NXR_B(config)#fast-forwarding enable
NXR_B(config)#exit
NXR_B#save config

【 設定例解説 】

〔NXR_Aの設定〕

1. <ホスト名の設定>
nxr350(config)#hostname NXR_A

ホスト名を設定します。

 

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

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

 

3. <スタティックルート設定>
NXR_A(config)#ip route 192.168.20.0/24 tunnel 1 1
NXR_A(config)#ip route 192.168.20.0/24 null 254

LAN_B向けのルートを設定します。なおIPsec SA確立時はトンネル1インタフェースを、未確立時はnullインタフェースのルートを利用するように設定します。
(☞) nullインタフェースが出力インタフェースとして有効な場合、パケットが出力されることはありません(ドロップされます)。

NXR_A(config)#ip route 0.0.0.0/0 10.10.10.2

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

 

4. <IPアクセスリスト設定>
NXR_A(config)#ip access-list eth1_in permit any 10.10.10.1 udp 500 500
NXR_A(config)#ip access-list eth1_in permit any 10.10.10.1 50

IPアクセスリスト名をeth1_inとし、WAN側IPアドレス10.10.10.1宛のIKEパケット(UDPポート500番)、ESPパケット(プロトコル番号50)を許可します。
なおこのIPアクセスリスト設定はethernet1インタフェース設定で登録します。
(☞) IPアクセスリストを設定しただけではフィルタとして有効にはなりません。フィルタリングしたいインタフェースでの登録が必要になります。

 

5. <IPsecアクセスリスト設定>
NXR_A(config)#ipsec access-list ipsec_acl ip any any

ipsec_aclという名前のIPsecアクセスリストを設定します。なお送信元IPアドレス,宛先IPアドレスともにanyとします。

 

6. <IPsecローカルポリシー設定>
NXR_A(config)#ipsec local policy 1
NXR_A(config-ipsec-local)#address ip

IPsecトンネルの送信元IPアドレスにip(IPv4)を設定します。

 

7. <IPsec ISAKMPポリシー設定>
NXR_A(config)#ipsec isakmp policy 1
NXR_A(config-ipsec-isakmp)#description NXR_B
NXR_A(config-ipsec-isakmp)#authentication pre-share ipseckey

ISAKMPポリシーの説明としてNXR_B、認証方式としてpre-share(事前共有鍵)を選択し、事前共有鍵ipseckeyを設定します。なお事前共有鍵はルータNXR_Bと共通の値を設定します。

NXR_A(config-ipsec-isakmp)#hash sha256
NXR_A(config-ipsec-isakmp)#encryption aes128
NXR_A(config-ipsec-isakmp)#group 5
NXR_A(config-ipsec-isakmp)#lifetime 10800
NXR_A(config-ipsec-isakmp)#isakmp-mode aggressive

認証アルゴリズムとしてsha256、暗号化アルゴリズムとしてaes128,Diffie-Hellman(DH)グループとしてgroup 5、ISAKMP SAのライフタイムとして10800秒、フェーズ1のネゴシエーションモードとしてアグレッシブモードを設定します。

NXR_A(config-ipsec-isakmp)#remote address ip any
NXR_A(config-ipsec-isakmp)#remote identity fqdn nxrb
NXR_A(config-ipsec-isakmp)#keepalive 30 3 periodic clear
NXR_A(config-ipsec-isakmp)#local policy 1

ルータNXR_BのWAN側IPアドレスが動的IPアドレスのため、リモートアドレスにanyを設定します。またリモートIDをFQDN方式でnxrbとし、ルータNXR_BのセルフIDと同じIDを設定します。
そしてIKE KeepAlive(DPD)を監視間隔30秒,リトライ回数3回としkeepalive失敗時にSAを削除するように設定します。さらにIPsecローカルポリシー1と関連づけを行います。

 

8. <IPsecトンネルポリシー設定>
NXR_A(config)#ipsec tunnel policy 1
NXR_A(config-ipsec-tunnel)#description NXR_B
NXR_A(config-ipsec-tunnel)#negotiation-mode responder

IPsecトンネルポリシーの説明としてNXR_B、ネゴシエーションモードとしてresponderを設定します。

NXR_A(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_A(config-ipsec-tunnel)#set pfs group5
NXR_A(config-ipsec-tunnel)#set sa lifetime 3600

暗号化アルゴリズムとしてaes128、認証アルゴリズムとしてsha256、PFSを有効にし、かつDHグループとしてgroup5、IPsec SAのライフタイムとして3600秒を設定します。

NXR_A(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_A(config-ipsec-tunnel)#match address ipsec_acl

ISAKMPポリシー1と関連づけを行い、IPsecアクセスリストipsec_aclを設定します。

 

9. <トンネル1インタフェース設定>
NXR_A(config)#interface tunnel 1
NXR_A(config-tunnel)#tunnel mode ipsec ipv4
NXR_A(config-tunnel)#tunnel protection ipsec policy 1
NXR_A(config-tunnel)#ip tcp adjust-mss auto

トンネル1インタフェースでトンネルモードをipsec ipv4、使用するトンネルポリシーとして1を設定します。またTCP MSSの調整機能をオートに設定します。

 

10. <WAN側(ethernet1)インタフェース設定>
NXR_A(config)#interface ethernet 1
NXR_A(config-if)#ip address 10.10.10.1/30

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

NXR_A(config-if)#ip masquerade
NXR_A(config-if)#ip access-group in eth1_in
NXR_A(config-if)#ip spi-filter

IPマスカレード、ステートフルパケットインスペクションを有効に設定します。またIPアクセスリストeth1_inをinフィルタに適用します。

NXR_A(config-if)#ipsec policy 1

IPsecトンネルのエンドポイントとなるためIPsecローカルポリシー1を設定します。

 

11. <DNS設定>
NXR_A(config)#dns
NXR_A(config-dns)#service enable
NXR_A(config-dns)#address 10.10.30.1

DNSサービスを有効にします。またプライマリDNSサーバアドレスを設定します。

 

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

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

 

〔NXR_Bの設定〕

1. <ホスト名の設定>
nxrg240(config)#hostname NXR_B

ホスト名を設定します。

 

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

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

 

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

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

NXR_B(config-dns-intercept)#address 10.10.30.1

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

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

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

 

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

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

 

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

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

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

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

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

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

NXR_B(config)#route-map pbr permit 1
NXR_B(config-route-map)#match ip mark 1
NXR_B(config-route-map)#set interface ppp 0

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

 

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

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

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

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

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

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

 

7. <スタティックルート設定>
NXR_B(config)#ip route 0.0.0.0/0 tunnel 1 1
NXR_B(config)#ip route 0.0.0.0/0 ppp 0 10

ゲートウェイをtunnel1としたデフォルトルートを設定します。なおIPsec SA確立時はトンネル1インタフェースを、IPsec SAは未確立だがPPPoE接続できている時はppp0インタフェースのルートを利用するように設定します。

NXR_B(config)#ip route 0.0.0.0/0 null 254

ゲートウェイインタフェースをnullとしたデフォルトルートを設定します。またこのルートのディスタンス値として254を設定します。
(☞) nullインタフェースが出力インタフェースとして有効な場合、パケットが出力されることはありません(ドロップされます)。

 

8. <IPアクセスリスト設定>
NXR_B(config)#ip access-list ppp0_in permit 10.10.10.1 any udp 500 500
NXR_B(config)#ip access-list ppp0_in permit 10.10.10.1 any 50

IPアクセスリスト名をppp0_inとし、送信元がルータNXR_AのWAN側IPアドレス10.10.10.1のIKEパケット(UDPポート500番)、ESPパケット(プロトコル番号50)を許可します。
なおこのIPアクセスリスト設定はppp0インタフェース設定で登録します。

NXR_B(config)#ip access-list ppp0_forward-out deny 192.168.20.0/24 192.168.10.0/24

IPアクセスリスト名をppp0_forward-outとし、送信元が192.168.20.0/24,宛先が192.168.10.0/24のパケットを破棄します。
(☞) IPsecの拠点間通信のパケットをppp0インタフェースから出力しないようにするための設定です。

 

9. <IPsecアクセスリスト設定>
NXR_B(config)#ipsec access-list ipsec_acl ip any any

ipsec_aclという名前のIPsecアクセスリストを設定します。なお送信元IPアドレス,宛先IPアドレスともにanyとします。

 

10. <IPsecローカルポリシー設定>
NXR_B(config)#ipsec local policy 1
NXR_B(config-ipsec-local)#address ip
NXR_B(config-ipsec-local)#self-identity fqdn nxrb

IPsecトンネルの送信元IPアドレスにip(IPv4)を設定します。またセルフIDをFQDN方式でnxrbとし、ルータNXR_AのリモートIDと同じIDを設定します。

 

11. <IPsec ISAKMPポリシー設定>
NXR_B(config)#ipsec isakmp policy 1
NXR_B(config-ipsec-isakmp)#description NXR_A
NXR_B(config-ipsec-isakmp)#authentication pre-share ipseckey

ISAKMPポリシーの説明としてNXR_A、認証方式としてpre-share(事前共有鍵)を選択し、事前共有鍵ipseckeyを設定します。なお事前共有鍵はルータNXR_Aと共通の値を設定します。

NXR_B(config-ipsec-isakmp)#hash sha256
NXR_B(config-ipsec-isakmp)#encryption aes128
NXR_B(config-ipsec-isakmp)#group 5
NXR_B(config-ipsec-isakmp)#lifetime 10800
NXR_B(config-ipsec-isakmp)#isakmp-mode aggressive

認証アルゴリズムとしてsha256、暗号化アルゴリズムとしてaes128,Diffie-Hellman(DH)グループとしてgroup 5、ISAKMP SAのライフタイムとして10800秒、フェーズ1のネゴシエーションモードとしてアグレッシブモードを設定します。

NXR_B(config-ipsec-isakmp)#remote address ip 10.10.10.1
NXR_B(config-ipsec-isakmp)#keepalive 30 3 periodic restart
NXR_B(config-ipsec-isakmp)#local policy 1

リモートアドレスにルータNXR_AのWAN側IPアドレスを設定します。またIKE KeepAlive(DPD)を監視間隔30秒,リトライ回数3回としkeepalive失敗時にSAを削除しIKEのネゴシエーションを開始するように設定します。そしてIPsecローカルポリシー1と関連づけを行います。

 

12. <IPsecトンネルポリシー設定>
NXR_B(config)#ipsec tunnel policy 1
NXR_B(config-ipsec-tunnel)#description NXR_A
NXR_B(config-ipsec-tunnel)#negotiation-mode auto

IPsecトンネルポリシーの説明としてNXR_A、ネゴシエーションモードとしてautoを設定します。

NXR_B(config-ipsec-tunnel)#set transform esp-aes128 esp-sha256-hmac
NXR_B(config-ipsec-tunnel)#set pfs group5
NXR_B(config-ipsec-tunnel)#set sa lifetime 3600

暗号化アルゴリズムとしてaes128、認証アルゴリズムとしてsha256、PFSを有効にし、かつDHグループとしてgroup5、IPsec SAのライフタイムとして3600秒を設定します。

NXR_B(config-ipsec-tunnel)#set key-exchange isakmp 1
NXR_B(config-ipsec-tunnel)#match address ipsec_acl

ISAKMPポリシー1と関連づけを行い、IPsecアクセスリストipsec_aclを設定します。

 

13. <トンネル1インタフェース設定>
NXR_B(config)#interface tunnel 1
NXR_B(config-tunnel)#tunnel mode ipsec ipv4
NXR_B(config-tunnel)#tunnel protection ipsec policy 1
NXR_B(config-tunnel)#ip tcp adjust-mss auto

トンネル1インタフェースでトンネルモードをipsec ipv4、使用するトンネルポリシーとして1を設定します。またTCP MSSの調整機能をオートに設定します。

NXR_B(config-tunnel)#ip dns-intercept 0

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

 

14. <PPPアカウント設定>
NXR_B(config)#ppp account username test2@example.jp password test2pass

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

 

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

ppp0インタフェースのIPアドレスが動的IPアドレスのためnegotiatedを設定します。またip send-sourceを有効に設定します。

NXR_B(config-ppp)#ip masquerade
NXR_B(config-ppp)#ip access-group in ppp0_in
NXR_B(config-ppp)#ip access-group forward-out ppp0_forward-out
NXR_B(config-ppp)#ip spi-filter
NXR_B(config-ppp)#ip tcp adjust-mss auto

IPマスカレード、ステートフルパケットインスペクションを有効に設定します。またIPアクセスリストppp0_inをinフィルタ、ppp0_forward-outをforward-outフィルタに適用します。そしてTCP MSSの調整機能をオートに設定します。

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

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

NXR_B(config-ppp)#ppp username test2@example.jp
NXR_B(config-ppp)#ipsec policy 1

ISP接続用ユーザIDを設定します。またIPsecトンネルのエンドポイントとなるためIPsecローカルポリシー1を設定します。

 

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

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

 

17. <DNS設定>
NXR_B(config)#dns
NXR_B(config-dns)#service enable

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

NXR_B(config-dns)#address 10.10.30.1

IPsec経由でアクセスするDNSサーバとしてルータNXR_A側で契約しているプロバイダのDNSサーバアドレスを設定します。

NXR_B(config-dns)#timeout 5

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

 

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

ファストフォワーディングを有効にします。

 

【 端末の設定例 】

LAN_Aの端末 LAN_Bの端末
IPアドレス 192.168.10.100 192.168.20.100
サブネットマスク 255.255.255.0
デフォルトゲートウェイ 192.168.10.1 192.168.20.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の米国及びその他の国における登録商標または商標です。

 

【 付録 】

←前のページ

次のページ→