Internet DRAFT - draft-andou-igmp-auth

draft-andou-igmp-auth



Internet Engineering Task Force                       Daisuke Andou, NTT
INTERNET-DRAFT                                          Takako Sato, NTT
June, 2002                                        Tsunemasa Hayashi, NTT
Expires: December, 2002                              Akihiro Tanabe, NTT
                                                       Kaori Izutsu, NTT
                                                     Yoshinori Goto, NTT
                                                   Yukikuni Nishida, NTT
                                                       Wataru Inoue, NTT



              IGMP for user Authentication Protocol (IGAP)
                      <draft-andou-igmp-auth-01.txt>


Status of this Memo

   This document is an Internet-Draft and is subject to all provisions
   of Section 10 of RFC2026.

   Internet Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that other
   groups may also distribute working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.


Abstract

   This memo describes IGAP, which allows user IP user clients and IP
   routers or network access servers to verify whether they can
   participate in a multicast group they hope and transport some
   information about it. IGAP is derived from IGMPv2, which can make
   users join a multicast group, who has the claim to participate a
   multicast group in a service. It's important for service providers
   to protect their revenue source.


1. Introduction

   IGMP for user Authentication Protocol (IGAP) allows user clients to
   connect to network gateways for access-controlled multicast services.
   These gateways (such as routers and called "authGW" hereafter) have
   the ability to authenticate the user client's authority to join/leave
   a multicast group. The security functions offered by IGAP will



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue      [Page 1]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   encourage the development of new commercial services. This memo
   describes only the operations between user client and authGW, and
   omits those about between authGW and authentication servers.


2.  Aspects of IGAP

   IGAP is designed to transport the information for user authentication
   and accounting, based on IGMPv2 [IGMPv2], for IP Multicast services.
   IGAP basically adopts the IGMPv2 message format and extends it only
   slightly. Details not clearly specified in this document are taken to
   follow the IGMPv2 equivalents. For example, all IGAP messages
   described in this document are sent via IP TTL 1, and use the IP
   Router Alert option [IPRA] in their IP header as per the IGMPv2
   requirements.

   IGAP messages are encapsulated in IP datagrams the same as IGMPv2,
   and the IP protocol number in the IP header is 2, the same as IGMPv2.
   Note that the value in the IGAP Type field in the header, which is
   also used by IGMPv2, differs from that of IGMPv2. User clients and
   routers can distinguish IGAP from IGMPv2 by this field.

   IGAP can support the use of any security/authentication system. As an
   example, the user authentication information can include encrypted
   user passwords. IGAP supports both PAP [PAP] and CHAP [CHAP]
   mechanisms.

   IGAP must be implemented on all user clients wishing to join a
   protected multicast service and all authGWs. AuthGWs support both
   IGMPv2 and IGAP. The processing of IGAP packets has no impact on the
   processing of IGMPv2 packets.


3.  IGAP Header Format

   IGAP messages have the following format.

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 (bit)
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      | Max Resp Time |           Checksum            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                        Group Address                          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |    Version    |  Report Type  |   Reserved    |    CHAP ID    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  | Account Size  | Message Size  |          Reserved             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  |                          User Account                         |
  |                                                               |



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue      [Page 2]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                                                               |
  |                            Message                            |
  |                                                               |
  |                                                               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   Upper 8 bytes of the header are equal to those of IGMPv2. This part
   is called "IGMPv2 compatible part". Lower 40 bytes are the fields
   that include new information defined in IGAP. Upper 2 bytes of this
   area, called the "IGAP standard part", are used by all IGAP packet
   types and carry Version, Report Type, Reserved, and CHAP ID field.
   Lower 38 bytes are used to carry the information needed for
   authentication and accounting. This part is called "IGAP optional
   part". Some IGAP header fields are not used in some processes.

   Note that IGAP messages may be longer than 48 bytes, especially
   future versions of IGAP. Any future IGAP implementation must
   recognize the first ten bytes. The IGAP checksum is always computed
   over the whole IP payload, not just the first 48 bytes. This chapter
   describes all of the fields.


3.1.  Type

   Currently, there are three types of IGAP messages.


   0x40 = IGAP Membership Report (IGAP Join)

   This type, sent from user client to authGW, is used to join a
   multicast group, and to reply to a IGAP Membership Query sent from
   authGW. Source address of IP header is IP address of the user client
   sending the packet, and destination address of IP header is desired
   Group Address. Other details basically follow those of IGMPv2
   Membership report.


   0x41 = IGAP Membership Query

   This type, sent from authGW to user client, asks for the current
   status of multicast packet reception and Group Address. As in IGMPv2,
   there are two sub-types: General Query and Group Specific Query. The
   destination address of the former is the all-system multicast group
   (224.0.0.1). For the latter, it's Group Address which user clients
   are now receiving. The features of these sub-types are same as per
   IGMPv2.





Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue      [Page 3]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   0x42 = IGAP Leave Group

   This type, sent from user client to authGW, is used to leave a
   multicast group. The IP Header includes source address (IP address
   of the user client sending the packet), and destination address
   (224.0.0.2). Other details
   basically follow those of IGMPv2 Membership report.


3.2.  Max Response Time

   The Max Response Time field is meaningful only for Membership Query
   messages (Type 0x41), and specifies the maximum allowed time before
   sending a response; the units are 0.1 seconds. In all other messages,
   it is set to zero by the sender and ignored by receivers.

   To prevent excessive burstiness of IGAP traffic on a subnet, the user
   clients on the subnet should choose a random delay time less than the
   Max Response Time, and send their Membership Report after this time.


3.3.  Checksum

   The checksum is the 16-bit one's complement of the one's complement
   sum of the whole IGAP message (the entire IP payload). This algorithm
   equals that of IGMPv2. 


3.4.  Group Address

   In a Membership Query message, the group address field is set to the
   group address being queried. In a Membership Report or Leave Group
   message, the group address field holds the IP multicast group address
   of interest or the group being left.


3.5.  Version

   Version field is set to 0x10 as the value to identify IGAP packets.


3.6.  Report Type

   Report Type field indicates the type of message transferred within
   the IGAP packet. Usage of this field is described in Chapter 4.

   In Type 0x40 (IGAP Join), there are four Report Types as follows.

       0x01 : Basic Join
       0x02 : PAP Join Authentication Request
       0x03 : CHAP Join Challenge Request



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue      [Page 4]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


       0x04 : CHAP Join Response

   In Type 0x41 (IGAP Query), there are seven Report Types as follows.

       0x21 : Basic Query
       0x22 : User-Specific Query
       0x23 : CHAP Challenge
       0x24 : Authentication Message
       0x25 : Accounting Message
       0x26 : Notification Message
       0x27 : Error Message

   In Type 0x42 (IGAP Leave), there are four Report Types as follows.

       0x41 : Basic Leave
       0x42 : PAP Leave Authentication Request
       0x43 : CHAP Leave Challenge Request
       0x44 : CHAP Leave Response
				   

3.7.  Reserved

   This field is set to 0xff unless used in a service.


3.8.  CHAP ID

   CHAP ID field is meaningful only when CHAP Authentication is used.
   AuthGW sets it when sending a CHAP Challenge packet to a user client.
   User client uses the value in this field in order to create the CHAP
   Response to reply to the CHAP Challenge. AuthGWs use the value of
   this field to check the correspondence between CHAP Response and
   CHAP Challenge. If this field is not used, it is set to the default
   value of 0x00.


3.9.  Account Size

   This field indicates the size of User Account field in units of
   bytes. If this field is not used, it is set to the default value of
   0x00.


3.10.  Message Size

   This field indicates the size of Message field in units of bytes. If
   this field is not used, it is set to the default value of 0x00.


3.11.  Reserved




Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue      [Page 5]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   This field is set to 0xff unless used in a service.


3.12.  User Account

   This field indicates the user account to be authenticated. The size
   of this field is 16 bytes. If the size value occupies less than 16
   bytes, the value is followed by 0xff.


3.13  Message

   This field is used according to Report Type. If this field is used
   for authentication, it carries user password. If CHAP is used, the
   password is encrypted.
   The size of this field is 16 bytes. If the value of the size of a
   message occupies less than 16 bytes, the value is followed by 0xff.


4.  IGAP Packet Type

   IGAP Packet type is determined by the Report Type field. In the
   following descriptions, fields that are not specifically  mentioned
   are assumed to be "unused". Regardless of the values in unused
   fields, authGWs should process the packet correctly. Chapter.3
   provides details about the fields not shown in this chapter.


4.1.  Basic Join

        Type : 0x40
        Group Address : connected group address
        Report Type : 0x01
        User Account : user ID
        Message : (unused)

   This packet type is used in the case which the join process does not
   require the authentication process.


4.2.  PAP Join Authentication Request

        Type : 0x40
        Group Address : connected group address
        Report Type : 0x02
        User Account : user ID
        Message : user password (not encrypted)

   This packet type is used in the case which the join process require
   PAP authentication process.




Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue      [Page 6]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


4.3.  CHAP Join Challenge Request

        Type : 0x40
        Group Address : connected group address
        Report Type : 0x03
        User Account : user ID
        Message : (unused)

   This packet type is used to initiate the challenge process for CHAP
   authentication. AuthGW received this packet issues CHAP Challenge
   packet described in Chapter 4.7.


4.4.  CHAP Join Response

        Type : 0x40
        Group Address : connected group address
        Report Type : 0x04
        User Account : user ID
        Message : Response Value

   This packet type is used to respond to the CHAP Challenge issued by
   the authGW. The Response Value is determined from two parameters.
   One is the Challenge Value, which is in the CHAP Challenge packet,
   described in chapter 4.7. The other is the value calculated from the
   user password by MD5 [MD5].


4.5.  Basic Query

   This packet type is used in the case which authGW checks whether the
   user client(s) are receiving multicast traffic at regular intervals,
   and authGW confirms the user client's request to leave a multicast
   group. There are two sub-types of Basic Query, as described in
   section 3.1. In the case of General Query, i.e. destination address
   of IP header is the all-systems multicast group (224.0.0.1), it's
   called the General-and-Basic Query. In this sub-type, the value of
   Group Address field is set to zero. In the case of Group Specific
   Query, i.e. destination address of IP header is the desired group
   address, it's called the Group-Specific-and-Basic Query. In this
   sub-type, the value of Group Address field is equal to the value of
   the desired destination address.
   This packet type doesn't have to have IGAP optional part.


4.5.1.  General-and-Basic Query

        Type : 0x41
        Group Address : (set to zero)
        MaxRespTime : given value (default : 0x64)
        Report Type : 0x21



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue      [Page 7]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


        IGAP optional part : (unused)


4.5.2.  Group-Specific-and-Basic Query

        Type : 0x41
        Group Address : connected group address
        MaxRespTime : given value (default : 0x64)
        Report Type : 0x21
        IGAP optional part : (unused)


4.6.  User-Specific Query

   This packet type is used on similar case of Basic Query, but this
   packet type has IGAP optional part, so authGW can identify the
   user(s) who is receiving a multicast packet, or leaving. There are
   also two sub-types as Basic Query. For General Query the first
   sub-type is called the General-and-User-Specific Query. In this
   sub-type, the value of Group Address field is set to zero. For Group
   Specific Query, the sub-type is called the Group-and-User-Specific
   Query. In this sub-type, the value of Group Address field is equal
   to the value of the desired destination address.


4.6.1.  General-and-User-Specific Query

        Type : 0x41
        Group Address : (set to zero)
        MaxRespTime : given value (default : 0x64)
        Report Type : 0x22
        User Account : user ID
        Message : (unused)


4.6.2.  Group-and-User-Specific Query

        Type : 0x41
        Group Address : connected group address
        MaxRespTime : given value (default : 0x64)
        Report Type : 0x22
        User Account : user ID
        Message : (unused)


4.7.  CHAP Challenge

        Type : 0x41
        MaxRespTime : given value (default : 0x64)
        Group Address : connected group address
        Report Type : 0x23



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue      [Page 8]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


        User Account : user ID
        Message : Challenge Value

   This packet type is used in the case which authGW responds to CHAP
   Join Challenge Request from user client. AuthGW sends this packet to
   notify Challenge Value. User client received this packet issues CHAP
   Join Response packet described in Chapter 4.4.


4.8.  Authentication Message

        Type : 0x41
        MaxRespTime : given value (default : 0x64)
        Group Address : connected group address
        Report Type : 0x24
        User Account : user ID
        Message : 0x11 (Authentication Success)
               or 0x21 (Authentication Reject)
               or other value (vendor specific)

   This packet type is used in the case which authGW provides
   information about the result of authentication. The Message field
   holds one of two values: either authentication succeed or
   authentication reject. The process adopted by the user client upon
   receiving this packet type is up to implementation, however, neither
   value must impact other IGAP process. Vendors may add their own
   specific values to the Message field, but the values used must not
   impact any other IGAP process.


4.9.  Accounting Message

        Type : 0x41
        MaxRespTime : given value (default : 0x64)
        Group Address : connected group address
        Report Type : 0x25
        User Account : user ID
        Message : 0x11 (Accounting Start)
               or 0x21 (Accounting Stop)
               or other value (vendor specific)

   This packet type is used in the case which authGW provides
   information about accounting status. The Message field holds one of
   two values: one indicates the start of accounting, and the other
   indicates the termination of accounting. The process adopted by the
   user client upon receiving this packet type is up to implementation,
   however, neither value must impact other IGAP process. The same is
   true for the vendor-specified values.


4.10.  Notification Message



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue      [Page 9]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


        Type : 0x41
        MaxRespTime : given value (default : 0x64)
        Group Address : connected group address
        Report Type : 0x26
        User Account : user ID
        Message : vendor specific value

   This packet type is used in the case which authGW provides
   information about an correct status in IGAP process, except
   authentication and accounting. The process adopted by the user
   client upon receiving this packet type is up to implementation,
   however, neither value must impact other IGAP process. The value of
   Message field in this packet type isn't defined in this document. 
   Vendors may add their own specific values to the Message field, but
   the values used must not impact any other IGAP process.


4.11.  Error Message

        Type : 0x41
        MaxRespTime : given value (default : 0x64)
        Group Address : connected group address
        Report Type : 0x27
        User Account : user ID
        Message : vendor specific value

   This packet type is used in the case which authGW provides
   information about an error status in IGAP process, except
   authentication and accounting. The process adopted by the user
   client upon receiving this packet type is up to implementation,
   however, neither value must impact other IGAP process. The value of
   Message field in this packet type isn't defined in this document.
   The same is true for the vendor-specified values.


4.12.  Basic Leave

        Type : 0x42
        Group Address : connected group address
        Report Type : 0x41
        User Account : user ID
        Message : (unused)

   This packet type is used in the case which the leave process does
   not require the authentication process.


4.13.  PAP Leave Authentication Request

        Type : 0x42
        Group Address : connected group address



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 10]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


        Report Type : 0x42
        User Account : user ID
        Message : user password (not encrypted)

   This packet type is used in the case which the leave process require
   PAP authentication process.


4.14.  CHAP Leave Challenge Request

        Type : 0x42
        Group Address : connected group address
        Report Type : 0x43
        User Account : user ID
        Message : (unused)

   This packet type is used to initiate the challenge process for CHAP
   authentication. AuthGW received this packet issues CHAP Challenge
   packet described in Chapter 4.7.


4.15.  CHAP Leave Response

        Type : 0x42
        Group Address : connected group address
        Report Type : 0x44
        User Account : user ID
        Message : Response Value


   This packet type is used to respond to the CHAP Challenge issued by
   the authGW. The algorithm used to calculate the Response value is
   the same method of CHAP Join Response.


References

[IGMPv2]
   W. Fenner, "Internet Group Management Protocol, Version 2", 
   RFC 2236, Xerox PARC, November 1997.

[PAP]
   B.Lloyd, W. Simson, "PPP Authentication Protocols", RFC 1334,
   Octover, 1992.

[CHAP]
   W. Simson, "PPP Challenge Handshake Authentication Protocol (CHAP)", 
   RFC 1994, August 1996.

[IPRA]
   D. Katz, "IP Router Alert Option", RFC 2113, Cisco Systems,



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 11]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   February 1997.

[MD5]
   R. Rivest, S. Dusse, "The MD5 Message-Digest Algorithm", RFC 1321, 
   April 1992.

[RADIUS]
   C. Rigney, S. Willens, A. Rubens, W. Simpson, "Remote Authentication
   Dial In User Service (RADIUS)", RFC 2865, June 2000.

[RADACCT]
   C. Rigney, "RADIUS Accounting", RFC 2866, Livingston, June 2000.



Author's Addresses

        Daisuke Andou, Takako Satou, Akihiro Tanabe, Kaori Izutsu,
        Yoshinori Gotou
        NTT Access Network Service Systems Laboratories
        1-6 Nakase Mihiama-ku, Chiba-shi, Chiba, 261-0023 Japan
        Phone : +81 43 211 2115
        Email : {dandou, t-sato, atanabe, izutsu, goto}@ansl.ntt.co.jp


        Tsunemasa Hayashi
        NTT Network Innovation Laboratories
        1-1 Hikari-no-oka, Yokosuka-shi, Kanagawa, 239-0847 Japan
        Phone : +81 468 59 8790
        Email : hayashi@exa.onlab.ntt.co.jp


        Yukikuni Nishida, Wataru Inoue
        NTT Cyber Solutions Laboratories
        1-1 Hikari-no-oka, Yokosuka-shi, Kanagawa, 239-0847 Japan
        Phone : +81 468 59 3496
        Email : {nishida.yukikuni, inoue.wataru}@lab.ntt.co.jp

















Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 12]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


Appendix 1. Examples of Vendor Specific Authentication Messages

   This appendix provides examples of Message field contents as
   specified by the vendor for Authentication Message (see Chapter 4.8).
   The vendor must enter the appropriate values in each message except
   for the values specified by this document, i.e. 0x11 (Authentication
   Success) and 0x21 (Authentication Reject).

   The cases wherein the user can't receive the multicast packets
   requested are described below. These messages indicate the reason
   for the failure of authentication, and they are sent instead of the
   Authentication Reject message (0x21).


   0x31 : Unknown User Account

   When the user ID in the User Account field (Chapter 3.12) is not
   registered on the Authentication server, authGW sends this message
   packet to user client.


   0x32 : Unknown Group Address

   When authGW receives notification that the group address in the Group
   Address field (Chapter 3.4) is not used in the service requested from
   authentication server, authGW sends this message packet to user
   client.


   0x33 : Request to participate in a multicast group rejected

   When the user doesn't have a valid claim to participate in the
   multicast group specified in the Group Address field, authGW sends
   this message packet to user client.


   0x41 : Invalid Group Address

   When the group address in the Group Address field is not registered
   with the address list in authGW, authGW sends this message packet to
   user client. In this case, authGW doesn't send any packet to the
   authentication server. The usage of this message is described in
   Appendix 9.


Appendix 2. Examples of Vendor Specific Accounting Messages

   This appendix provides examples of Message field values entered by
   the vendor into the Accounting Message (see Chapter 4.9). The vendor
   must enter the appropriate values in each message except for the
   values specified by this document, i.e. 0x11 (Accounting Start) and



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 13]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   0x21 (Accounting Stop).


   0x31 : Notification of charge-free

   When the accounting process is not needed, authGW sends this message
   packet to user client.


   0x32 : Notification of excess time

   In the case where there is a time limit to participate in a multicast
   group and the user client sending an IGAP join packet has already
   reached the time limit, authGW sends this message packet to user
   client.


Appendix 3. Examples of Vendor Specific Notification Message

   This appendix provides examples of Message field values entered by
   the vendor into Notification Message (see Chapter 4.10).


   0x11 : Notification of delivery

   When authGW starts or continues to send multicast packets, authGW
   sends this message packet to user client.


   0x12 : Notification of delivery  stop

   When authGW stops sending multicast packets, authGW sends this
   message packet to user client.


   0x13 : Notification of time out

   If there is a time limit to participate in a multicast group and time
   out been triggered while user client is participating in the
   multicast group, authGW sends this message packet to user client.


Appendix 4. Examples of Vendor Specific Error Messages

   This appendix describes the examples of Message field values entered
   by the vendor into Error Message (see Chapter 4.11).


   0x11 : Response time out of authentication server

   When the response packet indicating acceptance or rejection didn't



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 14]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   arrive at authGW from the authentication server in authentication
   process, authGW determines that authentication server is "dead",
   and sends this message packet to user client. The usage of this
   message is described in Chapter A-3 of Appendix 5.


   0x12 : Multicast packets not being delivered

   When authGW doesn't receive multicast packets of the desired group
   address, e.g. router due to network accident, authGW sends this
   message packet to user client. The usage of this message is
   described in Chapter A-4 of Appendix 5.


Appendix 5. IGAP sequence with PAP mechanism

   This appendix describes examples of IGAP sequences with PAP
   mechanism. In the figures in this appendix, IGAP packet types are
   abbreviated as follows.

   IGAP Join (Type:0x40)
      PAP Join Authentication Request (Report Type:0x02) : PAP Join

   IGAP Membership Query (Type:0x41)
      General-and-Basic Query (Report Type:0x21) : G&B Query
      Group-Specific-and-Basic Query (Report Type:0x21) : GS&B Query
      Authentication Message (Report Type:0x24) : Auth Message
      Accounting Message (Report Type:0x25) : Acct Message
      Notification Message (Report Type:0x26) : Ntf Message
      Error Message (Report Type:0x27) : Err Message

   IGAP Leave (Type:0x42)
      Basic Leave (Report Type:0x41) : Bsc Leave

   In the examples of this appendix, destination address of IP header
   in Authentication Message, Accounting Message, Notification Message
   and Error Message, is IP address of user client. RADIUS is used as
   authentication with PAP and accounting mechanism. User client should
   have a function to display notification message depending on Message
   packet received, so the user can know what happened in IGAP process.

   In the figures in this appendix, transferred packet has the
   following form.

      Type Name[Type (No.)]
      (Report Type Name [Report Type (No.)])
      (Message[(No.)])

   (Message[(No.)]) is described for the cases where Report Type is
   Authentication Message, Accounting Message, Notification Message or
   Error Message.



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 15]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   Arrowheads in the figure have the following meanings.
      -----> : IGAP packet
      ====>> : Multicast packet

   Types of Packet transferred between AuthGW and RADIUS server are
   fully compliant with RADIUS specifications.


A. Process for user client to start receiving multicast packets 

   This chapter describes the process whereby user client can start
   (or not to start) to receive multicast packets. In the process, user
   client sends IGAP Join message to authGW, and authGW asks
   authentication (RADIUS) server whether desired multicast packets can
   be transferred to the user client, if authentication is needed, and
   notifies the result to the user client via one of the IGAP Membership
   Query messages. The decision whether authentication is needed or not
   in the process is entrusted to authGW. Details of the decision are
   described in Appendix.9.


 A-1. Access accept
          client                 AuthGW        RADIUS server
            v                      v                  v
            |     Join[0x40]       |                  |
            |   (PAP Join[0x02])   |      Access      |
            |--------------------->|      Request     |
            |                      |----------------->|
            |     Query[0x41]      |      Access      |
            | (Auth Message[0x24]) |      Accept      |
            |   (Message[0x11])    |<-----------------|
            |<---------------------|                  |
            |  Multicast traffic   |    Accounting    |
            |<<====================|   Request(Start) |
            |                      |----------------->|
            |     Query[0x41]      |    Accounting    |
            | (Acct Message[0x25]) |     Response     |
            |   (Message[0x11])    |<-----------------|
            |<---------------------|                  |
            |                      |                  |














Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 16]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


 A-2. Access reject
          client                 AuthGW        RADIUS server
            v                      v                  v
            |     Join[0x40]       |                  |
            |   (PAP Join[0x02])   |      Access      |
            |--------------------->|      Request     |
            |                      |----------------->|
            |     Query[0x41]      |      Access      |
            | (Auth Message[0x24]) |      Reject      |
            |   (Message[0x21])    |<-----------------|
            |<---------------------|                  |
            |                      |                  |


 A-3. No response (time out) of RADIUS server
	  client                AuthGW        RADIUS server
            v                      v                  v
            |     Join[0x40]       |                  |
            |   (PAP Join[0x02])   |      Access      |
            |--------------------->|      Request     |
            |                      |----------------->|
            |     Query[0x41]      |                  |
            |(Error Message[0x27]) |   (No Response)  |
            |   (Message[0x11])    |                  |
            |<---------------------|                  |
            |                      |                  |

   AuthGW sets three parameters for communication with the
   authentication server: RADIUS Retrying Count, RADIUS Transmit
   Interval and RADIUS Waiting Interval. These parameters are
   described in Appendix 8.
   If the response packet from the RADIUS server indicating acceptance
   or rejection fails to arrive at authGW, authGW resends Access Request
   at intervals of RADIUS Retrying Interval until the number of
   retransmissions reaches RADIUS Retrying Count. When RADIUS Transmit
   Waiting Interval expires, authGW determines that the authentication
   server is dead, and sends IGAP Error Message packet to user client.


 A-4. Access to invalid address
	  client                AuthGW        RADIUS server
            v                      v                  v
            |     Join[0x40]       |                  |
            |   (PAP Join[0x02])   |                  |
            |--------------------->|                  |
            |     Query[0x41]      |                  |
            | (Auth Message[0x24]) |                  |
            |   (Message[0x41])    |                  |
            |<---------------------|                  |
            |                      |                  |




Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 17]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   AuthGW can identify whether multicast address sent from user client
   is available. (described in Appendix 9). If the multicast address is
   not registered with the address list in authGW, authGW determines
   that this address is invalid, and sends IGAP Error Message packet to
   user client.


 A-5. Multicast packets not being delivered to authGW
	  client                AuthGW        RADIUS server
            v                      v                  v
            |     Join[0x40]       |                  |
            |   (PAP Join[0x02])   |      Access      |
            |--------------------->|      Request     |
            |                      |----------------->|
            |                      |      Access      |
            |                      |      Accept      |
            |                      |<-----------------|
            |(No Multicast Packet) |                  |
            |                      |                  |
            |     query[0x41]      |                  |
            |(Error Message[0x27]) |                  |
            |   (Message[0x12])    |                  |
            |<---------------------|                  |
            |                      |                  |

   When authGW can't send multicast packets of the desired group address
   even though authGW has received Access Accept, authGW sends IGAP
   Error Message packet to user client. Even if authentication is not
   needed, authGW sends the same error message.


 A-6. Neither authentication nor accounting is needed
     (e.g. Free Channel)
	  client                AuthGW        RADIUS server
            v                      v                  v
            |     Join[0x40]       |                  |
            |   (PAP Join[0x02])   |                  |
            |--------------------->|                  |
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |
            |     Query[0x41]      |                  |
            | (Ntf Message[0x26])  |                  |
            |   (Message[0x11])    |                  |
            |<---------------------|                  |
            |                      |                  |

   AuthGW doesn't have to send Authentication Message and Accounting
   Message and instead sends Notification Message instead.





Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 18]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


B. Process to continue receiving multicast packet for user client

   This chapter describes the process whereby the user client who has
   already received multicast packets, continues to receive them or not.
   In the process, authGW sends IGAP Membership Query message
   (described in Chapter 3.1) to user client to query whether it is
   receiving the multicast packets or not, as is done in IGMPv2. The
   Query message is sent at regular intervals, the period of which is
   decided by Query Interval [IGMPv2]. Upon receiving IGAP Membership
   Query message, user client sends IGAP Join message to authGW as the
   reply. User client set the interval randomly in replying to IGAP
   Membership Query message, but the value is always less than Max Resp
   Time (described in Chapter 3.2).
   In some processes, user client is re-authenticated. The interval of
   re-authentication depends on Validity Period. This value is set in
   authentication (RADIUS) server, and is sent to authGW. The value of
   Validity Period is an integer multiple of Query Interval in units of
   second. For example, if the value of Query Interval is 60 and the
   value of Validity Period is 600, authGW asks the authentication
   (RADIUS) server every 10 processes as to whether requested multicast
   packets should be transferred to the user client.

































Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 19]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


 B-1. Access accept
	  client                AuthGW        RADIUS server
            v                      v                  v
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |
            |     Query[0x41]      |                  |
            |  (G&B Query[0x21])   |                  |
            |<---------------------|                  |
            |     Join[0x40]       |                  |
            |  (PAP Join[0x02])    |    Accounting    |
            |--------------------->|   Request(Stop)  |
            |                      |----------------->|
            |                      |    Accounting    |
            |     Query[0x41]      |     Response     |
            | (Acct Message[0x25]) |<-----------------|
            |   (Message[0x21])    |                  |
            |<---------------------|      Access      |
            |                      |      Request     |
            |                      |----------------->|
            |     Query[0x41]      |      Access      |
            | (Auth Message[0x24]) |      Accept      |
            |   (Message[0x11])    |<-----------------|
            |<---------------------|    Accounting    |
            |                      |   Request(Start) |
            |                      |----------------->|
            |     Query[0x41]      |    Accounting    |
            | (Acct Message[0x25]) |     Response     |
            |   (Message[0x11])    |<-----------------|
            |<---------------------|                  |
            |                      |                  |
            |  Continue to cast    |                  |
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |



















Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 20]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


 B-2. Access reject
	  client                AuthGW        RADIUS server
            v                      v                  v
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |
            |     Query[0x41]      |                  |
            |  (G&B Query[0x21])   |                  |
            |<---------------------|                  |
            |     Join[0x40]       |                  |
            |  (PAP Join[0x02])    |    Accounting    |
            |--------------------->|   Request(Stop)  |
            |                      |----------------->|
            |                      |    Accounting    |
            |     Query[0x41]      |     Response     |
            | (Acct Message[0x25]) |<-----------------|
            |   (Message[0x21])    |                  |
            |<---------------------|      Access      |
            |                      |      Request     |
            |                      |----------------->|
            |     Query[0x41]      |      Access      |
            | (Auth Message[0x24]) |      Reject      |
            |   (Message[0x21])    |<-----------------|
            |<---------------------|                  |
            |                      |                  |
            |       Traffic Stop   |                  |
            |             X<<======|                  |
            |                      |                  |


























Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 21]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


 B-3. No response (time out) of RADIUS server
	  client                AuthGW        RADIUS server
            v                      v                  v
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |
            |     Query[0x41]      |                  |
            |  (G&B Query[0x21])   |                  |
            |<---------------------|                  |
            |     Join[0x40]       |                  |
            |  (PAP Join[0x02])    |    Accounting    |
            |--------------------->|   Request(Stop)  |
            |                      |----------------->|
            |     Query[0x41]      |                  |
            |(Error Message[0x27]) |   (No Response)  |
            |   (Message[0x11])    |                  |
            |<---------------------|                  |
            |                      |                  |
            |     Query[0x41]      |                  |
            | (Acct Message[0x25]) |                  |
            |   (Message[0x21])    |                  |
            |<---------------------|                  |
            |                      |                  |
            |  Continue to cast    |                  |
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |

   AuthGW sets three parameters when communicating with the
   authentication server as is described in Chapter A-3 of Appendix 5.
   These parameters are described in Appendix 9.























Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 22]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


 B-4. Multicast packets not being delivered to authGW
	  client                AuthGW        RADIUS server
            v                      v                  v
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |
            |     Query[0x41]      |                  |
            |  (G&B Query[0x21])   |                  |
            |<---------------------|                  |
            |     join[0x40]       |                  |
            |   (PAP join[0x02])   |                  |
            |--------------------->|                  |
            |     Query[0x41]      |                  |
            | (Ntf Message[0x26])  |                  |
            |   (Message[0x11])    |                  |
            |<---------------------|                  |
            |                      |                  |
            |  Continue to cast    |                  |
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |


 B-5. Network down
	  client                AuthGW        RADIUS server
            v                      v                  v
            |       Network down   |                  |
            |             X<<======|                  |
            |     Query[0x41]      |                  |
            |(Error Message[0x27]) |                  |
            |   (Message[0x12])    |                  |
            |<---------------------|                  |
            |                      |                  |

   If multicast packets are not being transferred to authGW, authGW
   indicates this by releasing IGAP Error Message.


C. Process to stop receiving multicast packets for user client

   There are two ways of leaving a multicast group: Basic Leave Process
   and Fast Leave Process. Basic Leave Process basically equals the
   leave process of IGMPv2. When AuthGW receives IGAP Leave message from
   the user client, it responds by sending Group-Specific Query to the
   user client (described in Chapter 3.1). Details of the Query message
   basically follow those of IGMPv2 Membership Query. If authGW doesn't
   receive any IGAP Join packets from the user client, it determines
   that the user client no longer desires to be a multicast group
   member, and stops sending multicast packets.
   On the other hand, Fast Leave Process dispenses with IGAP Query
   packets. When AuthGW receives IGAP Leave message from the user



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 23]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   client, it stops sending multicast packets without sending IGAP Query
   packet. Fast Leave Process is recommended when fast response for IGAP
   Leave is needed.
   User client should be able to set resend number of IGAP Leave message
   and resend interval. These values improve the robustness of IGAP
   process, e.g. second leave packet reaches authGW, even if first leave
   packet is lost, which ensures completion of the leave process.
   In both processes, the decision whether authentication is needed or
   not is entrusted to authGW. For simplicity, none of the examples in
   this appendix use authentication.


 C-1. Success of Basic Leave Process
	  client                AuthGW        RADIUS server
            v                      v                  v
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |
            |     Leave[0x42]      |                  |
            |   (Bsc Leave[0x41])  |                  |
            |--------------------->|                  |
            |     Query[0x41]      |                  |
            |  (GS&B Query[0x21])  |                  |
            |<---------------------|                  |
            |     Query[0x41]      |                  |
            |  (GS&B Query[0x21])  |                  |
            |<---------------------|                  |
            | (No Response)        |                  |
            |                      |                  |
            |       Traffic Stop   |    Accounting    |
            |             X<<======|   Request(Stop)  |
            |                      |----------------->|
            |                      |    Accounting    |
            |     Query[0x41]      |     Response     |
            | (Acct Message[0x25]) |<-----------------|
            |   (Message[0x21])    |                  |
            |<---------------------|                  |
            |                      |                  |
















Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 24]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


 C-2. Success of Fast Leave Process
	  client                AuthGW        RADIUS server
            v                      v                  v
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |
            |     Leave[0x42]      |                  |
            |   (Bsc Leave[0x41])  |                  |
            |--------------------->|                  |
            |       Traffic Stop   |    Accounting    |
            |             X<<======|   Request(Stop)  |
            |                      |----------------->|
            |                      |    Accounting    |
            |     Query[0x41]      |     Response     |
            | (Acct Message[0x25]) |<-----------------|
            |   (Message[0x21])    |                  |
            |<---------------------|                  |
            |                      |                  |


 C-3. No response (time out) of user client
	  client                AuthGW        RADIUS server
            v                      v                  v
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |
            |     Query[0x41]      |                  |
            |  (G&B Query[0x21])   |                  |
            |<---------------------|                  |
            |     Query[0x41]      |                  |
            |  (G&B Query[0x21])   |                  |
            |<---------------------|                  |
            |     Query[0x41]      |                  |
            |  (G&B Query[0x21])   |                  |
            |<---------------------|                  |
            | (No Response)        |                  |
            |                      |                  |
            |       Traffic Stop   |    Accounting    |
            |             X<<======|   Request(Stop)  |
            |                      |----------------->|
            |                      |    Accounting    |
            |     Query[0x41]      |     Response     |
            | (Acct Message[0x25]) |<-----------------|
            |   (Message[0x21])    |                  |
            |<---------------------|                  |
            |                      |                  |

   General-and-Basic Query Interval is described in Chapter B of
   Appendix 5. The number of resent Query messages is described in
   Appendix 8.




Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 25]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


 C-4. No response (time out) of RADIUS server in Basic Leave Process
	  client                AuthGW        RADIUS server
            v                      v                  v
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |
            |     Leave[0x42]      |                  |
            |   (Bsc Leave[0x41])  |                  |
            |--------------------->|                  |
            |     Query[0x41]      |                  |
            |  (GS&B Query[0x21])  |                  |
            |<---------------------|                  |
            |     Query[0x41]      |                  |
            |  (GS&B Query[0x21])  |                  |
            |<---------------------|                  |
            | (No Response)        |                  |
            |                      |                  |
            |       Traffic Stop   |    Accounting    |
            |             X<<======|   Request(Stop)  |
            |                      |----------------->|
            |     Query[0x41]      |                  |
            |(Error Message[0x27]) |   (No Response)  |
            |   (Message[0x11])    |                  |
            |<---------------------|                  |
            |                      |                  |
            |     Query[0x41]      |                  |
            | (Acct Message[0x25]) |                  |
            |   (Message[0x21])    |                  |
            |<---------------------|                  |
            |                      |                  |

   AuthGW sets three parameters when communicating with the
   authentication server as is described in Chapter A-3 of Appendix 5.
   These parameters are described in Appendix 9.




















Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 26]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


 C-5. No response (time out) of RADIUS server in Fast Leave Process
	  client                AuthGW        RADIUS server
            v                      v                  v
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |
            |     Leave[0x42]      |                  |
            |   (Bsc Leave[0x41])  |                  |
            |--------------------->|                  |
            |       Traffic Stop   |    Accounting    |
            |             X<<======|   Request(Stop)  |
            |                      |----------------->|
            |    Query[0x41]       |                  |
            |(Error Message[0x27]) |   (No Response)  |
            |   (Message[0x11])    |                  |
            |<---------------------|                  |
            |                      |                  |
            |     Query[0x41]      |                  |
            | (Acct Message[0x25]) |                  |
            |   (Message[0x21])    |                  |
            |<---------------------|                  |
            |                      |                  |

   AuthGW sets three parameters when communicating with the
   authentication server as is described in Chapter A-3 of Appendix 5.
   These parameters are described in Appendix 9.




























Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 27]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


 C-6. No response (time out) of user client if neither authentication
      nor accounting is needed (e.g. Free Channel) in Basic Leave
      Process
	  client                AuthGW        RADIUS server
            v                      v                  v
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |
            |     Leave[0x42]      |                  |
            |   (Bsc Leave[0x41])  |                  |
            |--------------------->|                  |
            |     Query[0x41]      |                  |
            |  (GS&B Query[0x21])  |                  |
            |<---------------------|                  |
            |     Query[0x41]      |                  |
            |  (GS&B Query[0x21])  |                  |
            |<---------------------|                  |
            | (No Response)        |                  |
            |                      |                  |
            |       Traffic Stop   |                  |
            |             X<<======|                  |
            |     Query[0x41]      |                  |
            | (Ntf Message[0x26])  |                  |
            |   (Message[0x12])    |                  |
            |<---------------------|                  |
            |                      |                  |


 C-7. No response (time out) of user client if neither authentication
      nor accounting is needed (e.g. Free Channel) in Fast Leave Process
	  client                AuthGW        RADIUS server
            v                      v                  v
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |
            |     Leave[0x42]      |                  |
            |   (Bsc Leave[0x41])  |                  |
            |--------------------->|                  |
            |       Traffic Stop   |                  |
            |             X<<======|                  |
            |     Query[0x41]      |                  |
            | (Ntf Message[0x26])  |                  |
            |   (Message[0x12])    |                  |
            |<---------------------|                  |
            |                      |                  |









Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 28]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


 C-8. No response (time out) of user client if neither authentication
      nor accounting is needed (e.g. Free Channel)
	  client                AuthGW        RADIUS server
            v                      v                  v
            |  Multicast traffic   |                  |
            |<<====================|                  |
            |                      |                  |
            |     Query[0x41]      |                  |
            |  (G&B Query[0x21])   |                  |
            |<---------------------|                  |
            |     Query[0x41]      |                  |
            |  (G&B Query[0x21])   |                  |
            |<---------------------|                  |
            |     Query[0x41]      |                  |
            |  (G&B Query[0x21])   |                  |
            |<---------------------|                  |
            | (No Response)        |                  |
            |                      |                  |
            |         Traffic Stop |                  |
            |             X<<======|                  |
            |     Query[0x41]      |                  |
            | (Ntf Message[0x26])  |                  |
            |   (Message[0x12])    |                  |
            |<---------------------|                  |
            |                      |                  |


Appendix 6. IGAP sequence with CHAP mechanism

   This appendix provides examples of IGAP sequence with CHAP mechanism.
   In the figures in this appendix, in addition to IGAP packet types
   used in Appendix.5, the following  packet type abbreviations are
   used.

   IGAP Join (Type:0x40)
   CHAP Join Challenge Request (Report Type:0x03) : CHAP Join
   CHAP Join Response (Report Type:0x04) : CHAP Join Resp

   IGAP Membership Query (Type:0x41)
   CHAP Challenge (Report Type:0x23) : CHAP Chllng

   In the figures in this appendix, the transferred packets have the
   following form.

      Type Name[Type (No.)]
      (Report Type Name [Report Type (No.)])
      (Message[(No.)])

   This appendix describes only the case of access accept. In the case
   of access reject, CHAP process  is replaced by PAP process.




Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 29]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


	  client                AuthGW        RADIUS server
            v                      v                  v
            |     Join[0x40] *1    |                  |
            |  (CHAP Join[0x03])   |                  |
            |--------------------->|                  |
            |                      |                  |
            |                (Making "S") *2          |
            |                      |                  |
            |    Query[0x41] *3    |                  |
            |  (CHAP Chllng[0x23]) |                  |
            |<---------------------|                  |
            |                      |                  |
       (A=fMD5(S,PW)) *4           |                  |
            |                      |                  |
            |     Join[0x40] *5    |                  |
            |(CHAP Join Resp[0x04])|                  |
            |--------------------->|                  |
            |                      |      Access      |
            |                      |      Request *6  |
            |                      |----------------->|
            |                      |       (A'=fMD5(S,PW)) *7
            |                      |               (A'=A?) *8
            |     Query[0x41]      |      Access      |
            | (Auth Message[0x24]) |      Accept *9   |
            |   (Message[0x11])    |<-----------------|
            |<---------------------|                  |
            |  Multicast traffic   |    Accounting    |
            |<<====================|   Request(Start) |
            |                      |----------------->|
            |     Query[0x41]      |    Accounting    |
            | (Acct Message[0x25]) |     Response     |
            |   (Message[0x11])    |<-----------------|
            |<---------------------|                  |
            |                      |                  |
            |                      |                  |

   Explanation of the sequence in the figure

   *1 : CHAP Join Challenge Request
      User client sends CHAP Join Challenge Request message to authGW.
   *2 : Making "S"
      AuthGW creates a random digit S.
   *3 : CHAP Challenge
      AuthGW makes a CHAP ID, and sends CHAP Challenge message to user
      client.
   *4 : A=fMD5(S, PW)
      User client calculates Hash Value A from S and user password using
      Hash Function MD5.
   *5 : CHAP Join Response
      User Client sends CHAP Join Response message to authGW.
   *6 : Access Request
      AuthGW sends Access Request with A and S to RADIUS server.


Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 30]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   *7 : A'=fMD5(S, PW)
      RADIUS server calculates Hash Value A' from S and user password
      configured in RADIUS server using Hash Function MD5.
   *8 : A'=A?
      If A' equals A, Join request of user is accepted.
   *9 : Access Accept
      RADIUS server sends Access Accept.

   The steps after *9 are the same as in the PAP process.


Appendix 7. RADIUS Attribute

   Appendix.5 and 6 provide examples of using the RADIUS server. This
   chapter describes the attributes needed. In addition to existing
   attributes, defined in RFC2865 and 2866, two attributes are defined
   as vendor specific values. They are Auth-Multicast-Address and
   Validity-Period. Other details basically follow the specifications of
   RFC2865 and 2866.

   Auth-Multicast-Address (Type:26, Vendor Type:90)

   This value is the desired multicast address as is sent by AuthGW to
   RADIUS server. RADIUS server knows the multicast addresses that each
   user can receive. If this address is not one of the approved
   addresses, Access Reject is sent to authGW.

   Validity-Period (Type:26, Vendor Type:93)

   RADIUS server sends this attribute to authGW to notify
   Validity-Period described in Appendix 8.


   Needed attributes are as follows.

   (1) Access Request
      User-Name (Type:1)
      User-Password (Tvpe:2)   notice : used with PAP
      CHAP-Password (Type:3)   notice : used with CHAP
      NAS-IP-Address (Type:4) 
      NAS-Port (Type:5)
      Auth-Multicast-Address (Type:26, Vendor Type:90)
      CHAP Challenge (Tvpe:60)   notice : used with CHAP

   (2) Access Accept
      User-Name (Type:1)
      Auth-Multicast-Address (Type:26, Vendor Type:90)
      Validity-period (Type:26, Vendor Type:93)

   (3) Access Reject
      No attribute is used.



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 31]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   (4) Accounting Request (Start)
      User-Name (Type:1)
      NAS-IP-Address (Type:4)
      NAS-Port (Type:5)
      Auth-Multicast-Address (Type:26, Vendor Type:90)
      Acct-Status-Type (Start) (Tvpe:40)
      Acct-Session-ID (Tvpe:44)

   (5) Accounting Request (Stop)
      User-Name (Type:1)
      NAS-IP-Address (Type:4)
      NAS-Port (Type:5)
      Auth-Multicast-Address (Type:26, Vendor Type:90)
      Acct-Status-Type (Stop) (Tvpe:40)
      Acct-Output-Octets (Type:43)
      Acct-Session-ID (Type:44)
      Acct-Session-Time (Type:46)
      Acct-Output-Packets (Type:48)
      Acct-Terminate-Cause (Type:49)

   (6) Accounting Response
      No attribute is used.


Appendix 8. Parameters set in authGW and user client when supporting
   IGAP

   This appendix describes the parameters set in authGW and/or user
   client when supporting IGAP processes. "Reference list" details the
   chapters that explain the usage of each parameter in the IGAP
   process.


   8-1. RADIUS Retrying Count

      Range : 1~100 (Default : 3)
      Implemented : AuthGW
      Reference list: A-3, B-3, C-4, C-5

   This is the limitation value for the number of user request
   (Access Request or Accounting Request) at the same time, when AuthGW
   sends the request to RADIUS server. See also chapters 8-2 and 8-3.


   8-2. RADIUS Retrying Interval

      Range : 1~100 seconds (Default : 5)
      Implemented : AuthGW
      Reference list: A-3, B-3, C-4, C-5

   This is the interval for sending Access Request or Accounting



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 32]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   Request to RADIUS server in units of seconds. See also chapters 8-1
   and 8-3.


   8-3. RADIUS Waiting Interval

      Implemented : AuthGW
      Reference list: A-3, B-3, C-4, C-5

   This is the product Radius Transmit Count and Radius Retrying
   Interval in units of seconds, and used by authGW in determining
   whether RADIUS server is alive or not.


   8-4. General-and-Basic Query Count

      Range : 1~10 (Default 3)
      Implemented : AuthGW
      Reference list: B-1 ~ B-4, C-3, C-8

   This is the limitation value for number of General-and-Basic Query
   at the same time, when AuthGW sends it to user client. See the
   chapter 8-5, 8-6 and 8-7, too.


   8-5. General-and-Basic Query Interval

      Range : 1~647 seconds (Default : 125)
      Implemented : AuthGW
      Reference list: B-1 ~ B-4, C-3, C-8

   This is the interval for sending General-and-Basic Query to user
   client. See also chapters 8-4, 8-6 and 8-7.


   8-6. General-and-Basic Query Max Resp Time

      Implemented : AuthGW
      Reference list : B-1 ~ B-4, C-3, C-8

   This is equal to Max Resp Time in IGAP packet, and used by authGW to
   calculate General-and-Basic Query Waiting Interval. See also chapter
   8-7.


   8-7. General-and-Basic Query Waiting Interval

      Implemented : AuthGW
      Reference list: B-1 ~ B-4, C-3, C-8

   This is calculated as follows.



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 33]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   (General-and-Basic Query Waiting Interval) = 
   (General-and-Basic Query Count) X (General-and-Basic Query Interval)
   + (General-and-Basic Query Max Resp Time)
   It's used by authGW to determine whether user clients under authGW
   are alive or not. This process is almost same as the IGMPv2
   equivalent.


   8-8. Group-Specific-and-Basic Query Count
      Range : 0~10 seconds (Default : 2) 
      Implemented : AuthGW
      Reference list: C-2, C-5, C-7

   This is the limitation value for number of Group-Specific-and-Basic
   Query at the same time, when AuthGW sends it to user client. See also
   chapters 8-9 and 8-10.


   8-9. Group-Specific-and-Basic Query Max Resp Time
      Range : 0~100 seconds (Default : 5) 
      Implemented : AuthGW
      Reference list: C-2, C-5, C-7

   This is equal to Max Resp Time in IGAP packet, and used by authGW to
   determine whether user client participating in a multicast group is
   alive or not. See also chapters 8-8 and 8-10.


   8-10. Group-Specific-and-Basic Query Waiting Interval
      Implemented : AuthGW
      Reference list: C-2, C-5, C-7

   This is calculated as follows.
   It's used by authGW to determine whether user clients under authGW
   are alive or not in Basic Leave Process. This process is almost the
   same as the IGMPv2 equivalent.
   It is calculated as follows.
   (Group-Specific-and-Basic Query Waiting Interval) = 
      (Group-Specific-and-Basic Query Count) X 
         (Group-Specific-and-Basic Query Max Resp Time)


   8-11. Validity Period

      Range : 0~10,000 seconds (Default : 0)
      Implemented : AuthGW
      Reference list: B-1 ~ B-4, C-3, C-8

   This is an integer multiple of Query Interval in units of second, and
   used by authGW to determine whether user authentication is necessary
   or not. See also chapter B of Appendix.5.



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 34]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   8-12. Basic Leave Count

      Range : 1~15 (Default 2)
      Implemented : user client
      Reference list: C-2, C-5, C-7

   This is the maximum number of times Basic Leave can be sent to
   authGW.


   8-13. Join Interval

      Range : 0.1~3 (Default 0.1)
      Implemented : AuthGW, user client

   This is used as the interval authGW waits to  receive IGAP Join
   message from user client. If authGW receives more than two IGAP Join
   messages from the same user client during this interval, it must
   discard all Join messages, except the first one. In addition, user
   client must not send more than two IGAP Join messages to authGW
   during this interval.


   8-14. AuthGW Response Waiting Interval

      Range : 0~100 (Default 10)
      Implemented : AuthGW, user client

   This is used as the interval user client waits for IGAP Membership
   Query message packet. When user client didn't receive any message
   from authGW during this interval, it may determine authGW is dead,
   but this determination must not impact the other IGAP processes.


Appendix 9. Configuration of Group Address in authGW

   The decision whether authentication is needed or not depends on
   desired group address. AuthGW has a list of those group addresses or
   subnet addresses associated with each group address. Each group
   address or subnet address has a flag indicating the necessity of
   authentication. For example, the authGW list may look like this.

   239.192.1.0/24  :  Auth
   239.192.2.0/24  :  No-Auth
   239.192.3.1  :  Auth
   239.192.3.2  :  No-Auth

   Notice : List file should not be a text file.

   Flag "Auth" means that authentication is needed, and "No-Auth" means
   that authentication is not needed. When authGW receives IGAP Join



Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 35]

Internet Draft           draft-andou-igmp-auth-01.txt         June, 2002


   message, if the value in Group Address field is 239.192.1.* (from
   239.192.1.0 to 239.192.1.255) or 239.192.3.1, authentication process
   (PAP or CHAP) is performed between authGW and authentication server,
   for example, using RADIUS server, authGW sends Access Request to
   RADIUS server (see Chapter A-1 of Appendix 5). 
   If the value in Group Address field is 239.192.2.* (from 239.192.2.0
   to 239.192.2.255) or 239.192.3.2, the authentication process is not
   run, and authGW sends the multicast packets to the user client at
   once (see Chapter A-6 of Appendix 5).
   If the value in Group Address field is not in the list, e.g.
   239.192.4.1, authGW may determine that this value is invalid, at
   which point it would send Error Message with 0x41 set in the Message
   field to the user client (see Appendix 1 and Chapter A-4 of Appendix
   5).








































Andou, Sato, Hayashi, Tanabe, Izutsu, Goto, Nishida, Inoue     [Page 36]