1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333
|
<pre>Network Working Group D. Provan
Request for Comments: 1234 Novell, Inc.
June 1991
<span class="h1">Tunneling IPX Traffic through IP Networks</span>
Status of this Memo
This memo describes a method of encapsulating IPX datagrams within
UDP packets so that IPX traffic can travel across an IP internet.
This RFC specifies an IAB standards track protocol for the Internet
community, and requests discussion and suggestions for improvements.
Please refer to the current edition of the "IAB Official Protocol
Standards" for the standardization state and status of this protocol.
Distribution of this memo is unlimited.
Introduction
Internet Packet eXchange protocol (IPX) is the internetwork protocol
used by Novell's NetWare protocol suite. For the purposes of this
paper, IPX is functionally equivalent to the Internet Datagram
Protocol (IDP) from the Xerox Network Systems (XNS) protocol suite
[<a href="#ref-1" title=""Internet Transport Protocols"">1</a>]. This memo describes a method of encapsulating IPX datagrams
within UDP packets [<a href="#ref-2" title=""User Datagram Protocol"">2</a>] so that IPX traffic can travel across an IP
internet [<a href="#ref-3" title=""Internet Protocol"">3</a>].
This RFC allows an IPX implementation to view an IP internet as a
single IPX network. An implementation of this memo will encapsulate
IPX datagrams in UDP packets in the same way any hardware
implementation might encapsulate IPX datagrams in that hardware's
frames. IPX networks can be connected thusly across internets that
carry only IP traffic.
Packet Format
Each IPX datagram is carried in the data portion of a UDP packet.
All IP and UDP fields are set normally. Both the source and the
destination ports in the UDP packet should be set to the UDP port
value allocated by the Internet Assigned Numbers Authority for the
implementation of this encapsulation method.
As with any UDP application, the transmitting party has the option of
avoiding the overhead of the checksum by setting the UDP checksum to
zero. Since IPX implementations never use the IPX checksum to guard
IPX packets from damage, UDP checksumming is highly recommended for
IPX encapsulation.
<span class="grey">Provan [Page 1]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-2" ></span>
<span class="grey"><a href="./rfc1234">RFC 1234</a> IPX on IP June 1991</span>
+---------------------+------------+-------------------------------+
| | | | |
| IP Header | UDP Header | IPX Header | IPX packet data |
| (20 or more octets) | (8 octets) | (30 octets) | |
| | | | |
+---------------------+------------+-------------------------------+
Figure 1: An IPX packet carried as data in a UDP packet.
Reserved Packets
The first two octets of the IPX header contain the IPX checksum. IPX
packets are never sent with a checksum, so every IPX header begins
with two octets of FF hex. Implementations of this encapsulation
scheme should ignore packets with any other value in the first two
octets immediately following the UDP header. Other values are
reserved for possible future enhancements to this encapsulation
protocol.
Unicast Address Mappings
IPX addresses consist of a four octet network number and a six octet
host number. IPX uses the network number to route each packet
through the IPX internet to the destination network. Once the packet
arrives at the destination network, IPX uses the six octet host
number as the hardware address on that network.
Host numbers are also exchanged in the IPX headers of packets of
IPX's Routing Information Protocol (RIP). This supplies end nodes
and routers alike with the hardware address information required for
forwarding packets across intermediate networks on the way towards
the destination networks.
For implementations of this memo, the first two octets of the host
number will always be zero and the last four octets will be the
node's four octet IP address. This makes address mapping trivial for
unicast transmissions: the first two octets of the host number are
discarded, leaving the normal four octet IP address. The
encapsulation code should use this IP address as the destination
address of the UDP/IP tunnel packet.
Broadcasts between Peer Servers
IPX requires broadcast facilities so that NetWare servers and IPX
routers sharing a network can find one another. Since internet-wide
IP broadcast is neither appropriate nor available, some other
mechanism is required. For this memo, each server and router should
maintain a list of the IP addresses of the other IPX servers and
<span class="grey">Provan [Page 2]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-3" ></span>
<span class="grey"><a href="./rfc1234">RFC 1234</a> IPX on IP June 1991</span>
routers on the IP internet. I will refer to this list as the "peer
list", to individual members as "peers", and to all the peers taken
together, including the local node, as the "peer group". When IPX
requests a broadcast, the encapsulation implementation simulates the
broadcast by transmitting a separate unicast packet to each peer in
the peer list.
Because each peer list is constructed by hand, several groups of
peers can share the same IP internet without knowing about one
another. This differs from a normal IPX network in which all peers
would find each other automatically by using the hardware's broadcast
facility.
The list of peers at each node should contain all other peers in the
peer group. In most cases, connectivity will suffer if broadcasts
from one peer consistently fail to reach some other peer in the
group.
The peer list could be implemented using IP multicast [<a href="#ref-4" title=""Host Extensions for IP Multicasting"">4</a>], but since
multicast facilities are not widely available at this time, no well-
known multicast address has been assigned and no implementations
using multicast exist. As IP multicast is deployed in IP
implementations, it can be used by simply including in the peer list
an IP multicast address for IPX servers and routers. The IP
multicast address would replace the IP addresses of all peers which
will receive IP multicast packets sent from this peer.
Broadcasts by Clients
Typically, NetWare client nodes do not need to receive broadcasts, so
normally NetWare client nodes on the IP internet would not need to be
included in the peer lists at the servers.
On the other hand, clients on an IPX network need to send broadcasts
in order to locate servers and to discover routes. A client
implementation of UDP encapsulation can handle this by having a
configured list of the IP addresses of all servers and routers in the
peer group running on the IP internetwork. As with the peer list on
a server, the client implementation would simulate the broadcast by
sending a copy of the packet to each IP address in its list of IPX
servers and routers. One of the IP addresses in the list, perhaps
the only one, could be a broadcast address or, when available, a
multicast address. This allows the client to communicate with
members of the peer group without knowing their specific IP
addresses.
It's important to realize that broadcast packets sent from an IPX
client must be able to reach all servers and routers in the server
<span class="grey">Provan [Page 3]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-4" ></span>
<span class="grey"><a href="./rfc1234">RFC 1234</a> IPX on IP June 1991</span>
peer group. Unlike IP, which has a unicast redirect mechanism, IPX
end systems are responsible for discovering routing information by
broadcasting a packet requesting a router that can forward packets to
the desired destination. If such packets do not tend to reach the
entire server peer group, resources in the IPX internet may be
visible to an end system, yet unreachable by it.
Maximum Transmission Unit
Although larger IPX packets are possible, the standard maximum
transmission unit for IPX is 576 octets. Consequently, 576 octets is
the recommended default maximum transmission unit for IPX packets
being sent with this encapsulation technique. With the eight octet
UDP header and the 20 octet IP header, the resulting IP packets will
be 604 octets long. Note that this is larger than the 576 octet
maximum size IP implementations are required to accept [<a href="#ref-3" title=""Internet Protocol"">3</a>]. Any IP
implementation supporting this encapsulation technique must be
capable of receiving 604 octet IP packets.
As improvements in protocols and hardware allow for larger,
unfragmented IP transmission units, the 576 octet maximum IPX packet
size may become a liability. For this reason, it is recommended that
the IPX maximum transmission unit size be configurable in
implementations of this memo.
Security Issues
Using a wide-area, general purpose network such as an IP internet in
a position normally occupied by physical cabling introduces some
security problems not normally encountered in IPX internetworks.
Normal media are typically protected physically from outside access;
IP internets typically invite outside access.
The general effect is that the security of the entire IPX
internetwork is only as good as the security of the entire IP
internet through which it tunnels. The following broad classes of
attacks are possible:
1) Unauthorized IPX clients can gain access to resources through
normal access control attacks such as password cracking.
2) Unauthorized IPX gateways can divert IPX traffic to unintended
routes.
3) Unauthorized agents can monitor and manipulate IPX traffic
flowing over physical media used by the IP internet and under
control of the agent.
<span class="grey">Provan [Page 4]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-5" ></span>
<span class="grey"><a href="./rfc1234">RFC 1234</a> IPX on IP June 1991</span>
To a large extent, these security risks are typical of the risks
facing any other application using an IP internet. They are
mentioned here only because IPX is not normally suspicious of its
media. IPX network administrators will need to be aware of these
additional security risks.
Assigned Numbers
The Internet Assigned Numbers Authority assigns well-known UDP port
numbers. It has assigned port number 213 decimal to the IPX
encapsulation technique described in this memo [<a href="#ref-5" title=""Assigned Numbers"">5</a>].
Acknowledgements
This encapsulation technique was developed independently by Schneider
& Koch and by Novell. I'd like to thank Thomas Ruf of Schneider &
Koch for reviewing this memo to confirm its agreement with the
Schneider & Koch implementation and also for his other valuable
suggestions.
References
[<a id="ref-1">1</a>] Xerox, Corp., "Internet Transport Protocols", XSIS 028112, Xerox
Corporation, December 1981.
[<a id="ref-2">2</a>] Postel, J., "User Datagram Protocol", <a href="./rfc768">RFC 768</a>, USC/Information
Sciences Institute, August 1980.
[<a id="ref-3">3</a>] Postel, J., "Internet Protocol", <a href="./rfc791">RFC 791</a>, DARPA, September 1981.
[<a id="ref-4">4</a>] Deering, S., "Host Extensions for IP Multicasting", <a href="./rfc1112">RFC 1112</a>,
Stanford University, August 1989.
[<a id="ref-5">5</a>] Reynolds, J., and J. Postel, "Assigned Numbers", <a href="./rfc1060">RFC-1060</a>,
USC/Information Sciences Institute, March 1990.
Security Considerations
See the "Security Issues" section above.
<span class="grey">Provan [Page 5]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-6" ></span>
<span class="grey"><a href="./rfc1234">RFC 1234</a> IPX on IP June 1991</span>
Author's Address
Don Provan
Novell, Inc.
2180 Fortune Drive
San Jose, California, 95131
Phone: (408)473-8440
EMail: donp@Novell.Com
Provan [Page 6]
</pre>
|