Network Working Group                                         Tao Zijin
Internet Draft                                             Gong Zhenghu
                                                              Lu Zexin
                                                          Wang Baosheng
                                                             Wang Hong
                                                              Li Sudan
                                                            Liu YaPing
                      National University of Defense Technology, China
                                                                Bi Jun
                                                            Wu JianPing
                                               Tsinghua University,China
Intended status: Informational
Expires: April 20, 2012                                 November 14, 2011

     OSPFv3-based Intra-Domain Source-Address Validation Implementation
                          draft-tao-savi-savo-01


Abstract

   This memo describes SAVO SAVI, a source address validation mechanism
   for IPv6 networks based on the OSPFv3 protocol within Intra-Domain
   field. The proposed mechanism is intended to complement ingress
   filtering techniques to provide a higher granularity on the control
   of the forged source addresses and it can deal with the asymmetric
   routing for which the common uRPF scheme ([RFC2827]) may fail.

   The proposed SAVO mechanism does not need any additional
   communication between the routers in which the SAVO mechanism has
   been implemented and deployed. It can be incrementally deployed by
   the network manager and when it is only partially deployed it still
   helps to restrict the effect of the source address forging. It
   provides proactive incentives for the users who deploy it for they
   will be able to filter the packets with forged source address to a
   certain range, especially when the forged addresses are in the range
   of OSPF route prefixes.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79. This document may not be modified,
   and derivative works of it may not be created, and it may not be
   published except as an Internet-Draft.

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79. This document may not be modified,
   and derivative works of it may not be created, except to publish it
   as an RFC and to translate it into languages other than English.



Tao Zijin             Expires April 20, 2012               [Page 1]


Internet-Draft                SAVO SAVI                   October 2011


   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November 10,
   2008. The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

   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."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

   This Internet-Draft will expire on February 20, 2012.



Copyright Notice

   Copyright (c) 2011 IETF Trust and the persons identified as the
   document authors. All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document. Please review these documents carefully,
   as they describe your rights and restrictions with respect to this
   document. Code Components extracted from this document must include
   Simplified BSD License text as described in Section 4.e of the Trust
   Legal Provisions and are provided without warranty as described in
   the Simplified BSD License.




Tao Zijin             Expires April 20, 2012               [Page 2]


Internet-Draft                SAVO SAVI                   October 2011


   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document. Please review these documents carefully,
   as they describe your rights and restrictions with respect to this
   document.



Table of Contents


   1. Introduction ................................................ 3
   2. SAVO SAVI specification...................................... 8
      2.1. The SAVO Basic Algorithm for Calculating the Possible Valid
      Incoming Interface (BA-VII) of a certain router in a area..... 8
      2.2. Calculating the Incoming Interfaces for Source Addresses in
      intra-area route prefix..................................... 11
      2.3. Calculating the Incoming Interfaces for source address in
      inter-area route prefix..................................... 12
      2.4. Calculating the Incoming Interfaces for source addresses in
      AS-external route prefix.................................... 13
   3. Routing Policy Considerations............................... 14
   4. Security Considerations..................................... 14
   5. Deployment Considerations................................... 14
   6. References ................................................. 15
      6.1. Normative References................................... 15
      6.2. Informative References................................. 15
   Appendix A. SAVO Related Algorithms............................ 16
      A.1. Equal-Cost Parent-Vertex Search Algorithm(ECPS) for a known
      vertex in a SPF tree........................................ 16
      A.2. Basic Algorithm of the Valid Incoming Interfaces for a given
      router(BVIIA) .............................................. 17
   7. Conventions used in this document........................... 19

1. Introduction

   This memo describes SAVO SAVI, a source address validation mechanism
   for IPv6 networks based on the OSPFv3 protocol within Intra-Domain
   field. The proposed mechanism is intended to complement ingress
   filtering techniques to provide a higher granularity on the control
   of the forged source addresses and it can deal with the asymmetric
   routing for which the common uRPF scheme ([RFC2827]) may fail.

   The filtering rules constructed by SAVO are completely based on the
   OSPF protocol, their aims are to filter the packets with invalid or



Tao Zijin             Expires April 20, 2012               [Page 3]


Internet-Draft                SAVO SAVI                   October 2011


   forged source addresses and their keywords to match are the source
   address prefixes which are the same as the OSPF route prefixes.

   The OSPF is one of the most widely used Intra-Domain routing
   protocols in Internet nowadays. For the next generation Internet, the
   main network layer protocol is IPv6, and OSPFv3 [1] is proposed as a
   substitute for OSPFv2[2] in IPv6 routing.

   OSPF is an IGP, used within an AS which is divided into areas, the
   topology of an area is hidden from the rest of the Autonomous System,
   and in the area the SPF technology is used as the routing means.

   In OSPF, the main consideration is on how to get an optimal route
   (i.e. nexthop) to a designated destination. In the routing
   calculation of OSPF, the destination address can be converted to its
   associated routers or links, hence the best route (nexthop) to the
   destination can be got by searching the corresponding Router-id or
   Link-id in the shortest path tree.

   In this draft, on the contrary, the main point is on how to get all
   the possible incoming interfaces for designated source addresses
   which are in the current OSPF routing table of the router. If the
   packets with the forged source addresses which are in the OSPF route
   prefixes come from the unintended interfaces, they can be filtered by
   the SAVO router.

   In OSPF, each router is identified by a certain router-id which is
   unique in the domain. The OSPF routes are advertised by each router
   via a certain type of Link State Advertisement (LSA). For OSPFv3, the
   intra-area route prefix is advertised by intra-area-prefix-LSAs (Type
   9), The inter-area route prefix is advertised via the inter-area-
   prefix-LSA (Type 5), and the AS-external route prefix is advertised
   via the AS-external-LSA (Type 7).

   As the route prefix is advertised by one or more certain router(s)
   with a unique router-id, the route prefix is associated with the
   associated router. From the source address validation's perspective,
   the valid (OSPF) source address prefix must be the address prefix
   advertised by the OSPF router. So if a router learned a route prefix,
   and the route prefix, which can be seen as a source address prefix,
   must come from one or more router(s) associated with the prefix. Here
   the word 'associated' router means the router either has advertised
   the prefix (as the DR or BDR of the link) or has a link which has the
   corresponding address prefix configured but not necessarily has
   advertised the route prefix.




Tao Zijin             Expires April 20, 2012               [Page 4]


Internet-Draft                SAVO SAVI                   October 2011


   From the routing perspective, the router searches and constructs the
   shortest path from itself to all other routers in the domain by the
   topology information received and stored in its link-state database.
   The result of the shortest path constructing is an appropriate
   nexthop or multiple equal-cost nexthops which the router selects to
   be the first hop of the shortest path.

   In OSPF, to the intra-area route prefix, the nexthop is the first hop
   of the shortest path to the destination in the area; to the inter-
   area prefix, the nexthop is the first hop of the shortest path to the
   border-router(only for Cisco's implementation of the OSPF, which is
   distinct from the original specification of the OSPF); to the
   external route prefix, the nexthop is first hop of the shortest path
   to the advertising router which may be intra-area or inter-area due
   to its relative position in the domain.

   From the source address validation perspective, the router analyses
   and constructs all the possible paths by which another router in the
   domain may choose to get to it. The SAVO router considers all the
   previous hops of the possible paths standing at the position of
   another router. The way considering the possible paths is just the
   reverse of the way considering the shortest path, the only difference
   is just between 'all' and 'one'---from the source address validation
   perspective, all the possible shortest paths should be taken in
   account and included, which can be expressed as n-->n, while from the
   routing perspective only the shortest one of them is considered to be
   useful without considering the equal-cost paths, which can be
   expressed as n-->1.

   After the SAVO router has completed the OSPF route calculation and
   writing the route to the IPv6 route table, it can compute the valid
   incoming interfaces of those routes according to the collected LSDB
   information which is also used by the route computation. The
   filtering rules for certain source address prefixes can be
   constructed by the valid incoming interfaces of those prefixes. The
   filter rules can be implemented as the Access Control List (ACL) or
   IPTable rules.

   The basic assumption of SAVO is as follows:

   o The router is the agent or representative of the routing prefix,
   every networking host or device should connect to the network by
   accessing the routers, the address prefixes of routers' links are the
   real address prefixes of the networking hosts or devices;

   o the identity of a router is identified by a Router-id which is
   unique in the network;


Tao Zijin             Expires April 20, 2012               [Page 5]


Internet-Draft                SAVO SAVI                   October 2011


   o The LSDBs of all routers in a area are synchronized;

   o The inter-area route of every router is determined by selecting the
   best route from its border route table.

   In Figure 1, to router RT7, the route (nexthop) to network N1 can
   only be RT3, while the packets with the source address prefix N1 may
   come from RT3 or RT6. To network N2, there are two routers (RT8 and
   RT9) on the link, the packets with the source address prefix N2 may
   come from any one of them, but there may be only one of them which is
   the Designated Router (DR) of the link has advertised it to router
   RT7, and router RT7 can get the valid incoming interfaces of N2 from
   the corresponding Router LSA and Network LSA about the network N2.

                                      ,'    N3 o     `.
                                     /         |       \
                                    ;          |        :
                                    | Area 3   10       |
                                    :          |        ;
                                     \    RT9  o       /
                                      `.       |     ,'
                                        `.     10  ,'       _.------.
                                          `----+--'     ,-''         `--
        +------------.                 ;       |      ,'
       /           RT6`.        RT1-''      RT2|- .  /    RT5         N1
      /              o--+--48---,'o-----48-----o---`;-10---o----10-----o
     /               |   \     /  |            |    |\
    /                |    \   ;   |N4          |    : :
   /     Area 2      10    \  |   10   Area 0  1     \|        Area 1
  +                  |      : :   |            |      `.
  |               RT7|      |  \  |            | RT4 /  '--.         _.-
  |                  o----1-+---`.o-----30-----o   ,'       `------''
  |                 /|      |   RT3--.         _.-'
  |                / |      ;|        `------''
  |              ,"  1       |
  `.            /    |       ,
   |           1  RT8|       |
   |          /      o       |
   |        ,"       |       ,
   |       /         |       |
   |      o----------|       /
   |    RT9       N2 |      /
   `-.               |    ,"
      `-._           o   /
          `-.-----------+
                    Figure 1 A sample Autonomous System


Tao Zijin             Expires April 20, 2012               [Page 6]


Internet-Draft                SAVO SAVI                   October 2011


   In Figure 1, to router RT2 and RT4, the route to network N4 is via
   RT1 and RT3 separately, but from the source address validation
   perspective, both the RT1 and RT3 are the valid source routers for
   source address N4.

   SAVO satisfies the basic source address validation principles which
   are hierarchical architecture (multi-fence solutions), solutions for
   IPv6 first, proactive protection, incrementally deployable
   (incomplete deployment is still beneficial), provide incentive for
   deployment. The most important feature of SAVO may lies in that the
   user can deploy the SAVO independently to get the info of all the
   possible incoming paths of the OSPFv3 route prefix without any
   communication with other routers.

   SAVO SAVI is designed to provide a calculation method of all the
   valid incoming interfaces of certain OSPF route prefixes only based
   on local OSPF Link State (LS) information. This deployment model is
   at the level of intra-AS source address validation in the SAVA
   Testbed [RFC5210]. Even with partial deployment, SAVO can proactively
   limit an attacker's ability to spoof packets. This design allows the
   user to determine which interfaces the packets of certain source
   address should arrive by its own route information without
   additionally communicating with other routers. So, if a router which
   has deployed SAVO, it can filter the packets with source addresses
   matched with the OSPF route prefix and coming from the invalid
   incoming interfaces calculated by SAVO at the ingress side while
   allowing the same packets coming from other valid interfaces. The
   filter method used by the router may be Access Control List (ACL),
   iptables (for Linux), or others.

   As the SAVO belongs to Ingress Filtering, it is natual to compare
   SAVO with Reverse Path Forwarding [RFC2827]. The main advantage of
   SAVO over RPF is that it can deal with the asymmetric routing, which
   will lead to improperly discarding packets with valid source
   addresses when RPF is used. Another advantage may be at the level of
   filtering granularity, to the RPF, when there is a default route, the
   RPF may accept the packets with spoofed source when the router can
   not find the completely matched incoming interface, but to the SAVO,
   the matching operation is much more accurate for the filtering rules
   are much more concrete and address pertinent.

   The main idea of SAVO comes from the iDPF which is proposed by Z.
   Duan et al in a paper named "Controlling IP Spoofing through
   Interdomain Packet Filters", where the iDPF is mainly proposed to
   deal with the source address forging in the inter-domain cases, where
   the BGP protocol is used as the main routing protocol.



Tao Zijin             Expires April 20, 2012               [Page 7]


Internet-Draft                SAVO SAVI                   October 2011


   To SAVO and iDPF, every router judge the reality of source addresses
   by its own routing information, and to do the verification by
   filtering the packets with the forged source address. The filtering
   rules formed by SAVO do not depend on any extra communication but the
   OSPF itself. SAVO tries to find all the valid source routers for the
   indicated source address prefixes, but in some cases SAVO can not
   assure the unique incoming source of some source address prefixes,
   that is to say the SAVO router may pass the packets with truly
   spoofed source addresses but can't filter the packets with valid
   source addresses.

2. SAVO SAVI specification

2.1. The SAVO Basic Algorithm for Calculating the Possible Valid
   Incoming Interface (BA-VII) of a certain router in a area

   The SAVO Basic Algorithm (BA-VII) is used to calculate the possible
   VII for a certain router in a area. The VII of a source address
   prefix can be indirectly got by the SBA with the associated router of
   the prefix in a designated area.

   As the OSPF uses the shortest path algorithm proposed by Dijkstra to
   calculate a route to a certain router, for the SAVO router to
   calculate the possible valid incoming interface (VII) from another
   router to itself is just equal to finding the last hop of itself in
   the reverse shortest reaching path (RSRP) of that router. Appendix A
   gives an equal-cost parent-vertex (the lasthop of the current router
   in the Reverse Shortest Path Tree) search algorithm and the detailed
   process of BA-VII.

   The reverse shortest reaching path (RSRP) is just the shortest path
   by which another router used to reach the current router in a area.
   From the current router's perspective, the RSRP is a shortest path
   with another router as root, instead of itself. The RSRP may also
   have multiple equal-cost paths which is the same as that in OSPF
   [RFC2328]. The best way to get the RSRP is to calculate the Reverse
   Shortest Path Tree using the destined router as the root by the LSDB
   information stored in the OSPF router, which is the same as that used
   in getting the SPT with the current router as root.

   As you know, every route prefix is associated with an original router
   via which the host send its packets with the source address in that
   prefix into the network. To a route prefix of a calculating router
   learned from other routers and stored in its routing table, the word
   'original' means all the routers which have advertised the same route
   prefix of the type of intra-area, inter-area or AS-external. For the
   intra-area route prefix, it is associated with a Router-ID or


Tao Zijin             Expires April 20, 2012               [Page 8]


Internet-Draft                SAVO SAVI                   October 2011


   Network-ID. For the inter-area route prefix, it is associated with a
   Router-ID. For the AS-external route prefix, the situation is a
   little complicated as the advertiser of the route may be inter-area
   and the associated router is determined by the location of the
   'forwarding address' field in the AS-external LSA.

   As the router calculates the route to a certain destination route
   prefix in a area using the shortest-path tree with itself as the root
   and each router in a area has an identical link-state database
   [RFC2328], it is natural to use the information in the existing
   shortest-path tree (SPT) to speculate the reverse shortest reaching
   path of a certain router.

   If every link's cost in a area, which is defined as 'associated with
   the output side of each router interface' in [RFC2328] is the same
   (called Symmetric Link, SL) to each attached router, then the area is
   defined to be an Symmetric Area (SA), otherwise the area is defined
   to be an Asymmetric Area(ASA).

   In a SA, a router's Shortest Path (SP) to another router is the same
   as the Reverse Shortest Reaching Path (RSRP) from that router. In an
   ASA, the SP may be distinct from the RSRP and the router has to
   calculate the RSRP with the target router as root using the link-
   state information stored in its database, just as the computing of
   shortest path tree with itself as root. Since each participating
   router in a area has an identical and complete link-state database,
   it is possible to do the RSRP computation for all routers in the area.
   At the same time, as the symmetry and/or asymmetry of an area may
   vary due to some newly received router LSA and Network LSA, the
   symmetry of the area MUST be checked when the topology have changed.

   Figure 2 expresses the actions to be taken after a SAVO router has
   received a new Router LSA or Network LSA. If the network topology
   changes frequently, the ACCURATE mode may lead the router not able to
   keep with the quick change of the route but the SIMPLE mode only need
   the symmetry information of a certain area which is much easier to
   get than to get every router's RSPT in the area.

   So, there exists two ways to calculate the possible incoming
   interfaces of a packet that one is using the SPT of itself, the other
   is calculating the RSRP with the role of another router. The first
   way is SIMPLE, but may be wrong when there are asymmetric links. The
   second way is ACCURATE but lead to a higher calculation burden.

   Two RSRP calculation modes are proposed here: one is SIMPLE mode,
   which uses the SPT of the router with itself as root to compute the
   possible incoming interfaces of a certain source address (prefix),


Tao Zijin             Expires April 20, 2012               [Page 9]


Internet-Draft                SAVO SAVI                   October 2011


   which may be wrong when there are one or more asymmetric link(s) the
   other is ACCURATE mode, which uses the link-state information to
   calculate the target router's shortest path to itself, which may
   introduce extra computation load. The ACCURATE mode is based on the
   indicated router's RSRP which can be calculated by the same link-
   state information used to calculate the SPT. As the name of ACCURATE
   mode has indicated, it can speculate the valid incoming interfaces of
   certain source address prefixes accurately. When the ACCURATE mode is
   implemented and used in a SAVO router, an extra calculation thread
   different from the current OSPF routing calculation thread may be
   introduced to reduce the performance impact on the routing process.

    +-------------------------------------+
    |  Received Network LSA or Router LSA |
    +---+--------------+------------------+
                       |
    +------------------+------------------+
    | (Re)Compute the SPT with itself as  |
    |   the root in the corresponding area|
    +-----------------+-------------------+
                      |
                   _,.+.__
           __..--''       `'`--...__         No (SIMPLE mode)
     ,.,-''     ACCURATE mode ?     `i=..._________
      `--.._                   _,.--'              |
            `'--.._      _,.--'                    |
                   `'-+''                          |
                      |Yes                         |
  +-----------------------------------+   +-----------------+
  | (Re)Compute the Reverse SPT with  |   | (Re)Compute the |
  | every other router as the root    |   |  symmetry of    |
  | in the cooressponding area        |   |  of the area    |
  +-----------------------------------+   +-----------------+
                          |               __.--'
                          |         __.--'
                          |   __.--'
  +-----------------------+--'----------------------------+
  | (Re)Compute the Valid Incoming Interfaces of the      |
  | corresponding source address prefix using the new RSPT|
  | or area symmetry                                      |
  +-------------------------------------------------------+
     Figure 2 Actions after newly received a Network LSA or Router LSA

   Although the SIMPLE mode is not so accurate as the ACCURATE mode and
   may be wrong when there are asymmetric links, it is much more
   efficient in calculation than the ACCURATE mode. When there are
   asymmetric links in a area, the remedy to correct the mistake of the
   SIMPLE mode can be adding all links of that area in the current
   router as the possible incoming interfaces in that area.



Tao Zijin             Expires April 20, 2012              [Page 10]


Internet-Draft                SAVO SAVI                   October 2011


   When calculating the valid incoming interfaces for the SIMPLE mode,
   the only work that is need to do is to judge whether an area is
   symmetric or not, and if any one link of the area is not symmetric
   then the area is not symmetric anymore and no any other computation
   is needed, so the computation burden is light to the SAVO router and
   the SIMPLE mode can adapt to the change of the network topology
   quickly. If the area is symmetric, the result of SIMPLE mode is the
   same as ACCURATE mode but to the asymmetric area, its result is not
   so accurate that there may be more cases that the packets of spoofed
   source addresses are passed without being filtered than that of
   ACCURATE mode and the probability of falsely passing that kind of
   packets is dependent on the number of interfaces in a area.

   The extra computation load introduced by the ACCURATE mode depends on
   the number of routers and links in a area and for each router except
   the calculating router itself the Dijkstra shortest path algorithm
   has to be run again if the router-LSAs or network-LSAs in a certain
   area have been changed. So the running times of Dijkstra algorithm in
   a SAVO router with ACCURATE mode is at least accumulation of the
   number of routers in each area decreased by one, which may be a high
   computation burden on the router. For an area with n nodes, the SAVO
   router needs to compute the Reverse Shortest Path Tree (RSPT) for n-1
   times and the SPT for 1 time. As the algorithm complexity of
   Dijikstra is O(n^2), the complexity of the ACCURATE mode is O(n^3),
   which is a rank higher than that of the SIMPLE mode.

   The ACCURATE and SIMPLE mode forms the basics of the SAVO algorithm,
   and all the other algorithms used to calculate the incoming
   interfaces of the three types of route which will be introduced below
   is based on the basic algorithm of the valid incoming interfaces (BA-
   VII).

2.2. Calculating the Incoming Interfaces for Source Addresses in intra-
   area route prefix

   This section explains how to calculate the valid incoming interfaces
   for the source address in intra-area route prefix.

   Since the intra-area route is calculated by the intra-area-prefix-
   LSAs, it is natural to analyze the possible incoming interfaces of a
   intra-area route from the intra-area-prefix-LSAs stored in the LSDB.

   From the OSPF specification, if the router has received all the
   intra-area-prefix-LSA, inter-area-prefix-LSA, AS-external-LSA which
   are of the same prefix, then the router should set the route type to
   intra-area because the intra-area route type is preferred over the
   other two types. The following steps are the process to analyze the


Tao Zijin             Expires April 20, 2012              [Page 11]


Internet-Draft                SAVO SAVI                   October 2011


   possible incoming interface when the router has just got an intra-
   area route and at the last step the algorithms to calculate the VII
   of the inter-area route and AS-external route are used to analyze the
   exceptional cases when there are LSAs of the type of inter-area or
   AS-external and have advertised the same route prefix, and the other
   two algorithms will be introduced below.

   (1) Search all the valid intra-area-prefix-LSAs that match the route
   prefix in all area's LSDB;

   (2) If the corresponding LSA is found, then look up what type of LSA
   is the current LSA referred to, which may be Network LSA or Router
   LSA;

   (3) If the referred LSA is of Network Type, then find what routers
   are the corresponding Network LSA associated to and the associated
   routers is the possible source router of that route prefix except the
   current router itself. The attached routers of a network link must be
   associated routers but the associated routers may not be the attached
   routers since the associated routers may be introduced indirectly by
   the DR who has advertised the Network LSA;

   (4) If the referred LSA is of Router Type, then the corresponding
   router is the associated router;

   (5) Get the VII of the associated routers by the Basic Algorithm of
   the Valid Incoming Interfaces for a given router(BVIIA), and the
   input parameter of the BIIA are the router id of the associated
   router, the corresponding area and the router id of myself;

   (6) Further more, consider the exceptional cases which may exist when
   the router has received some inter-area-prefix-LSAs and/or AS-
   external LSA with the same prefix just as there are the routes with
   the same prefix which type is inter-area or AS-external. The
   corresponding methods to deal with these two kinds of LSAs may be
   described below.

2.3. Calculating the Incoming Interfaces for Source Addresses in Inter-
   Area Route Prefix

   As in the previous intra-area cases, when the router has got a inter-
   area route there may exist some AS-external LSAs advertising the same
   prefix as the inter-area route, since the inter-area-prefix-LSAs are
   preferred over the AS-external LSAs.

   The following steps are the process to analyze the possible incoming
   interfaces when the router has just got an inter-area route and at


Tao Zijin             Expires April 20, 2012              [Page 12]


Internet-Draft                SAVO SAVI                   October 2011


   the last step the algorithm to calculate the VII of the AS-external
   route are used to analyze the exceptional case when there are some
   AS-external LSAs with the same prefix, and the algorithm for the AS-
   external route will be introduced as follows.

   (1) Search all the valid inter-area-prefix-LSAs that match the route
   prefix in all area's LSDB and can be used to generate that route;

   (2) If the corresponding LSA has been found, then the advertiser of
   that LSA is the associated router;

   (3) Get the VII of the associated router by Basic Algorithm of the
   Valid Incoming Interfaces for a given router(BVIIA), and the input
   parameter of the BIIA are the router id of the associated router, the
   corresponding area and the router id of myself;

   (4) Furthermore, consider the exceptional case which may exist when
   the router has received some AS-external LSA with the same prefix
   just as there are the routes with the same prefix which type is AS-
   external. The corresponding methods to deal with this kind of LSAs
   may be described below.

2.4. Calculating the Incoming Interfaces for Source Addresses in AS-
   External Route Prefix

   The VII algorithm for the AS-external route is a little more
   complicated than that of the other two types of route, for which the
   reason is that the AS-external route depends on the location of the
   advertised router or the forwarding router listed in the LSA, which
   may be intra-area or inter-area depending on whether or not the
   router has received some inter-area-router-LSAs. From OSPF
   specification, it is known if the router does not have any route
   information of the forwarding router, the AS-external LSA should be
   ignored. So if the router has got an AS-external route, it must exist
   some route information of the forwarding router in the SPF tree of
   one area or the top-level border-router table. The VII algorithm of
   the AS-external route is as follows.

   (1) Search the router's top level LSDB to find the proper AS-external
   LSA which match the AS-external route prefix;

   (2) According to the OSPF specification, if the forwarding router
   field of the found LSA is zero, then the forwarding router is the
   advertising router of the LSA, or the forwarding router is indicated
   by this field value. So first search the forwarding router in each
   area's SPF tree to see if the router id of the forwarding router is
   in it and if found, then calculate the VII of the forwarding router


Tao Zijin             Expires April 20, 2012              [Page 13]


Internet-Draft                SAVO SAVI                   October 2011


   by the Basic Algorithm of the Valid Incoming Interfaces for a given
   router(BVIIA);

   (3) Search in each area's LSDB to find if there are some matched
   inter-area-router-LSAs which destination router id field describes
   the inter-area route to the forwarding router, and if it exists such
   LSAs, then the advertising routers of those LSAs should be the
   associated routers and calculate the VII of those routers in the
   corresponding area by the BA-VII.

3. Routing Policy Considerations

   In general, most current routing policies of OSPF is about how to
   deal with the formed routes, such as whether it is allowed to
   redistribute a certain route into the OSPF. With the current
   experience there are no routing policies set to deal with the
   received LSAs nowadays. When the formed route matches a route policy
   rule (route-map), it is dealt with as the rule has indicated.

   From the perspective of accuracy and correctness of the routing and
   SAVO rules' calculation, the routing policy does not affect the
   calculation result directly. On the other hand, SAVO calculation only
   needs the OSPF's LSDB info and does not depends on the routing policy.
   If needed, the network administrator may add some source address
   validation rules to permit or deny the indicated incoming interfaces
   for some source addresses according to the special situation of the
   current network.

4. Security Considerations

   First of all, it should be noted that the function of the SAVO
   solution heavily depends on the security of the OSPF protocol itself.
   It is assumed that all the OSPF protocol packets are authenticated
   and believable, so the router's link state information is credible.
   In particular, according to OSPFv3 specification, the security of the
   OSPF can be achieved by the IP Authentication Header (see [IPAUTH])
   and the IP Encapsulating Security Payload (see [IPESP]).

   Since SAVO does not generate and send any protocol packets, the SAVO
   itself does not need any additional security scheme.

5. Deployment Considerations

   Though the SAVO can be deployed arbitrarily, the network manager can
   select the most appropriate sites to deploy SAVO to decrease the
   calculation cost and at the same time to achieve the best prevention
   effects as the AS is under a unified management. The desired goal of


Tao Zijin             Expires April 20, 2012              [Page 14]


Internet-Draft                SAVO SAVI                   October 2011


   SAVO is try to deploy it in less number of sites but to achieve the
   same coverage ratio and the same effectiveness as SAVO was deployed
   widely.

   From the OSPF specification, we know that the whole network has a
   backbone area (which is denoted as Area 0) and every inter-area route
   must transit through area 0 and the related area-border routers. In
   SAVO specification, if the source address prefix is intra-area, the
   VII can be calculated by the RSRP or SPT directly. So the most
   appropriate deployment sites may lie in all the area-border routers
   as the area-border routers knows more intra-are route than other
   routers. When all the area borders have deployed SAVO, they can form
   a source address forging prevention circle as the forged packets can
   not transit through the area border into the backbone.

   The prototype of SAVO has been implemented in the OSPF6 software
   package of Quagga Routing Suite in Linux by this draft's proposers.

6. References

6.1. Normative References

      [RFC2328]          Moy, J., "OSPF Version 2", STD 54, RFC 2328,
                         April 1998.

      [RFC5340]           Coltun, R., Ferguson, D., and J. Moy, "OSPF
                         for IPv6", RFC 5340, December 1999.

      [RFC2827]          Ferguson, P. and D. Senie, "Network Ingress
                         Filtering:              Defeating Denial of
                         Service Attacks which employ IP Source
                         Address Spoofing", BCP 38, RFC 2827, May 2000.

6.2. Informative References

       [DPF]              K. Park and H. Lee, On the effectiveness of
                         route-based packet filtering for distributed
                         DoS attack prevention in power-law internets,
                         in Proc. ACM SIGCOMM, San Diego, CA, Aug. 2001.

      [iDPF]              Z. Duan, X. Yuan, and J. Chandrashekar,
                         "Controlling IP Spoofing through Interdomain
                         Packet Filters," IEEE TRANSACTIONS ON
                         DEPENDABLE AND SECURE COMPUTING, vol. 5, pp.
                         22-36, 2008.




Tao Zijin             Expires April 20, 2012              [Page 15]


Internet-Draft                SAVO SAVI                   October 2011


Appendix A.                   SAVO Related Algorithms

A.1. Equal-Cost Parent-Vertex Search Algorithm(ECPS) for a known vertex
in a SPF tree

   If we have got the Reverse SPF tree and want to know from which
   interface will the root node come to the current node, it can not be
   got directly from the Reverse SPF tree as from the SPF tree because
   there is no direct nexthop information in the Reverse SPF tree. So
   the incoming interfaces of a certain vertex in the Reverse SPF tree
   can only be got indirectly from its parent vertex which can be
   calculated by the following code. Further more, if we have got the
   parent vertex information, we can get the incoming interfaces from
   the router's LINK LSDB.

   The following code is described in C-like code, and each vertex is
   represendted as a structure of ospf6_vertex, the root node is v and
   has a child list for each vertex in the SPF tree and the vertex to be
   searched is represented as search_vertex_id.

   void equal_cost_parent_vertex( struct prefix search_vertex_id, struct
   ospf6_vertex *v, struct ospf6_vertex **prev,   int prev_vertex_num)

   {

     struct listnode *node, *nnode;

     struct ospf6_vertex *c;

     for (ALL_LIST_ELEMENTS (v->child_list, node, nnode, c))

     {

    if(prefix_same(&c->vertex_id, search_vertex_id) &&
   (*prev_vertex_num) < NUM_EQUAL_COST_PARENT_VERTEX)

    {

         /* have found the matched vertex */

       if(*prev_vertex_num == 0)

      {

        /* have found the first one, only record */

      prev[*prev_vertex_num] = c->parent; /*record the parent vertex */


Tao Zijin             Expires April 20, 2012              [Page 16]


Internet-Draft                SAVO SAVI                   October 2011


       (*prev_vertex_num) ++;

        vertex_cost = c->cost;

      }else if(c->cost < vertex_cost)

    {

       prev[0] = c->parent;

       (*prev_vertex_num) = 1;

       vertex_cost = c->cost;

     }else if(c->cost == vertex_cost)   // equal-cost vertex

     {

       prev[*prev_vertex_num] = c->parent;

       (*prev_vertex_num) ++;

       vertex_cost = c->cost;

      }

    }

      equal_cost_parent_vertex (search_vertex_id, c, prev,
                                prev_vertex_num);

   }

A.2. Basic Algorithm of the Valid Incoming Interfaces for a given
router(BVIIA)

   If the router wants to calculate all the possible incoming interfaces
   for a given router in an area, then the BVIIA is to be used. The
   BVIIA is the basic of the whole SAVO scheme, so it is named 'basic'.

   The input parameter of the BVIIA is the current router id, the router
   id of the router to be calculated and the given area; the output
   results are the valid incoming interfaces of the destination router.
   The SPF tree of the area with the destination router as the root is
   known beforehand, and the ACCURATE and SIMPLE modes are both
   considered in the BVIIA. The resulted duplicate incoming interfaces
   are to be ignored when they had been added to the router before.


Tao Zijin             Expires April 20, 2012              [Page 17]


Internet-Draft                SAVO SAVI                   October 2011


   The whole process of the BVIIA is listed as follows.

   (1) To determine if the area is symmetric or not, for that the area
   is symmetric if and only if all links in the area are symmetric. A
   link is symmetric when the two cost of each direction of the link are
   equal;

   (2) If the area is symmetric, the router looks up the SPF tree of the
   area with itself as the root to get the nexthop and output
   interface's index (ifindex) information for the destination router
   and the information can be used as the valid input interfaces for the
   destined router. For the equal-cost multi-path cases, there may be
   multiple equal-cost nexthops and output interfaces for the destined
   router;

   (3) After we have got the valid incoming interface's ifindex value,
   the ifindex(s) can be added the router's access control system if no
   duplicate ifindex value had been added before;

   (4) If the area is not a symmetric area, then the router has to
   differentiate between the ACCURATE mode and the SIMPLE mode. If the
   current working mode of SAVO is SIMPLE, then all interfaces in the
   area are considered to be valid. Else, the router has to look up the
   reverse SPF tree which root is the destined router to find the valid
   incoming previous hop information for the current router by the BVIIA;

   (5) If the router has got the valid previous hop information, then it
   need to match the previous hop(s) with the Link LSAs stored in each
   area's link LSDB to get the valid incoming interface's ifindex value;

   (6) Step (3) will be needed again to add the desired ifindex value to
   the access control system.

   According to the OSPF specification, if the forwarding router field
   of the found LSA is zero, then the forwarding router is the
   advertising router of the LSA, or the forwarding router is indicated
   by this field value. First, it is to search the forwarding router in
   each area's SPF tree to see if the router id of the forwarding router
   is in it and if found, then calculate the VII of the forwarding
   router by the Basic Valid Incoming Interface Algorithm (BVIIA).

   (3) Search in each area's LSDB to find if there are some matched
   inter-area-router-LSAs which destination router id field describes
   the inter-area route to the forwarding router, and if it exists such
   LSAs, then the advertising routers of those LSAs should be the
   associated routers and calculate the VII of those routers in the
   corresponding area by the BIIA.


Tao Zijin             Expires April 20, 2012              [Page 18]


Internet-Draft                SAVO SAVI                   October 2011


7. Conventions Used in This Document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC-2119 [RFC2119].

   In this document, these words will appear with that interpretation
   only when in ALL CAPS. Lower case uses of these words are not to be
   interpreted as carrying RFC-2119 significance.

   In this document, the characters ">>" preceding an indented line(s)
   indicates a compliance requirement statement using the key words
   listed above. This convention aids reviewers in quickly identifying
   or finding the explicit compliance requirements of this RFC.

Authors' Addresses

      Tao Zijin
      National University of Defense Technology
      DeYa Road 47
      Changsha, Hunan Province 410073
      CHINA

      Phone: 86 731 84574844
      Email: taozj888@163.com
      URI:   http://www.nudt.edu.cn






















Tao Zijin             Expires April 20, 2012              [Page 19]