home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ietf / sipp / sipp-minutes-94jul.txt < prev    next >
Text File  |  1994-11-02  |  38KB  |  900 lines

  1.  
  2. CURRENT_MEETING_REPORT_
  3.  
  4. Reported by Ross Callon/Wellfleet and Bob Hinden/Sun Microsystems
  5.  
  6. Minutes of the Simple Internet Protocol Plus Working Group (SIPP)
  7.  
  8. The SIPP Working Group held two working group sessions and one
  9. implementors meeting.  The first session was on Wednesday and the second
  10. session was on Thursday.  The implementors meeting was held on Friday.
  11.  
  12. The minutes for the working group sessions were taken by Ross Callon.
  13. The implementors meeting notes were taken by Bob Hinden.
  14.  
  15.  
  16. Wednesday
  17.  
  18. Bob Hinden started by going over the agenda, and introducing the
  19. recommendation of the IPng area directors from Monday morning.
  20.  
  21. Agenda
  22.  
  23.    o Review agenda
  24.    o Discuss IPng recommendation and future direction
  25.    o SIPP specification (Steve Deering)
  26.    o Addressing Architecture (Bob Hinden)
  27.    o Simple transition moved to transition working group.
  28.    o Christian's miscellaneous topics
  29.    o Address Allocation Architecture (Yakov Rekhter)
  30.    o Source Routing (Tony Li -- joint with SDRP working group)
  31.    o Real Time (Chuck Davin)
  32.    o To Do list (assign people to jobs)
  33.  
  34.  
  35. IPng AD Recommendations
  36.  
  37.    o SIPP header format (with extension headers)
  38.    o 16 byte fixed length addresses
  39.    o SIPP security work
  40.    o Simplified transition (SST)
  41.  
  42.  
  43. Open Areas
  44.  
  45.    o source routing
  46.    o max payload size and minimum MTU
  47.    o auto-configuration and re-addressing
  48.    o authentication and encryption options
  49.    o pseudo-header checksum rules
  50.    o address assignment plan
  51.    o tunneling
  52.    o mobility
  53.    o header compression
  54.  
  55.  
  56. The working group agreed that SIPP should disband after this IETF, and
  57. we should put our effort into the new (and noticeably similar in many
  58. regards) IPng effort.
  59.  
  60. The basic IPng header becomes 40 bytes, with 32 byes of this being
  61. source and destination addresses.  Nothing else has changed except that
  62. ``payload type'' has been renamed to be ``next header.''
  63.  
  64. Minor header tweaks have been made to the Fragmentation Header and to
  65. the Routing Header.
  66.  
  67. A new end to end options header has been defined.  This is a ``bag'' of
  68. options, and allows conveyance of ``ignorable'' options on end to end
  69. basis (strictly host to host).  This header is for options which, if not
  70. understood, should be ignored by the destination host.
  71.  
  72. Note that current SIPP (and future IPng) header format does not preclude
  73. using EIDs, although they are not explicitly specified.
  74.  
  75. Dave Clark is to provide text here regarding EIDs and flow ID, which may
  76. be set by the host as well as by routers and can be used to speed
  77. processing.
  78.  
  79. Addresses once again identify interfaces and not nodes.  This is related
  80. to multicast (specifically, an obscure problem which was found in the
  81. ISIS Working Group in Seattle).  There is a request to add the
  82. justification/description of the problem to the IPng draft.
  83.  
  84. Due to the simplification of the transition plan, the C-bit is gone
  85. (replaced with prefixes).  This effects the detailed text of
  86. checksumming rules.  There is also a slight change to UDP checksumming
  87. rules.
  88.  
  89. An appendix has been added on how to design options.
  90.  
  91. Issues:
  92.  
  93.  
  94.    o Jumbograms:  How large should the upper bound be?  How should this
  95.      be encoded (perhaps with a not-quite-straight-linear encoding, such
  96.      as if first bit is 1, implying a greater than 32K packet, then the
  97.      length is in 8-byte multiples rather than one byte multiples).
  98.  
  99.    o Minimum MTU: What are the tradeoffs here?
  100.  
  101.    o Fancier source routing.  Source routing reversibility versus
  102.      authenticate-ability.
  103.  
  104.    o Authentication header format and semantics:  This is in flux.  The
  105.      IPv4 security group is paying attention to the IPng requirements
  106.      which may result in some (probably small) changes to this field.
  107.  
  108.    o Changes to pseudo-header checksumming rules (e.g., due to SST
  109.      and/or due to authentication header).  When we are authenticated
  110.      strongly, then why should we make use of a pseudo-header checksum
  111.      at all?  (the protection against changes to the packet provided by
  112.      a good signature algorithm is much stronger than the protection
  113.      provided by the IP/TCP checksum).
  114.  
  115.    o One more change, the name ``SIPP'' is being changed to ``IPng.''
  116.      Or, perhaps we could call it IPv6 (pronounced IP Six).  The group
  117.      voted overwhelmingly for IP6.
  118.  
  119.  
  120. The working group then entertained questions and open discussion of
  121. issues:
  122.  
  123.  
  124.    o What routing are we planning on having?  Same as IPv4 (except not
  125.      BGP, this will be replaced by IDRP).
  126.  
  127.    o Revisit minimum MTU issue:  The main reason for this is to allow
  128.      bigger UDP packets (e.g., for SNMP and other applications running
  129.      over UDP over IPng).  Given that MTU discovery is required by IPng,
  130.      this implies that the IPng conversation between two hosts will use
  131.      larger packets if and only if the subnets can carry it (?Does this
  132.      help UDP applications much?).  IPng over localtalk is a reason for
  133.      smaller MTUs.  Also there are some systems in orbit which are
  134.      working with 576 byte MTUs (service calls are extremely expensive
  135.      on satellites -- something about space shuttles and rocket fuel
  136.      prices here).
  137.  
  138.    o JumboGrams:  Larger MTUs are useful in special very high
  139.      performance local networks.  Ultranet optimizes at approximately
  140.      200Kbyte packets.  Once you hit a router, this tradeoff changes to
  141.      prefer smaller packets (at least much smaller than 200Kbytes).  As
  142.      links get faster and more reliable, the optimal size for packets
  143.      increases.  Datacommunications are changing.  Various forms of
  144.      video and supercomputers result in very large files being sent.  We
  145.      need larger MTUs for larger files.
  146.  
  147.  
  148. If you increase the field size then you have made a syntactical change
  149. to the packet, but this doesn't ensure that you will be able to send
  150. those large packets over the links.  Routers have to control the
  151. latency, which implies that MTU size will have to take into account the
  152. speed of the link and the desired maximum delay (per hop).  This means
  153. that in some cases supercomputers may discover a small MTU size due to
  154. latency or other considerations for other traffic through intermediate
  155. hops.
  156.  
  157. The maximum MTU size is tied into the design of the hosts.
  158. Supercomputers are currently designed such that a very large MTU is
  159. optimal.
  160.  
  161. The problem with MTU is latency, not processing.  So, lets look at the
  162. rate of increase of the speed of the pipes.  Eventually we will
  163. therefore need large packets.
  164.  
  165. One suggestion is that a length of zero is an escape to a hop-by-hop
  166. option, which contains a larger (32-byte) real length field.  This was
  167. accepted.
  168.  
  169.  
  170.    o APIs should be a priority.
  171.  
  172.    o We need to get a big picture of the work ahead of us, so that we
  173.      can get our hands around it.  Vendors have to come up with their
  174.      own prototype and product strategy.
  175.      Note:  At this point the IPng area directors demonstrated the need
  176.      for portable computing devices to have good user interfaces.
  177.  
  178.    o Choice of Protocol type / Ethertype issue.  From the NHRP (ROLC)
  179.      working group, there is a need to identify protocol / address
  180.      family in a number of protocols (for example, to identify address
  181.      type in IDRP). Also, a different Ethertype / DataLink type would
  182.      create a clearer dual stack.  The problem is that this would have
  183.      an effect on all media.  Changing all of the link layer types would
  184.      be a lot of work (with relatively little to show for it).  This has
  185.      a widespread effect on implementations.
  186.      Another issue related to link layer protocol types involves the
  187.      possibility of IP code breaking when it sees a packet which the
  188.      link claims is an IP packet but which the IP code doesn't
  189.      recognize.  This could result in a large number of apparent
  190.      checksum errors (but shouldn't happen unless there is some sort of
  191.      configuration error).  We should to go out and check whether
  192.      routers are checking the IP version (what are existing routers
  193.      going to do when they get an IPng packet?).
  194.  
  195.    o For SST prefix(es), why not use a prefix which sums to zero under
  196.      the IPv4 checksum?  Thus, instead of using 0:0:0:0:0:0 and
  197.      0:0:0:0:0:1 for prefixes in SST, why not use 0:0:0:0:0:0 and
  198.      0:0:0:0:0:FFFF?
  199.  
  200.  
  201. Source Route Discussion, joint with SDRP (Peter Ford):  At this point
  202. the SDRP working group joined us for a discussion of source routing.
  203.  
  204. Hop by hop forwarding is not sufficient as the **ONLY** forwarding
  205. method for IPng (reasons for alternative include mobility, virtual
  206. private nets on top of provider infrastructure, provider selection, TOS,
  207. Multicast, transit policies, etc).  We need to go beyond the current hop
  208. by hop forwarding paradigm.  Source routing is part of what is needed
  209. for use in some cases.
  210.  
  211. Need to be able to specify a routing domain in a source route (or an
  212. aggregation of some sort, not just a single real router).  Need to be
  213. able to deal with route failures (what if specified next hop cannot be
  214. satisfied?).
  215.  
  216. Strict versus loose indication has to be on a per-hop basis.
  217.  
  218. The source route option is variable length up to 32 intermediate hops,
  219. with a pointer to indicate the current hop, a bit mask to indicate
  220. strict versus loose for each hop, plus a length field, etc.  The source
  221. route address list contains all addresses (including the final
  222. destination, but not the source), so you don't do a swap, you just do a
  223. write.  This also helps if the source route header needs to be
  224. authenticated (since only the pointer field changes -- and you could
  225. simply not authenticate this one field).
  226.  
  227. There is a concern about the length of addresses in the source routing
  228. field (the total amount of information which needs to be carried in the
  229. field causes the limit of 32 hops).  Concern about amount of ``heavy
  230. duty header munging'' which needs to do this in high speed routers.
  231.  
  232. There needs to be an option to allow a source routed route setup, with
  233. subsequent packets forwarded based on flow ID, with most packets not
  234. carrying the source route.
  235.  
  236. There is a question regarding whether the source route can be added by
  237. routers (as an alternative to adding it by the source host).  Clearly
  238. this is possible if the router encapsulates in a new IPng header, and
  239. uses a source routing header in the encapsulating IPng packet header.
  240. There is some interest in doing this without adding an additional IPng
  241. header in order to save bits, particularly if multiple routers at
  242. different levels of the hierarchy have to add source routes (at
  243. different levels).
  244.  
  245. The co-chairs of the SDRP working group are willing to accept the
  246. ownership of the source routing header.  This implies that source
  247. routing will be in a separate document.  However, this is so important
  248. that it is important that using a different document does NOT imply a
  249. lowering of the importance of the header.
  250.  
  251.  
  252. Thursday
  253.  
  254. The IPng Mailing List has been set up as:  ipng@sunroof.eng.sun.com To
  255. join, send an e-mail message to:  majordomo@sunroof.eng.sun.com with
  256. ``subscribe ipng'' in the text of the message
  257.  
  258. We discussed the addressing architecture Internet-Draft:
  259.  
  260.    o Changes from last version:
  261.       -  remove c-bit
  262.       -  extended addresses removed
  263.       -  source route reversal rules moved to main SIPP specification
  264.       -  address types defined
  265.       -  removed text for binding addresses to specific interfaces
  266.  
  267.    o Basic format for writing addresses in text:
  268.       -  twobytesinhex:twobytesinhex:etc:etc:etc:etc:etc:etc
  269.       -  can compress leading zeros
  270.       -  can compress middle zeroes (only one set thereof)
  271.       -  IPv4 format replaces the last 32 bits (two * two bytes) with
  272.          IPv4 dotted decimal notation
  273.  
  274.    o Currently assigned address types:
  275.  
  276.       00        reserved
  277.       01        provider based unicast
  278.       10        geographic
  279.       110       reserved
  280.       1110 00   NSAPs
  281.       1110 01   reserved
  282.       1110 10   reserved
  283.       1110 11   IPX allocation
  284.       1111 00   reserved
  285.       1111 10   reserved
  286.       1111 110  reserved
  287.       1111 1110 local use
  288.       1111 1111 multicast
  289.  
  290.  
  291. It has been suggested to move some of the allocated values together, in
  292. order to allow the reserved blocks to be contiguous in more cases.  For
  293. example, the NSAP allocation and the IPX allocation might be moved to be
  294. contiguous.
  295.  
  296. Cluster addresses are a specific form of one of the other types of
  297. addresses.  For example, some cluster addresses might correspond to
  298. provider based unicast.  Currently, there is no allocation for anycast.
  299. However, if (when) someone figures out how to do anycast, there is
  300. plenty of space left to allow this to be added.
  301.  
  302. Brian Carpenter has a proposal regarding how to map NSAPs into this
  303. space.  This is still evolving.  There is still some uncertainty
  304. regarding how this will actually be used.  Until we know what the use
  305. is, it is hard to determine precisely whether the mapping is complete.
  306. One important use which has been identified is to allow existing address
  307. allocation plans to be used for IPng.
  308.  
  309. A complete mapping is not possible into less than 20 bytes.  The
  310. important thing is the logical mapping (to make sure that the necessary
  311. information is mapped), not the exact syntax.
  312.  
  313. Space is reserved for IPX, but the details have not been worked out yet.
  314.  
  315. It would be highly desirable to have a convergence of multiple network
  316. layer protocols to IPng.  For example, to run OSI applications over
  317. IPng.  This might be done via some update to RFC 1006, or in a more
  318. straightforward and efficient way by running OSI application over TP4
  319. over IPng.  Some work should be done on this (but this is outside of the
  320. scope of an IPng addressing discussion).
  321.  
  322. The working group discussed the reverse mapping from address to names
  323. via DNS. Does this have to be based on 16-bit boundaries, 8-bit
  324. boundaries, nibble boundaries, or otherwise?  While the written text
  325. format has the ``:''  delimiters on 16-bit boundaries, the hexadecimal
  326. digits are obviously specified on nibble boundaries.  Christian Huitema
  327. has the action item to write up a proposed resolution to this issue.
  328.  
  329. Bob Hinden gave two examples of how addresses might be assigned (on LANs
  330. and on point to point links).  It is important to remember that these
  331. are only EXAMPLES, and other formats ARE ALLOWED.
  332.  
  333. Bob illustrated how unicast provider-based addresses may be
  334. autoconfigured.  This uses a 48-bit ``magic cookie'' which is assigned
  335. to the host (while it is possible that this may be bit-for-bit identical
  336. with MAC addresses for administrative ease, it is essential that this
  337. must not be required to be a MAC nor a subnet address).  The 48-bit
  338. magic cookie is appended to a ``m'' bit long subnet ID plus an ``n'' bit
  339. long subscriber prefix (such that 48+m+n comes out to 8*16 bits).  The
  340. subnet ID may itself be sub-structured, as may the subscriber ID.
  341.  
  342. For PPP links with only two ends, the subscriber prefix plus subnet ID
  343. may be longer, possibly leaving only 2 bits for the node ID on a point
  344. to point link (2 bits rather than one so that a value can be assigned to
  345. the wire itself).
  346.  
  347. Other types of links, such as multi-drop links, may have different
  348. lengths for the node ID field.
  349.  
  350. Steve provided another example.  THIS IS AN EXAMPLE, DO NOT ASSUME THAT
  351. THIS IS THE ONLY WAY TO DO THINGS. In assigning fields, it is useful to
  352. leave unassigned bits in the right places to allow future growth.  It is
  353. pointed out that drawing pictures tends to make people jump to
  354. unwarranted interpretations of the picture.
  355.  
  356. Autoconfiguration / autoaddressing for low end (possibly stub) routers
  357. was pointed out as an important thing.  Proposals on how to do this are
  358. welcome.
  359.  
  360. Private ``subscriber'' networks with on the order of 1,000,000 nodes
  361. must be allowed (a gentleman from a high-tech-oriented large fortune 100
  362. company pointed this out, quite correctly).
  363.  
  364. The discussion today is of a provider based scheme.  This implies that
  365. when you change your provider, you also change your addresses.  However,
  366. it is important that this does not require a change to the local address
  367. allocation scheme used for assigning the ``middle'' and low order part
  368. of the address within a site.  Also, end systems will autoconfigure the
  369. change to the (high order part of) address.  Autoconfiguration of stub
  370. routers and/or small subnets is also important.  however, some part of
  371. the worldwide Internet will need to be configured (we can't
  372. autoconfigure everything).
  373.  
  374. Christian Huitema proposed that, rather than fitting IPv4 into IPng
  375. addresses at the low order 32 bits, why not do it in the middle of the
  376. address?  This allows IPv4 address to be a seed for the IPng addressing
  377. scheme.  One possible reason for NOT doing this is that this could lead
  378. to un-careful address allocation.  Current IPv4 addresses are known to
  379. be poorly allocated.  There seemed to be a general agreement that this
  380. was sufficient reason to *not* encourage IPng address assignments to be
  381. based on existing IPv4 address assignments.
  382.  
  383. The proposal is that the minimum allocation to any subscriber is 64
  384. bits.  However, very large subscribers (example of Boeing was mentioned)
  385. may get larger allocations (ie, a shorter prefix means ``this is
  386. Boeing,'' Boeing then gets more than 64 bits to play with).  There needs
  387. to be some standard for how long a prefix large subscribers get, so that
  388. if they change providers (or have multiple providers at once) they get
  389. the same length prefix from each.  GM was pointed out as another clear
  390. example of a big network what might want more than a 64 bit assignment.
  391. It was suggested that the big guys are very much like providers (perhaps
  392. the real issue comes in middle sized guys, and distinguishing these from
  393. the big guys).
  394.  
  395. One comment suggested that it is desirable to *not* change addresses
  396. when you change providers.  Somehow it was suggested that variable
  397. length addresses may help here, although it was not clear how.
  398.  
  399. Local use addresses are provided for in this address hierarchy (prefix
  400. of 11111110).  It is recommended that sites using local addresses start
  401. assigning the address bits from the right, with fill of zeroes from the
  402. left.  This allows them to change the high order part of the address
  403. when they later hook up to the Internet.  On the other hand, there may
  404. be some systems where we know for sure that they will stay local
  405. (example of an aircraft carrier was given by someone who actually does
  406. have a lot of aircraft carriers -- not purchased with personal funds).
  407. These could use any address from the local space -- there is no
  408. particular reason to assign from the right in the case that we know that
  409. the system will always be only local.
  410.  
  411. This group is not commenting on the desirability of local addresses.
  412. Rather we are providing the possibility of local addresses for those
  413. folks who think that they will be useful.
  414.  
  415. A low order suffix of all zeroes is used for cluster addresses.
  416.  
  417. A local loop back address is defined.  This is the local address with
  418. the low order one bit set to one, and the rest set to zero (address
  419. FE00:0:0:0:0:0:0:1).  The cluster label for this would appear to be
  420. FE00:0:0:0:0:0:0:0, although some of us were unclear what a cluster
  421. loopback address would mean.
  422.  
  423. An unspecified address of 0:0:0:0:0:0:0:0:  is defined.  This is used
  424. where you don't know what an address is.  For example, this may be used
  425. as a source address for a system which is sending a packet but doesn't
  426. yet know its own address.
  427.  
  428. There was a question regarding why the loopback address is from a
  429. different block than the unspecified address.  This means that two
  430. blocks have been cut into.
  431.  
  432. Multicast address (starts with 11111111) has flags and scope.  Details
  433. are defined in the spec.
  434.  
  435. Question:  Will we have multi-subnet broadcast addresses?  Answer, there
  436. is no broadcast here, only multicast (you should never send to everyone,
  437. rather you should send to the right ``lots of folks'' multicast
  438. address).  In some cases you will need to map IPng multicast onto LAN
  439. subnet broadcast, since some systems receive LAN broadcast more
  440. efficiently than LAN multicast.  Some work on multicast addresses is
  441. still needed.
  442.  
  443. Yakov Rekhter gave a presentation on:  Architecture for SIPP-16 Address
  444. Allocation (ie, the relationship between addressing and routing).
  445.  
  446. This document provides guidelines.  This is pretty much based on CIDR
  447. (ie, based on NSAP guidelines, based on much earlier work on
  448. hierarchical routing -- this is not a new idea but it works).  This is
  449. based on what is currently deployed, which therefore does not require
  450. any drastic change from what we are doing.
  451.  
  452. The set of administrative requirements for obtaining and allocations
  453. IPng addresses are not discussed.  This is not a specific plan for
  454. address assignment, nor does it deal with embedding address space from
  455. other protocols, nor multicast, ...  The technical aspects of address
  456. allocation and the implications on routing are discussed in this
  457. document.
  458.  
  459. The benefits of encoding *some* topological information in addresses is
  460. discussed.  The need for additional levels of hierarchy, etc..
  461.  
  462. Hierarchical routing:  Scaling requires that we achieve some level of
  463. information abstraction.  Within a single-homed leaf domain:  This
  464. implies that we give the domain a contiguous block of addresses
  465. abstracted into a single address prefix.  This is preferably from a
  466. prefix assigned by the direct provider.
  467.  
  468. Providers should have relatively large contiguous block, and give
  469. sub-blocks to customers.  If you want to separate ``R&E'' from
  470. ``commercial,'' you can have the provider have two relatively large
  471. sub-blocks.
  472.  
  473. Question:  When we change providers, do we cut a hole in the
  474. CIDR-allocations, or to we require re-addressing.  It is desirable to
  475. make it as easy as possible to renumber, thereby allowing CIDR-holes to
  476. be corrected as much as possible.  This does not require that we
  477. *always* renumber however.
  478.  
  479. It was pointed out that embedding policy (e.g., R&E versus commercial)
  480. in policy is a bad thing.  This could explode, or become uselessly
  481. inadequate.  Yakov, Steve, some other speakers, and the minute taker
  482. were in agreement on this.  There is a problem that while it may make
  483. sense to some folks (US Government) to split folks into two particular
  484. categories, it may make sense to other folks (other governments or some
  485. large commercial companies) to split folks into different sets of
  486. categories.  AUPs (appropriate use policies) will better be addressed by
  487. proper policy based routing capabilities, such as may be provided by
  488. SDRP.
  489.  
  490. Multi-homed domains are harder to handle.  There is no one correct
  491. solution.  The document points out four possible solutions, any of which
  492. may be correct in any one particular situation.  Thus, it is important
  493. to understand the various solutions in order to determine which should
  494. be used in any one case.
  495.  
  496. Continental aggregation deals with large blobs of the topology.  This is
  497. anticipated as useful to help contain entropy (if changing providers
  498. results in entropy within one continent, this entropy can be contained).
  499. This could also be useful for multi-homed subscribers which are
  500. multi-homed within a single continent.
  501.  
  502. Summary:  The ability of the Internet to grow depends upon the ability
  503. of routing to scale.  This requires the use of routing data abstraction,
  504. based on using addresses which reflect the topology.  We recommend
  505. provider-based addresses.
  506.  
  507. We could start experimenting with geographic addresses, for example for
  508. multi- homed sites which happen to be topologically ``close'' to one of
  509. the FIX's (there are some examples of this).
  510.  
  511. Maximum aggregation is not actually needed.  For example, there does not
  512. need to be *only* six address prefixes at the top level (one per
  513. continent, probably minus Antarctica).  It is sufficient to have a few
  514. hundred or a few thousand at the top.  On the other hand, if you shoot
  515. for maximum aggregation, and assign addresses to that maximum
  516. aggregation is possible, this doesn't mean that you have to use it.  The
  517. important thing is that when you allocate the addresses you need to
  518. shoot for aggregation.
  519.  
  520. It must be possible to receive address allocation without connecting to
  521. a public Internet.
  522.  
  523. Embedding IP addresses in IPng addresses, and NSAP addresses in IPng
  524. addresses, and IPX addresses in IPng addresses, may lead to an
  525. unroutable (or at least hard to route) network.  Thus we have to get
  526. away from old bad address assignments to a new more topological more
  527. scalable / routeable address assignment.  It may be that some bad
  528. addresses may give you the right to run IPng locally, but *not* give you
  529. the right to have people be capable of routing data to you.
  530.  
  531. Education is essential.  This will be an ongoing process.
  532.  
  533. Last Topic:  Generation of a ToDo list:
  534.  
  535.    o source routing
  536.    o max payload
  537.    o minimum MTU
  538.    o autoconfiguration and readdressing
  539.    o authentication and encryption
  540.    o pseudo-header checksums
  541.    o address assignment
  542.  
  543. We need to assign names to documents.
  544.  
  545.    o address assignment:  take current CIDR assignments and IPng-ize
  546.      (Yakov)
  547.    o address CIDR-stuff (Yakov)
  548.    o base IPng spec (Steve Deering)
  549.    o address architecture (Bob Hinden)
  550.    o DNS (Christian H)
  551.    o ICMP/IGMP (Deering and Conta)
  552.    o MIB (Kayce)
  553.    o neighbor discovery, Address Resolution (Bill Simpson, Conta)
  554.    o NSAP mapping (Brian Carpenter, Jim Bound)
  555.    o APIs (Bob Gilligan and Jim Bound)
  556.    o security (Ran Atkinson)
  557.    o compression (Bill Simpson)
  558.    o FTP (Foobar) (Piscitello)
  559.    o SNMP (not MIB)
  560.    o OSPF
  561.    o IDRP (IDRP Working Group)
  562.    o IS-IS
  563.    o RIP
  564.  
  565. Overall consistency is the responsibility of the IPng working group
  566. chairs, and Dave Clark as official IPng Reviewer.
  567.  
  568.  
  569.  
  570. Friday Implementors Meeting
  571.  
  572.  
  573. Attendees and Interests
  574.  
  575. Steve Deering / Xerox Parc 
  576. Bob Hinden / Sun:  testing, IPngBone 
  577. Erik Nordmark / Sun :  Talk about API Issues 
  578. Frank Solensky / FTP software
  579. Bill Simpson:  Header compression and security 
  580. Dan McDonald / NRL : APIs
  581. Mark Hansen / Mentat:  want to start prototyping 
  582. Dimitry Haskin / Wellfleet 
  583. Walt Hauser / Dept.  Veterans Affairs:  user concerns about universal 
  584.    dial tone.  
  585. Frank H / Synoptics 
  586. Jim Bound / Digital: everything, have done SIPP8 and SST: header 
  587.    building/filling 
  588. Alex Conta/ Digital:  implementing SIPP, addressing (local vs global), 
  589.    multicast
  590. Peter Gerban / Digital:  source routing and API's 
  591. Ran Atkinson / NRL: Security aspects, routing header 
  592. Justin Walker/ Apple Unix group: similar issues 
  593. Ross Callon / Wellfleet:  listen 
  594. Anthony Martin/ Defense research department :  security 
  595. Bob Gilligan / Sun 
  596. Tony Li / Cisco
  597. Christian Huitema / INRIA
  598.  
  599.  
  600. Introduction
  601.  
  602. Steve Deering:  Gave introduction on purpose of meeting.  Feedback from
  603. implementors to protocol designers.  Do a walk through of specs or deal
  604. with specific items.  JB: Do important items first.  EN: Also talk about
  605. API issues?  Yes
  606.  
  607.  
  608.  
  609. Security - Ran Atkinson
  610.  
  611. Ran Atkinson presented the current work on the security headers.
  612.  
  613. IPv6 Authentication Header
  614.  
  615.  
  616.      +---------------------------------------------------+
  617.      | Next    | Length  |         Reserved              |
  618.      | Payload |         |                               |
  619.      +---------+---------+-------------------------------+
  620.      | Security Association ID (SAID)                    |
  621.      +---------------------------------------------------+
  622.      |                                                   |
  623.      |    Authentication Data (variable length)          |
  624.      |                                                   |
  625.      +---------------------------------------------------+
  626.  
  627.  
  628. Several specifications errors were found in the original versions by
  629. Kastenholz, Bellovin, etc.  SAID is receiver oriented (uses destination
  630. address and SAID) SAID are uni-directional.
  631.  
  632. For now MD5 is mandatory algorithm, but seeking faster algorithm
  633.  
  634. Key management is disjoint for main protocols.  Want not have to change
  635. security protocol if key management changes.
  636.  
  637. JW: There will be a API impact.
  638.  
  639. Issue of performance of algorithm:  Existing experience on Alpha got
  640. about 20Mbits/sec using MD5.  Could look for another algorithm.  MD4
  641. might be ok (20% faster?).  What else could be used? 
  642.  
  643. Discussion over how to authenticate source routes.  Suggested having
  644. source do the calculation based on what the source route will look at
  645. the destination.
  646.  
  647. Can not allow source routes to be inserted in the middle of the path.
  648. Requires mobility to be done with encapsulation.
  649.  
  650. Proposed IPv4 / IPv6 Encryption Protocol (IPSP)
  651.  
  652.      +---------------------------------------------------+
  653.      | Security Association ID (SAID)                    |
  654.      +---------------------------------------------------+
  655.      | Algorithm dependent Initial Data (variable length |
  656.      +---------------------------------------------------+
  657.      | Next    | Length  |         Reserved              |
  658.      | Payload |         |                               |
  659.      +---------+---------+                               |
  660.      |                                                   |
  661.      |  Encrypted payload (TCP/UDP/IPv[46]               |
  662.      |                                                   |
  663.      |                                                   |
  664.      +---------------------------------------------------+
  665.      |    Algorithm dependent trailer Data (var length)  |
  666.      |                                                   |
  667.      +---------------------------------------------------+
  668.  
  669.  
  670. IPv4 IPSIP proposal does not have next header or length in locations
  671. shown, but hallway discussions w/ IPv6 implements all wanted above.
  672.  
  673. Sender should use IPv6 PAD to have TCP/UDP/etc data begin on a 64bit
  674. bounty within the protected region (might mean spec revision)
  675.  
  676. Likely Internet encryption algorithm is DES-CBC other algorithms are
  677. optional.
  678.  
  679. Suggestion to make length 16bytes
  680.  
  681.  
  682.      +---------------------------------------------------+
  683.      | Next    | RSVD    |         Length                |
  684.      | Payload |         |                               |
  685.      +---------+---------+-------------------------------+
  686.  
  687.  
  688. There was a discussion of the issues of padding.  General agreement on
  689. 64bit alignment.
  690.  
  691. Make algorithm dependent initial data (variable length)
  692.  
  693. Discussion about should this be the same for both IPv4 and IPv6.
  694.  
  695. Deering suggested that Encrypted payload always start on a 64bit aligned
  696. boundary.  [This solves IPv4/6 compatibly problem?]
  697.  
  698. Trailer is padding for block size of algorithm in use.
  699.  
  700. There was a Mention that these options will break NAT boxes.
  701.  
  702.  
  703.  
  704. API Issues - Dan McDonnald
  705.  
  706.  
  707. The issue of the socket interface API was discussed.  Dan McDonnald of
  708. NRL made a strawman proposal that the sockaddr data structure for IPv6
  709. addresses be named ``sockaddr_ipv6'' and be layed out as follows:
  710.  
  711.  
  712.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  713.       |  sv6_len      |  sv6_family   |    sv6_port                   |
  714.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  715.       |                       Reserved                                |
  716.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  717.       |                                                               |
  718.       +                                                               +
  719.       |                                                               |
  720.       +                sv6_addr                                       +
  721.       |                                                               |
  722.       +                                                               +
  723.       |                                                               |
  724.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  725.  
  726.  
  727. There was an issue about the length field (sv6_len).  In the 4.4 BSD
  728. (and Reno) socket interface, the generic sockaddr data structure places
  729. a ``length'' field in the first byte and a ``address family'' field in
  730. the second byte.  This is a change from 4.3 BSD, which has a 16 bit long
  731. ``address family'' field which covers the first two bytes of the
  732. sockaddr data structure.  Many existing systems are based on 4.3 BSD,
  733. while some newer systems are based on 4.4 BSD.
  734.  
  735. There was some discussion about this, and general agreement that it
  736. would be good if we could define a single IPv6 address data structure
  737. that would be used on both 4.3 and 4.4 based systems.  A single
  738. definition of the data structure would promote application portability
  739. among those systems.
  740.  
  741. An alternative IPv6 address structure was suggested:
  742.  
  743.  
  744.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  745.       |      sv6_family               |    sv6_port                   |
  746.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  747.       |                       Reserved                                |
  748.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  749.       |                                                               |
  750.       +                                                               +
  751.       |                                                               |
  752.       +                sv6_addr                                       +
  753.       |                                                               |
  754.       +                                                               +
  755.       |                                                               |
  756.       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  757.  
  758.  
  759. This data structure could be compatible with both the 4.3 and 4.4 based
  760. socket interface if applications are careful to store the sv6_family
  761. value in ``network byte order.''  When this is done, the first byte of
  762. the data structure will have the value zero on machines with big-endian
  763. byte order as well as those with little-endian byte order.  In order for
  764. this to work, applications must use the following construct to assign
  765. the ``sv6_family'' field:
  766.  
  767.  
  768. sv6_family = htons(AF_IPv6);
  769.  
  770.  
  771. Bob Gilligan will write this proposal up in the next draft of the socket
  772. API spec.
  773.  
  774. There was some discussion of field alignment in the IPv6 address data
  775. structure.  There was general agreement that 64-bit alignment of the
  776. address field was sufficient; It does not need to be 128-bit aligned.
  777.  
  778. There was some discussion of the naming of the fields in the IPv6
  779. address structure.  There was general agreement on the form ``sin6_*'',
  780. however, this issue is not particularly substantive, so the editor of th
  781. API spec may decide on something different.
  782.  
  783. There was some discussion about how applications ``reverse'' source
  784. routes.  For TCP-based applications, the reversal can be done in the TCP
  785. code.  This has the advantage that it can be transparent to the
  786. application program.  But for UDP-based applications, the application
  787. must perform the reversal.  This raises the issue of how the application
  788. retrieves source routes that are received with UDP packets, and how the
  789. application tells the transport layer to use a source route with packets
  790. that are being sent.  In the current draft of the API spec, the main
  791. sending and receiving functions (sendto and recvfrom) always carry the
  792. full source route.  However, many people thought that this was too
  793. complicated, considering that the common case would be not to have
  794. source routes.
  795.  
  796. There was some discussion of an alternative interface for dealing with
  797. source routes.  In this approach, an application would use a new
  798. getsockopt() option to get the source route that is associated with a
  799. received packet, and then use a new setsockopt() option to set the
  800. source route to be used in transmitted packets.  The commonly used
  801. sendto() and recvfrom() calls would carry a simple single-element IPv6
  802. address.  There was general consensus that this approach should be
  803. worked into the socket API spec.  Bob Gilligan will include this
  804. approach in the next revision of the socket API spec.
  805.  
  806.  
  807.  
  808. Miscellaneous Issues
  809.  
  810.  
  811. Nordmark asked if you should always add a fragmentation header for UDP
  812. messages.  Deering suggested using MTU discovery.
  813.  
  814. Suggestion for separate IP6 MTU discovery document (later merge w/ main
  815. IP6 spec).  Alex C. volunteered.
  816.  
  817.  
  818.  
  819. Local versus Global Addresses - Alex Conta
  820.  
  821. Goal is to have fast path for transport control block lookups.  Fast
  822. path for address lookups.
  823.  
  824. 90% of traffic will be local.  Want to optimize. 
  825.  
  826. Suggestion that prefix for local host on this wire be very long as to
  827. not waste address space.  Proposed a method to only use enough info in
  828. address for local identification.
  829.  
  830. Much discussion.  Some issue for pseudo checksum calculation.
  831.  
  832. Suggestion for rules for handling of local use addresses.  Only use
  833. local use address if don't have any other addresses.
  834.  
  835. No consensus on this approach.  Performance win is small and adds
  836. complexity.  Encouraged Alex to experiment with this and other
  837. approaches to deal with same problem.
  838.  
  839.  
  840.  
  841. Next Meetings
  842.  
  843. Need two face to face meetings between now and the next IETF meetings.
  844. Earliest for Deering could be early October.  Probably Boston in October
  845. 10, 11, 12.  Then another meeting in November.
  846.  
  847.  
  848.  
  849. Document Structure
  850.  
  851. Discussion of making IPng options in separate documents or in main
  852. document.  Put fragmentation in same document as MTU discovery.  Only
  853. put base options (e-e, hop-by-hop) in main spec.
  854.  
  855. Neighbor discover will be in this w.g.
  856.  
  857.  
  858.  
  859. User Interfaces Issues - Tony Li
  860.  
  861. Would be nice to use bit count instead of a mask.  Suggested:
  862.  
  863.  
  864.     x:x:x:x:x:x:x:x(mm)
  865.  
  866.  
  867. where mm is the length of the masks.
  868.  
  869. Suggestion to not use ``:''  because it is a shift character.  Other
  870. possibilities include:
  871.  
  872.  
  873.      xx'xx'xx'xx'
  874.      xx;ss;ss;ss;
  875.      xx,xx,xx,xx,xx,xx,xx,
  876.  
  877.  
  878. Also suggested ``...''  as compression character.  For example:
  879.  
  880.  
  881. xx-xx-xx-xx...xx-xx-xx-xx
  882.  
  883.  
  884. Hinden has action to propose something to the list.
  885.  
  886.  
  887.  
  888. Header compression - Bill Simpson
  889.  
  890. Knows how to do compression over PPP, but now sure how to do it over
  891. SLIP. Group thought doing PPP for now was fine.  We can defer SLIP work
  892. later (if someone wants to do this).
  893.  
  894.  
  895.  
  896. Closing Thought - Dan McDonald
  897.  
  898. Lets put running code back into ``Rough consensus and running code.''
  899.  
  900.