ロング リーチ イーサネット(LRE)とデジタル加入者線(xDSL) : Service Selection Gateway(SSG)

DHCP Secure ARP、SSG Port-Bundle Host Key、SSG TCP Redirect、SESM、および SSG/DHCP Awareness が設定された SSG インターネット ゲートウェイのコール フロー デバッグ

2009 年 6 月 16 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2008 年 12 月 1 日) | フィードバック

目次


概要

このドキュメントでは、SSG と DHCP が稼働していて、ポータル サービスに SESM を使用する IOS インターネット ゲートウェイに焦点を当てています。



前提条件

要件

このドキュメントに関する特別な要件はありません。



使用するコンポーネント

このドキュメントは、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。



表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。



背景説明

テクノロジーと機能の概要

Service Selection Gateway(SSG)

Service Selection Gateway(SSG)は、ネットワーク サービスへの同時並行アクセスを可能にする Digital Subscriber Line(DSL; デジタル加入者線)、ケーブル モデム、あるいはワイヤレスなどのブロードバンド アクセス テクノロジーにより、加入者にイントラネット、エクストラネット、およびインターネット接続を提供するサービス プロバイダーのためのスイッチング ソリューションです。

SSG は Cisco Subscriber Edge Services Manager(SESM)と組み合されて機能します。SESM と組み合されることにより、SSG では、加入者の認証、サービス セレクション、およびサービス コネクションの機能がインターネット サービスの加入者に提供されます。加入者は標準のインターネット ブラウザを使用して、SESM Web アプリケーションと対話します。

SESM は次の 2 つのモードで動作します。

  • RADIUS モード:このモードでは、加入者とサービスの情報が RADIUS サーバから取得されます。RADIUS モードの SESM は SSD に似ています。

  • LDAP モード:Lightweight Directory Access Protocol(LDAP)モードでは、加入者とサービスのプロファイル情報のために LDAP 準拠のディレクトリへのアクセスが提供されます。このモードには SESM Web アプリケーション用の拡張機能も備わっており、ロールベース アクセス コントロール(RBAC)モデルを使用して加入者アクセスが管理されます。

SSG Port Bundle Host Key

SSG Port-Bundle Host Key 機能では、ホストの送信元 IP アドレスと送信元ポートを使用して加入者の識別と監視を行うメカニズムにより、SSG と SESM 間の通信と機能が拡張されます。

SSG Port-Bundle Host Key 機能により、SSG では、加入者と SESM サーバ間の HTTP トラフィックにポート アドレス変換(PAT)とネットワーク アドレス変換(NAT)が実行されます。加入者が SESM サーバに HTTP パケットを送信する際に、送信元 IP アドレスを設定済み SSG 送信元 IP アドレスに変更し、さらに、送信元 TCP ポートを SSG によって割り当てられたポートに変更するマップが SSG により作成されます。ある加入者が Web ページにアクセスする際には、複数の TCP セッションが並行して確立される場合があるため、各加入者には SSG によりポート群が割り当てられます。割り当てられたホスト鍵、あるいは、ポート群と SSG 送信元 IP アドレスの組み合せにより、各加入者は一意に識別されます。ホスト鍵は SESM サーバと SSG 間で送信される RADIUS パケットでは、加入者の IP VSA(vendor-specific attribute; ベンダー固有属性)内で搬送されます。SESM サーバから加入者に応答が送信される際に、SSG により、宛先 IP アドレスと宛先 TCP ポートがポート マップに従って変換されます。

SSG TCP Redirection(非認証ユーザが対象)

非認証ユーザのリダイレクションでは、ユーザがサービス プロバイダーで認可されていない場合に、ユーザからのパケットがリダイレクトされます。非認可加入者が TCP ポートでサービスに(たとえば、www.cisco.com に対して)接続しようとした場合、SSG TCP Redirection により、パケットがキャプティブ ポータル(SESM あるいは SESM デバイスのグループ)にリダイレクトされます。SESM ではブラウザにリダイレクトして、ログイン ページを表示します。加入者は SESM にログインして、認証と認可が行われます。次に、SESM により、カスタマイズされたホーム ページ、サービス プロバイダーのホーム ページ、あるいは、オリジナルの URL が表示されます。

DHCP Secured IP Address Assignment

DHCP Secure IP Address Assignment 機能では、DHCP データベースで Dynamic Host Configuration Protocol(DHCP)リースに対する ARP テーブル エントリをセキュア保護する機能が導入されています。この機能により DHCP バインディングに対するクライアントの MAC アドレスのセキュア保護と同期が行われ、これにより、非認可クライアントやハッカーが DHCP サーバをスプーフィングして認可クライアントの DHCP リースを乗っ取ることが阻止されます。この機能がイネーブルになっていて、DHCP サーバが DHCP クライアントに IP アドレスを割り当てると、DHCP サーバでは、その割り当てられた IP アドレスとそのクライアントの MAC アドレスで ARP テーブルにセキュア ARP エントリを追加します。この ARP エントリがこれ以外の ARP パケットでアップデートされることはなく、この ARP エントリは、設定されたリース期間中あるいはそのリースがアクティブである間は ARP テーブルに存在します。セキュア保護された ARP エントリを削除できるのは、DHCP バインディングが期限切れになった際の DHCP クライアントか DHCP サーバからの明示的な終了メッセージだけです。この機能は新しい DHCP ネットワークに設定できますが、現行のネットワークのセキュリティのアップグレードにも使用できます。この機能の設定によりサービスが中断されることはなく、DHCP クライアントから認識されることもありません。



テストベッド ダイアグラム

テストベッド ダイアグラム



コール フロー デバッグ

次の手順を実行します。

  1. MAC iBook LEFT が最初にイーサネット ケーブルでこのネットワークに接続されると、「F340.07.23-2800-8」で稼働している IOS DHCP サーバから IP アドレス 2.2.2.5/29 がリースされます。

    debug ip dhcp server packet
    debug ssg dhcp events
    
    *Oct 13 20:24:04.073: SSG-DHCP-EVN: DHCP-DISCOVER event received. 
       SSG-dhcp awareness feature enabled
    *Oct 13 20:24:04.073: DHCPD: DHCPDISCOVER received from client 
       0100.1124.82b3.c0 on interface GigabitEthernet0/0.2.
    *Oct 13 20:24:04.073: SSG-DHCP-EVN: Get pool name called for 
       0011.2482.b3c0. No hostobject
    *Oct 13 20:24:04.073: SSG-DHCP-EVN: Get pool class called, 
       class name = Oct 13 20:24:04.073: DHCPD: Sending DHCPOFFER 
       to client 0100.1124.82b3.c0 (2.2.2.5).
    *Oct 13 20:24:04.073: DHCPD: creating ARP entry 
       (2.2.2.5, 0011.2482.b3c0).
    *Oct 13 20:24:04.073: DHCPD: unicasting BOOTREPLY to client 
       0011.2482.b3c0 (2.2.2.5).
    *Oct 13 20:24:05.073: 
       DHCPD: DHCPREQUEST received from client 0100.1124.82b3.c0.
    *Oct 13 20:24:05.073: 
       SSG-DHCP-EVN:2.2.2.5: IP address notification received.
    *Oct 13 20:24:05.073: 
       SSG-DHCP-EVN:2.2.2.5: HostObject not present
    *Oct 13 20:24:05.073: 
       DHCPD: Can't find any hostname to update
    *Oct 13 20:24:05.073: 
       DHCPD: Sending DHCPACK to client 0100.1124.82b3.c0 (2.2.2.5).
    *Oct 13 20:24:05.073: 
       DHCPD: creating ARP entry (2.2.2.5, 0011.2482.b3c0).
    *Oct 13 20:24:05.073: 
       DHCPD: unicasting BOOTREPLY to client 0011.2482.b3c0 (2.2.2.5).
    
    F340.07.23-2800-8#show ip dhcp binding 
     Bindings from all pools not associated with VRF:
      IP address Client-ID/         Lease expiration        Type
               Hardware address/
               User name
     2.2.2.5    0100.1124.82b3.c0  Oct 13 2008 08:37 PM    Automatic
    
  2. IP アドレス 2.2.2.5 のリースに成功すると、MAC iBook LEFT では Web ブラウザが開かれて、http://3.3.3.200 がアクセスされますが、これは、SSG サービス「distlearn」に結び付けられた保護対象リソースをシミュレートするのに使用されます。SSG サービス「distlearn」は、SSG ルータ「F340.07.23-2800-8」でローカルに定義されています。

    local-profile distlearn
      attribute 26 9 251 "R3.3.3.200;255.255.255.255"
    

    実際には、http://3.3.3.200 は「ip http server」に設定された Cisco IOS ルータであり、TCP 80 でリスニングしているので、基本的には Web サーバです。

    MAC iBook LEFT から http://3.3.3.200 をブラウズしようとした後、「ssg direction downlink」に設定されているインターフェイスでは接続が入力になっているので、SSG ルータでは、まず HTTP 要求の送信元 IP アドレスでアクティブな SSG Host Object の存在がチェックされます。これは IP アドレス 2.2.2.5 からの最初のそのような要求なので、SSG Host Object は存在せず、次の設定により、ホスト 2.2.2.5 に対して SESM への TCP リダイレクトがインスタンス化されます。

    ssg tcp-redirect      
     port-list ports
      port 80 
      port 8080
      port 8090
      port 443 
    
    
    これらの TCP ポートで宛先要求のあるすべてのホストは、リダイレクトの対象候補です。
    
           
     server-group ssg_tr_unauth
      server 10.77.242.145 8090
    
    
    10.77.242.145 は SESM サーバであり、TCP 8090 で HTTP のリスニングを行います。
    「server」はデフォルト ネットワークかオープンガーデン(open-garden)にある必要があります。
         
     redirect port-list ports to ssg_tr_unauth
     redirect unauthenticated-user to ssg_tr_unauth
    
    
    「ssg direction downlink」が設定されたインターフェイスで SSG ルータがパケットを受信すると、
    最初に、パケットの送信元 IP アドレスが SSG Host Object Table と比較されます。パケットの
    送信元 IP アドレスに一致するアクティブな SSG Host Object が見つからず、さらに、パケットの
    宛先 TCP ポートが「port-list ports」に一致していて、宛先 IP アドレスが「ssg default-network」
    か SSG Open Garden にはない場合、ユーザは認証されておらず(no Host Object)、そのパケットは
    「port-list ports」にある TCP ポートが宛先になっているため、そのユーザはリダイレクトされます。
    この後、ユーザは、SSG Host Object が作成されるか、「redirect captivate initial default group」
    で設定可能なタイムアウトが発生するまで、捕捉されます。
    
    
    debug ssg tcp redirect
    debug ssg ctrl-event
    
    *Oct 13 20:24:36.833: SSG-TCP-REDIR:-Up: 
       created new remap entry for unauthorised user at 2.2.2.5
    *Oct 13 20:24:36.833: Redirect server set to 10.77.242.145,8090
    *Oct 13 20:24:36.833: Initial src/dest port mapping 49273<->80
    
    F340.07.23-2800-8#show ssg tcp-redirect mappings 
     Authenticated hosts:
      No TCP redirect mappings for authenticated users
    
     Unauthenticated hosts:
    
      Downlink Interface: GigabitEthernet0/0.2
      TCP remapping Host:2.2.2.5 to server:10.77.242.145 on port:8090
    
    
    2.2.2.5 からの最初の HTTP 要求の送信元の TCP ポートは 49273、宛先の IP アドレスは 3.3.3.200 で 
    TCP ポートは 80 でした。SSG TCP リダイレクトにより、宛先 IP ヘッダーは、SESM サーバ 
    10.77.242.145:8090 のソケットで上書きされます。Port Bundle Host Key が設定されていなかった場合、
    2.2.2.5:49273 の送信元ソケットは変更されないまま残ります。ところが、この場合は Port Bundle Host Key 
    が設定されているため、このパケットの送信元アドレスも、次の設定に基づき変更されます。
    
    
    ssg port-map
     destination range 80 to 8100 ip 10.77.242.145
     source ip 172.18.122.40
    
    
    TCP ポート 80 〜 8100 での SESM を宛先とするパケットは、IP ソケット 172.18.122.40 に対する 
    Port Bundle Host Key 送信元 NAT の対象であり、これは 64 のポートで開始されます。
    
    *Oct 13 20:24:36.833: group:ssg_tr_unauth, web-proxy:0
    *Oct 13 20:24:37.417: SSG-REDIR-EVT: -Down: 
       TCP-FIN Rxd for user at 2.2.2.5, 
       port 49273
    *Oct 13 20:24:37.421: SSG-REDIR-EVT: -Up: 
       TCP-FIN Rxd from user at 2.2.2.5, 
       src port 49273
    
    
    この SSG TCP Redirect の一環で、オリジナル URL は http://3.3.3.200 に保たれますが、宛先 IP ソケットは 
    10.77.242.145:8090 に書き換えられます。したがって、SESM は TCP ポート 8090 でこの http://3.3.3.200 の 
    URL を受け取ると、http://10.77.242.145:8080/home?CPURL=http%3A%2F%2F3.3.3.200%2F&t=fma4443t に
    なっている SESM ログイン ページにクライアントをダイレクトしているクライアントのブラウザに向けて HTTP 
    リダイレクトを返送します。ブラウザのリダイレクトが、キャプティブ ポータルに対して TCP 8080 に向かう
    クライアント ブラウザをポイントしている点に注意してください。このようにして、10.77.242.145:8090 に
    向かう最初の IOS SSG Redirect  の TCP セッションが終了します。さらに、リダイレクトで SESM がオリジナル 
    URL の http://3.3.3.200 をキャプチャしている点に注意してください。
    
    
    *Oct 13 20:24:38.049: SSG-CTL-EVN: 
       Received cmd (4,&) from Host-Key 172.18.122.40:64
    *Oct 13 20:24:38.049: SSG-CTL-EVN: 
       Add cmd=4 from Host-Key 172.18.122.40:64 into 
       SSG control cmd queue.
    *Oct 13 20:24:38.049: SSG-CTL-EVN: 
       Dequeue cmd_ctx from the cmdQ and pass it to 
       cmd handler
    *Oct 13 20:24:38.049: SSG-CTL-EVN: 
       Handling account status query for Host-Key 
       172.18.122.40:64
    *Oct 13 20:24:38.049: SSG-CTL-EVN: 
       No active HostObject for Host-Key 
       172.18.122.40:64, 
       Ack the query with Complete ID.
    *Oct 13 20:24:38.049: SSG-CTL-EVN: 
       Send cmd 4 to host S172.18.122.40:64. 
       dst=10.77.242.145:51806
    *Oct 13 20:24:38.049: SSG-CTL-EVN: 
       Deleting SSGCommandContext
       ::~SSGCommandContext
    
    
    Port Bundle Host Key が設定されていると、クライアントと SESM 間のすべての HTTP コミュニケーションが
    ポート バンドリングの対象になり、これは実際には TCP ソケットのための送信元 NAT です。上記のように、
    「SSG-CTL-EVN」メッセージは、独自の RADIUS ベースのプロトコルを使用して、SESM と IOS SSG ルータ間の
    コミュニケーションをデバッグしています。Port Bundle Host Key を使用している場合、SESM では常に 
    Port Bundle を使用してホストが識別されており、この場合、これは 172.18.122.40:64 です。ここでわかる
    のは、SESM が HTTP リダイレクトを送ると、Web ブラウザが 10.77.242.145:8090 に接続され、SESM では
    コントロール チャネルで SSG に対して 172.18.122.40:64 の Host Object の存在の照会も行われますが、
    これは SSG ルータでは実際には 2.2.2.5 と認識されているということです。Host Object が存在しないので、
    SSG ルータからは SESM に対して「No active HostObject for Host-Key 172.18.122.40:64」が送られます。
    
    
    この段階では、これは次のように確認できます。
    
    F340.07.23-2800-8#show ssg host 
     ### Total HostObject Count: 0
    

    この段階で、http://3.3.3.200 と入力された MAC iBook Left のブラウザを次に示します。

    http://3.3.3.200 と入力されたブラウザ

    http://3.3.3.200 と入力されたブラウザ

    IOS SSG TCP と SESM HTTP でリダイレクトが行われると、画面は次のようになります。

    リダイレクト後の画面

  3. SESM への SSG TCP リダイレクトと SESM により MAC iBook Left のブラウザに返された後続の HTTP リダイレクトの後、MAC iBook Left ではユーザ名に user1、パスワードに cisco と入力します。

    ユーザ名とパスワードの入力画面

    ユーザ名とパスワードの入力画面

  4. OK ボタンを押すと、独自の RADIUS ベースのプロトコルで SESM から SSG ルータに次のクレデンシャルが送られます。

    *Oct 13 20:25:01.781: SSG-CTL-EVN: 
       Received cmd (1,user1) from Host-Key 
       172.18.122.40:64
    *Oct 13 20:25:01.781: SSG-CTL-EVN: 
       Add cmd=1 from Host-Key 172.18.122.40:64 
       into SSG control cmd queue.
    *Oct 13 20:25:01.781: SSG-CTL-EVN: 
       Dequeue cmd_ctx from the cmdQ 
       and pass it to cmd handler
    *Oct 13 20:25:01.781: SSG-CTL-EVN: 
       Handling account logon for host 
       172.18.122.40:64
    *Oct 13 20:25:01.781: SSG-CTL-EVN: 
       No auto-domain selected for user user1
    *Oct 13 20:25:01.781: SSG-CTL-EVN: 
       Authenticating user user1.
    *Oct 13 20:25:01.781: SSG-CTL-EVN: 
       ssg_aaa_nasport_fixup function
    *Oct 13 20:25:01.781: SSG-CTL-EVN: 
       slot=0, adapter=0, port=0, vlan-id=2, 
       dot1q-tunnel-id=0, vpi=0, vci=0, type=10
    *Oct 13 20:25:01.781: SSG-CTL-EVN: 
       Deleting SSGCommandContext
       ::~SSGCommandContext
    
  5. 次に、SSG ルータで RADIUS アクセス要求パケットが組み立てられ、これが RADIUS に送られて user1 が認証されます。

    *Oct 13 20:25:01.785: RADIUS(00000008): 
       Send Access-Request to 
       10.77.242.145:1812 id 1645/11, len 88
    *Oct 13 20:25:01.785: RADIUS:  
       authenticator F0 56 DD E6 7E 
       28 3D EF - BC B1 97 6A A9 4F F2 A6
    *Oct 13 20:25:01.785: RADIUS:  User-Name           
       [1]   7   "user1"
    *Oct 13 20:25:01.785: RADIUS:  User-Password       
       [2]   18  *
    *Oct 13 20:25:01.785: RADIUS:  Calling-Station-Id  
       [31]  16  "0011.2482.b3c0"
    *Oct 13 20:25:01.785: RADIUS:  NAS-Port-Type       
       [61]  6   Ethernet      [15]
    *Oct 13 20:25:01.785: RADIUS:  NAS-Port            
       [5]   6   0                         
    *Oct 13 20:25:01.785: RADIUS:  NAS-Port-Id          
       [87]  9   "0/0/0/2"
    *Oct 13 20:25:01.785: RADIUS:  NAS-IP-Address      
       [4]   6   172.18.122.40    
    
  6. RADIUS からは user1 に Access-Accept で応答され、「F340.07.23-2800-8」に SSG Host Object が作成されます。

    *Oct 13 20:25:02.081: RADIUS: 
       Received from id 1645/11 10.77.242.145:1812, 
       Access-Accept, len 273
    *Oct 13 20:25:02.081: RADIUS:  
       authenticator 52 7B 50 D7 F2 43 E6 FC - 
       7E 3B 22 A4 22 A7 8F A6
    *Oct 13 20:25:02.081: RADIUS:  Service-Type        
       [6]   6   Framed         [2]
    *Oct 13 20:25:02.081: RADIUS:  Vendor, Cisco       
       [26]  23  
    *Oct 13 20:25:02.081: RADIUS:   ssg-account-info   
       [250] 17  "NInternet-Basic"
    *Oct 13 20:25:02.081: RADIUS:  Vendor, Cisco       
       [26]  13  
    *Oct 13 20:25:02.081: RADIUS:   ssg-account-info   
       [250] 7   "Niptv"
    *Oct 13 20:25:02.081: RADIUS:  Vendor, Cisco       
       [26]  14  
    *Oct 13 20:25:02.081: RADIUS:   ssg-account-info   
       [250] 8   "Ngames"
    *Oct 13 20:25:02.081: RADIUS:  Vendor, Cisco       
       [26]  18  
    *Oct 13 20:25:02.081: RADIUS:   ssg-account-info   
       [250] 12  "Ndistlearn"
    *Oct 13 20:25:02.081: RADIUS:  Vendor, Cisco       
       [26]  18  
    *Oct 13 20:25:02.081: RADIUS:   ssg-account-info   
       [250] 12  "Ncorporate"
    *Oct 13 20:25:02.081: RADIUS:  Vendor, Cisco       
       [26]  22  
    *Oct 13 20:25:02.081: RADIUS:   ssg-account-info   
       [250] 16  "Nhome_shopping"
    *Oct 13 20:25:02.081: RADIUS:  Vendor, Cisco       
       [26]  16  
    *Oct 13 20:25:02.081: RADIUS:   ssg-account-info   
       [250] 10  "Nbanking"
    *Oct 13 20:25:02.081: RADIUS:  Vendor, Cisco       
       [26]  16  
    *Oct 13 20:25:02.081: RADIUS:   ssg-account-info   
       [250] 10  "Nvidconf"
    *Oct 13 20:25:02.081: RADIUS:  User-Name           
       [1]   7   "user1"
    *Oct 13 20:25:02.081: RADIUS:  Calling-Station-Id  
       [31]  16  "0011.2482.b3c0"
    *Oct 13 20:25:02.081: RADIUS:  NAS-Port-Type       
       [61]  6   Ethernet       [15]
    *Oct 13 20:25:02.081: RADIUS:  NAS-Port            
       [5]   6   0                         
    *Oct 13 20:25:02.081: RADIUS:  NAS-Port-Id         
       [87]  9   "0/0/0/2"
    *Oct 13 20:25:02.081: RADIUS:  NAS-IP-Address      
       [4]   6   172.18.122.40             
    *Oct 13 20:25:02.081: RADIUS(00000008): 
       eceived from id 1645/11
    *Oct 13 20:25:02.081: RADIUS:  NAS-Port            
       [5]   4   0                         
    *Oct 13 20:25:02.081: SSG-CTL-EVN: 
       Creating radius packet
    *Oct 13 20:25:02.081: SSG-CTL-EVN: 
       Response is good
    *Oct 13 20:25:02.081: SSG-CTL-EVN: 
       Creating HostObject for Host-Key 
       172.18.122.40:64
    *Oct 13 20:25:02.081: SSG-EVN: 
       HostObject::HostObject: size = 616
    *Oct 13 20:25:02.081: SSG-CTL-EVN: 
       HostObject::Reset
    *Oct 13 20:25:02.081: SSG-CTL-EVN: 
       HostObject::InsertServiceList NInternet-Basic
    *Oct 13 20:25:02.085: SSG-CTL-EVN: 
       HostObject::InsertServiceList Niptv
    *Oct 13 20:25:02.085: SSG-CTL-EVN: 
       HostObject::InsertServiceList Ngames
    *Oct 13 20:25:02.085: SSG-CTL-EVN: 
      HostObject::InsertServiceList Ndistlearn
    *Oct 13 20:25:02.085: SSG-CTL-EVN: 
       HostObject::InsertServiceList Ncorporate
    *Oct 13 20:25:02.085: SSG-CTL-EVN: 
       HostObject::InsertServiceList Nhome_shopping
    *Oct 13 20:25:02.085: SSG-CTL-EVN: 
      HostObject::InsertServiceList Nbanking
    *Oct 13 20:25:02.085: SSG-CTL-EVN: 
      HostObject::InsertServiceList Nvidconf
    *Oct 13 20:25:02.085: SSG-CTL-EVN: 
      DoAccountLogon: ProfileCache is Enabled
    *Oct 13 20:25:02.085: SSG-CTL-EVN: 
       Account logon is accepted 
       [Host-Key 172.18.122.40:64, user1]
    *Oct 13 20:25:02.085: SSG-CTL-EVN: 
       Send cmd 1 to host S172.18.122.40:64. 
       dst=10.77.242.145:51806
    *Oct 13 20:25:02.085: SSG-CTL-EVN: 
      Activating HostObject for 
       Host-Key 172.18.122.40:64
    *Oct 13 20:25:02.085: SSG-CTL-EVN: 
       Activating HostObject for host 2.2.2.5
    
    
    最終的に、2.2.2.5 で SSG Host Object が作成されます。
    「N」アトリビュートをともなう多数の ssg-account-info VSA で
    「user1」RADIUS プロファイルが設定されている点に注意してください。
    これはユーザが加入するサービス用の SSG コードです。これは、
    この時点で「user1」に何らかのアクティブなサービスがあることを
    意味しているわけではない点に注意してください。
    これは、次のようにして確認できます。
    
    F340.07.23-2800-8#show ssg host 
      1: 2.2.2.5  [Host-Key 172.18.122.40:64]
    
       ### Active HostObject Count: 1
    
     F340.07.23-2800-8#show ssg host 2.2.2.5
    
    ------------------------ HostObject Content ---
    Activated: TRUE
    Interface: GigabitEthernet0/0.2
    User Name: user1
    Host IP: 2.2.2.5
    Host mac-address: 0011.2482.b3c0
    Port Bundle: 172.18.122.40:64
    Msg IP: 0.0.0.0 (0)
    Host DNS IP: 0.0.0.0
    Host DHCP pool  : 
    Maximum Session Timeout: 64800 seconds
    Action on session timeout: Terminate
    Host Idle Timeout: 0 seconds
    User policing disabled
    User logged on since: 
       *20:37:05.000 UTC Mon Oct 13 2008
    User last activity at: 
       *20:37:09.000 UTC Mon Oct 13 2008
    SMTP Forwarding: NO
    Initial TCP captivate: NO
    TCP Advertisement captivate: NO
    Default Service: NONE
    DNS Default Service: NONE
    Active Services: NONE
    AutoService: Internet-Basic; 
    Subscribed Services: Internet-Basic; 
       iptv; games; distlearn; 
       corporate; home_shopping; banking; vidconf; 
    Subscribed Service Groups: NONE
    
  7. この時点で、user1 は SSG Host Object として定義されていますが、まだどの SSG サービスへもアクセスしていません。MAC iBook Left が Service Selection 画面に表示されており、次のように Distance Learning をクリックします。

    Distance Learning 選択画面

    Distance Learning 選択画面

  8. Distance Learning をクリックすると、次のように、SESM ボックスがコントロール チャネルで SSG ルータへのコミュニケーションを行います。

    debug ssg ctrl-events
    
    *Oct 13 20:25:38.029: SSG-CTL-EVN: 
       Received cmd (11,distlearn) from 
       Host-Key 172.18.122.40:64
    
    
    
    SSG ルータではコントロール チャネル コマンドを受け取りますが、
    これは SSG ユーザ 172.18.122.40:64(2.2.2.5 にマッピング)が 
    SSG サービス「distlearn」をアクティベートするものです。
    
    
    *Oct 13 20:25:38.029: SSG-CTL-EVN: 
       Add cmd=11 from Host-Key 172.18.122.40:64 
       into SSG control cmd queue.
    *Oct 13 20:25:38.029: SSG-CTL-EVN: 
       Dequeue cmd_ctx from the cmdQ and pass it to 
       cmd handler
    *Oct 13 20:25:38.029: SSG-CTL-EVN: 
       Handling service logon for Host-Key 
       172.18.122.40:64
    *Oct 13 20:25:38.029: SSG-CTL-EVN: 
       Locating the HostObject for Host-Key 
       172.18.122.40:64
    *Oct 13 20:25:38.029: SSG-CTL-EVN: 
       Creating pseudo ServiceInfo for service: 
       distlearn
    *Oct 13 20:25:38.029: SSG-EVN: 
       ServiceInfo::ServiceInfo: size = 416
    *Oct 13 20:25:38.029: SSG-CTL-EVN: 
       ServiceInfo: Init servQ and start new process 
       for distlearn
    *Oct 13 20:25:38.029: SSG-CTL-EVN: 
       Service(distlearn)::AddRef(): ref after = 1
    *Oct 13 20:25:38.029: SSG-CTL-EVN: 
       Got profile for distlearn locally
    
    
    
    「distlearn」がローカル コンフィギュレーションで利用可能なため、次のようになります。
    
    
    local-profile distlearn
      attribute 26 9 251 "R3.3.3.200;255.255.255.255"
    
    
    
    ...SSG サービス情報をダウンロードするのに AAA コールを行う必要はありません。
    ところが、実環境でのほとんどの SSG の実装では、RADIUS AAA  サーバに SSG サービスが
    定義されているという点に注意してください。
    
    
    *Oct 13 20:25:38.029: SSG-CTL-EVN: 
       Create a new service table for distlearn
    *Oct 13 20:25:38.029: SSG-CTL-EVN: 
       Service bound on this interface are 
       : distlearn  
    *Oct 13 20:25:38.029: SSG-CTL-EVN: 
       Service distlearn bound to interface 
       GigabitEthernet0/0.3 firsthop 0.0.0.0
    *Oct 13 20:25:38.029: Service Address List :
    *Oct 13 20:25:38.033: Addr:3.3.3.200 
       mask:255.255.255.255
    *Oct 13 20:25:38.033: SSG-CTL-EVN: 
       Add a new service distlearn to an 
       existing table
    
    
    
    ここでは、SSG により distlearn のためのサービス テーブルが作成され、
    そのサービスのための R アトリビュートが完備した「ssg direction uplink」
    インターフェイスにバインドされます。
    
    
    *Oct 13 20:25:38.033: 
       SSG-CTL-EVN: Locating the HostObject for Host-Key 
       172.18.122.40:64
    *Oct 13 20:25:38.033: 
       SSG-CTL-EVN: Checking connection activation for 
       172.18.122.40:64 
       to distlearn.
    *Oct 13 20:25:38.033: 
       SSG-CTL-EVN: Creating ConnectionObject 
       (172.18.122.40:64, distlearn)
    *Oct 13 20:25:38.033: 
       SSG-EVN: ConnectionObject::ConnectionObject: size = 304
    *Oct 13 20:25:38.033: 
       SSG-CTL-EVN: Service(distlearn)::AddRef(): ref after = 2
    *Oct 13 20:25:38.033: 
       SSG-CTL-EVN: Checking maximum service count.
    *Oct 13 20:25:38.033: 
       SSG-EVN: Opening connection for user user1
    *Oct 13 20:25:38.033: 
       SSG-EVN: Connection opened
    *Oct 13 20:25:38.033: 
       SSG-CTL-EVN: Service logon is accepted.
    *Oct 13 20:25:38.033: SSG-CTL-EVN: 
       Activating the ConnectionObject.
    
    
    
    いったん、ローカルでサービスが確認されると、SSG では「Connection」
    を構築する必要があります。この場合の「Connection」は、下記の項目
    によるタプルになります。
    
    A:SSG Host Object
    B:SSG サービス名およびアトリビュート
    C:SSG ダウンリンク インターフェイス
    D:SSG アップストリーム インターフェイス
    
    
    A 〜 D は、このホストからのトラフィックが通過できる擬似的な隠蔽 VRF サービス テーブルの作成に使用されます。次をご覧ください。
    
    F340.07.23-2800-8#show ssg connection 2.2.2.5 distlearn
    
    ------------------------ConnectionObject Content ----
    User Name: user1
    Owner Host: 2.2.2.5
    Associated Service: distlearn
    Calling station id: 0011.2482.b3c0
    Connection State: 0 (UP)
    Connection Started since: 
       *20:40:21.000 UTC Mon Oct 13 2008
    
    User last activity at: 
       *20:41:04.000 UTC Mon Oct 13 2008
    Connection Traffic Statistics:
            Input Bytes = 420, Input packets = 5
            Output Bytes = 420, Output packets = 5
    Session policing disabled
    
    F340.07.23-2800-8#show ssg host 2.2.2.5
    
    ------------------------ HostObject Content -----------
    Activated: TRUE
    Interface: GigabitEthernet0/0.2
    User Name: user1
    Host IP: 2.2.2.5
    Host mac-address: 0011.2482.b3c0
    Port Bundle: 172.18.122.40:64
    Msg IP: 0.0.0.0 (0)
    Host DNS IP: 0.0.0.0
    Host DHCP pool  : 
    Maximum Session Timeout: 64800 seconds
    Action on session timeout: Terminate
    Host Idle Timeout: 0 seconds
    User policing disabled
    User logged on since: 
       *20:37:05.000 UTC Mon Oct 13 2008
    User last activity at: 
       *20:40:23.000 UTC Mon Oct 13 2008
    SMTP Forwarding: NO
    Initial TCP captivate: NO
    TCP Advertisement captivate: NO
    Default Service: NONE
    DNS Default Service: NONE
    Active Services: distlearn; 
    AutoService: Internet-Basic; 
    Subscribed Services: Internet-Basic; 
       iptv; games; distlearn; corporate; 
       home_shopping; banking; vidconf; 
    Subscribed Service Groups: NONE
    
    
  9. SSG 接続はアップしており、コールフローが完全に実行されます。MAC iBook Left では、http://3.3.3.200: のブラウズが正常に実行できます。

    ブラウズ画面

    ブラウズ画面



フィーチャ ドキュメントをともなう SSG ルータ設定の説明

version 12.4
service nagle
no service pad
service tcp-keepalives-in
service tcp-keepalives-out
service timestamps debug datetime msec
service timestamps log datetime msec
service password-encryption
!
hostname F340.07.23-2800-8
!
boot-start-marker
boot system flash flash:
   c2800nm-adventerprisek9-mz.124-21.15
boot-end-marker
!
logging buffered 1024000 debugging
!
aaa new-model
!
aaa authorization network default group radius 
!
aaa session-id common
no ip source-route
!
ip cef
ip dhcp relay information trust-all
ip dhcp use vrf connected
ip dhcp excluded-address 2.2.2.1
ip dhcp excluded-address 2.2.2.2
ip dhcp excluded-address 2.2.2.3
ip dhcp excluded-address 2.2.2.4
ip dhcp excluded-address 2.2.2.6
ip dhcp excluded-address 2.2.2.7



確実に DHCP アドレス 2.2.2.5/29 だけがリースされるようにするため、
2.2.2.1 〜 4 および 2.2.2.6 〜 7 を除外します。


Cisco IOS DHCP サーバの設定

ip dhcp pool dhcp_guest_v3501
   network 2.2.2.0 255.255.255.248
   default-router 2.2.2.1 
   dns-server 172.18.108.34 
   lease 0 4
   update arp



このルータで 2.2.2.0/29 の範囲に設定されているインターフェイスがあると、
そのネットワーク上のホストからの DHCP 要求がこのルータで処理されることになり、
IP アドレス 2.2.2.5、ゲートウェイ 2.2.2.1、DNS サーバ 172.18.108.24 が
割り当てられます。この IP アドレスのリース時間は 4 時間です。
さらに、「update arp」では、次の確認が行われます。 
DHCP でリースされた IP アドレスの ARP エントリが、DHCP バインディング 
テーブルの MAC エントリに一致すること。これにより、DHCP でリースされた
アドレスをスタティック ユーザが再利用する(あるいは、そのアドレスが割り
当てられる)イベントでの SSG セッションのハイジャックが防止されます。


Cisco IOS DHCP サーバの設定

アカウンティングとセキュリティ用の DHCP サービスの設定
!
no ip domain lookup
ip auth-proxy max-nodata-conns 3
ip admission max-nodata-conns 3
!
voice-card 0
 no dspfarm
!
ssg enable



SSG サブシステムをイネーブルにします。


SSG の実装:初期タスク

ssg intercept dhcp



SSG/DHCP Awareness をイネーブルにします。この例では、次のいずれかが発生すると、
SSG Host Object が破壊されることになります。
A:現在アクティブな SSG Host Object に一致する IP アドレスに対する DHCPRELEASE 
メッセージを受け取る。
B:現在アクティブな SSG Host Object に一致する IP アドレスに対する DHCP リースが
期限切れになる。


オンデマンド IP アドレス リニューアル用の SSG の設定

ssg default-network 10.77.242.145 255.255.255.255



Host Object や Connection Object の有無にかかわらず、「ssg direction downlink」
インターフェイスに対する入力パケットはすべて「ssg default-network」にアクセスできます。
SSG では、すべてのユーザは、非認証ユーザであっても、デフォルト ネットワークへのアクセス
が許可されます。通常、SESM はデフォルト ネットワークに属しています。ところが、DNS/DHCP 
サーバや TCP-Redirect サーバなどの他のタイプのサーバも、デフォルト ネットワークに
属している場合があります。


SSG の実装:初期タスク

ssg service-password cisco



SSG サービスがローカルに定義されておらず、そのため、ユーザが SSG サービスに加入する
際に RADIUS コールを実行する必要がある場合、そのサービスのための RADIUS アクセス要求
ではパスワード「cisco」が使用されます。


ssg radius-helper auth-port 1812 acct-port 1813
ssg radius-helper key cisco



SSG コントロール チャネルで SESM とのコミュニケーションに使用されます。SESM では、
サービス対象の各 SSG ルータのために、同様のスタティック コンフィギュレーションを
維持管理する必要があります。


SSG の実装:初期タスク

ssg auto-logoff arp match-mac-address interval 30



ユーザ トラフィックがない場合、SSG ではすべてのアクティブな Host Object に対する 
ARP Ping を送信しますが、ホストが応答に失敗するか、ホストの MAC アドレスが変更されていると、
AutoLogoff を呼び出します。


加入者をログオフする SSG の設定

ssg bind service distlearn GigabitEthernet0/0.3



SSG トラフィックは、グローバル ルーティング テーブルを使用したルーティングは行われません。
その代わりに、「show ssg connection」にある mini-VRF での情報を使用して
「ssg direction downstream」インターフェイスからルーティングされますが、ここでは、サービス
の手動バインディングが行われます <-->「ssg direction uplink」インターフェイス。このように、
インターフェイスやネクストホップ IP アドレスにサービスを手動でバインドするのは SSG の要件です。



加入者サービスのための SSG の設定

ssg timeouts
 session 64800



SSG Host Object のための絶対的なタイムアウトは 64800 秒です。


加入者をログオフする SSG の設定

ssg port-map
 destination range 80 to 8100 ip 10.77.242.145
 source ip 172.18.122.40



Port Bundle Host Key の設定。TCP 80 〜 8100 の範囲で 10.77.242.145 を宛先とする
すべてのトラフィックは、172.18.122.40 に送信元 NAT が行われます。


SSG の実装:初期タスク

ssg tcp-redirect



SSG リダイレクト サブコンフィギュレーションに入ります。


Web ログイン加入者を認証する SSG の設定

 port-list ports
  port 80
  port 8080
  port 8090
  port 443



TCP リダイレクションの候補になる宛先 TCP ポートのリストを定義します。


Web ログイン加入者を認証する SSG の設定

 server-group ssg_tr_unauth
  server 10.77.242.145 8090



リダイレクト サーバ リストを定義して、それらがリダイレクトをリスニングする 
TCP ポートを定義します。


Web ログイン加入者を認証する SSG の設定

 redirect port-list ports to ssg_tr_unauth
 redirect unauthenticated-user to ssg_tr_unauth



Host Object が存在せず、トラフィックが「ssg direction downlink」インターフェイス
に対する入力で、さらに、その宛先ポートがポートリストにある場合は、このトラフィック
を「server-group ssg_tr_unauth」にリダイレクトします。


Web ログイン加入者を認証する SSG の設定

ssg service-search-order local remote



サービス情報をダウンロードするために AAA コールを実行する前に、IOS 
コンフィギュレーション内にあるローカルプロファイルに定義されている 
SSG サービスを探します。


加入者サービスのための SSG の設定

local-profile distlearn
  attribute 26 9 251 "R3.3.3.200;255.255.255.255"



SSG サービス「distlearn」26 9 251 のローカルの定義はベンダー固有の、Cisco の、SSG サービス情報アトリビュートであり、次のように定義されます。

R:宛先ネットワーク、このサービスに属する IP ルートを指定します。


加入者サービスのための SSG の設定

SSG のための RADIUS プロファイルとアトリビュート

interface GigabitEthernet0/0
 no ip address
 duplex auto
 speed auto
!
interface GigabitEthernet0/0.2
 description Guest Wireless Vlan
 encapsulation dot1Q 2
 ip address 2.2.2.1 255.255.255.248
 no ip redirects
 no ip unreachables
 no ip mroute-cache
 ssg direction downlink



すべての SSG Host Object はダウンリンク方向にある必要があります。


SSG の実装:初期タスク

interface GigabitEthernet0/0.3
 description Routed connection back to Blue
 encapsulation dot1Q 3
 ip address 3.3.3.1 255.255.255.0
 ssg direction uplink



すべての SSG サービスはアップリンク方向にある必要があります。


SSG の実装:初期タスク

interface GigabitEthernet0/1
 ip address 172.18.122.40 255.255.255.224
 duplex auto
 speed auto
!
ip forward-protocol nd
ip route 10.77.242.144 255.255.255.255 172.18.122.33
ip route 10.77.242.145 255.255.255.255 172.18.122.33
ip route 157.157.157.0 255.255.255.0 3.3.3.5
ip route 172.18.108.34 255.255.255.255 172.18.122.33
ip route 172.18.124.101 255.255.255.255 172.18.122.33
!
no ip http server
no ip http secure-server
!
ip radius source-interface GigabitEthernet0/1 
!
radius-server host 10.77.242.145 auth-port 1812 acct-port 
   1813 timeout 5 retransmit 3 key 7 070C285F4D06
!
control-plane
!

line con 0
 exec-timeout 0 0
line aux 0
line vty 0 4
!
scheduler allocate 20000 1000
!
end


セキュリティとセッション再使用の考慮点

SSG と DHCP を一緒に使用すると、下記のシナリオで悪意を持つユーザに認証済みの SSG Host Object の再使用が許可される可能性があり、これにより、セキュアなリソースへの非認証アクセスが許可されます。

  • 「ssg intercept dhcp」で SSG/DHCP Awareness が設定されていない場合、以前にリースされた IP アドレスを新しい DHCP ユーザがリースする可能性があり、この対象の SSG Host Object はまだ存在しています。この新しいユーザからの最初の TCP 要求は、古いものであっても、送信元 IP アドレスが一致する SSG Host Object に一致するものがあるため、このユーザは保護されたリソースの非認証での使用が許可されます。これは、「ssg intercept dhcp」で防御でき、その結果、下記のいずれかが発生する場合に SSG Host Object が削除されます。

    • アクティブな Host Object に一致する IP アドレスに対する DHCPRELEASE を受け取る。

    • アクティブな Host Object に一致する IP アドレスに対する DHCP リースが期限切れになる。

  • DHCP ユーザにより、通常ではない DHCP ログアウト、つまり DHCPRELEASE が送られない DHCP ログアウトの前に、リースされた IP アドレスが悪意を持ったユーザと共有化されると、その悪意を持つユーザはこの IP アドレスでマシンをスタティックに設定でき、「ssg intercept dhcp」が設定されているかどうかにかかわらず、SSG Host Object を再利用できます。IOS DHCP プールに「ssg intercept dhcp」と「update arp」を組み合せて設定することにより、この防御が可能です。「update arp」により、ARP エントリの追加と削除を行える唯一の IOS サブシステムが DHCP サーバ サブシステムであることが保証されます。「update arp」では、IP-to-MAC DHCP バインディングにより、常に ARP テーブル内の IP-to-MAC バインディングが照合されます。悪意を持つユーザが、SSG Host Object に一致するスタティックに設定された IP アドレスを持ったとしても、そのトラフィックは SSG ルータに入ることを許可されません。MAC アドレスが、現行の DHCP バインディングの Mac アドレスに一致しないため、IOS DHCP サーバでは ARP エントリの作成が阻止されます。

  • SSG と DHCP が一緒に設定されていると、「ssg intercept dhcp」と「update arp」により、セッションの再使用が阻止されます。最終的な非セキュリティ関連チャレンジにより、DHCP Host で通常ではないログアウトが実行された際に、DHCP リースと ARP エントリが解放されます。「ssg direction downlink」インターフェイスでの「authorized arp」の設定により、定期的に ARP 要求がすべてのホストに送られて、それらのホストがまだアクティブな状態かどうかが確認されます。これらの定期的な ARP メッセージに対して何の応答も受け取らなかった場合、DHCP バインディングが解放され、IOS DHCP サブシステムでは ARP エントリが排除されます。

    interface FastEthernet0/0
    ip address 10.0.0.1 255.255.255.0
    arp authorized
    arp probe interval 5 count 15
    

    この例では、ARP 要求が定期的に送られて、Fa0/0 の既知のすべての ARP エントリが 5 秒ごとにリフレッシュされます。15 回失敗すると、DHCP バインディングが解放され、IOS DHCP サブシステムでは ARP エントリが排除されます。

    「authorized arp」のない SSG のコンテキストでは、DHCP ホストで通常ではないログアウトが行われると、この DHCP アドレスのリースが期限切れになるまでは、DHCP リースと SSG Host Object がアクティブなままですが、「ssg intercept dhcp」がグローバルに設定されている限り、セッションの再使用は発生しません。

「authorized arp」により、それが設定されているインターフェイスではダイナミック ARP ラーニングがオフになります。対象のインターフェイスで ARP エントリだけが、リースが開始された後で IOS DHCP サーバにより追加されたものです。これらのリースが終了すると、次に IOS DHCP サーバでこれらの ARP エントリが排除されますが、その理由は、DHCP RELEASE の受け取り、リースの期限切れ、あるいは、通常ではない DHCP ログアウトによる ARP プローブの失敗です。

実装上の注:

  • 「ssg auto-logoff arp」と「ssg auto-logoff icmp」は、セッションの再使用や結果的なセキュリティ上の問題を阻止する望ましくない方法です。「ssg auto-logoff」のバリアントの「arp」と「icmp」では、設定された「interval」(最小が 30 秒)内に SSG 接続でトラフィックがなかった場合、ARP か IMCP PING だけが送られます。DHCP で以前に使用された IP アドレスが 30 秒内でリースされるか、悪意を持ったユーザが現在バインドされている DHCP アドレスを 30 秒内でスタティックに設定すると、SSG では接続オブジェクト上のトラフィックが認識されるため、セッションが再使用されて、「ssg auto-logoff」の呼び出しは行われません。

  • すべての使用ケースで、悪意を持ったホストで MAC アドレスのスプーフィングが実行された場合、セッションの再使用は阻止されません。

表 1:SSG/DHCP 展開でのセッションの再使用とセキュリティの考慮点

コマンド 機能 セキュリティ関連事項

ssg auto-logoff arp [match-mac-address] [interval seconds]

ssg auto-logoff icmp [timeout milliseconds] [packets number] [interval seconds]

ARP または ICMP PING の障害の後で SSG Host Object を削除します。これらが送られるのは、「interval」の間、SSG 接続にトラフィックが無かった場合です。

DHCP で以前に使用された IP アドレスが 30 秒内でリースされるか、悪意を持ったユーザが現在バインドされている DHCP アドレスを 30 秒内でスタティックに設定すると、SSG では接続オブジェクト上のトラフィックが認識されるため、セッションが再使用されて、「ssg auto-logoff」の呼び出しは行われません。

ssg intercept dhcp

下記のイベントで SSG Host Object の削除を許可する SSG/DHCP Awareness を作成します。

A. アクティブな Host Object に一致する IP アドレスに対する DHCPRELEASE を受け取る。

B. アクティブな Host Object に一致する IP アドレスに対する DHCP リースが期限切れになる。

DHCP ユーザが SSG セッションを再使用するのは阻止されますが、スタティック ユーザが DHCP アドレスのスプーフィングをしたり、SSG セッションの再使用をしたりすることは阻止されません。

ip dhcp pool TEST update arp

ARP エントリの追加と削除を行える唯一の IOS サブシステムが DHCP サーバ サブシステムであることが保証されます。

「ssg intercept dhcp」付きで設定された場合に、すべてのセッション再使用が阻止されます。「ssg intercept dhcp」なしで設定されると、以前に使用された IP アドレスが DHCP によりリースされる場合には、セッション再使用が可能です。

interface FastEthernet0/0 arp authorized

すべてのホストに ARP 要求を定期的に送って、相手がアクティブであることを確認します。

ダイナミック ARP ラーニングをオフにします。

DHCP ユーザが通常ではないログアウトを行った際に、DHCP バインディングと ARP エントリの削除を許可します。





関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報




Document ID: 108187