Internet DRAFT - draft-ietf-udlr-llencap

draft-ietf-udlr-llencap



HTTP/1.1 200 OK
Date: Tue, 09 Apr 2002 08:56:10 GMT
Server: Apache/1.3.20 (Unix)
Last-Modified: Fri, 05 Dec 1997 12:58:14 GMT
ETag: "2e7971-7e7e-3487fa66"
Accept-Ranges: bytes
Content-Length: 32382
Connection: close
Content-Type: text/plain







Network Working Group                                     Emmanuel Duros
Internet-Draft                                    INRIA Sophia-Antipolis
                                                           November 1997



       A Link Layer Tunneling Mechanism for Unidirectional Links


Status of this Memo

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

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

   To learn the current status of any Internet-Draft, please check the
   1id-abstracts.txt listing contained in the Internet-Drafts Shadow
   Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
   munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
   ftp.isi.edu (US West Coast).


Abstract

   This document describes a mechanism to emulate bidirectional
   connectivity between nodes that are directly connected by an
   unidirectional link. The "receiver" uses a link layer tunneling
   mechanism to forward datagrams to "feeds" through a bidirectional
   network.


1. Introduction

   Internet routing and upper layer protocols assume that links are
   bidirectional, i.e. directly connected hosts can communicate with
   each other on the same link.

   This Internet Draft describes a link layer tunneling mechanism which
   allows nodes that are directly connected by an unidirectional link
   (feeds and receivers) to send datagrams as if they were connected to
   a bidirectional link. The document presents a generic topology with a
   tunneling mechanism that supports multiple feeds and receivers.



Duros                                                           [Page 1]

Internet Draft           LL tunneling mechanism          Expiration date


   The tunneling mechanism is implemented at the link layer of
   unidirectional interfaces on every feed and every receiver. The aim
   is to hide to higher layers, i.e. network layer and above, the
   unidirectional feature of the link. The tunneling mechanism also
   includes an automatic tunnel configuration protocol which allows
   feeds and receivers to come up/down at any time.

   The tunneling mechanism uses Generic Routing Encapsulation [rfcGRE]
   and provides a means for carrying IP and ARP datagrams from receivers
   to feeds.

   The tunneling mechnism described in this Internet Draft was discussed
   and agreed upon by the UDLR working group.


2. Terminology

   Unidirectional link: A zero return bandwidth link, e.g. a satellite
       link with a receive only hardware.

   Feed: A router connected to an unidirectional link through a send-
       only interface.

   Receiver: A router connected to an unidirectional link through a
       receive-only interface.


3. Topology

   Feeds and receivers are connected via an undirectional link. Feeds
   can only send data over this unidirectional link, and receivers can
   only receive data from it. In the case of non transitive links, the
   feeds have both send and receive capabilities, and receivers have
   receive only capabilities. We focus in the rest of this document on
   unidirectional links only.

   A receiver has several interfaces, a receive-only interface and one
   or more added communication interfaces. A receiver is a router.

   A feed has several interfaces, a send-only interface and one or more
   added communication interfaces. A feed is a router.

   In the entire document we assume that feeds and receivers are
   connected to the Internet. A receiver and a feed can then communicate
   with each other using their bidirectional interface (Ethernet
   interface, PPP connection, etc.).

   Figure 1 depicts a generic topology with several feeds and several



Duros                                                           [Page 2]

Internet Draft           LL tunneling mechanism          Expiration date


   receivers.


                    Unidirectional Link

        ---->---------->------------------->------
         |          |               |           |
         |f1u       |f2u            |r2u        |r1u
     --------   --------        --------    --------   ----------
     |Feed 1|   |Feed 2|        |Recv 2|    |Recv 1|---|subnet A|
     --------   --------        --------    --------   ----------
         |f1b       |f2b            |r2b        |r1b      |
         |          |               |           |         |
        ----------------------------------------------------
        |                     Internet                     |
        ----------------------------------------------------


                    Figure 1: Generic topology


   f1u (resp. f2u) is the IP address of the 'Feed 1' (resp. Feed 2)
       unidirectional interface (send-only).

   f1b (resp. f2b) is the IP address of a 'Feed 1' (resp. Feed 2)
       bidirectional interface connected to the Internet.

   r1u (resp. r2u) is the IP address of the 'Receiver 1' (resp. Receiver
       2) unidirectional interface (receive-only).

   r1b (resp. r2b) is the IP address of a 'Receiver 1' (resp. Receiver
       2) bidirectional interface connected to the Internet.


4. Problems related to unidirectional links

   Most protocols in the Internet assume that links are bidirectional.
   In particular, routing protocols used by directly connected routers
   no longer behave properly in the presence of an unidirectional link.
   Indeed, receivers cannot send requests/responses or routing messages
   to feeds through their receive-only interface.

   The network layer has no knowledge of the underlying transmission
   technology except, it considers its access as bidirectional.
   Basically, for outgoing datagrams, the network layer selects the
   correct first hop on the connected network according to a routing
   table and passes the packet(s) to the appropriate link-layer driver.




Duros                                                           [Page 3]

Internet Draft           LL tunneling mechanism          Expiration date


   Referring to Figure 1, Recv 1 considers Feed 1 (IP address f1u) as
   belonging to a connected network. However, initiating a 'ping f1u' on
   Recv 1 cannot get a response from Feed 1. Recv 1 network layer
   delivers the packet to the driver of the receive-only interface,
   which obviously cannot send it to the feed.

   More generally, a datagram of any protocol which passes from the
   network layer to the driver of a receive-only interface is simply
   discarded.


5. Link layer tunneling mechanism

   This document describes a link layer tunneling mechanism allowing
   bidirectional communication between feeds and receivers in the
   presence of an unidirectional link. This mechanism has been designed
   to work for any topology regardless of the number of feeds and
   receivers. In particular, the special case of a single feed and
   multiple receivers is among the topologies supported.

   This link layer tunneling mechanism operates underneath the network
   layer. Its aim is to emulate a bidirectional link. It is transparent
   to the network layer: the link appears and behaves to the network
   layer as if it was bidirectional.

5.1. Tunneling mechanism at the receiver

   The tunneling mechanism is inserted at the link layer of the
   receive-only interface. As a datagram is delivered to the link layer
   from the network layer, it is encapsulated. This encapsulation can be
   performed in user space if a daemon can read the datagram from the
   link layer.

   The datagram is encapsulated behind an IP packet whose destination is
   the IP address of a feed bidirectional interface (f1b or f2b). The
   mechanism for a receiver to learn these addresses is explained in
   Section 5.3. The type of encapsulation is described in Section 6.

   The new datagram is passed to the network layer, which forwards it
   according to its destination address. The destination address is a
   feed bidirectional interface which is reachable via the Internet. The
   datagram is then routed via a receiver bidirectional interface. The

   We have to distinguish several cases as the datagram is to be
   tunneled according to its destination address. If the destination
   address is:

     1) the IP address of a feed unidirectional interface: the datagram



Duros                                                           [Page 4]

Internet Draft           LL tunneling mechanism          Expiration date


        is encapsulated, the destination address of the new datagram is
        the feed tunnel end-point.

     2) the broadcast address of the unidirectional link or the "all
        feeds" multicast address: a copy of the datagram is encapsulated
        and sent to every feed tunnel end-point.

     3) an IP address that belongs to the unidirectional network but is
        not a feed address: the datagram is encapsulated and sent to the
        tunnel end-point of the default feed. The default feed the one
        with the smallest IP number on the satellite link. This allows,
        for instance, for receivers to ping each other.

     4) an IP address different from the previous cases (any IP
        address):  the datagram is discarded, see Section 8.1.

   At this point, the network layer passes a datagram to the link layer
   of the unidirectional interface, which is encapsulated and sent to
   one or all the feeds.

5.2. Tunneling mechanism at the feed

   The feed listens to incoming encapsulated datagrams on its tunnel
   end-point. A packet is received from the bidirectional interface,
   traverses the IP stack, and goes into a decapsulation process.

   The original datagram is decapsulated and passed to link layer driver
   of the feed unidirectional interface. As a result, the datagram is
   processed as if it was coming from the send-only interface.

   If the datagram is an IP packet, it is delivered to the feed network
   layer. Since the datagram was encapsulated, its IP header has not
   been modified by intermediate routers. To the network layer, the
   datagram appears as coming from the send-only interface.

   The network layer forwards the datagram according to its destination
   address. If the destination address is:

     1) the IP address of the feed send-only interface or the
        unidirectional link broadcast IP address: the datagram is kept
        and delivered locally.

     2) otherwise it is forwarded according the feed routing tables. A
        receiver may ping another receiver on the unidirectional link,
        its request is forwarded by the feed to the destination.

5.3. Dynamic tunneling configuration: the HELLO protocol




Duros                                                           [Page 5]

Internet Draft           LL tunneling mechanism          Expiration date


   A receiver has to know the feed tunnel end-points in order to forward
   encapsulated datagrams. Tunnels must be configured and maintained
   dynamically in order to cope with the following events:

     1) as a new feed comes up, every receiver should create a tunnel to
        enable a bidirectional communication with it. Static tunneling
        configuration is not appropriate, as new feeds can be connected
        to the unidirectional link at any time.

     2) as the unidirectional link is down, receivers must disable their
        tunnels. The tunneling mechanism emulates bidirectional
        connectivity between a feed and a receiver. Therefore, if the
        unidirectional link is down, a feed should not receive datagrams
        from the receivers. Indeed there are protocols which consider a
        link as operational if they receive datagrams from it (e.g. the
        RIP protocol [rfcRIP]).

     3) as a feed is suddenly down, receivers must disable the
        corresponding tunnel. This prevents unecessary datagrams from
        being tunneled which would overload the Internet. For instance,
        there is no need for receivers to forward a broadcast message
        through a tunnel whose end-point is down.

   The HELLO protocol provides a means for receivers to dynamically
   discover the presence of feeds and maintain a list of operational
   tunnel end-points. It is based on periodical feed announcements over
   the unidirectional link which contain tunnel end-point addresses.
   Receivers listen to these announcements, discover the presence of
   feeds, and maintain a list of tunnel end-points.

5.3.1. The HELLO message

   The HELLO protocol is a 'unidirectional protocol', messages are only
   sent from feeds to receivers.

   The packet format is shown in Figure 2. Field sizes are given in
   octect. Fields contain binary integers, in normal Internet order with
   the most significant octet first. Each tick mark represents one bit.

   0                   1                   2                   3 3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  version (1)  |  command (1)  |      must be zero (2)         |
   +---------------+---------------+-------------------------------+
   |              Feed unidirectional IP address (4)               |
   +---------------------------------------------------------------+
   |              Feed bidirectional IP address (4)                |
   +---------------------------------------------------------------+



Duros                                                           [Page 6]

Internet Draft           LL tunneling mechanism          Expiration date


                       Figure 2: Packet Format

   Every datagram contains a version number, a command and two IP
   addresses.  The version number of the HELLO protocol is HELLO_VERSION
   (constant definitions are given in Section 5.3.5). The command field
   is used to specify the purpose of this datagram. Possible values of
   the command field implemented in the version HELLO_VERSION of the
   protocol are:

      1 - JOIN   A message announcing that the feed sending this message
           is up and running.

      2 - LEAVE  A message announcing that the feed sending this message
           is being shut down.

   The last two fields must be set regardless of the command (JOIN or
   LEAVE).

   The feed unidirectional IP address (FUIP) field is the IP address of
   the outgoing unidirectional interface of the feed which sends the
   HELLO packet.

   The feed bidirectional IP address (FBIP) field is the IP address of a
   feed bidirectional interface reachable via the Internet. A feed may
   have several bidirectional interfaces connected to the Internet, but
   only one is selected as FBIP. The choice of this interface is outside
   the scope of this Internet Draft. It is the feed administrator who
   selects the most suitable interface to announce. This address will be
   used by receivers as the tunnel end-point.

5.3.2. The HELLO protocol at the feed

   The HELLO protocol runs on top of UDP. Packets are sent to the
   broadcast address of the unidirectional link on port HELLO_PORT.

   The source address of HELLO packet is set to the IP address of the
   feed outgoing unidirectional interface.

   The process in charge of sending HELLO packets fills every field of
   the datagram according to the description given in Section 5.3.1.

   As long as a feed is up and running, it periodically announces its
   presence and bidirectional interface to receivers. It MUST send HELLO
   packets containing a JOIN command every HELLO_INTERVAL on the
   unidirectional link.

   Referring to Figure 1 in Section 3, Feed 1 (resp. Feed 2) sends HELLO
   messages with the FUIP field set to f1u (resp. f2u) and the FBIP



Duros                                                           [Page 7]

Internet Draft           LL tunneling mechanism          Expiration date


   field set to f1b (resp. f2b). Note that all FUIPs should have the
   same network prefix: the unidirectional network address.

   When a feed is about to be shut down, or when routing over the
   unidirectional link is about to be intentionally interrupted, it is
   recommended to:

     1) stop sending HELLO messages containing a JOIN command.

     2) send a HELLO message containing a LEAVE command to inform
        receivers that the feed is no longer performing routing over the
        unidirectional link.

5.3.3. The HELLO protocol at the receiver

   Based on the reception of HELLO messages, receivers discover the
   presence of feeds and keep trace of their corresponding tunnel end-
   points. Every receiver maintains a list of active feeds which
   contains pairs of (FUIP,FBIP).

   When a receiver is started, it MUST run a process which listens to
   incoming broadcast packets on port HELLO_PORT from its unidirectional
   interface. The list of active feeds is initially empty.

   Upon reception of a HELLO message, the process checks the version
   number of the protocol. If it is different from HELLO_VERSION, the
   packet is discarded and the process waits for the next incoming
   packet.

   After successfully checking the version number it is recommended to
   check that the FUIP contained in the packet is the same as the source
   address of the HELLO packet. Further action depends on the type of
   command:

   - JOIN:

      The process verifies if the pair (FUIP,FBIP) contained in the
      HELLO packet already belongs to the list of active feeds.

      If it does not, the pair (FUIP,FBIP) is added to the list of
      active feeds. A timer set to HELLO_LEAVE is associated with this
      pair.

      If it does, the timer associated with this pair is reset to
      HELLO_LEAVE.

      Referring to Figure 1 in Section 3, both receivers (recv 1 and
      recv 2) have a list of active feeds containing two pairs which are



Duros                                                           [Page 8]

Internet Draft           LL tunneling mechanism          Expiration date


      (f1u,f1b) and (f2u,f2b).

   - LEAVE:

      The process checks if the pair (FUIP,FBIP) contained in the HELLO
      packet belongs to the list of active feeds. If it does, it is
      deleted the list the corresponding timer is disabled. The LEAVE
      message provides a means of quickly updating the list of active
      feeds.

   A timout can have two reasons:

     1) a feed went down without sending a LEAVE message. As JOIN
        messages are not sent from this feed anymore, a timemout expires
        HELLO_LEAVE after receiving the last JOIN message.

     2) the unidirectional link is down. Thus, no more JOIN messages are
        received from the feeds. All the timeouts associated with pairs
        (FUIP,FBIP) will have expired HELLO_LEAVE after receiving the
        last JOIN message from the unidirectional link.

   In both cases, the associated (FUIP,FBIP) pair is removed from the
   list of active feeds. As either the feed does not route datagrams
   over the unidirectional link or the link is down, bidirectional
   connectivity cannot be ensured any longer between the receiver and
   the feed (FUIP). As a result, the list only contains operational
   tunnel end-points.

   The HELLO protocol provides receivers with the list of usable tunnel
   end-points (FBIP). In the following section, we describe how to
   integrate the HELLO protocol into the tunneling mechanism described
   in Sections 5.1 and 5.2.

5.3.4. Tunneling mechanism using the list of active feeds

   This section explains how the tunneling mechanism uses the list of
   active feeds to handle datagrams which are to be tunneled. Referring
   to Section 5.1, it shows how feed tunnel end-points are selected.

   Several cases are enumerated in Section 5.1 to determine where to
   forward a datagram according to its destination address. If the
   destination address is:

     1) the IP address of a feed unidirectional interface: this is TRUE
        if the address matches with a FUIP in the list of active feeds.
        The datagram is encapsulated and sent to the corresponding FBIP.

     2) the broadcast address of the unidirectional link or a multicast



Duros                                                           [Page 9]

Internet Draft           LL tunneling mechanism          Expiration date


        address: a copy of the datagram is encapsulated and sent to
        every FBIP in the list of active feeds. If the list is empty,
        the datagram is discarded.

     3) an IP address that belongs to the unidirectional network but is
        not a feed address (i.e., it does not match any FUIP in the list
        of active feeds): the datagram is encapsulated and sent to the
        smallest FUIP found in the list. If the list is empty, the
        datagram is discarded.

     4) an IP address different from cases 1), 2) and 3): the datagram
        is discarded.

5.3.5. Constant definitions

   HELLO_VERSION is 1.

   HELLO_INTERVAL is 10 seconds.

   HELLO_PORT is 620. It is a reserved port, no other traffic must be
      allowed.

   HELLO_LEAVE is 3*HELLO_INTERVAL, i.e. 30 seconds.


6. Generic Routing Encapsulation

   The encapsulation format is determined by the type of data which is
   to be tunneled. It must support the encapsulation of IP datagrams in
   order to tunnel IP datagrams from receivers to feed tunnel end-
   points.

   The unidirectional network may support hardware addressing. Before
   sending an IP datagram to a receiver, the feed must obtain the
   hardware address of the receiver unidirectional interface. The
   Address Resolution Protocol [rfcARP] is a 'method of Converting
   Protocol Addresses (e.g. IP addresses) to Local Network Addresses
   (e.g. Ethernet Addresses)'. It is a link layer protocol which assumes
   that links are bidirectional. If the link is unidirectional, a
   receiver cannot respond to an ARP request generated by a feed.

   Using the tunneling mechanism described in the previous sections, a
   receiver should be able to tunnel ARP responses to feeds. The
   encapsulation format must also support the encapsulation of the ARP
   protocol.

   The Generic Routing Encapsulation (GRE) [rfcGRE1702] specifies a
   protocol for encapsulating arbitrary packets within IP as the



Duros                                                          [Page 10]

Internet Draft           LL tunneling mechanism          Expiration date


   delivery protocol. GRE suits well our requirements, as it allows
   encapsulation of both the ARP and the IP protocol within IP.

6.1. Encapsulation format

   A GRE packet is composed of a header in which a type field specifies
   the encapsulated protocol (ARP, IP, IPX, etc.). See [rfcGRE1701] for
   details about the encapsulation. In our case only the support of ARP
   and IP MUST be implemented.

   A packet tunneled with a GRE encapsulation has the following format:
   the delivery header is an IP header whose destination is the tunnel
   end-point (FBIP), followed by a GRE header indicating if the payload
   is either an ARP message or an IP datagram. Figure 3 presents the
   entire encapsulated packet.

           ----------------------------------------
           |           IP delivery header         |
           |        destination addr = FBIP       |
           |         IP proto = GRE (0x47)        |
           ----------------------------------------
           |             GRE Header               |
           |   type = ARP (0x806) or IP (0x800)   |
           ----------------------------------------
           |            Payload packet            |
           |              ARP or IP               |
           ----------------------------------------

                 Figure 3: Encapsulated packet

6.2. GRE at the receiver

   The link layer driver of the receive-only interface can pass two
   types of datagrams to the encapsulation process. The link layer
   datagram format is as follow:

           ----------------------------------------
           |                 type                 |
           |      ARP (0x806) or IP (0x800)       |
           ----------------------------------------
           |                 data                 |
           |              ARP or IP               |
           ----------------------------------------

              Figure 4: Link Layer encapsulation

   An IP datagram delivered from the network layer to the link layer is
   encapsulated behind an IP type header. The link layer sending an ARP



Duros                                                          [Page 11]

Internet Draft           LL tunneling mechanism          Expiration date


   response to a feed encapsulates the response behind an ARP type
   header.

   The encapsulation process checks the type of protocol of the datagram
   read from the link layer. According to this, it obtains the
   destination address from the datagram, encapsulates the datagram
   behind a GRE header, and tunnels it following the requirements in
   Section 5.3.4.

6.3. GRE at the feed

   The decapsulation process receives the GRE packet and extracts the
   original datagram. The process passes the datagram (type+data) to the
   link layer driver of the send-only interface.

   The link layer determines what type of data it received (IP or ARP)
   and queues the packet for processing.


   The tunneling mechanism using a GRE encapsulation provides a mean for
   carrying IP and ARP datagrams from receivers to feeds. However the
   ARP protocol as described in [rfcARP] cannot work efficiently in
   spite of the link layer tunneling.


7. Address Resolution Protocol

   The ARP protocol has been designed originally for 10MBits Ethernet
   hardware where delays between directly connected hosts are very
   small. A host can get a response to an ARP request within a
   millisecond. For this reason, ARP is an on-demand mechanism, the ARP
   protocol requests a hardware address as it needs it.

   Our link layer mechanism emulates a bidirectional network in the
   presence of an unidirectional link. However, there are asymmetric
   delays between every (feed, receiver) pair. The back-channel between
   a receiver and a feed has varying delay because packets go through
   the Internet.  Furthermore, a typical example of unidirectional link
   is a GEO satellite link whose constant delay is 250 milliseconds.


   As a result, a feed may get a response to an ARP request at least 250
   ms later in some cases. If a feed has to forward packets at high data
   rates to a receiver whose hardware address is unknown, it will drop
   part of the packets. Indeed, the stream of packets is passed to the
   link layer driver of the feed send-only interface. When the first
   packet arrives, the link layer realizes it does not have the
   corresponding hardware address of the next hop, and sends an ARP



Duros                                                          [Page 12]

Internet Draft           LL tunneling mechanism          Expiration date


   request. While the link layer is waiting for the response (at least
   250 ms), IP packets are buffered by the feed. If it runs out of space
   before the ARP response arrives, IP packets will be dropped.

   Therefore, the ARP protocol has to be modified to take into account
   high latencies, as a simple on demand approach is not sufficient.


7.1. ARP at the receiver

   It is interesting to note that the link layer of the receive-only
   interface does not maintain an ARP cache table. The receiver always
   tunnels datagrams which are sent to feeds via the Internet.

   The receiver must be able to reply to ARP requests sent by feeds. As
   the link layer receives the request, it prepares the ARP response and
   passes it to the encapsulation process as described in Section 6.2.

   An on-demand ARP mechanism is not sufficient because feeds cannot get
   receiver hardware addresses quickly enough. Thus, ARP cache tables at
   feeds should be then constantly updated/refreshed. For that purpose,
   every receiver periodically sends encaspulated ARP responses to the
   list of active feeds. The interval is ARP_INTERVAL (constant
   definitions are given in Section 7.3). This mechanism can be
   implemented in the encapsulation process.

7.2. ARP at the feed

   A feed refreshes its ARP table every time it receives an ARP response
   from a receiver. If the entry does not exist, it is created,
   otherwise the ARP timer is reset to ARP_CLEAR.

   An ARP entry in the cache table is deleted after ARP_CLEAR. This
   happens when a receiver suddenly goes down and no longer sends
   periodical ARP responses.

   In spite of its possibly high latency, the classical on-demand ARP
   mechanism is still necessary. After a feed comes up it may need to
   forward a packet to a receiver. It is better to immediately initiate
   an ARP request and obtain the response short after 250 ms rather than
   within ARP_INTERVAL.

7.3. Constant definitions

   ARP_INTERVAL is 1 minute.

   ARP_CLEAR is 3*ARP_INTERVAL, i.e. 3 minutes.




Duros                                                          [Page 13]

Internet Draft           LL tunneling mechanism          Expiration date


8. Issues

8.1. Routing protocols

   The link layer tunneling mechanism hides from the network layer and
   above layers the fact that feeds and receivers are connected by an
   unidirectional link. Communication is bidirectional but asymmetric in
   bandwidths and delays.

   In order to incorporate unidirectional links in the Internet, feeds
   and receivers have to run routing protocols. They will work fine
   because feeds and receivers consider themselves as directly
   connected, and can exchange routing messages over the unidirectional
   link.

   However, routing protocols MUST be configured to take into account
   the link unidirectionality. IP routing must match the real topology
   of the Internet at network level. It is not the aim of the tunneling
   mechanism to forward the IP traffic, it MUST only be used to forward
   routing protocol messages from receivers to feeds. Routing protocols
   at the receivers MUST prevent IP traffic from being forwarded to
   their receive-only interface.

   For example, using RIP [rfcRIP], receivers announce reachable subnets
   to the feeds, but they must not take into account those announced by
   the feeds.

8.2. Scalability

   This Internet Draft does not discuss the case of a very large number
   of receivers and/or feeds. In case of a large number of feeds, it
   will probably be necessary to use multicast routing. Indeed, instead
   of sending a copy of a datagram to every entry of the list of active
   feeds, a single datagram could be sent on a reserved multicast group
   the feeds would listen to. However this requires that the receivers
   and the feeds are connected to the MBone.


9. References

   [rfc826] 'An Ethernet Address Resolution Protocol', David C. Plummer,
             November 1982

   [rfc1702] 'Generic Routing Encapsulation over IPv4 networks', S.
             Hanks, NetSmiths, Ltd., T. Li, D. Farinacci, P. Traina,
             cisco System, October 1994

   [rfc1701] 'Generic Routing Encapsulation (GRE)', S. Hanks, NetSmiths,



Duros                                                          [Page 14]

Internet Draft           LL tunneling mechanism          Expiration date


             Ltd., T. Li, D. Farinacci, P. Traina, cisco System, October
             1994

   [rfc1388] 'RIP Version 2 - Carrying Additional Information', G.
             Malkin, Xylogics, Inc., January 1993

Author's address

   Emmanuel Duros
   INRIA Sophia Antipolis
   2004, Route des Lucioles BP 93
   06902 Sophia Antipolis CEDEX France

   Email : Emmanuel.Duros@sophia.inria.fr
   Phone : +33 4 93 65 79 42




































Duros                                                          [Page 15]