Difference between revisions of "RFC1362"

From RFC-Wiki
imported>Admin
(Created page with " Network Working Group M. Allen Request for Comments: 1362 Novell, Inc. ...")
 
Line 1: Line 1:
 
  
  
Line 8: Line 7:
 
Request for Comments: 1362                                  Novell, Inc.
 
Request for Comments: 1362                                  Novell, Inc.
 
                                                       September 1992
 
                                                       September 1992
 
  
 
             Novell IPX Over Various WAN Media (IPXWAN)
 
             Novell IPX Over Various WAN Media (IPXWAN)
 
 
Status of this Memo
 
Status of this Memo
 
 
This memo provides information for the Internet community.  It does
 
This memo provides information for the Internet community.  It does
 
not specify an Internet standard.  Distribution of this memo is
 
not specify an Internet standard.  Distribution of this memo is
 
unlimited.
 
unlimited.
 
 
Abstract
 
Abstract
 
 
This document describes how Novell IPX operates over various WAN
 
This document describes how Novell IPX operates over various WAN
 
media.  Specifically, it describes the common "IPX WAN" protocol
 
media.  Specifically, it describes the common "IPX WAN" protocol
Line 25: Line 19:
 
to exchanging standard IPX routing information and traffic over WAN
 
to exchanging standard IPX routing information and traffic over WAN
 
datalinks.
 
datalinks.
 
+
Table of Contents
 +
1.  Introduction .................................................  1
 +
1.1. Operation Over PPP ..........................................  2
 +
1.2. Operation Over X.25 Switched Virtual Circuits ...............  2
 +
1.3. Operation Over X.25 Permanent Virtual Circuits ..............  2
 +
1.4. Operation Over Frame Relay ..................................  3
 +
1.5. Operation Over Other WAN Media ..............................  3
 +
2.  Glossary Of Terms ............................................  3
 +
3.  IPX WAN Protocol Description .................................  4
 +
4.  Information Exchange Packet Formats ..........................  5
 +
4.1. Timer Request Packet ........................................  6
 +
4.2. Timer Response Packet .......................................  8
 +
4.3. Information Request Packet .................................. 10
 +
4.4. Information Response Packet ................................. 12
 +
5.  References ................................................... 12
 +
6.  Security Considerations ...................................... 13
 +
7.  Author's Address.............................................. 13
 
== Introduction ==
 
== Introduction ==
 
 
This document describes how Novell IPX operates over various WAN
 
This document describes how Novell IPX operates over various WAN
 
media. It is strongly motivated by a desire for IPX to treat ALL wide
 
media. It is strongly motivated by a desire for IPX to treat ALL wide
 
area links in the same manner. Sections 3 and 4 describe this common
 
area links in the same manner. Sections 3 and 4 describe this common
 
"IPX WAN" protocol.
 
"IPX WAN" protocol.
 +
 +
  
  
Line 47: Line 58:
 
operation, such as protocol identification, frame encapsulation, and
 
operation, such as protocol identification, frame encapsulation, and
 
link tear down.
 
link tear down.
 
+
=== Operation Over PPP ===
1.1 Operation Over PPP
 
 
 
 
IPX uses PPP [1] when operating over point-to-point synchronous and
 
IPX uses PPP [1] when operating over point-to-point synchronous and
 
asynchronous networks.
 
asynchronous networks.
 
 
With PPP, link establishment means the IPX NCP [4] reaches the Open
 
With PPP, link establishment means the IPX NCP [4] reaches the Open
 
state. NetWare IPX will reject all NCP options, and uses normal frame
 
state. NetWare IPX will reject all NCP options, and uses normal frame
 
encapsulation as defined by PPP. The IPXWAN protocol MUST NOT occur
 
encapsulation as defined by PPP. The IPXWAN protocol MUST NOT occur
 
until the IPX NCP reaches the Open state.
 
until the IPX NCP reaches the Open state.
 
 
PPP allows either side of a connection to stop forwarding IPX if one
 
PPP allows either side of a connection to stop forwarding IPX if one
 
end sends an IPXCP or an LCP Terminate-Request. When a router detects
 
end sends an IPXCP or an LCP Terminate-Request. When a router detects
 
this, it will immediately reflect the lost connectivity in its
 
this, it will immediately reflect the lost connectivity in its
 
routing information database instead of naturally aging it out.
 
routing information database instead of naturally aging it out.
 
+
=== Operation over X.25 Switched Virtual Circuits ===
1.2 Operation over X.25 Switched Virtual Circuits
 
 
 
 
With X.25, link establishment means successfully opening an X.25
 
With X.25, link establishment means successfully opening an X.25
 
virtual circuit.  As specified in RFC-1356, "Multiprotocol
 
virtual circuit.  As specified in RFC-1356, "Multiprotocol
Line 71: Line 76:
 
the Call Request frame, and indicates that the virtual circuit will
 
the Call Request frame, and indicates that the virtual circuit will
 
be devoted to IPX.
 
be devoted to IPX.
 
 
Furthermore, each IPX packet is encapsulated directly in X.25 data
 
Furthermore, each IPX packet is encapsulated directly in X.25 data
 
frame sequences without additional framing.
 
frame sequences without additional framing.
 
 
Either side of the virtual circuit may close it, thereby tearing down
 
Either side of the virtual circuit may close it, thereby tearing down
 
the IPX link. When a router detects this, it will immediately reflect
 
the IPX link. When a router detects this, it will immediately reflect
 
the lost connectivity in its routing information database instead of
 
the lost connectivity in its routing information database instead of
 
naturally aging it out.
 
naturally aging it out.
 
+
=== Operation over X.25 Permanent Virtual Circuits ===
1.3 Operation over X.25 Permanent Virtual Circuits
 
 
 
 
The nature of X.25 PVC's is that no call request is made.  When the
 
The nature of X.25 PVC's is that no call request is made.  When the
 
router is informed that X.25 Layer 2 is up, the router should assume
 
router is informed that X.25 Layer 2 is up, the router should assume
 
that link establishment is complete.
 
that link establishment is complete.
 +
 +
  
  
Line 95: Line 98:
 
without additional framing. Novell IPX assumes a particular X.25
 
without additional framing. Novell IPX assumes a particular X.25
 
permanent circuit is devoted to the use of IPX.
 
permanent circuit is devoted to the use of IPX.
 
 
If a router receives a layer 2 error condition (e.g., X.25 Restart),
 
If a router receives a layer 2 error condition (e.g., X.25 Restart),
 
it should reflect lost connectivity for the permanent circuits in its
 
it should reflect lost connectivity for the permanent circuits in its
 
routing information database and re-perform the necessary steps to
 
routing information database and re-perform the necessary steps to
 
obtain a full IPX connection.
 
obtain a full IPX connection.
 
+
=== Operation over Frame Relay ===
1.4 Operation over Frame Relay
 
 
 
 
Novell conforms to RFC-1294, "Multiprotocol Interconnect over Frame
 
Novell conforms to RFC-1294, "Multiprotocol Interconnect over Frame
 
Relay" [3] for frame relay service and packet encapsulation.
 
Relay" [3] for frame relay service and packet encapsulation.
Line 108: Line 108:
 
relay connections - whether they treat the connections as LANs or
 
relay connections - whether they treat the connections as LANs or
 
WANs.
 
WANs.
 
+
=== Operation over other WAN media ===
1.5 Operation over other WAN media
 
 
 
 
Additional WAN media will be added here as specifications are
 
Additional WAN media will be added here as specifications are
 
developed.
 
developed.
 
 
== Glossary Of Terms ==
 
== Glossary Of Terms ==
 
 
Primary Network Number:
 
Primary Network Number:
 
 
   Every IPX WAN router has a "primary network number". This is an
 
   Every IPX WAN router has a "primary network number". This is an
 
   IPX network number unique to the entire internet.  This number
 
   IPX network number unique to the entire internet.  This number
Line 123: Line 118:
 
   Those readers familiar with NetWare 3.x servers should realize
 
   Those readers familiar with NetWare 3.x servers should realize
 
   that this is the "Internal" network number.
 
   that this is the "Internal" network number.
 
 
Router Name:
 
Router Name:
 
 
   Every IPX WAN router must have a "Router Name". This is a symbolic
 
   Every IPX WAN router must have a "Router Name". This is a symbolic
 
   name given to the router. Its purpose is to allow routers to know
 
   name given to the router. Its purpose is to allow routers to know
Line 138: Line 131:
 
   servers should realize that the file server name is the Router
 
   servers should realize that the file server name is the Router
 
   Name.
 
   Name.
 +
 +
  
  
Line 146: Line 141:
  
 
== IPX WAN Protocol Description ==
 
== IPX WAN Protocol Description ==
 
 
IPX WAN links have the concept of a LINK MASTER and a LINK SLAVE.
 
IPX WAN links have the concept of a LINK MASTER and a LINK SLAVE.
 
This relationship is decided upon based on information contained
 
This relationship is decided upon based on information contained
 
within the first IPX packets transferred across the WAN link.
 
within the first IPX packets transferred across the WAN link.
 
 
After link establishment, both sides of the link send "Timer Request"
 
After link establishment, both sides of the link send "Timer Request"
 
packets and start a timer waiting for a "Timer Response". These
 
packets and start a timer waiting for a "Timer Response". These
Line 160: Line 153:
 
If a time-out occurs, the router issues a disconnect on the offending
 
If a time-out occurs, the router issues a disconnect on the offending
 
connection and optionally attempts to retry the connection.
 
connection and optionally attempts to retry the connection.
 
 
When a "Timer Request" is received, the router with the lowest
 
When a "Timer Request" is received, the router with the lowest
 
primary network number MUST respond with a "Timer Response" packet -
 
primary network number MUST respond with a "Timer Response" packet -
Line 174: Line 166:
 
"Timer Request" was initiated and applying the algorithm in section
 
"Timer Request" was initiated and applying the algorithm in section
 
4.2.
 
4.2.
 
 
To allow this, both sides of the link MUST have an adequate pool of
 
To allow this, both sides of the link MUST have an adequate pool of
 
WAN network numbers (unique within the internetwork) available to be
 
WAN network numbers (unique within the internetwork) available to be
Line 183: Line 174:
 
packet, the "Slave" MUST turn the packet around, overwrite the router
 
packet, the "Slave" MUST turn the packet around, overwrite the router
 
name and node identifier and send an "Information Response".
 
name and node identifier and send an "Information Response".
 
 
After the "Master" has received the "Information Response" and the
 
After the "Master" has received the "Information Response" and the
 
"Slave" has received the "Information Request", standard IPX RIP and
 
"Slave" has received the "Information Request", standard IPX RIP and
Line 190: Line 180:
 
information describing the Novell RIP/SAP protocol for third party
 
information describing the Novell RIP/SAP protocol for third party
 
developers.
 
developers.
 
 
Note that the "Information Request" and "Information Response"
 
Note that the "Information Request" and "Information Response"
 
packets are specific to the "Routing Type"=0 information exchanges.
 
packets are specific to the "Routing Type"=0 information exchanges.
 +
 +
  
  
Line 202: Line 193:
 
predefined time-out period, a disconnect is issued on the link, and
 
predefined time-out period, a disconnect is issued on the link, and
 
the link can optionally be attempted later.
 
the link can optionally be attempted later.
 
 
If a router detects an error for which no suitable protocol response
 
If a router detects an error for which no suitable protocol response
 
exists (e.g., unable to allocate a network number), the link should
 
exists (e.g., unable to allocate a network number), the link should
 
be terminated according to the relevant media specification.
 
be terminated according to the relevant media specification.
 
 
Under certain circumstances, particularly on X.25 permanent circuits,
 
Under certain circumstances, particularly on X.25 permanent circuits,
 
it is only possible to detect the remote router went away when it
 
it is only possible to detect the remote router went away when it
Line 215: Line 204:
 
Furthermore, the routing information learned from this connection
 
Furthermore, the routing information learned from this connection
 
should be immediately discarded.
 
should be immediately discarded.
 
 
== Information Exchange Packet Formats ==
 
== Information Exchange Packet Formats ==
 
 
All IPX WAN information exchange packets conform to the standard
 
All IPX WAN information exchange packets conform to the standard
 
Novell IPX packet format. The packets use the IPX defined packet type
 
Novell IPX packet format. The packets use the IPX defined packet type
Line 230: Line 217:
 
node number will be the 4 bytes of WNode ID followed by 2 bytes of
 
node number will be the 4 bytes of WNode ID followed by 2 bytes of
 
zero.
 
zero.
 
 
Router Type number assignment. Other vendors IPX routing protocols
 
Router Type number assignment. Other vendors IPX routing protocols
 
can make use of the IPXWAN protocol definition by obtaining Router
 
can make use of the IPXWAN protocol definition by obtaining Router
 
Types from Novell. This document will then include the new Router
 
Types from Novell. This document will then include the new Router
 
Types (with the references to vendor protocol description documents).
 
Types (with the references to vendor protocol description documents).
 
 
WOption Number assignment. These numbers only need to be assigned
 
WOption Number assignment. These numbers only need to be assigned
 
from Novell for the "Timer Request" and "Timer Response" packets.
 
from Novell for the "Timer Request" and "Timer Response" packets.
Line 251: Line 236:
  
  
4.1 Timer Request Packet
 
  
 +
 +
=== Timer Request Packet ===
 
+---------------------------------------------------------------+
 
+---------------------------------------------------------------+
 
| Checksum        | FF FF            | Always FFFF            |
 
| Checksum        | FF FF            | Always FFFF            |
Line 283: Line 269:
 
|                  |                  | through FF's.          |
 
|                  |                  | through FF's.          |
 
+---------------------------------------------------------------+
 
+---------------------------------------------------------------+
 
 
Note:
 
Note:
 
     Timer Request packets will always be 576 bytes. However,
 
     Timer Request packets will always be 576 bytes. However,
 
     there should be no assumption made about the number of
 
     there should be no assumption made about the number of
 
     options specified in this packet.
 
     options specified in this packet.
 
 
After link establishment, Timer Request packets are sent by both
 
After link establishment, Timer Request packets are sent by both
 
sides of the link. Each end starts their sequence number at zero.
 
sides of the link. Each end starts their sequence number at zero.
Line 294: Line 278:
 
this sequence number.  Only a Timer Response packet with a sequence
 
this sequence number.  Only a Timer Response packet with a sequence
 
number matching the last sent sequence number will be acted upon.
 
number matching the last sent sequence number will be acted upon.
 
 
When receiving this packet, the WNode ID should be compared to the
 
When receiving this packet, the WNode ID should be compared to the
 
receiver's Primary Network #. If the WNode ID is larger than the
 
receiver's Primary Network #. If the WNode ID is larger than the
 
receiver's Primary Network #, a Timer Response packet should be sent,
 
receiver's Primary Network #, a Timer Response packet should be sent,
 
and the receiver should become the link "Slave".
 
and the receiver should become the link "Slave".
 +
 +
  
  
Line 307: Line 292:
 
WIdentifier set to the hexadecimal values noted above should be
 
WIdentifier set to the hexadecimal values noted above should be
 
discarded.
 
discarded.
 
 
Routing Type Option:
 
Routing Type Option:
 
 
A routing type of zero (0) is the minimum interoperability
 
A routing type of zero (0) is the minimum interoperability
 
requirement (as defined by this document). A router ready to send a
 
requirement (as defined by this document). A router ready to send a
Line 317: Line 300:
 
respond with a Routing Type of zero indicating support for the
 
respond with a Routing Type of zero indicating support for the
 
minimum common protocol.
 
minimum common protocol.
 
 
Note that multiple Routing Type Options can be included in the Timer
 
Note that multiple Routing Type Options can be included in the Timer
 
Request packet if the router supports multiple routing methods for
 
Request packet if the router supports multiple routing methods for
 
IPX. The included Router Types MUST include and support this type
 
IPX. The included Router Types MUST include and support this type
 
zero option.
 
zero option.
 
 
Accept Option (for Routing Type and PAD options):
 
Accept Option (for Routing Type and PAD options):
 
 
This field MUST be set to YES if the option is supported, and NO if
 
This field MUST be set to YES if the option is supported, and NO if
 
an option is not supported. A Timer Response MUST respond with ONLY
 
an option is not supported. A Timer Response MUST respond with ONLY
 
one Router Type set to YES.
 
one Router Type set to YES.
 
 
PAD Option:
 
PAD Option:
 
 
This option will normally be the last entry in the packet.  Its sole
 
This option will normally be the last entry in the packet.  Its sole
 
purpose is to fill the IPX packet to be 576 bytes.  The pad option
 
purpose is to fill the IPX packet to be 576 bytes.  The pad option
Line 336: Line 314:
 
should stop compression modems from collapsing the packet and
 
should stop compression modems from collapsing the packet and
 
destroying the link delay calculation.
 
destroying the link delay calculation.
 
 
Currently Assigned WOption Numbers (Timer Request Packet):
 
Currently Assigned WOption Numbers (Timer Request Packet):
 
     Routing Type Option = 0x00;    Option Length = 0001
 
     Routing Type Option = 0x00;    Option Length = 0001
Line 342: Line 319:
 
             0      Novell RIP/SAP routing with network
 
             0      Novell RIP/SAP routing with network
 
                     number assigned to the link.
 
                     number assigned to the link.
 
 
     PAD Type Option    = 0xFF;    Option Length = Variable
 
     PAD Type Option    = 0xFF;    Option Length = Variable
 
 
     Compression Option  = 0x80;    Option Length = Variable
 
     Compression Option  = 0x80;    Option Length = Variable
 
                       (length dependent on compression type)
 
                       (length dependent on compression type)
Line 352: Line 327:
 
                 Telebit Byte 2 - Compression options
 
                 Telebit Byte 2 - Compression options
 
                 Telebit Byte 3 - Number compression slots
 
                 Telebit Byte 3 - Number compression slots
 +
 +
  
  
Line 358: Line 335:
  
 
=== Timer Response Packet ===
 
=== Timer Response Packet ===
 
 
+---------------------------------------------------------------+
 
+---------------------------------------------------------------+
 
| Checksum        | FF FF            | Always FFFF            |
 
| Checksum        | FF FF            | Always FFFF            |
Line 397: Line 373:
 
|                  |                  | for link delay calc.  |
 
|                  |                  | for link delay calc.  |
 
+---------------------------------------------------------------+
 
+---------------------------------------------------------------+
 
 
The responses contained within this packet are as described in
 
The responses contained within this packet are as described in
 
section 4.1. Any unknown options or not supported options from the
 
section 4.1. Any unknown options or not supported options from the
 
Timer Request should have the WAccept Option set to NO.
 
Timer Request should have the WAccept Option set to NO.
 
 
If the Timer Request packet contained more than one Router Type
 
If the Timer Request packet contained more than one Router Type
 
option and the "Slave" supports all the options, the "Slave" should
 
option and the "Slave" supports all the options, the "Slave" should
 
set the WAccept Option to NO on all Router Types except the Routing
 
set the WAccept Option to NO on all Router Types except the Routing
 +
 +
  
  
Line 413: Line 389:
 
the routing option specified with the YES setting and complete
 
the routing option specified with the YES setting and complete
 
further information exchanges according to that routing standard.
 
further information exchanges according to that routing standard.
 
 
This packet should contain the same sequence number as the received
 
This packet should contain the same sequence number as the received
 
Timer Request. This packet should ONLY be sent by the router
 
Timer Request. This packet should ONLY be sent by the router
 
determining themselves to be the "Slave" of the link.
 
determining themselves to be the "Slave" of the link.
 
 
Currently Assigned WOption Numbers (Timer Response Packet):
 
Currently Assigned WOption Numbers (Timer Response Packet):
 
     Routing Type Option = 0x00;    Option Length = 0001
 
     Routing Type Option = 0x00;    Option Length = 0001
Line 423: Line 397:
 
           0      Novell RIP/SAP routing with network
 
           0      Novell RIP/SAP routing with network
 
                   number assigned to the link.
 
                   number assigned to the link.
 
 
     PAD Type Option    = 0xFF;    Option Length = Variable
 
     PAD Type Option    = 0xFF;    Option Length = Variable
 
 
     Compression Option  = 0x80;    Option Length = Variable
 
     Compression Option  = 0x80;    Option Length = Variable
 
                       (length dependant on compression type)
 
                       (length dependant on compression type)
Line 433: Line 405:
 
                 Telebit Byte 2 - Compression options
 
                 Telebit Byte 2 - Compression options
 
                 Telebit Byte 3 - Number compression slots
 
                 Telebit Byte 3 - Number compression slots
 +
 +
  
  
Line 464: Line 438:
  
 
=== RIP/SAP Information Request Packet (Router Type=0 Only) ===
 
=== RIP/SAP Information Request Packet (Router Type=0 Only) ===
 
 
+---------------------------------------------------------------+
 
+---------------------------------------------------------------+
 
| Checksum        | FF FF            | Always FFFF            |
 
| Checksum        | FF FF            | Always FFFF            |
Line 497: Line 470:
 
|                  |                  | in section 2.          |
 
|                  |                  | in section 2.          |
 
+---------------------------------------------------------------+
 
+---------------------------------------------------------------+
 +
 +
  
  
Line 517: Line 492:
  
 
Calculation of link delay is performed as follows:
 
Calculation of link delay is performed as follows:
 
 
// Start_time is a time stamp when Timer Request sent out
 
// Start_time is a time stamp when Timer Request sent out
 
// End_time is a time stamp when a Timer Response is
 
// End_time is a time stamp when a Timer Response is
Line 530: Line 504:
 
link_delay *= 6;  // Add the biasing
 
link_delay *= 6;  // Add the biasing
 
link_delay *= 55;  // Convert link delay to milliseconds
 
link_delay *= 55;  // Convert link delay to milliseconds
 
 
The "Link Delay" is used as the network transport time when
 
The "Link Delay" is used as the network transport time when
 
advertized in the IPX RIP packet tuple for the network entry "Common
 
advertized in the IPX RIP packet tuple for the network entry "Common
 
Net #". For a consistent network, a common link delay is required at
 
Net #". For a consistent network, a common link delay is required at
 
both ends of the link and is calculated by the link "Master".
 
both ends of the link and is calculated by the link "Master".
 
 
The Common Net # is supplied by the link "Master". This number must
 
The Common Net # is supplied by the link "Master". This number must
 
be unique in the connected internetwork. Each WAN call requires a
 
be unique in the connected internetwork. Each WAN call requires a
 
separate number.
 
separate number.
 
 
Currently only a single option is defined for the "Information
 
Currently only a single option is defined for the "Information
 
Request" packet for Routing Type=0.
 
Request" packet for Routing Type=0.
 +
 +
  
  
Line 570: Line 543:
  
 
=== RIP/SAP Information Response Packet (Router Type=0 Only) ===
 
=== RIP/SAP Information Response Packet (Router Type=0 Only) ===
 
 
+---------------------------------------------------------------+
 
+---------------------------------------------------------------+
 
| Checksum        | FF FF            | Always FFFF            |
 
| Checksum        | FF FF            | Always FFFF            |
Line 604: Line 576:
 
|                  |                  | in section 2.          |
 
|                  |                  | in section 2.          |
 
+---------------------------------------------------------------+
 
+---------------------------------------------------------------+
 
 
The responses contained within this packet are as described in
 
The responses contained within this packet are as described in
 
section 4.3.
 
section 4.3.
 +
== References ==
 +
[1] Simpson, W., "The Point-to-Point Protocol (PPP) for the
 +
    Transmission of Multi-protocol Datagrams over Point-to-Point
 +
    Links", RFC 1331, May 1992.
 +
[2] Malis, A., Robinson, D., and R. Ullman, "Multiprotocol
 +
    Interconnect on X.25 and ISDN in the Packet Mode", RFC 1356,
 +
    August 1992.
 +
  
== References ==
 
  
[1] Simpson, W., "The Point-to-Point Protocol (PPP) for the    Transmission of Multi-protocol Datagrams over Point-to-Point    Links", [[RFC1331|RFC 1331]], May 1992.
 
[2] Malis, A., Robinson, D., and R. Ullman, "Multiprotocol    Interconnect on X.25 and ISDN in the Packet Mode", [[RFC1356|RFC 1356]],    August 1992.
 
  
  
  
  
[3] Bradley, T., Brown, C., and A. Malis, "Multiprotocol Interconnect   over Frame Relay", [[RFC1294|RFC 1294]], January 1992.
+
[3] Bradley, T., Brown, C., and A. Malis, "Multiprotocol Interconnect
[4] Simpson, W., "The PPP Internetwork Packet Exchange Control   Protocol (IPXCP) Compromise Version", Work in Progress.
+
    over Frame Relay", RFC 1294, January 1992.
[5] Novell IPX Router Specification. Novell Part Number 107-000029-   001. (Note:  Currently, this document is only available as part   of a Novell developers program as part of an SDK. Novell Labs,   Provo (UT) should be able to provide more information on this   document.)
+
[4] Simpson, W., "The PPP Internetwork Packet Exchange Control
[6] Lewis, M., Telebit Corp. "IPX Header Compression based on Van   Jacobson Header Compression for TCP/IP", Work in Progress,   contact: ([email protected]).
+
    Protocol (IPXCP) Compromise Version", Work in Progress.
 +
[5] Novell IPX Router Specification. Novell Part Number 107-000029-
 +
    001. (Note:  Currently, this document is only available as part
 +
    of a Novell developers program as part of an SDK. Novell Labs,
 +
    Provo (UT) should be able to provide more information on this
 +
    document.)
 +
[6] Lewis, M., Telebit Corp. "IPX Header Compression based on Van
 +
    Jacobson Header Compression for TCP/IP", Work in Progress,
 +
    contact: ([email protected]).
 
== Security Considerations ==
 
== Security Considerations ==
 
 
     Security issues are not discussed in this memo.
 
     Security issues are not discussed in this memo.
 
 
== Author's Address ==
 
== Author's Address ==
 
 
     Michael Allen
 
     Michael Allen
 
     Novell, Inc.
 
     Novell, Inc.
 
     2180 Fortune Drive
 
     2180 Fortune Drive
 
     San Jose, CA 95131
 
     San Jose, CA 95131
 
 
     EMail: [email protected]
 
     EMail: [email protected]
 
 
     Chair's Address:
 
     Chair's Address:
 
 
     The working group can be contacted via the current chair:
 
     The working group can be contacted via the current chair:
 
 
     Brian Lloyd
 
     Brian Lloyd
 
     Lloyd & Associates
 
     Lloyd & Associates
 
     3420 Sudbury Road
 
     3420 Sudbury Road
 
     Cameron Park, California 95682
 
     Cameron Park, California 95682
 
 
     EMail: [email protected]
 
     EMail: [email protected]
 
 
     Phone: (916) 676-1147
 
     Phone: (916) 676-1147

Revision as of 06:58, 23 September 2020



Network Working Group M. Allen Request for Comments: 1362 Novell, Inc.

                                                      September 1992
           Novell IPX Over Various WAN Media (IPXWAN)

Status of this Memo This memo provides information for the Internet community. It does not specify an Internet standard. Distribution of this memo is unlimited. Abstract This document describes how Novell IPX operates over various WAN media. Specifically, it describes the common "IPX WAN" protocol Novell uses to exchange necessary router to router information prior to exchanging standard IPX routing information and traffic over WAN datalinks. Table of Contents 1. Introduction ................................................. 1 1.1. Operation Over PPP .......................................... 2 1.2. Operation Over X.25 Switched Virtual Circuits ............... 2 1.3. Operation Over X.25 Permanent Virtual Circuits .............. 2 1.4. Operation Over Frame Relay .................................. 3 1.5. Operation Over Other WAN Media .............................. 3 2. Glossary Of Terms ............................................ 3 3. IPX WAN Protocol Description ................................. 4 4. Information Exchange Packet Formats .......................... 5 4.1. Timer Request Packet ........................................ 6 4.2. Timer Response Packet ....................................... 8 4.3. Information Request Packet .................................. 10 4.4. Information Response Packet ................................. 12 5. References ................................................... 12 6. Security Considerations ...................................... 13 7. Author's Address.............................................. 13

Introduction

This document describes how Novell IPX operates over various WAN media. It is strongly motivated by a desire for IPX to treat ALL wide area links in the same manner. Sections 3 and 4 describe this common "IPX WAN" protocol.





IPX WAN protocol operation begins immediately after link establishment. While IPX is a connectionless datagram protocol, WANs are often connection-oriented. Different WANs have different methods of link establishment. The subsections of section 1 of this document describe what link establishment means to IPX for different media. They also describe other WAN-media-dependent aspects of IPX operation, such as protocol identification, frame encapsulation, and link tear down.

Operation Over PPP

IPX uses PPP [1] when operating over point-to-point synchronous and asynchronous networks. With PPP, link establishment means the IPX NCP [4] reaches the Open state. NetWare IPX will reject all NCP options, and uses normal frame encapsulation as defined by PPP. The IPXWAN protocol MUST NOT occur until the IPX NCP reaches the Open state. PPP allows either side of a connection to stop forwarding IPX if one end sends an IPXCP or an LCP Terminate-Request. When a router detects this, it will immediately reflect the lost connectivity in its routing information database instead of naturally aging it out.

Operation over X.25 Switched Virtual Circuits

With X.25, link establishment means successfully opening an X.25 virtual circuit. As specified in RFC-1356, "Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode" [2], the protocol identifier 0x800000008137 is used in the X.25 Call User Data field of the Call Request frame, and indicates that the virtual circuit will be devoted to IPX. Furthermore, each IPX packet is encapsulated directly in X.25 data frame sequences without additional framing. Either side of the virtual circuit may close it, thereby tearing down the IPX link. When a router detects this, it will immediately reflect the lost connectivity in its routing information database instead of naturally aging it out.

Operation over X.25 Permanent Virtual Circuits

The nature of X.25 PVC's is that no call request is made. When the router is informed that X.25 Layer 2 is up, the router should assume that link establishment is complete.





Each IPX packet is encapsulated in an X.25 data frame sequence without additional framing. Novell IPX assumes a particular X.25 permanent circuit is devoted to the use of IPX. If a router receives a layer 2 error condition (e.g., X.25 Restart), it should reflect lost connectivity for the permanent circuits in its routing information database and re-perform the necessary steps to obtain a full IPX connection.

Operation over Frame Relay

Novell conforms to RFC-1294, "Multiprotocol Interconnect over Frame Relay" [3] for frame relay service and packet encapsulation. Currently, Novell has not stabilized the method for treating frame relay connections - whether they treat the connections as LANs or WANs.

Operation over other WAN media

Additional WAN media will be added here as specifications are developed.

Glossary Of Terms

Primary Network Number:

  Every IPX WAN router has a "primary network number". This is an
  IPX network number unique to the entire internet.  This number
  will be a permanently assigned network number for the router.
  Those readers familiar with NetWare 3.x servers should realize
  that this is the "Internal" network number.

Router Name:

  Every IPX WAN router must have a "Router Name". This is a symbolic
  name given to the router. Its purpose is to allow routers to know
  who they are connected to after link establishment - particularly
  for network management purposes.  A symbolic name conveys more
  information to an operator than a set of numbers. The symbolic
  name should be between 1 and 47 characters in length containing
  the characters 'A' through 'Z', underscore (_), hyphen (-) and
  "at" sign (@). The string of characters should be followed by a
  null character (byte of zero) and padded to 48 characters using
  the null character.  Those readers familiar with NetWare 3.x
  servers should realize that the file server name is the Router
  Name.





IPX WAN Protocol Description

IPX WAN links have the concept of a LINK MASTER and a LINK SLAVE. This relationship is decided upon based on information contained within the first IPX packets transferred across the WAN link. After link establishment, both sides of the link send "Timer Request" packets and start a timer waiting for a "Timer Response". These "Timer Request" packets are sent every 20 seconds until a response is received or a time-out occurs trying to initialize a connection (the timer is restarted each time a new "Timer Request" is sent). The time-out should be configurable, and is normally about one minute. This is directly dependent on the call setup time for the connection. If a time-out occurs, the router issues a disconnect on the offending connection and optionally attempts to retry the connection. When a "Timer Request" is received, the router with the lowest primary network number MUST respond with a "Timer Response" packet - and become the "Slave" of the link. If the "Slave" determines that it cannot support any of the Routing Types included in the "Timer Request" packet, the "Slave" should issue a disconnect on the connection being established. The "Master" of the link (determined when a "Timer Response" packet is received) is responsible for defining the network number that is to be used as a common network number for the new WAN link, and for calculating the RIP transport time that will be advertized to other RIP routers for the new link. This is calculated by stopping the timer which was started when a "Timer Request" was initiated and applying the algorithm in section 4.2. To allow this, both sides of the link MUST have an adequate pool of WAN network numbers (unique within the internetwork) available to be assigned to the link when the call is fully completed. The "Master" of the link MUST then select a network number and construct an "Information Request" packet containing the calculated link delay, the common network number, and its own router name. On receiving this packet, the "Slave" MUST turn the packet around, overwrite the router name and node identifier and send an "Information Response". After the "Master" has received the "Information Response" and the "Slave" has received the "Information Request", standard IPX RIP and SAP packets are transferred across the WAN link, as currently defined for LAN links. The "IPX Router Specification" [5] contains information describing the Novell RIP/SAP protocol for third party developers. Note that the "Information Request" and "Information Response" packets are specific to the "Routing Type"=0 information exchanges.




With this routing type, no retransmission is made of any of the Information packets. If a response has not been received within the predefined time-out period, a disconnect is issued on the link, and the link can optionally be attempted later. If a router detects an error for which no suitable protocol response exists (e.g., unable to allocate a network number), the link should be terminated according to the relevant media specification. Under certain circumstances, particularly on X.25 permanent circuits, it is only possible to detect the remote router went away when it comes back up again. In this case, one side of the link receives a Timer Request packet when IPX is in a fully connected state. The side receiving the Timer Request MUST realize that a problem occurred, and revert to the IPX link establishment phase. Furthermore, the routing information learned from this connection should be immediately discarded.

Information Exchange Packet Formats

All IPX WAN information exchange packets conform to the standard Novell IPX packet format. The packets use the IPX defined packet type 04 defining a Packet Exchange Packet. The socket number 0x9004 is a Novell reserved socket number for exclusive use with IPX WAN information exchange. IPX defines that a network number of 0 is interpreted as being a local network of unknown number that requires no routing. This feature is of use to us in transferring these packets before the common network number is exchanged. Some routers need to know a "Node Number" (or MAC address) for each node on a link. Node numbers will be formed from the "WNode ID" field. The node number will be the 4 bytes of WNode ID followed by 2 bytes of zero. Router Type number assignment. Other vendors IPX routing protocols can make use of the IPXWAN protocol definition by obtaining Router Types from Novell. This document will then include the new Router Types (with the references to vendor protocol description documents). WOption Number assignment. These numbers only need to be assigned from Novell for the "Timer Request" and "Timer Response" packets. Other packet types (e.g., the "Information Request" packets, are dependent on the "Router Type" negotiated and can contain any (vendor defined) packet type other than 0 or 1. WOption numbers in these packets are then defined by the vendor defining the Routing Type. The same packet format should still be maintained.






Timer Request Packet

+---------------------------------------------------------------+ | Checksum | FF FF | Always FFFF | | Packet Length | 02 40 | Max IPX size (576 bytes| | | | Hi Lo order) | | Trans Control | 00 | Hops traversed | | Packet Type | 04 | Packet Exchange Packet | | Dest Net # | 00 00 00 00 | Local Network | | Dest Node # | FF FF FF FF FF FF | Broadcast | | Dest Socket # | 90 04 | Reserved WAN socket | | Source Net # | 00 00 00 00 | Local Network | | Source Node # | 00 00 00 00 00 00 | Set to zero | | Source Socket # | 90 04 | Reserved WAN socket | |------------------+-------------------+------------------------| | WIdentifier | 57 41 53 4D | Confidence identifier | | WPacket Type | 00 | Timer Request | | WNode ID | xx xx xx xx | Primary Net # of | | | | sending router | | | | (Hi Lo order) | | WSequence # | xx | Sequence start at 0 | | WNum Options | 02 | 2 Options follow | | WOption Number | 00 | Define Routing Type | | WAccept Option | 01 | 0=No,1=Yes,3=Not Applic| | WOption Data Len | 00 01 | Option length (Hi Lo) | | WOption Data | 00 | IPX RIP/SAP Routing | | WOption Number | FF | Pad option | | WAccept Option | 01 | 0=No,1=Yes,3=Not Applic| | WOption Data Len | 02 0E | Pad data length (Hi Lo)| | WOption Data | 00->FF's | Repeated sequence of 00| | | | through FF's. | +---------------------------------------------------------------+ Note:

    Timer Request packets will always be 576 bytes. However,
    there should be no assumption made about the number of
    options specified in this packet.

After link establishment, Timer Request packets are sent by both sides of the link. Each end starts their sequence number at zero. Subsequent retries (every 20 seconds) will increment the value of this sequence number. Only a Timer Response packet with a sequence number matching the last sent sequence number will be acted upon. When receiving this packet, the WNode ID should be compared to the receiver's Primary Network #. If the WNode ID is larger than the receiver's Primary Network #, a Timer Response packet should be sent, and the receiver should become the link "Slave".




Packets received on the reserved socket number not having the WIdentifier set to the hexadecimal values noted above should be discarded. Routing Type Option: A routing type of zero (0) is the minimum interoperability requirement (as defined by this document). A router ready to send a Timer Response (and receiving a routing type of zero) MUST respond with a routing type of zero. A router ready to send a Timer Response (and receiving routing types not matching a supported value) SHOULD respond with a Routing Type of zero indicating support for the minimum common protocol. Note that multiple Routing Type Options can be included in the Timer Request packet if the router supports multiple routing methods for IPX. The included Router Types MUST include and support this type zero option. Accept Option (for Routing Type and PAD options): This field MUST be set to YES if the option is supported, and NO if an option is not supported. A Timer Response MUST respond with ONLY one Router Type set to YES. PAD Option: This option will normally be the last entry in the packet. Its sole purpose is to fill the IPX packet to be 576 bytes. The pad option data will contain a repeating sequence of zero's through 0xFF's. This should stop compression modems from collapsing the packet and destroying the link delay calculation. Currently Assigned WOption Numbers (Timer Request Packet):

   Routing Type Option = 0x00;     Option Length = 0001
       Current option data values:
           0       Novell RIP/SAP routing with network
                   number assigned to the link.
   PAD Type Option     = 0xFF;     Option Length = Variable
   Compression Option  = 0x80;     Option Length = Variable
                     (length dependent on compression type)
       Current option data values:
           Byte 1  Compression type
               0 = Telebit compression (length=3) [6]
               Telebit Byte 2 - Compression options
               Telebit Byte 3 - Number compression slots




Timer Response Packet

+---------------------------------------------------------------+ | Checksum | FF FF | Always FFFF | | Packet Length | 02 40 | Max IPX size (576 bytes| | | | Hi Lo order) | | Trans Control | 00 | Hops traversed | | Packet Type | 04 | Packet Exchange Packet | | Dest Net # | 00 00 00 00 | Local Network | | Dest Node # | FF FF FF FF FF FF | Broadcast | | Dest Socket # | 90 04 | Reserved WAN socket | | Source Net # | 00 00 00 00 | Local Network | | Source Node # | 00 00 00 00 00 00 | Set to zero | | Source Socket # | 90 04 | Reserved WAN socket | |------------------+-------------------+------------------------| | WIdentifier | 57 41 53 4D | Confidence identifier | | WPacket Type | 01 | Timer Response | | WNode ID | xx xx xx xx | Primary Net # of | | | | sending router | | | | (Hi Lo order) | | WSequence # | xx | Same as Timer Request | | | | received | | WNum Options | 02 | 2 Options follow | | WOption Number | 00 | Define Routing Type | | WAccept Option | 01 | 0=No,1=Yes,3=Not Applic| | WOption Data Len | 00 01 | Option length (Hi Lo) | | WOption Data | 00 | IPX RIP/SAP Routing | | | | (Minimum interoperating| | | | requirement). Others | | | | may be defined by at a | | | | later date by Novell | | WOption Number | FF | Pad option | | WAccept Option | 01 | 0=No,1=Yes,3=Not Applic| | WOption Data Len | 02 0E | Pad data length (Hi Lo)| | WOption Data | 00->FF's | Repeated sequence of 00| | | | through FF's to stop | | | | compression modems | | | | doing any compression | | | | for link delay calc. | +---------------------------------------------------------------+ The responses contained within this packet are as described in section 4.1. Any unknown options or not supported options from the Timer Request should have the WAccept Option set to NO. If the Timer Request packet contained more than one Router Type option and the "Slave" supports all the options, the "Slave" should set the WAccept Option to NO on all Router Types except the Routing




Type which is to be adopted. The "Master" of the link will then adopt the routing option specified with the YES setting and complete further information exchanges according to that routing standard. This packet should contain the same sequence number as the received Timer Request. This packet should ONLY be sent by the router determining themselves to be the "Slave" of the link. Currently Assigned WOption Numbers (Timer Response Packet):

   Routing Type Option = 0x00;     Option Length = 0001
       Current option data values:
          0       Novell RIP/SAP routing with network
                  number assigned to the link.
   PAD Type Option     = 0xFF;     Option Length = Variable
   Compression Option  = 0x80;     Option Length = Variable
                     (length dependant on compression type)
       Current option data values:
           Byte 1  Compression type
               0 = Telebit compression (length=3) [6]
               Telebit Byte 2 - Compression options
               Telebit Byte 3 - Number compression slots

















RIP/SAP Information Request Packet (Router Type=0 Only)

+---------------------------------------------------------------+ | Checksum | FF FF | Always FFFF | | Packet Length | 00 63 | Size of header+data | | | | (Hi Lo order) | | Trans Control | 00 | Hops traversed | | Packet Type | 04 | Packet Exchange Packet | | Dest Net # | 00 00 00 00 | Local Network | | Dest Node # | FF FF FF FF FF FF | Broadcast | | Dest Socket # | 90 04 | Reserved WAN socket | | Source Net # | 00 00 00 00 | Local Network | | Source Node # | 00 00 00 00 00 00 | Set to zero | | Source Socket # | 90 04 | Reserved WAN socket | |------------------+-------------------+------------------------| | WIdentifier | 57 41 53 4D | Confidence identifier | | WPacket Type | 02 | Information Request | | WNode ID | xx xx xx xx | Primary Net # of | | | | sending router | | | | (Hi Lo order) | | WSequence # | 00 | Sequence start at 0 | | WNum Options | 01 | 1 Option to follow | | WOption Number | 01 | Define IPX RIP/SAP | | | | info exchange | | WAccept Option | 01 | 0=No,1=Yes,3=Not Applic| | WOption Data Len | 00 36 | Option length (Hi Lo) | | WOption Data | | | | Link Delay | xx xx | Hi Lo link delay in | | | | milli seconds (see | | | | below for calculation) | | Common Net # | xx xx xx xx | Hi Lo Common Network # | | Router Name | xx (x 48 decimal) | Router name - as defned| | | | in section 2. | +---------------------------------------------------------------+











Calculation of link delay is performed as follows: // Start_time is a time stamp when Timer Request sent out // End_time is a time stamp when a Timer Response is // received. link_delay = end_time - start_time; // 1/18th second // We are on a slow net, so add some biasing to help stop // multiple workstation sessions timing out on the link if (link_delay < 1) {

   link_delay = 1;

}/*IF*/ link_delay *= 6; // Add the biasing link_delay *= 55; // Convert link delay to milliseconds The "Link Delay" is used as the network transport time when advertized in the IPX RIP packet tuple for the network entry "Common Net #". For a consistent network, a common link delay is required at both ends of the link and is calculated by the link "Master". The Common Net # is supplied by the link "Master". This number must be unique in the connected internetwork. Each WAN call requires a separate number. Currently only a single option is defined for the "Information Request" packet for Routing Type=0.















RIP/SAP Information Response Packet (Router Type=0 Only)

+---------------------------------------------------------------+ | Checksum | FF FF | Always FFFF | | Packet Length | 00 63 | Size of header+data | | | | (Hi Lo Order) | | Trans Control | 00 | Hops traversed | | Packet Type | 04 | Packet Exchange Packet | | Dest Net # | 00 00 00 00 | Local Network | | Dest Node # | FF FF FF FF FF FF | Broadcast | | Dest Socket # | 90 04 | Reserved WAN socket | | Source Net # | 00 00 00 00 | Local Network | | Source Node # | 00 00 00 00 00 00 | Set to zero | | Source Socket # | 90 04 | Reserved WAN socket | |------------------+-------------------+------------------------| | WIdentifier | 57 41 53 4D | Confidence identifier | | WPacket Type | 03 | Information Response | | WNode ID | xx xx xx xx | Primary Net # of | | | | sending router | | | | (Hi Lo order) | | WSequence # | 00 | Sequence start at 0 | | WNum Options | 01 | 1 Option to follow | | WOption Number | 01 | Define IPX RIP/SAP | | | | info exchange | | WAccept Option | 01 | 0=No,1=Yes,3=Not Applic| | WOption Data Len | 00 36 | Option length (Hi Lo) | | WOption Data | | | | Link Delay | xx xx | Hi Lo link delay (as | | | | received in Info Requ) | | Common Net # | xx xx xx xx | Hi Lo Common Network # | | | | (as received in Info | | | | request) | | Router Name | xx (x 48 decimal) | Router name - as defned| | | | in section 2. | +---------------------------------------------------------------+ The responses contained within this packet are as described in section 4.3.

References

[1] Simpson, W., "The Point-to-Point Protocol (PPP) for the

   Transmission of Multi-protocol Datagrams over Point-to-Point
   Links", RFC 1331, May 1992.

[2] Malis, A., Robinson, D., and R. Ullman, "Multiprotocol

   Interconnect on X.25 and ISDN in the Packet Mode", RFC 1356,
   August 1992.




[3] Bradley, T., Brown, C., and A. Malis, "Multiprotocol Interconnect

   over Frame Relay", RFC 1294, January 1992.

[4] Simpson, W., "The PPP Internetwork Packet Exchange Control

   Protocol (IPXCP) Compromise Version", Work in Progress.

[5] Novell IPX Router Specification. Novell Part Number 107-000029-

   001. (Note:  Currently, this document is only available as part
   of a Novell developers program as part of an SDK. Novell Labs,
   Provo (UT) should be able to provide more information on this
   document.)

[6] Lewis, M., Telebit Corp. "IPX Header Compression based on Van

   Jacobson Header Compression for TCP/IP", Work in Progress,
   contact: ([email protected]).

Security Considerations

   Security issues are not discussed in this memo.

Author's Address

   Michael Allen
   Novell, Inc.
   2180 Fortune Drive
   San Jose, CA 95131
   EMail: [email protected]
   Chair's Address:
   The working group can be contacted via the current chair:
   Brian Lloyd
   Lloyd & Associates
   3420 Sudbury Road
   Cameron Park, California 95682
   EMail: [email protected]
   Phone: (916) 676-1147