home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_q_t / draft-ietf-radius-tunnel-imp-00.txt < prev    next >
Text File  |  1997-03-03  |  48KB  |  1,121 lines

  1.  
  2.  
  3.  
  4.  
  5.      RADIUS Working Group                                     Bernard Aboba
  6.      INTERNET-DRAFT                                   Microsoft Corporation
  7.      <draft-ietf-radius-tunnel-imp-00.txt>                        Glen Zorn
  8.      28 February 1997                                 Microsoft Corporation
  9.  
  10.  
  11.                 Implementation of Mandatory Tunneling via RADIUS
  12.  
  13.  
  14.      1.  Status of this Memo
  15.  
  16.      This document is an Internet-Draft.  Internet-Drafts are working docu-
  17.      ments of the Internet Engineering Task Force (IETF),  its  areas,  and
  18.      its  working groups.  Note that other groups may also distribute work-
  19.      ing documents as Internet-Drafts.
  20.  
  21.      Internet-Drafts are draft documents valid for a maximum of six  months
  22.      and  may  be updated, replaced, or obsoleted by other documents at any
  23.      time.  It is inappropriate to use Internet-Drafts as  reference  mate-
  24.      rial or to cite them other than as ``work in progress.''
  25.  
  26.      To  learn  the  current status of any Internet-Draft, please check the
  27.      ``1id-abstracts.txt'' listing contained in the Internet-Drafts  Shadow
  28.      Directories   on   ds.internic.net   (US  East  Coast),  nic.nordu.net
  29.      (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
  30.  
  31.      The  distribution  of  this memo is unlimited.  It is filed as <draft-
  32.      ietf-radius-tunnel-imp-00.txt> and  expires September 1, 1997.  Please
  33.      send comments to the authors.
  34.  
  35.  
  36.      2.  Abstract
  37.  
  38.      This  document  discusses  implementation issues arising in the provi-
  39.      sioning of mandatory tunneling in dial-up networks using the PPTP  and
  40.      L2TP  protocols.   This provisioning may be accomplished via the inte-
  41.      gration of RADIUS and tunneling protocols.
  42.  
  43.  
  44.      3.  Terminology
  45.  
  46.  
  47.      Roaming   "Roaming capability" may be loosely defined  as  the ability
  48.                to  use  any  one  of  multiple  Internet  service providers
  49.                (ISPs), while maintaining a formal,  customer-vendor   rela-
  50.                tionship  with  only one.   Examples  of  cases  where roam-
  51.                ing capability might be  required  include  ISP  "confedera-
  52.                tions" and ISP-provided corporate network access support.
  53.  
  54.      Shared Use Network
  55.                This is an IP dialup network whose use is shared by  two  or
  56.                more organizations.  Shared use networks typically implement
  57.                distributed authentication and accounting in order to facil-
  58.                itate  the  relationship  among  the  sharing parties. Since
  59.  
  60.  
  61.  
  62.      Aboba & Zorn                                                  [Page 1]
  63.  
  64.  
  65.  
  66.  
  67.  
  68.      INTERNET-DRAFT                                        28 February 1997
  69.  
  70.  
  71.                these facilities are also  required  for  implementation  of
  72.                roaming,  implementation of shared use is frequently a first
  73.                step toward development of roaming  capabilities.  In  fact,
  74.                one  of  the ways by which a provider may offer roaming ser-
  75.                vice is to conclude shared use agreements with multiple net-
  76.                works.  However,  to date the ability to accomplish this has
  77.                been hampered by lack of interoperability among  shared  use
  78.                implementations.
  79.  
  80.      Tunnel Network Server
  81.                This is a server which terminates a tunnel. In  PPTP  termi-
  82.                nology,  this  is known as the PPTP Network Server (PNS). In
  83.                L2TP terminology, this is known as the L2TP  Network  Server
  84.                (LNS).
  85.  
  86.      Network Access Server
  87.                The  Network  Access Server (NAS) is the device that clients
  88.                dial in order to get access to the network. In  PPTP  termi-
  89.                nology  this  is referred to as the PPTP Access Concentrator
  90.                (PAC). In L2TP terminology, the NAS is referred  to  as  the
  91.                L2TP Access Concentrator (LAC).
  92.  
  93.      RADIUS server
  94.                This  is  a  server which provides for authentication/autho-
  95.                rization via the protocol described in [3], and for account-
  96.                ing as described in [4].
  97.  
  98.      RADIUS proxy
  99.                In order to provide for the routing of RADIUS authentication
  100.                and accounting requests, a RADIUS proxy may employed. To the
  101.                NAS, the RADIUS proxy appears to act as a RADIUS server, and
  102.                to the RADIUS server, the proxy appears to act as  a  RADIUS
  103.                client.
  104.  
  105.      Network Access Identifier
  106.                In order to provide for the routing of RADIUS authentication
  107.                and accounting requests, the userID field used in PPP and in
  108.                the   subsequent   RADIUS   authentication   and  accounting
  109.                requests, known as the Network Access Identifier  (NAI)  may
  110.                contain  structure. This structure provides a means by which
  111.                the RADIUS proxy will locate the RADIUS server  that  is  to
  112.                receive the request. This same structure may also be used to
  113.                locate the tunnel endpoint when  domain-based  tunneling  is
  114.                used.
  115.  
  116.  
  117.      4.  Requirements language
  118.  
  119.      This specification uses the same words as [9] for defining the signif-
  120.      icance of each particular requirement.  These words are:
  121.  
  122.  
  123.      MUST      This word, or the adjectives "REQUIRED"  or  "SHALL",  means
  124.                that  the  definition  is  an  absolute  requirement  of the
  125.  
  126.  
  127.  
  128.      Aboba & Zorn                                                  [Page 2]
  129.  
  130.  
  131.  
  132.  
  133.  
  134.      INTERNET-DRAFT                                        28 February 1997
  135.  
  136.  
  137.                specification.
  138.  
  139.      MUST NOT  This phrase, or the phrase "SHALL NOT", means that the defi-
  140.                nition is an absolute prohibition of the specification.
  141.  
  142.      SHOULD    This  word, or the adjective "RECOMMENDED", means that there
  143.                may exist  valid  reasons  in  particular  circumstances  to
  144.                ignore  a particular item, but the full implications must be
  145.                understood and carefully weighed before choosing a different
  146.                course.
  147.  
  148.      SHOULD NOT
  149.                This phrase means that there may exist valid reasons in par-
  150.                ticular  circumstances  when  the  particular  behavior   is
  151.                acceptable  or even useful, but the full implications should
  152.                be understood and the case carefully weighed  before  imple-
  153.                menting any behavior described with this label.
  154.  
  155.      MAY       This  word,  or the adjective "OPTIONAL", means that an item
  156.                is truly optional.  One vendor may  choose  to  include  the
  157.                item because a particular marketplace requires it or because
  158.                the vendor feels that it enhances the product while  another
  159.                vendor may omit the same item.  An implementation which does
  160.                not include a particular option MUST be prepared to interop-
  161.                erate  with  another  implementation  which does include the
  162.                option, though perhaps with reduced  functionality.  In  the
  163.                same  vein an implementation which does include a particular
  164.                option MUST be prepared to interoperate with another  imple-
  165.                mentation  which  does  not  include  the option.(except, of
  166.                course, for the feature the option provides)
  167.  
  168.      Silently Discard
  169.                The implementation discards  the  datagram  without  further
  170.                processing,  and  without indicating an error to the sender.
  171.                The implementation SHOULD provide the capability of  logging
  172.                the error, including the contents of the discarded datagram,
  173.                and SHOULD record the event in a statistics counter.
  174.  
  175.      An implementation is not compliant if it fails to satisfy one or  more
  176.      of  the must or must not requirements for the protocols it implements.
  177.      An implementation that satisfies all the must, must  not,  should  and
  178.      should  not requirements for its protocols is said to be "uncondition-
  179.      ally compliant"; one that satisfies all the must and must not require-
  180.      ments but not all the should or should not requirements for its proto-
  181.      cols is said to be "conditionally compliant."
  182.  
  183.  
  184.      5.  Introduction
  185.  
  186.      Many  of the most  interesting  applications  of  tunneling  protocols
  187.      involve  dial-up  network  access.  Some, such  as the provisioning of
  188.      secure access to corporate intranets via the Internet, are  character-
  189.      ized  by  voluntary tunneling: the tunnel is created at the request of
  190.      the user for a specific purpose. Other applications involve compulsory
  191.  
  192.  
  193.  
  194.      Aboba & Zorn                                                  [Page 3]
  195.  
  196.  
  197.  
  198.  
  199.  
  200.      INTERNET-DRAFT                                        28 February 1997
  201.  
  202.  
  203.      tunneling:  the  tunnel  is  created automatically, without any action
  204.      from the user and more importantly,  without  allowing  the  user  any
  205.      choice in the  matter.
  206.  
  207.      Examples  of  applications  that might be implemented using compulsory
  208.      tunnels are Internet software upgrade servers,  software  registration
  209.      servers  and  banking services.  These are all services which, without
  210.      mandatory tunneling, would probably be provided using  dedicated  net-
  211.      works  or  at least dedicated network access servers (NAS), since they
  212.      are characterized by the need to limit user access to specific  hosts.
  213.  
  214.      Given   the  existence  of widespread support for mandatory tunneling,
  215.      however, these types of services could be accessed via  virtually  any
  216.      Internet  service provider (ISP).  The most popular means of authoriz-
  217.      ing dial-up network users today is through the RADIUS   protocol.  The
  218.      use  of RADIUS allows the dial-up users' authorization and authentica-
  219.      tion data to be maintained in a central location,  rather  than  being
  220.      subject to manual configuration.  It makes sense to use RADIUS to cen-
  221.      trally  administer  compulsory  tunneling,  since  RADIUS  is   widely
  222.      deployed  and  was  designed  to  carry this type of information.  New
  223.      RADIUS attributes are needed to carry the tunneling  information  from
  224.      the  RADIUS server to the NAS and to transfer accounting data from the
  225.      NAS to the RADIUS server; those attributes are defined in [7].
  226.  
  227.      This document focuses on implementation issues arising in  the  provi-
  228.      sioning  of  mandatory tunneling in dialup networks. The use of RADIUS
  229.      in provisioning of mandatory tunneling has several  advantages.  These
  230.      include:
  231.  
  232.      User-based tunneling
  233.      Auditing capabilities
  234.      Telephone-number based authentication and accounting
  235.  
  236.  
  237.      5.1.  User-based Tunneling
  238.  
  239.      Current  proposals  for routing of tunnel requests include static tun-
  240.      neling, where all users are automatically tunneled  to  a  given  end-
  241.      point,  and realm-based tunneling, where the tunnel endpoint is deter-
  242.      mined from the realm portion of the userID.  User-based  tunneling  as
  243.      provided by integration of RADIUS and tunnel protocols offers signifi-
  244.      cant advantages over both of these approaches.
  245.  
  246.      Static tunneling requires dedication of a NAS device to  the  purpose.
  247.      In the case of an ISP, this is undesirable because it requires them to
  248.      dedicate a NAS to tunneling service for a  given  corporate  customer,
  249.      rather than allowing them to use existing NASes deployed in the field.
  250.      As a result static tunneling is likely to be costly for deployment  of
  251.      a global service.
  252.  
  253.      Realm-based tunneling assumes that all users within a given realm wish
  254.      to be treated the same way. This limits a corporation's flexibility in
  255.      managing  the  account  rights  of their users. For example, BIGCO may
  256.      wish to provide Janet with an account that allows access to  both  the
  257.  
  258.  
  259.  
  260.      Aboba & Zorn                                                  [Page 4]
  261.  
  262.  
  263.  
  264.  
  265.  
  266.      INTERNET-DRAFT                                        28 February 1997
  267.  
  268.  
  269.      Internet  and the intranet, with Janet's intranet access provided by a
  270.      tunnel server located in the engineering department. However BIGCO may
  271.      wish  to provide Fred with an account that provides only access to the
  272.      intranet, with Fred's intranet access provided  by  a  tunnel  network
  273.      server  located  in  the  sales department. Such a situation cannot be
  274.      accommodated with realm-based tunneling.
  275.  
  276.      On the other hand, user-based tunneling as enabled by  the  attributes
  277.      defined  in [7] provides BIGCO with the flexibility to administer tun-
  278.      neling behavior on a per-user basis. When  deployed  in  concert  with
  279.      roaming,  user-based tunneling offers corporations the ability to pro-
  280.      vide their users with access to the corporate  Intranet  on  a  global
  281.      basis.
  282.  
  283.      As  described  in [7], provisioning of mandatory tunneling requires no
  284.      new  RADIUS  messages,  and  implementation  of   three   new   RADIUS
  285.      attributes. During authentication, the new attributes allow the RADIUS
  286.      server to indicate the tunnel protocol (PPTP, L2F,  L2TP,  etc.),  the
  287.      tunnel  medium  (X.25,  ATM,  Frame  Relay, IP) and the address of the
  288.      remote tunnel endpoint. During accounting, the  new  attributes  allow
  289.      the  NAS  to  provide the RADIUS server with these same attributes, as
  290.      well as the tunnel client address and Connection Identifier.  Together
  291.      the  Connection  Identifier  and  tunnel client and endpoint addresses
  292.      uniquely identify the call, linking together the NAS and tunnel server
  293.      accounting records for a given call.
  294.  
  295.  
  296.      5.2.  Auditing Capabilities
  297.  
  298.      The  integration of RADIUS and tunnel protocols allows the ISP and the
  299.      corporation to synchronize their accounting activities  so  that  each
  300.      side  receives  a record of the user's resource consumption. This pro-
  301.      vides the corporation with the means to audit ISP bills. This capabil-
  302.      ity  is  particularly  important  when the user is taking advantage of
  303.      roaming capabilities in order to connect  to  the  corporate  intranet
  304.      from a remote location.
  305.  
  306.      As described in [7], auditing requires implementation of number of new
  307.      RADIUS attributes. These new attributes allow  the  RADIUS  server  to
  308.      provide  information  within  the  Accounting-Request packet that will
  309.      allow matching with the corresponding tunnel server Accounting-Request
  310.      packet.  This information includes the Connection-Identifier, the tun-
  311.      nel protocol (PPTP, L2F, or  L2TP),  tunnel-media  (X.25,  ATM,  Frame
  312.      Relay,  IP)  the address of the remote tunnel endpoint, and the tunnel
  313.      client address.
  314.  
  315.  
  316.      5.2.1.  Connection-Identifier
  317.  
  318.      In L2TP the Call-Serial-Number is used as the RADIUS Connection  Iden-
  319.      tifier, and the tuple (userID, tunnel-client-endpoint address, tunnel-
  320.      server-endpoint address, Call-Serial-Number) is used to uniquely iden-
  321.      tify  the call. In order to protect against wrapping due to reboots or
  322.      call volume, it is recommended that a 64-bit NTP timestamp be used  as
  323.  
  324.  
  325.  
  326.      Aboba & Zorn                                                  [Page 5]
  327.  
  328.  
  329.  
  330.  
  331.  
  332.      INTERNET-DRAFT                                        28 February 1997
  333.  
  334.  
  335.      the Call-Serial Number.
  336.  
  337.      While the PPTP specification states that the Call-Serial-Number SHOULD
  338.      be unique, it does not mandate this. In addition, no method for deter-
  339.      mining the Call-Serial-Number is specified, which leaves open the pos-
  340.      sibility of wrapping after a reboot. Finally  since  the  Call-Serial-
  341.      Number  is a 16-bit value, the Call-Serial-Number is not sufficient to
  342.      distinguish a given call from all other calls over  an  extended  time
  343.      period.  For  example,  let  us  assume that the Call Serial Number is
  344.      assigned monotonically, and that the NAS in question has 96 ports.  If
  345.      the  NAS ports are kept continually busy and the average call is of 20
  346.      minutes duration,  then  the  Call  Serial  Number  will  wrap  within
  347.      65536/(96 * 3 calls/hour * 24 hours/day) = 9.48 days.
  348.  
  349.      In  order  to  rectify this, it is recommended that another message be
  350.      added to PPTP so that the NAS could provide the tunnel server  with  a
  351.      unique  Connection  Identifier.  It  is  recommended that a 64-bit NTP
  352.      timestamp be used for this purpose. This is not an issue in L2TP since
  353.      the Call-Serial-Number string may be of variable length.
  354.  
  355.  
  356.      5.3.  Telephone-number based authentication and accounting
  357.  
  358.      Using  the Calling-Station-ID and Called-Station-ID RADIUS attributes,
  359.      authorization and subsequent tunnel attributes can  be  based  on  the
  360.      phone  number  originating  the call, or the number being called. This
  361.      allows the RADIUS server to authorize users based on the calling phone
  362.      number  (with  or without a userID/password combination), or to select
  363.      the tunnel type, tunnel medium, or tunnel endpoint  address  based  on
  364.      the  calling  or called phone number. Similarly, the tunnel server may
  365.      choose to reject or accept the call based on  the  Dialed  Number  and
  366.      Dialing  Number  included  in the Incoming-Call-Request packet sent by
  367.      the NAS.
  368.  
  369.      The use of RADIUS accounting by  the  NAS  and/or  the  tunnel  server
  370.      allows  for  accounting  to take place based on the Calling-Station-ID
  371.      and/or Called-Station-ID.
  372.  
  373.  
  374.      6.  Alternatives for implementation of mandatory tunneling
  375.  
  376.      There are several alternatives for integration of RADIUS  and  tunnel-
  377.      ing:
  378.  
  379.           Authenticate at the NAS
  380.           Authenticate at the NAS, and forward the RADIUS reply
  381.           Authenticate at the tunnel network server
  382.           Authenticate at both the NAS and the tunnel network server
  383.  
  384.      We discuss each of these alternatives in turn.
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.      Aboba & Zorn                                                  [Page 6]
  393.  
  394.  
  395.  
  396.  
  397.  
  398.      INTERNET-DRAFT                                        28 February 1997
  399.  
  400.  
  401.      6.1.  Authenticate at the NAS
  402.  
  403.      With  this  approach, authentication and authorization (including tun-
  404.      neling information) occurs once, at the NAS. The  advantages  of  this
  405.      approach  are  that  it  disallows network access for unauthorized NAS
  406.      users; and allows RADIUS accounting to be used at the  NAS.  Disadvan-
  407.      tages  are  that  it requires that the tunnel network server trust the
  408.      NAS, since no user authentication occurs on the tunnel network  server
  409.      end  of  the  tunnel. Another disadvantage is that this does not allow
  410.      LCP parameters to be re-negotiated by the tunnel network server. Also,
  411.      due  to  the lack of user authentication, accounting cannot take place
  412.      at the tunnel network server with strong assurance  that  the  correct
  413.      party is being billed.
  414.  
  415.      6.2.  Authenticate at the NAS, and forward the RADIUS reply
  416.  
  417.      With  this  approach, authentication and authorization occurs once, at
  418.      the NAS end of the tunnel and the RADIUS reply  is  forwarded  to  the
  419.      tunnel  network  server.  This  approach  disallows network access for
  420.      unauthorized NAS users; does not require trust  between  the  NAS  and
  421.      tunnel  network  server  ends  of  the  tunnel;  and allows for RADIUS
  422.      accounting to be used at both ends of the  tunnel.  However,  it  also
  423.      requires  that both ends share the same secret with the RADIUS server,
  424.      since that's the only way that the tunnel network server  could  check
  425.      the  RADIUS  reply. Also, the tunnel network server must share secrets
  426.      with all the NASes and associated RADIUS servers. Other  disadvantages
  427.      include  lack of provision for LCP renegotiation by the tunnel network
  428.      server; and the tunnel network server must know how to handle and ver-
  429.      ify RADIUS Access-Accept messages.
  430.  
  431.      While  this  scheme may be workable if the reply comes directly from a
  432.      RADIUS server, it would become  unmanageable  if  a  RADIUS  proxy  is
  433.      involved,  since  the  reply  would  be authenticated using the secret
  434.      shared by the client and proxy, rather than the RADIUS server.
  435.  
  436.      6.3.  Authenticate at the tunnel network server
  437.  
  438.      In this scheme, authentication and authorization occurs  once  at  the
  439.      tunnel  network  server. This requires that the NAS determine that the
  440.      user needs to be tunneled (through a RADIUS request, manual configura-
  441.      tion, etc.). Since the RADIUS specification [3] requires that either a
  442.      CHAP or PAP password be present  in  an  Access-Request  message,  but
  443.      doesn't  require  that  it be non-empty, this scheme probably requires
  444.      either attribute-specific processing on the RADIUS server, or addition
  445.      of a new "Authorize-Only" RADIUS message.
  446.  
  447.      In attribute-specific processing an attribute is used to signal tunnel
  448.      initiation. For example, tunnel attributes can be sent back if the PAP
  449.      password  is  empty  (or  "tunnel"  or  "L2TP"). Alternatively, a user
  450.      could prefix his NAI with some special character ('*') if he wanted to
  451.      be tunneled. This particular solution does not support compulsory tun-
  452.      neling. Another solution involves keying on the domain portion of  the
  453.      NAI;  all  users in domain 'X' would be tunneled to address 'Y'.  This
  454.      proposal supports compulsory tunneling, but does not provide for user-
  455.  
  456.  
  457.  
  458.      Aboba & Zorn                                                  [Page 7]
  459.  
  460.  
  461.  
  462.  
  463.  
  464.      INTERNET-DRAFT                                        28 February 1997
  465.  
  466.  
  467.      based tunneling.
  468.  
  469.      An  Authorize-Only  message  would not include a CHAP or PAP password;
  470.      nevertheless, in response the RADIUS server would return the attribute
  471.      list. In order to prevent password guessing attacks, an Authorize-Only
  472.      message would need to be authenticated via the RADIUS  shared  secret.
  473.      This  could  be  accomplished via the Signature attribute described in
  474.      [10].
  475.  
  476.      Note that when either attribute-specific processing or  authorization-
  477.      only  messages are used, the tunnel network server would need to rene-
  478.      gotiate LCP. Note also that in order for the NAS to  start  accounting
  479.      on  the  connection,  it would need to use the identity claimed by the
  480.      user in authenticating to the tunnel network server, since it did  not
  481.      verify  the  identity  via RADIUS. However, in order for that to be of
  482.      any use in accounting, the tunnel endpoint needs to  have  an  account
  483.      relationship  with  the  NAS owner. Thus even if a user has an account
  484.      with the NAS owner, they cannot use this account for tunneling  unless
  485.      the  tunnel  endpoint  also  has  a business relationship with the NAS
  486.      owner. Without putting in place a public key infrastructure, it is not
  487.      clear  how  the  NAS  would  be able to verify the existence of such a
  488.      business relationship in a scalable manner. Thus this approach  nulli-
  489.      fies many of the benefits of roaming.
  490.  
  491.      6.4.  Authenticate at both the NAS and the tunnel network server
  492.  
  493.      In  this  scheme, authentication occurs both at the NAS and the tunnel
  494.      network server. This requires the dial-up  PPP  peer  to  handle  dual
  495.      authentications, with attendant LCP re-negotiations. In order to allow
  496.      the NAS and tunnel network server to  authenticate  against  the  same
  497.      database, this requires RADIUS client capability on the tunnel network
  498.      server, and possibly a RADIUS proxy on the NAS end.
  499.  
  500.      Advantages of this scheme are that it allows secure authentication and
  501.      accounting  at  both  ends  of  the tunnel; allows the use of a single
  502.      userID/password pair via implementation of RADIUS on the  tunnel  net-
  503.      work  server;  and  does  not require attribute-specific processing or
  504.      addition of an Authorize-Only  message  on  the  RADIUS  server.  This
  505.      scheme  allows  for accounting records to be generated on both the NAS
  506.      and tunnel server ends allowing for auditing. Also, in contrast to the
  507.      previous  scheme, the tunnel endpoint does not need to have an account
  508.      relationship with the NAS owner. Thus this scheme is  compatible  with
  509.      roaming.  Disadvantages  are  that  LCP must be renegotiated, and that
  510.      dual authentications are required.
  511.  
  512.      Considering all  the  advantages  and  disadvantages  of  the  various
  513.      schemes,  we  believe  that  this  scheme is the best choice, and as a
  514.      result, the rest of this document focuses on the  dual  authentication
  515.      scheme.
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.      Aboba & Zorn                                                  [Page 8]
  525.  
  526.  
  527.  
  528.  
  529.  
  530.      INTERNET-DRAFT                                        28 February 1997
  531.  
  532.  
  533.      7.  Initiation Sequence
  534.  
  535.      The provisioning of a mandatory tunnel involves an interaction between
  536.      the client, NAS, Tunnel  Server,  and  RADIUS  server.  The  following
  537.      events occur in initiation of the connection:
  538.  
  539.           Client and NAS: PPP LCP negotiation
  540.           Client and NAS: PPP authentication
  541.           NAS to RADIUS Server: RADIUS Access-request
  542.           RADIUS server to NAS: RADIUS Access-reply/Access-Reject
  543.           NAS to Tunnel Server: PPTP/L2TP Incoming-Call-Request
  544.           Tunnel Server to NAS: PPTP/L2TP Incoming-Call-Reply
  545.           NAS to Tunnel Server: PPTP/L2TP  Incoming-Call-Connected
  546.           Client and Tunnel Server: PPP LCP re-negotiation
  547.           Client and Tunnel Server: PPP re-authentication
  548.           Tunnel Server to RADIUS Server: RADIUS Access-request (optional)
  549.           RADIUS server to Tunnel Server: RADIUS Access-reply/Access-Reject
  550.           Client and Tunnel Server: IPCP negotiation
  551.           NAS to RADIUS Server: RADIUS Accounting-Request/START
  552.           RADIUS Server to NAS: RADIUS Accounting-Reply
  553.           Tunnel Server to RADIUS Server: RADIUS Accounting-Request/START (Optional)
  554.           RADIUS Server to Tunnel Server: RADIUS Accounting-Reply
  555.  
  556.      The  process  begins  with an incoming call to the NAS. The client and
  557.      NAS then begin LCP negotiation. Subsequently  the  PPP  authentication
  558.      phase starts, and the NAS sends a RADIUS Access-Request message to the
  559.      RADIUS server. If the authentication is successful, the RADIUS  server
  560.      responds  with  a RADIUS Access-Accept including the Tunnel-Type (L2F,
  561.      PPTP, L2TP), Tunnel-Medium-Type (X.25, ATM, Frame Relay, IP), and Tun-
  562.      nel-Server-Endpoint attributes.
  563.  
  564.      It  is possible that RADIUS proxies may be used to forward the Access-
  565.      Reply message from the RADIUS server to the NAS. In  order  to  ensure
  566.      that  the  mandatory  tunnel  attributes  arrive without modification,
  567.      RADIUS proxies present in the path MUST NOT modify these attributes.
  568.  
  569.      Since this is a mandatory tunnel, address assignment will  be  handled
  570.      by  the  tunnel  server  rather  than  the NAS. As a result, if tunnel
  571.      attributes are present, the NAS MUST  ignore  any  address  assignment
  572.      attributes  sent by the RADIUS server. In addition, the NAS and client
  573.      MUST NOT begin IPCP negotiation, since this could create a time window
  574.      in  which  the client will be capable of sending packets to the Inter-
  575.      net, which is not permitted under mandatory tunneling.  If the authen-
  576.      tication  is  unsuccessful,  the  RADIUS server sends a RADIUS Access-
  577.      Reject. In this case, the NAS MUST disconnect the user.
  578.  
  579.      The NAS will now bring up a control connection to the tunnel server if
  580.      none  existed  before.  This  is  accomplished  by sending a PPTP/L2TP
  581.      Start-Control-Connection-Request message to the  tunnel  server.   The
  582.      tunnel server replies with a PPTP/L2TP Start-Control-Connection-Reply.
  583.      If this message indicates an error, or if the  control  connection  is
  584.      terminated  at any future time, then the NAS MUST disconnect the user.
  585.  
  586.  
  587.  
  588.  
  589.  
  590.      Aboba & Zorn                                                  [Page 9]
  591.  
  592.  
  593.  
  594.  
  595.  
  596.      INTERNET-DRAFT                                        28 February 1997
  597.  
  598.  
  599.      The NAS will then proceed to send  a  PPTP/L2TP  Incoming-Call-Request
  600.      message  to  the  tunnel server. Among other things, this message will
  601.      contain the Call Serial Number, which along with the IP  addresses  of
  602.      the  NAS and tunnel server, is used to uniquely identify the call. The
  603.      tunnel server will reply with a PPTP/L2TP Incoming-Call-Reply message.
  604.      If  this  message indicates an error, then the NAS MUST disconnect the
  605.      user. The NAS then replies with an Incoming-Call-Connected message.
  606.  
  607.      At this point, data may begin to flow through the tunnel.  The  client
  608.      and  tunnel  server  must  now  renegotiate LCP and go through another
  609.      round of PPP authentication.  At  the  time  that  this  renegotiation
  610.      begins,  the  NAS should not have sent the final packet confirming the
  611.      success of the initial authentication, and the client and NAS MUST NOT
  612.      have  begun  IPCP negotiation. Rather than sending the final confirma-
  613.      tion packet, the NAS will instead send an LCP down message. The Client
  614.      will then attempt to renegotiate LCP, and from that point forward, all
  615.      PPP packets originated from the client will be encapsulated  and  sent
  616.      to  the  tunnel  server.  When LCP negotiation has been concluded, the
  617.      IPCP phase will begin, and the tunnel server will assign an IP address
  618.      to the client.
  619.  
  620.      If  L2TP  is  being used as the tunnel protocol, an alternative method
  621.      may be used. This requires the NAS in its initial  setup  notification
  622.      to  include  a  copy  of the LCP CONFACKs sent in each direction which
  623.      completed LCP negotiation.  The tunnel server may then use this infor-
  624.      mation  to avoid an additional LCP negotiation. With L2TP, the initial
  625.      setup notification may also  include  the  authentication  information
  626.      required  to  allow  the  tunnel  server  to authenticate the user and
  627.      decide to accept or decline the  connection.  However,  this  facility
  628.      should be used with caution since it creates a vulnerability to replay
  629.      attacks, and in addition may create problems in the case where the NAS
  630.      and tunnel server authenticate against different RADIUS servers.
  631.  
  632.      In performing the PPP authentication, the tunnel server may access its
  633.      own user database, or it may send a RADIUS Access-Request. The  latter
  634.      approach  is  useful  in  cases  where  authentication  forwarding  is
  635.      enabled, such as with roaming or shared use networks.  In  this  case,
  636.      the  RADIUS  and  tunnel servers are under the same administration and
  637.      are typically located close together, possibly on the same LAN. There-
  638.      fore having the tunnel server act as a RADIUS client provides for uni-
  639.      fied user administration. Other methods are also  available,  such  as
  640.      use  of LDAP by both the tunnel and RADIUS servers. Note that the tun-
  641.      nel server's RADIUS Access-Request is typically sent directly  to  the
  642.      local RADIUS server rather than being forwarded via proxy.
  643.  
  644.      After  the  tunnel  has been brought up, the NAS and tunnel server may
  645.      start accounting. In the case of the NAS, this is done  by  sending  a
  646.      RADIUS  Accounting-Request/START  packet  to  the  RADIUS  server. The
  647.      Accounting-Request packet MUST include the following attributes:  Tun-
  648.      nel-Type,  Tunnel-Medium-Type,  Tunnel-Client-Endpoint, Tunnel-Server-
  649.      Endpoint, and Connection-Identifier.
  650.  
  651.      The tunnel server may produce its own accounting records,  or  it  may
  652.      send  a  RADIUS  Accounting-Request/START  packet  to  a  local RADIUS
  653.  
  654.  
  655.  
  656.      Aboba & Zorn                                                 [Page 10]
  657.  
  658.  
  659.  
  660.  
  661.  
  662.      INTERNET-DRAFT                                        28 February 1997
  663.  
  664.  
  665.      server. In the latter case, the RADIUS Accounting-Request/START packet
  666.      MUST  contain  the  following  attributes: Tunnel-Type, Tunnel-Medium-
  667.      Type, Tunnel-Client-Endpoint, Tunnel-Server-Endpoint, and  Connection-
  668.      Identifier.
  669.  
  670.      The interactions involved in initiation of a mandatory tunnel are sum-
  671.      marized below. In order to simplify the diagram that follows, we  have
  672.      left  out the client. However, it should be understood that the client
  673.      participates via PPP negotiation, authentication and  subsequent  data
  674.      interchange with the Tunnel Server.
  675.  
  676.  
  677.                                     INITIATION SEQUENCE
  678.  
  679.      NAS                            Tunnel Server       RADIUS Server
  680.      ---                            -------------       -------------
  681.      Call accepted
  682.      LCP starts
  683.      PPP authentication
  684.       phase starts
  685.      Send RADIUS
  686.       Access-Request
  687.       with username and
  688.       authentication data
  689.                                                         IF authentication
  690.                                                         succeeds
  691.                                                          Send ACK with
  692.                                                          Tunnel-Type,
  693.                                                          Tunnel-Medium-Type,
  694.                                                          Tunnel-Server-Endpoint
  695.                                                         ELSE Send NAK
  696.      IF NAK DISCONNECT
  697.      ELSE
  698.       IF no control
  699.        connection exists
  700.        Send
  701.        Start-Control-Connection-Request
  702.        to Tunnel Server
  703.                                   Send
  704.                                   Start-Control-Connection-Reply
  705.                                   to NAS
  706.       ENDIF
  707.  
  708.      Send
  709.      Incoming-Call-Request
  710.      message to Tunnel Server
  711.                                   Send Incoming-Call-Reply
  712.                                   to NAS
  713.      Send
  714.      Incoming-Call-Connected
  715.      message to Tunnel Server
  716.  
  717.      Send data through the tunnel
  718.                                   Re-negotiate LCP,
  719.  
  720.  
  721.  
  722.      Aboba & Zorn                                                 [Page 11]
  723.  
  724.  
  725.  
  726.  
  727.  
  728.      INTERNET-DRAFT                                        28 February 1997
  729.  
  730.  
  731.                                   authenticate user,
  732.                                   bring up IPCP,
  733.                                   start accounting
  734.                                   Send RADIUS
  735.                                   Accounting-Request
  736.                                   (optional)
  737.                                                        Send
  738.                                                        RADIUS
  739.                                                        Accounting-Reply
  740.      Send a RADIUS
  741.      Accounting-Request message
  742.      with Acct-Status-Type
  743.      set to Start, containing
  744.      Tunnel-Type, Tunnel-Medium-Type,
  745.      Tunnel-Client-Endpoint,
  746.      Tunnel-Server-Endpoint, and
  747.      Connection-Identifier.
  748.                                                        Send
  749.                                                        RADIUS
  750.                                                        Accounting-Reply
  751.  
  752.      ENDIF
  753.  
  754.  
  755.      8.  Termination Sequence
  756.  
  757.      As  with  initiation,  the tear down of a mandatory tunnel involves an
  758.      interaction between the client, NAS, Tunnel Server, and RADIUS server.
  759.      The following events occur in termination of the connection:
  760.  
  761.           Tunnel Server to NAS: PPTP/L2TP Call-Clear-Request (optional)
  762.           NAS to Tunnel Server: PPTP/L2TP Call-Disconnect-Notify
  763.           NAS to RADIUS Server: RADIUS Accounting-Request/STOP
  764.           RADIUS Server to NAS: RADIUS Accounting-Reply
  765.           Tunnel Server to RADIUS Server: RADIUS Accounting-Request/STOP (Optional)
  766.           RADIUS Server to Tunnel Server: RADIUS Accounting-Reply
  767.  
  768.      Tunnel  termination  may  occur  due to a client request (PPP termina-
  769.      tion), a tunnel server request (Call-Clear-Request), or a telco  issue
  770.      (call disconnect).
  771.  
  772.      In  the case of a client-requested termination, the tunnel server will
  773.      terminate the PPP session. The tunnel server will subsequently send  a
  774.      Call-Clear-Request  to  the NAS. The NAS will then send a Call-Discon-
  775.      nect-Notify message to the tunnel  server,  and  will  disconnect  the
  776.      call.
  777.  
  778.      The  NAS  will  also respond with a Call-Disconnect-Notify message and
  779.      disconnection if it receives  a  Call-Clear-Request  from  the  tunnel
  780.      server without a client-requested termination.
  781.  
  782.      In the case of a telco issue or user hangup, the NAS will send a Call-
  783.      Disconnect-Notify to the tunnel server. Both sides will then tear down
  784.      the call.
  785.  
  786.  
  787.  
  788.      Aboba & Zorn                                                 [Page 12]
  789.  
  790.  
  791.  
  792.  
  793.  
  794.      INTERNET-DRAFT                                        28 February 1997
  795.  
  796.  
  797.      After  call  tear down is complete, the NAS and tunnel server may stop
  798.      accounting.  In the case of the NAS, this is done by sending a  RADIUS
  799.      Accounting-Request/STOP  packet  to the RADIUS server. The Accounting-
  800.      Request packet MUST include  the  following  attributes:  Tunnel-Type,
  801.      Tunnel-Medium-Type,   Tunnel-Client-Endpoint,  Tunnel-Server-Endpoint,
  802.      and Connection-Identifier.
  803.  
  804.      The tunnel server may produce its own accounting records,  or  it  may
  805.      send a RADIUS Accounting-Request/STOP packet to a local RADIUS server.
  806.      In the latter case, the  RADIUS  Accounting-Request/STOP  packet  MUST
  807.      contain  the  following  attributes:  Tunnel-Type, Tunnel-Medium-Type,
  808.      Tunnel-Client-Endpoint, Tunnel-Server-Endpoint, and Connection-Identi-
  809.      fier.
  810.  
  811.      The  interactions  involved  in  termination of a mandatory tunnel are
  812.      summarized below. In order to simplify the diagram  that  follows,  we
  813.      have  left  out  the client. However, it should be understood that the
  814.      client participates via PPP termination and disconnection.
  815.  
  816.                                     TERMINATION SEQUENCE
  817.  
  818.      NAS                            Tunnel Server         RADIUS Server
  819.      ---                            -------------         -------------
  820.      IF user disconnected
  821.       send
  822.       Call-Disconnect-Notify
  823.       message to tunnel server
  824.                                     Tear down the call
  825.                                     stop accounting
  826.                                     Send RADIUS
  827.                                     Accounting-Request/STOP
  828.                                     message (optional)
  829.                                                          Send RADIUS
  830.                                                          Accounting-Reply
  831.      ELSE IF client requests
  832.       termination
  833.                                     send
  834.                                     Call-Clear-Request
  835.                                     to the NAS
  836.       Send
  837.       Call-Disconnect-Notify
  838.       message to tunnel server
  839.       Disconnect the user
  840.                                     Tear down the call
  841.                                     stop accounting
  842.                                     Send RADIUS
  843.                                     Accounting-Request/STOP
  844.                                     message (optional)
  845.                                                          Send RADIUS
  846.                                                          Accounting-Reply
  847.  
  848.       Send a RADIUS
  849.       Accounting-Request message
  850.       with Acct-Status-Type
  851.  
  852.  
  853.  
  854.      Aboba & Zorn                                                 [Page 13]
  855.  
  856.  
  857.  
  858.  
  859.  
  860.      INTERNET-DRAFT                                        28 February 1997
  861.  
  862.  
  863.       set to Stop, containing
  864.       Tunnel-Type, Tunnel-Medium-Type,
  865.       Tunnel-Client-Endpoint,
  866.       Tunnel-Server-Endpoint, and
  867.       Connection-Identifier.
  868.                                                          Send RADIUS
  869.                                                          Accounting-Reply
  870.  
  871.      ENDIF
  872.  
  873.  
  874.      9.  Use of distinct RADIUS servers
  875.  
  876.      In the case that the NAS and the  tunnel  server  are  using  distinct
  877.      RADIUS  servers,  some interesting cases can arise in the provisioning
  878.      of mandatory tunnels.
  879.  
  880.  
  881.      9.1.  Distinct userIDs
  882.  
  883.      If distinct RADIUS servers are being used, it is likely that two  dis-
  884.      tinct  userID/password  pairs  will be required to complete the RADIUS
  885.      and tunnel authentications. One pair will be used in the  initial  PPP
  886.      authentication,  and  the  second  pair  will  be  used for the tunnel
  887.      authentication.
  888.  
  889.      However, in order to provide maximum ease of use in the case where the
  890.      userID/password  pairs are identical, tunnel clients typically attempt
  891.      authentication with the same userID/password pair as was used  in  the
  892.      initial PPP negotiation. Only after this fails do they prompt the user
  893.      for the second pair.
  894.  
  895.      In this case, tunnel client implementations should take  care  not  to
  896.      put  up  error  messages  indicating  a bad password. Instead a dialog
  897.      should be presented requesting the tunnel userID/password combination.
  898.  
  899.      In the case where token cards are being used for both authentications,
  900.      the tunnel client MUST NOT attempt to present the token  used  in  the
  901.      first  authentication  during  the  second authentication, since these
  902.      will never be identical. Instead the user should be prompted to  enter
  903.      the second token.
  904.  
  905.      The same issue arises in L2TP if the NAS attempts to forward authenti-
  906.      cation information to the tunnel server in the initial setup notifica-
  907.      tion. Since the userID/password pair used for tunnel authentication is
  908.      different from that used to authenticate against the  NAS,  forwarding
  909.      authentication  information  in  this  manner  will  cause  the tunnel
  910.      authentication to fail. As a result, where  user-based  tunneling  via
  911.      RADIUS  is  implemented,  L2TP authentication forwarding should not be
  912.      employed.
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.      Aboba & Zorn                                                 [Page 14]
  921.  
  922.  
  923.  
  924.  
  925.  
  926.      INTERNET-DRAFT                                        28 February 1997
  927.  
  928.  
  929.      9.2.  Multilink PPP issues
  930.  
  931.      It is possible for the two RADIUS servers to return distinct MAX CHAN-
  932.      NEL  attributes.  For  example,  it is conceivable that the NAS RADIUS
  933.      server will only grant use of a single channel to the user, while  the
  934.      tunnel  RADIUS  server will grant more than one channel. In this case,
  935.      the correct behavior is for the tunnel client to open a connection  to
  936.      another  NAS  in  order  to  bring up a multilink bundle on the tunnel
  937.      server. The client MUST NOT indicate to the NAS that  this  additional
  938.      link is being brought up as part of a multilink bundle; this will only
  939.      be indicated in the subsequent negotiation with the tunnel server.
  940.  
  941.      It is also conceivable that the  NAS  RADIUS  server  will  allow  the
  942.      client  to  bring  up dual channels, but that the tunnel RADIUS server
  943.      will only allow a single channel. In this case, the client should ter-
  944.      minate use of the second channel.
  945.  
  946.  
  947.      10.  UserID Issues
  948.  
  949.      In  the  provisioning  of  roaming and shared use networks, one of the
  950.      requirements is to be able to route the authentication request to  the
  951.      user's home RADIUS server. This authentication routing is accomplished
  952.      based on the userID submitted by the user to the NAS  in  the  initial
  953.      PPP authentication.
  954.  
  955.      Similarly, references [5] and [6] refer to use of the userID in deter-
  956.      mining the tunnel endpoint. However, since none  of  these  references
  957.      provide  guidelines  for  how RADIUS or tunnel routing is to be accom-
  958.      plished, the possibility of conflicting interpretations exists.
  959.  
  960.  
  961.      10.1.  UserID convergence in user-based tunneling
  962.  
  963.      The use of RADIUS in provisioning of mandatory tunneling relieves  the
  964.      userID  from having to do double duty. Rather than being used both for
  965.      routing of the RADIUS authentication/authorization request as well for
  966.      determination  of  the  tunnel endpoint, the userID is now used solely
  967.      for  routing  of  RADIUS  authentication/authorization  requests.  The
  968.      response  to that request is in turn used to determine the tunnel end-
  969.      point.
  970.  
  971.      Since the framework described in this document allows  both  ISPs  and
  972.      tunnel  users  to  authenticate users as well as account for resources
  973.      consumed by  them,  and  provides  for  maintenance  of  two  distinct
  974.      userID/password pairs, it is believed that this scheme offers the max-
  975.      imum degree of flexibility.  Where RADIUS proxies  and  tunneling  are
  976.      employed, it is possible to allow the user to authenticate with a sin-
  977.      gle userID/password pair at both the NAS and the tunnel endpoint. This
  978.      is  accomplished  by routing the NAS RADIUS Access-Request to the same
  979.      RADIUS server used by the tunnel server.
  980.  
  981.      As described  in  [8],  the  recommended  form  for  the  user  ID  is
  982.      userID@domain, i.e. fred@bigco.com.
  983.  
  984.  
  985.  
  986.      Aboba & Zorn                                                 [Page 15]
  987.  
  988.  
  989.  
  990.  
  991.  
  992.      INTERNET-DRAFT                                        28 February 1997
  993.  
  994.  
  995.      11.  Acknowledgements
  996.  
  997.      Thanks  to Gurdeep Singh Pall of Microsoft for many useful discussions
  998.      of this problem space.
  999.  
  1000.  
  1001.      12.  References
  1002.  
  1003.      [1]  B. Aboba, J. Lu, J. Alsop, J. Ding.  "Review of Roaming Implemen-
  1004.      tations."  draft-ietf-roamops-imprev-01.txt, Microsoft, Aimnet, i-Pass
  1005.      Alliance, Asiainfo, January, 1997.
  1006.  
  1007.      [2]  B. Aboba, G. Zorn.  "Dialup  Roaming  Requirements."  draft-ietf-
  1008.      roamops-roamreq-02.txt, Microsoft, January, 1997.
  1009.  
  1010.      [3]   C. Rigney, A. Rubens, W. Simpson, S. Willens.  "Remote Authenti-
  1011.      cation Dial In User Service (RADIUS)." RFC  2058,  Livingston,  Merit,
  1012.      Daydreamer, January, 1997.
  1013.  
  1014.      [4]   C.  Rigney.  "RADIUS Accounting." RFC 2059, Livingston, January,
  1015.      1997.
  1016.  
  1017.      [5] K. Hamzeh, T. Kolar, M. Littlewood, G. S. Pall, J. Taarud,  A.  J.
  1018.      Valencia, W. Verthein.  "Layer Two Tunneling Protocol -- L2TP." draft-
  1019.      ietf-pppext-l2tp-01.txt, Ascend Communications, December, 1996.
  1020.  
  1021.      [6] K. Hamzeh, G. S. Pall, J. Taarud, W. Verthein, J.  Taarud,  W.  A.
  1022.      Little.   "Point-to-Point  Tunneling  Protocol  --  PPTP." draft-ietf-
  1023.      pppext-pptp-00.txt, Ascend Communications, June, 1996.
  1024.  
  1025.      [7] G. Zorn.  "RADIUS Attributes for Tunnel Protocol Support."  draft-
  1026.      ietf-radius-tunnel-auth-00.txt, Microsoft Corporation, November, 1996.
  1027.  
  1028.      [8] B. Aboba.  "The Network  Access  Identifier."  draft-ietf-roamops-
  1029.      nai-01.txt, Microsoft Corporation, February, 1997.
  1030.  
  1031.      [9]  S.  Bradner.   "Key words for use in RFCs to Indicate Requirement
  1032.      Levels." draft-bradner-key-words-02.txt, Harvard  University,  August,
  1033.      1996.
  1034.  
  1035.      [10]  C.  Rigney, W. Willats.  "RADIUS Extensions." draft-ietf-radius-
  1036.      ext-00.txt, Livingston, January, 1997.
  1037.  
  1038.  
  1039.  
  1040.      13.  Authors' Addresses
  1041.  
  1042.      Bernard Aboba
  1043.      Microsoft Corporation
  1044.      One Microsoft Way
  1045.      Redmond, WA 98052
  1046.  
  1047.      Phone: 206-936-6605
  1048.      EMail: bernarda@microsoft.com
  1049.  
  1050.  
  1051.  
  1052.      Aboba & Zorn                                                 [Page 16]
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.      INTERNET-DRAFT                                        28 February 1997
  1059.  
  1060.  
  1061.      Glen Zorn
  1062.      Microsoft Corporation
  1063.      One Microsoft Way
  1064.      Redmond, WA 98052
  1065.  
  1066.      Phone: 206-703-1559
  1067.      EMail: glennz@microsoft.com
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.      Aboba & Zorn                                                 [Page 17]
  1119.  
  1120.  
  1121.