FutureNet
NXR,VXRシリーズ
ルーティング編
7. DNSインターセプト+PBR設定
7-3. DNSインターセプト+PBR設定3
この設定例ではDNSインターセプト機能とポリシーベースルーティング機能を併用し、特定の通信をローカルブレイクアウトすることでIPsec接続したセンタを経由したインターネットアクセスだけではなく、直接当該ルータからもアクセスするようにします。
【 DNSインターセプト機能対応機種 】
NXR-1300シリーズ,NXR-650,NXR-610Xシリーズ,NXR-530,NXR-160/LW,NXR-G180/L-CA,NXR-G200シリーズ,NXR-G110シリーズ,NXR-G050シリーズ,VXRシリーズ(2023/2現在)
設定例で使用している機能の対応状況は、各製品の更新履歴やユーザーズガイドをご確認ください。
コンテンツ | |||||
構成図 | 設定例 | 設定例解説 | 端末の設定例 | 補足 | 付録 |
【 構成図 】
- この例で使用しているルータは、NXR_AがNXR-650、NXR_BがNXR-530です。
- NXR_Aのeth1で接続しているISPのDNSサーバアドレスを以下とします。
プライマリDNSサーバ:203.0.113.253
セカンダリDNSサーバ:203.0.113.254 - DNSインターセプト用リストファイルでFQDN名「*.example.com」を定義します。
- リストファイルの作成例はこちら。また、Microsoft 365(Office 365)リスト取得例はこちら。
- 「*.example.com」のHTTP(TCP80),HTTPS(TCP443)宛の通信はISP_B経由、それ以外の通信はセンタ宛、またはISP_A経由で行います。
- DNSインターセプト対象のDNSサーバアドレスは以下とします。
– NXR_Aのeth0のIPアドレス
– PPPoE接続時、IPCPで取得したDNSサーバアドレス
【 設定例 】
〔 NXR_Aの設定 〕
nxr650(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 203.0.113.2
NXR_A(config)#ip access-list eth1_IN permit any 203.0.113.1 udp 500 500
NXR_A(config)#ip access-list eth1_IN permit any 203.0.113.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 86400
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)#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)#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 28800
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 ethernet 1
NXR_A(config-if)#ip address 203.0.113.1/30
NXR_A(config-if)#ip masquerade
NXR_A(config-if)#ip spi-filter
NXR_A(config-if)#ip access-group in eth1_IN
NXR_A(config-if)#ip tcp adjust-mss auto
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 203.0.113.253
NXR_A(config-dns)#address 203.0.113.254
NXR_A(config-dns)#exit
NXR_A(config)#fast-forwarding enable
NXR_A(config)#exit
NXR_A#save config
〔 NXR_Bの設定 〕
nxr530(config)#hostname NXR_B
NXR_B(config)#ip dns-intercept setname DNSI file disk0:[DNSインターセプト用リストファイル名]
NXR_B(config)#dns-intercept 0
NXR_B(config-dns-intercept)#address 192.168.10.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 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 eth0_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 eth0_PBR
NXR_B(config-if)#exit
NXR_B(config)#ip route 192.168.10.0/24 tunnel 1 1
NXR_B(config)#ip route 192.168.10.0/24 null 254
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 access-list ppp0_IN permit 203.0.113.1 any udp 500 500
NXR_B(config)#ip access-list ppp0_IN permit 203.0.113.1 any 50
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 86400
NXR_B(config-ipsec-isakmp)#isakmp-mode aggressive
NXR_B(config-ipsec-isakmp)#remote address ip 203.0.113.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)#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)#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 28800
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)#ppp account username [ISP_B接続用ユーザID] password [ISP_B接続用パスワード]
NXR_B(config)#interface ppp 0
NXR_B(config-ppp)#ip address negotiated
NXR_B(config-ppp)#ip masquerade
NXR_B(config-ppp)#ip spi-filter
NXR_B(config-ppp)#ip access-group in ppp0_IN
NXR_B(config-ppp)#ip tcp adjust-mss auto
NXR_B(config-ppp)#ip send-source local
NXR_B(config-ppp)#ppp username [ISP_B接続用ユーザID]
NXR_B(config-ppp)#ip dns-intercept 0
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 192.168.10.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. <ホスト名の設定>
ホスト名を設定します。
2. <LAN側(ethernet0)インタフェース設定>
NXR_A(config-if)#ip address 192.168.10.1/24
ethernet0インタフェースのIPアドレスを設定します。
3. <スタティックルート設定>
NXR_A(config)#ip route 192.168.20.0/24 null 254
192.168.20.0/24向けのルートを設定します。
デフォルトルートを設定します。
4. <IPアクセスリスト設定>
NXR_A(config)#ip access-list eth1_IN permit any 203.0.113.1 50
IPアクセスリストeth1_INを以下のルールで設定します。
- 宛先IPアドレス203.0.113.1、送信元,宛先UDPポート500番を許可
- 宛先IPアドレス203.0.113.1、プロトコル番号50(ESP)を許可
(☞) IPアクセスリストを設定しただけではフィルタとして有効にはなりません。フィルタリングを行うインタフェースでの登録が必要になります。
5. <IPsecアクセスリスト設定>
IPsecアクセスリストIPsec_ACLを以下のルールで設定します。
- 送信元IPアドレス … any
- 宛先IPアドレス … any
6. <IPsecローカルポリシー設定>
NXR_A(config-ipsec-local)#address ip
IPsecトンネルの送信元IPアドレスにipを設定します。
7. <IPsec ISAKMPポリシー設定>
NXR_A(config-ipsec-isakmp)#description NXR_B
ISAKMPポリシー1の説明文を設定します。
認証方式としてpre-share(事前共有鍵)を選択し、事前共有鍵を設定します。
(☞) 事前共有鍵はNXR_Bのipsec isakmp policy 1と共通の値を設定します。
認証アルゴリズムをsha256に設定します。
暗号化アルゴリズムをaes128に設定します。
Diffie-Hellman(DH)グループをgroup 5に設定します。
ISAKMP SAのライフタイムを設定します。
フェーズ1のネゴシエーションモードをアグレッシブモードに設定します。
リモートアドレスにanyを設定します。
リモートID(FQDN方式)を設定します。
(☞) NXR_Bのipsec local policy 1のセルフIDと同じIDを設定します。
IKE KeepAlive(DPD)を以下のルールで設定します。
- 監視間隔 … 30秒
- リトライ回数 … 3回
- ダウン検知後の動作 … SA削除
このIPsec ISAKMPポリシーで使用するIPsecローカルポリシーを設定します。
8. <トンネル1インタフェース設定>
NXR_A(config-tunnel)#tunnel mode ipsec ipv4
トンネル1インタフェースのトンネルモードをipsec ipv4に設定します。
このトンネルインタフェースで使用するIPsecトンネルポリシーを設定します。
TCP MSSの調整機能をオートに設定します。
9. <IPsec トンネルポリシー設定>
NXR_A(config-ipsec-tunnel)#description NXR_B
IPsecトンネルポリシー1の説明文を設定します。
ネゴシエーションモードをresponderに設定します。
暗号化アルゴリズムをaes128、認証アルゴリズムをsha256に設定します。
PFSを有効、DHグループをgroup5に設定します。
IPsec SAのライフタイムを設定します。
このIPsecトンネルポリシーで使用するIPsec ISAKMPポリシーを設定します。
IPsecアクセスリストを設定します。
10. <WAN側(ethernet1)インタフェース設定>
NXR_A(config-if)#ip address 203.0.113.1/30
ethernet1インタフェースのIPアドレスを設定します。
NXR_A(config-if)#ip spi-filter
IPマスカレード、ステートフルパケットインスペクションを有効にします。
IPアクセスグループのinフィルタにIPアクセスリストeth1_INを設定します。
TCP MSSの調整機能をオートに設定します。
このインタフェースで使用するIPsecローカルポリシーを設定します。
11. <DNS設定>
NXR_A(config-dns)#service enable
DNSサービスを有効にします。
NXR_A(config-dns)#address 203.0.113.254
DNSサーバアドレスを設定します。
12. <ファストフォワーディング設定>
ファストフォワーディングを有効にします。
13. <設定の保存>
設定内容を保存します。
〔 NXR_Bの設定 〕
1. <ホスト名の設定>
ホスト名を設定します。
2. <DNSインターセプト用リストファイル取得設定>
DNSインターセプトのセットネーム、および外部ストレージ(disk0)上のDNSインターセプト用リストファイルをインポートします。
3. <DNSインターセプト設定>
DNSインターセプトを設定します。
インターセプト対象のDNSサーバのIPアドレスを設定します。
DNSインターセプト用のセットネームを設定します。
4. <クラスアクセスリスト設定>
NXR_B(config)#class access-list DNSI_ACL ip any dns-set DNSI tcp any 443
クラスアクセスリストDNSI_ACLを以下のルールで設定します。
- 宛先DNSインターセプトセットネームDNSI、宛先TCPポート80番
- 宛先DNSインターセプトセットネームDNSI、宛先TCPポート443番
5. <ルートマップ設定>
ルートマップ名をINTERCEPTとし、No.1のルールを作成します。
マッチ条件としてクラスアクセスリストDNSI_ACLを設定します。
条件にマッチした際にはマーク値1を設定します。
ルートマップ名をeth0_PBRとし、No.1のルールを作成します。
マッチ条件としてマーク値1を設定します。
条件にマッチした際の出力インタフェースとしてppp0インタフェースを設定します。
6. <ethernet0インタフェース設定>
NXR_B(config-if)#ip address 192.168.20.1/24
ethernet0インタフェースのIPアドレスを設定します。
パケット受信時、マーキング用に定義したルートマップ名INTERCEPTを設定します。
(☞) クラスアクセスリストに基づいたマーキングを行います。
PBR用に定義したルートマップ名eth0_PBRを設定します。
7. <スタティックルート設定>
NXR_B(config)#ip route 192.168.10.0/24 null 254
192.168.10.0/24向けのルートを設定します。
NXR_B(config)#ip route 0.0.0.0/0 ppp 0 10
デフォルトルートを設定します。
8. <IPアクセスリスト設定>
NXR_B(config)#ip access-list ppp0_IN permit 203.0.113.1 any 50
IPアクセスリストppp0_INを以下のルールで設定します。
- 送信元IPアドレス203.0.113.1、送信元,宛先UDPポート500番を許可
- 送信元IPアドレス203.0.113.1、プロトコル番号50(ESP)を許可
9. <IPsecアクセスリスト設定>
IPsecアクセスリストIPsec_ACLを以下のルールで設定します。
- 送信元IPアドレス … any
- 宛先IPアドレス … any
10. <IPsecローカルポリシー設定>
NXR_B(config-ipsec-local)#address ip
IPsecトンネルの送信元IPアドレスにipを設定します。
セルフID(FQDN方式)を設定します。
(☞) NXR_Aのipsec isakmp policy 1のリモートIDと同じIDを設定します。
11. <IPsec ISAKMPポリシー設定>
NXR_B(config-ipsec-isakmp)#description NXR_A
ISAKMPポリシー1の説明文を設定します。
認証方式としてpre-share(事前共有鍵)を選択し、事前共有鍵を設定します。
(☞) 事前共有鍵はNXR_Aのipsec isakmp policy 1と共通の値を設定します。
認証アルゴリズムをsha256に設定します。
暗号化アルゴリズムをaes128に設定します。
DHグループをgroup 5に設定します。
ISAKMP SAのライフタイムを設定します。
フェーズ1のネゴシエーションモードをアグレッシブモードに設定します。
リモートアドレスにNXR_AのWAN側IPアドレスを設定します。
IKE KeepAlive(DPD)を以下のルールで設定します。
- 監視間隔 … 30秒
- リトライ回数 … 3回
- ダウン検知後の動作 … IKEの再ネゴシエーション
このIPsec ISAKMPポリシーで使用するIPsecローカルポリシーを設定します。
12. <トンネル1インタフェース設定>
NXR_B(config-tunnel)#tunnel mode ipsec ipv4
トンネル1インタフェースのトンネルモードをipsec ipv4に設定します。
このトンネルインタフェースで使用するIPsecトンネルポリシーを設定します。
TCP MSSの調整機能をオートに設定します。
DNSインターセプトを設定します。
13. <IPsec トンネルポリシー設定>
NXR_B(config-ipsec-tunnel)#description NXR_A
IPsecトンネルポリシー1の説明文を設定します。
ネゴシエーションモードをautoに設定します。
暗号化アルゴリズムをaes128、認証アルゴリズムをsha256に設定します。
PFSを有効、DHグループをgroup5に設定します。
IPsec SAのライフタイムを設定します。
このIPsecトンネルポリシーで使用するIPsec ISAKMPポリシーを設定します。
IPsecアクセスリストを設定します。
14. <PPPアカウント設定>
ISP_B接続用ユーザID,パスワードを設定します。
15. <WAN側(ppp0)インタフェース設定>
NXR_B(config-ppp)#ip address negotiated
ppp0インタフェースのIPアドレスにnegotiatedを設定します。
NXR_B(config-ppp)#ip spi-filter
IPマスカレード、ステートフルパケットインスペクションを有効にします。
IPアクセスグループのinフィルタにIPアクセスリストppp0_INを設定します。
TCP MSSの調整機能をオートに設定します。
ip send-source localを設定します。
(☞) localオプションを指定することで、当該インタフェースのIPアドレスをソースアドレスとするNXRからの自発パケットを当該インタフェースから出力します。
ISP_B接続用ユーザIDを設定します。
DNSインターセプトを設定します。
このインタフェースで使用するIPsecローカルポリシーを設定します。
16. <ethernet1インタフェース設定>
NXR_B(config-if)#no ip address
NXR_B(config-if)#pppoe-client ppp 0
PPPoEクライアントにppp0を設定します。
17. <DNS設定>
NXR_B(config-dns)#service enable
DNSサービスを有効にします。
DNSサーバアドレスを設定します。
タイムアウト時間を設定します。
18. <ファストフォワーディング設定>
ファストフォワーディングを有効にします。
19. <設定の保存>
設定内容を保存します。
【 端末の設定例 】
192.168.10.0/24 | 192.168.20.0/24 | |
IPアドレス | 192.168.10.100 | 192.168.20.100 |
サブネットマスク | 255.255.255.0 | |
デフォルトゲートウェイ | 192.168.10.1 | 192.168.20.1 |
DNSサーバアドレス |
【 補足 】
〔 DNSインターセプト用リストファイル作成例 〕
<作成例1>
末尾がexample.comに該当するFQDNを対象とします。
(☞) 対象となるFQDN例
www.example.com , smtp.example.com など
<作成例2>
203.0.113.1
末尾がexample.co.jpに該当するFQDN、およびIPアドレス 203.0.113.1 を対象とします。
〔 Microsoft 365(Office 365)リスト取得例 〕
Microsoft 365(Office 365)の通信を振り分ける場合、弊社ホームページからリストファイルを取得することができます。
Microsoft 365 , Office 365は、Microsoft Corporationの米国およびその他の国における商標または登録商標です。
<DNSインターセプト用定義ファイル取得設定>
DNSインターセプトのセットネーム、および弊社ホームページ上からMicrosoft 365(Office 365)用のリストファイルをインポートします。
<スケジュールによる定期更新設定>
1:00に弊社ホームページ上からMicrosoft 365(Office 365)用のリストファイルを取得します。
【 付録 】
目次
更新情報
→ 一覧へカテゴリ
タグ
- CRG
- DDNS
- DHCP
- DNAT
- DNSインターセプト
- Ethernet
- IIJモバイル
- IKE Modeconfig
- IKEv2 Configuration Payload
- IPinIP
- IPoE
- IPv6
- KDDI
- L2TPv3
- MAP-E
- NGN
- NTTドコモ
- PBR
- Policy Based IPsec
- PPP
- PPPoE
- QoS
- RADIUS連携
- RAシリーズ
- Route Based IPsec
- SMS
- SNAT
- SoftBank
- UPnP
- URL転送
- VLAN
- VRRP
- Web認証
- WiMAX
- コンフィグロールバック
- ネットイベント
- フィルタ
- ブリッジ
- モニタログ
- ワイモバイル
- 仮想スイッチ
- 冗長化
- 無線LAN