# RIPng

ripngd supports the RIPng protocol as described in RFC 2080. It's an IPv6 reincarnation of the RIP protocol.

## Invoking ripngd

Configuration for the daemon should be saved in the FRR integrated configuration file located in /etc/frr/frr.conf, see Integrated Config File for more information on system configuration.

Prior versions of FRR supported reading and writing per-daemon config files; however, with the introduction of the centralized management daemon `mgmtd` this could no longer be supported.

In order to allow for an orderly transition from per-daemon config files to the integrated config file, FRR daemons will continue to try and read their specific per-daemon configuration file as before. Additionally the config can still be loaded directly using the `-f` or `--config-file` CLI options; however, these files will not be updated when the configuration is written (e.g., with the `write mem` command).

Warning

Per-daemon files will no longer be updated when the user issues a `write memory` command. Therefore these per-daemon config files should only be used as a mechanism for transitioning to the integrated config, and then removed.

There are no ripngd specific invocation options. Common options can be specified (Common Invocation Options).

## ripngd Configuration

Currently ripngd supports the following commands:

router ripng [vrf NAME]

  Enable RIPng.

network NETWORK

  Set RIPng enabled interface by NETWORK.

network IFNAME

  Set RIPng enabled interface by IFNAME.

route NETWORK

  Set RIPng static routing announcement of NETWORK.

allow-ecmp [1-MULTIPATH_NUM]

  Control how many ECMP paths RIPng can inject for the same prefix. If specified without a number, a maximum is taken (compiled with `--enable-multipath`).

default-information originate

  Distribute default route information.

default-metric (1-16)

  Set a metric of redistribute routes.

offset-list ACCESSLIST6_NAME <in|out> (0-16) [IFNAME]

  Modify RIPng metric based on access-list. The access-list is applied to incoming or outgoing updates, optionally on a specific interface.

passive-interface IFNAME

  Suppress routing updates on an interface.

redistribute PROTOCOL [{metric (0-16)|route-map RMAP_NAME}]

  Redistribute routes from other protocols into RIPng. Optionally specify metric or route-map for the redistributed routes.

aggregate-address X:X::X:X/M

  Set aggregate RIPng route announcement.

timers basic (1-65535) (1-65535) (1-65535)

  Set RIPng timers for update, timeout, and garbage collection intervals.

ipv6 distribute-list ACCESSLIST6_NAME <in|out> [IFNAME]

  Filter networks in routing updates using access-list. Can be applied to incoming or outgoing updates, optionally on a specific interface.

ipv6 distribute-list prefix PREFIXLIST6_NAME <in|out> [IFNAME]

  Filter networks in routing updates using prefix-list. Can be applied to incoming or outgoing updates, optionally on a specific interface.

## ripngd Terminal Mode Commands

show ipv6 ripng [vrf NAME]

  Show RIPng routes.

show ipv6 ripng [vrf NAME] status

  Show RIPng status and configuration.

show debugging ripng

  Show debugging status for RIPng.

debug ripng events

  Debug RIPng events.

debug ripng packet

  Debug RIPng packet processing.

debug ripng packet <recv|send>

  Debug specific packet direction (receive or send).

debug ripng zebra

  Debug RIPng and zebra communication.

clear ipv6 ripng [vrf WORD]

  Clear RIPng routes.

## ripngd Filtering Commands

RIPng routes can be filtered by a distribute-list.

distribute-list [prefix] LIST <in|out> IFNAME

  You can apply access lists to the interface with a distribute-list command. If prefix is specified LIST is a prefix-list. If prefix is not specified then LIST is the access list name. in specifies packets being received, and out specifies outgoing packets. Finally if an interface is specified it will be applied against a specific interface.

  The `distribute-list` command can be used to filter the RIPNG path. `distribute-list` can apply access-lists to a chosen interface. First, one should specify the access-list. Next, the name of the access-list is used in the distribute-list command. For example, in the following configuration `eth0` will permit only the paths that match the route 10.0.0.0/8

      !
      router ripng
       distribute-list private in eth0
      !
      access-list private permit 10 10.0.0.0/8
      access-list private deny any
      !

  distribute-list can be applied to both incoming and outgoing data.

## RIPng route-map

Usage of ripngd's route-map support.

Route-map statement (Route Maps) is needed to use route-map functionality.

match interface WORD

  This command match to incoming interface. Notation of this match is different from Cisco. Cisco uses a list of interfaces - NAME1 NAME2 ... NAMEN. Ripngd allows only one name (maybe will change in the future). Next - Cisco means interface which includes next-hop of routes (it is somewhat similar to "ipv6 next-hop" statement). Ripngd means interface where this route will be sent. This difference is because "next-hop" of same routes which sends to different interfaces must be different.

match ipv6 address WORD

match ipv6 address prefix-list WORD

  Match if route destination is permitted by access-list/prefix-list.

match metric (0-4294967295)

  This command match to the metric value of RIPng updates. For other protocol compatibility metric range is shown as (0-4294967295). But for RIPng protocol only the value range (0-16) make sense.

set ipv6 next-hop local IPV6_ADDRESS

  Set the link-local IPv6 nexthop address.

set metric (1-16)

  Set a metric for matched route when sending announcement. The metric value range is very large for compatibility with other protocols. For RIPng, valid metric values are from 1 to 16.

set tag <untagged|(1-4294967295)>

  Set a tag on the matched route.

## RIPng Interface Commands

ipv6 ripng split-horizon [poisoned-reverse]

  Configure split horizon on the interface. The optional poisoned-reverse parameter enables poisoned reverse split horizon.

## Sample configuration

    debug ripng events
    debug ripng packet

    router ripng
     network sit1
     route 3ffe:506::0/32
     distribute-list local-only out sit1

    ipv6 access-list local-only permit 3ffe:506::0/32
    ipv6 access-list local-only deny any