FutureNet

NXR,WXRシリーズ

QoS編

1. 帯域制御設定

1-7. 帯域制御の利用(IPsecでの利用)

この設定例では拠点間でIPsecによるVPNを利用しつつ、QoSによる帯域制御を行います。

 

【 構成図 】

  • ルータNXR_Aでは出力インタフェース(Ethernet1インタフェース)の帯域幅を契約帯域に合わせて20Mbpsに設定します。クラスはクラス10とデフォルトクラスの2つに分け、それぞれの帯域幅を出力インタフェースの帯域幅の75%と25%に設定します。また他のクラスが帯域を使用していない場合、その帯域を借りるように設定します。パケット分類はEthernet0インタフェースで受信する全てのUDPパケットをクラス10に割り当てます。またそれ以外のパケットはデフォルトクラスに割り当てます。
  • ルータNXR_Bでは出力インタフェース(ppp0インタフェース)の帯域幅を50Mbpsに設定します。クラスはクラス10とデフォルトクラスの2つに分け、それぞれの帯域幅を出力インタフェースの帯域幅の30%と70%に設定します。また他のクラスが帯域を使用していない場合、その帯域を借りるように設定します。パケット分類はtunnel1インタフェースから送信する全てのUDPパケットをクラス10に割り当てます。またそれ以外のパケットはデフォルトクラスに割り当てます。
  • IPsecのリプレイ防御ウィンドウが有効の場合、QoSによってパケットの順番が入れ替わってしまうとパケットが破棄されることがあります。
    よってそれぞれのルータでIPsecのリプレイ防御ウィンドウを無効に設定します。
    (☞) 無効にすることによりリプレイ防御によるシーケンス番号のチェックはできなくなります。

 

【 設定データ 】

〔NXR_Aの設定〕

設定項目 設定内容
ホスト名 NXR_A
LAN側インタフェース ethernet0のIPアドレス 192.168.10.1/24
classify input qos_routemap
WAN側インタフェース ethernet1のIPアドレス 10.10.10.1/30
IPマスカレード 有効
IPアクセスグループ in eth1_in
SPIフィルタ 有効
TCP MSS自動調整 オート
IPsecローカルポリシー 1
QoS キューイング クラスポリシ
クラスポリシ名 eth1qos
帯域幅 20Mbps(20000kbps)
ifg-pa-fcs 有効
スタティックルート 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
anti-replay-check 無効
トンネル1インタフェース トンネルモード IPsec(IPv4)
トンネルプロテクション ipsec policy 1
TCP MSS自動調整 オート
DNS サービス 有効
DNSサーバ プライマリ 10.10.10.2
クラスアクセスリスト アクセスリスト名 class_acl
class_acl 送信元IPアドレス any
宛先IPアドレス any
プロトコル UDP
ルートマップ ルートマップ名 qos_routemap
qos_routemap マッチIPアドレス class_acl
セット(mark) 10
クラスフィルタ クラスナンバ 10
クラス10 マッチ条件 10(mark)
クラスポリシ ポリシ名 eth1qos
eth1qos No.1 クラス 10
帯域幅 75%
ceil 100%
No.2 クラス デフォルト
帯域幅 25%
ceil 100%
FastFowarding 有効

〔NXR_Bの設定〕

設定項目 設定内容
ホスト名 NXR_B
LAN側インタフェース ethernet0のIPアドレス 192.168.20.1/24
WAN側インタフェース PPPoEクライアント(ethernet1) ppp0
ppp0のIPアドレス 動的IPアドレス
IPマスカレード 有効
IPアクセスグループ in ppp0_in
SPIフィルタ 有効
TCP MSS自動調整 オート
ISP接続用ユーザID test2@example.jp
ISP接続用パスワード test2pass
IPsecローカルポリシー 1
QoS キューイング クラスポリシ
クラスポリシ名 ppp0qos
帯域幅 50Mbps(50000kbps)
スタティックルート No.1 宛先IPアドレス 192.168.10.0/24
ゲートウェイ(インタフェース) tunnel1
ディスタンス 1
No.2 宛先IPアドレス 192.168.10.0/24
ゲートウェイ(インタフェース) null
ディスタンス 254
No.3 宛先IPアドレス 0.0.0.0/0
ゲートウェイ(インタフェース) ppp0
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)
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
anti-replay-check 無効
トンネル1インタフェース トンネルモード IPsec(IPv4)
トンネルプロテクション ipsec policy 1
TCP MSS自動調整 オート
classify output qos_routemap
DNS サービス 有効
クラスアクセスリスト アクセスリスト名 class_acl
class_acl 送信元IPアドレス any
宛先IPアドレス any
プロトコル UDP
ルートマップ ルートマップ名 qos_routemap
qos_routemap マッチIPアドレス class_acl
セット(mark) 10
クラスフィルタ クラスナンバ 10
クラス10 マッチ条件 10(mark)
クラスポリシ ポリシ名 ppp0qos
ppp0qos No.1 クラス 10
帯域幅 30%
ceil 100%
No.2 クラス デフォルト
帯域幅 70%
ceil 100%
FastFowarding 有効

【 設定例 】

〔NXR_Aの設定〕

nxr230#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
nxr230(config)#hostname NXR_A
NXR_A(config)#class access-list class_acl ip any any udp
NXR_A(config)#route-map qos_routemap permit 1
NXR_A(config-route-map)#match ip address class_acl
NXR_A(config-route-map)#set mark 10
NXR_A(config-route-map)#exit
NXR_A(config)#class filter 10
NXR_A(config-class-filter)#match ip mark 10
NXR_A(config-class-filter)#exit
NXR_A(config)#class policy eth1qos
NXR_A(config-class-policy)#class 10 bandwidth percent 75 ceil 100
NXR_A(config-class-policy)#class default bandwidth percent 25 ceil 100
NXR_A(config-class-policy)#exit
NXR_A(config)#interface ethernet 0
NXR_A(config-if)#ip address 192.168.10.1/24
NXR_A(config-if)#classify input route-map qos_routemap
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)#no set anti-replay-check
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)#ip tcp adjust-mss auto
NXR_A(config-if)#ipsec policy 1
NXR_A(config-if)#queue policy eth1qos bandwidth 20000 ifg-pa-fcs
NXR_A(config-if)#exit
NXR_A(config)#dns
NXR_A(config-dns)#service enable
NXR_A(config-dns)#address 10.10.10.2
NXR_A(config-dns)#exit
NXR_A(config)#fast-forwarding enable
NXR_A(config)#exit
NXR_A#save config

〔NXR_Bの設定〕

nxr230#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
nxr230(config)#hostname NXR_B
NXR_B(config)#class access-list class_acl ip any any udp
NXR_B(config)#route-map qos_routemap permit 1
NXR_B(config-route-map)#match ip address class_acl
NXR_B(config-route-map)#set mark 10
NXR_B(config-route-map)#exit
NXR_B(config)#class filter 10
NXR_B(config-class-filter)#match ip mark 10
NXR_B(config-class-filter)#exit
NXR_B(config)#class policy ppp0qos
NXR_B(config-class-policy)#class 10 bandwidth percent 30 ceil 100
NXR_B(config-class-policy)#class default bandwidth percent 70 ceil 100
NXR_B(config-class-policy)#exit
NXR_B(config)#interface ethernet 0
NXR_B(config-if)#ip address 192.168.20.1/24
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 ppp 0
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)#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)#no set anti-replay-check
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)#classify output route-map qos_routemap
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 masquerade
NXR_B(config-ppp)#ip access-group in ppp0_in
NXR_B(config-ppp)#ip spi-filter
NXR_B(config-ppp)#ip tcp adjust-mss auto
NXR_B(config-ppp)#ppp username test2@example.jp
NXR_B(config-ppp)#ipsec policy 1
NXR_B(config-ppp)#queue policy ppp0qos bandwidth 50000
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)#exit
NXR_B(config)#fast-forwarding enable
NXR_B(config)#exit
NXR_B#save config

 

【 設定例解説 】

〔NXR_Aの設定〕

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

ホスト名を設定します。

 

2. <クラスアクセスリスト設定>
NXR_A(config)#class access-list class_acl ip any any udp

クラスアクセスリスト名をclass_aclとし、UDPパケット全てが対象となるように設定します。

 

3. <ルートマップ設定>
NXR_A(config)#route-map qos_routemap permit 1

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

NXR_A(config-route-map)#match ip address class_acl

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

NXR_A(config-route-map)#set mark 10

該当条件にマッチした場合、マーク値10を設定します。
(☞) markはルータ内でのみ利用可能なマーキング値です。
(☞) ルートマップ設定を設定しただけではパケット分類は適切に機能しません。パケット分類を行うインタフェースでルートマップの登録が必要になります。

 

4. <クラスフィルタ設定>
NXR_A(config)#class filter 10
NXR_A(config-class-filter)#match ip mark 10

マーク値10のパケットをクラス10に割り当てるように設定します。

 

5. <クラスポリシ設定>
NXR_A(config)#class policy eth1qos

クラスポリシ名としてeth1qosを設定します。

NXR_A(config-class-policy)#class 10 bandwidth percent 25 ceil 100

クラス10の帯域幅を設定します。また未使用帯域を使用するようにし、その帯域幅を設定します。
(☞) パーセンテージはインタフェースで設定する帯域幅に対する絶対比となります。

NXR_A(config-class-policy)#class default bandwidth percent 25 ceil 100

デフォルトクラスの帯域幅を設定します。また未使用帯域を使用するようにし、その帯域幅を設定します。

 

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

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

NXR_A(config-if)#classify input route-map qos_routemap

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

 

7. <スタティックルート設定>
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

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

 

8. <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アクセスリストを設定しただけではフィルタとして有効にはなりません。フィルタリングしたいインタフェースでの登録が必要になります。

 

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

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

 

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

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

 

11. <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と関連づけを行います。

 

12. <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を設定します。

NXR_A(config-ipsec-tunnel)#no set anti-replay-check

IPsecのリプレイ防御ウィンドウを無効に設定します。
(☞) 対向ルータからのパケットの到着順が変わる場合は、この設定を無効にします。

 

13. <トンネル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の調整機能をオートに設定します。

 

14. <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
NXR_A(config-if)#ip tcp adjust-mss auto

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

NXR_A(config-if)#ipsec policy 1

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

NXR_A(config-if)#queue policy eth1qos bandwidth 20000 ifg-pa-fcs

出力インタフェースのキューイング方式としてクラスポリシを指定し、クラスポリシ名および帯域幅を設定します。またシェーピングレートの計算時にIFG,プリアンブル,FCSをフレームサイズに加えるように設定します。
(☞) 帯域幅の単位はkbpsになります。

 

15. <DNS設定>
NXR_A(config)#dns
NXR_A(config-dns)#service enable

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

NXR_A(config-dns)#address 10.10.10.2

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

 

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

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

 

〔NXR_Bの設定〕

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

ホスト名を設定します。

 

2. <クラスアクセスリスト設定>
NXR_B(config)#class access-list class_acl ip any any udp

クラスアクセスリスト名をclass_aclとし、UDPパケット全てが対象となるように設定します。

 

3. <ルートマップ設定>
NXR_B(config)#route-map qos_routemap permit 1
NXR_B(config-route-map)#match ip address class_acl
NXR_B(config-route-map)#set mark 10

ルートマップ名をqos_routemapとし、No.1のルールを作成します。
マッチ条件としてクラスアクセスリストで設定したclass_aclを、該当条件にマッチした場合マーク値10を設定します。
(☞) ルートマップ設定を設定しただけではパケット分類は適切に機能しません。パケット分類を行うインタフェースでルートマップの登録が必要になります。

 

4. <クラスフィルタ設定>
NXR_B(config)#class filter 10
NXR_B(config-class-filter)#match ip mark 10

マーク値10のパケットをクラス10に割り当てるように設定します。

 

5. <クラスポリシ設定>
NXR_B(config)#class policy ppp0qos
NXR_B(config-class-policy)#class 10 bandwidth percent 30 ceil 100
NXR_B(config-class-policy)#class default bandwidth percent 70 ceil 100

クラスポリシ名ppp0qosを設定します。またクラス10,デフォルトクラスの帯域幅をそれぞれ設定します。そして未使用帯域を使用するようにし、その帯域幅を設定します。

 

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

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

 

7. <スタティックルート設定>
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

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

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

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

 

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インタフェース設定で登録します。

 

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を設定します。

NXR_B(config-ipsec-tunnel)#no set anti-replay-check

IPsecのリプレイ防御ウィンドウを無効に設定します。
(☞) 対向ルータからのパケットの到着順が変わる場合は、この設定を無効にします。

 

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)#classify output route-map qos_routemap

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

 

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

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

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

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

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

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

NXR_B(config-ppp)#queue policy ppp0qos bandwidth 50000

出力インタフェースのキューイング方式としてクラスポリシを指定し、クラスポリシ名および帯域幅を設定します。
(☞) 帯域幅の単位はkbpsになります。

 

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サービスを有効にします。

 

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サーバ