mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-06-14 18:35:31 +00:00
doc: Add documentation for PBRD
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
e5c83d9b31
commit
a6c93cb20f
@ -26,6 +26,10 @@ man_MANS += $(MANPAGE_BUILDDIR)/pimd.8
|
|||||||
man_MANS += $(MANPAGE_BUILDDIR)/mtracebis.8
|
man_MANS += $(MANPAGE_BUILDDIR)/mtracebis.8
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if PBRD
|
||||||
|
man_MANS += $(MANPAGE_BUILDDIR)/pbrd.8
|
||||||
|
endif
|
||||||
|
|
||||||
if BGPD
|
if BGPD
|
||||||
man_MANS += $(MANPAGE_BUILDDIR)/bgpd.8
|
man_MANS += $(MANPAGE_BUILDDIR)/bgpd.8
|
||||||
endif
|
endif
|
||||||
@ -140,6 +144,7 @@ EXTRA_DIST = frr-sphinx.mk \
|
|||||||
manpages/ospfd.rst \
|
manpages/ospfd.rst \
|
||||||
manpages/pimd.rst \
|
manpages/pimd.rst \
|
||||||
manpages/ripd.rst \
|
manpages/ripd.rst \
|
||||||
|
manpages/pbrd.rst \
|
||||||
manpages/ripngd.rst \
|
manpages/ripngd.rst \
|
||||||
manpages/vtysh.rst \
|
manpages/vtysh.rst \
|
||||||
manpages/watchfrr.rst \
|
manpages/watchfrr.rst \
|
||||||
@ -202,6 +207,7 @@ EXTRA_DIST = frr-sphinx.mk \
|
|||||||
user/overview.rst \
|
user/overview.rst \
|
||||||
user/pim.rst \
|
user/pim.rst \
|
||||||
user/ripd.rst \
|
user/ripd.rst \
|
||||||
|
user/pbr.rst \
|
||||||
user/ripngd.rst \
|
user/ripngd.rst \
|
||||||
user/routemap.rst \
|
user/routemap.rst \
|
||||||
user/routeserver.rst \
|
user/routeserver.rst \
|
||||||
|
@ -122,6 +122,7 @@ These following options control the daemon's VTY (interactive command line) inte
|
|||||||
pimd 2611
|
pimd 2611
|
||||||
ldpd 2612
|
ldpd 2612
|
||||||
eigrpd 2613
|
eigrpd 2613
|
||||||
|
pbrd 2615
|
||||||
|
|
||||||
Port 2607 is used for ospfd's Opaque LSA API, while port 2600 is used for the (insecure) TCP-ZEBRA interface.
|
Port 2607 is used for ospfd's Opaque LSA API, while port 2600 is used for the (insecure) TCP-ZEBRA interface.
|
||||||
|
|
||||||
|
@ -318,6 +318,7 @@ man_pages = [
|
|||||||
('ldpd', 'ldpd', fwfrr.format("an LDP "), [], 8),
|
('ldpd', 'ldpd', fwfrr.format("an LDP "), [], 8),
|
||||||
('nhrpd', 'nhrpd', fwfrr.format("a Next Hop Routing Protocol "), [], 8),
|
('nhrpd', 'nhrpd', fwfrr.format("a Next Hop Routing Protocol "), [], 8),
|
||||||
('pimd', 'pimd', fwfrr.format("a PIM "), [], 8),
|
('pimd', 'pimd', fwfrr.format("a PIM "), [], 8),
|
||||||
|
('pbrd', 'pbrd', fwfrr.format("a PBR "), [], 8),
|
||||||
('mtracebis', 'mtracebis', "a multicast trace client", [], 8),
|
('mtracebis', 'mtracebis', "a multicast trace client", [], 8),
|
||||||
('ripd', 'ripd', fwfrr.format("a RIP "), [], 8),
|
('ripd', 'ripd', fwfrr.format("a RIP "), [], 8),
|
||||||
('ripngd', 'ripngd', fwfrr.format("a RIPNG "), [], 8),
|
('ripngd', 'ripngd', fwfrr.format("a RIPNG "), [], 8),
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
.. |synopsis-options| replace:: [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path] [-u user] [-g group] [-A vty-addr] [-P vty-port] [-M module[:options]] [-N pathspace] [--vty_socket vty-path] [--moduledir module-path]
|
.. |synopsis-options| replace:: [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path] [-u user] [-g group] [-A vty-addr] [-P vty-port] [-M module[:options]] [-N pathspace] [--vty_socket vty-path] [--moduledir module-path]
|
||||||
.. |synopsis-options-hv| replace:: [-h] [-v]
|
.. |synopsis-options-hv| replace:: [-h] [-v]
|
||||||
.. |seealso-programs| replace:: zebra(8), vtysh(1), ripd(8), ripngd(8), ospfd(8), ospf6d(8), bgpd(8), isisd(8), babeld(8), nhrpd(8), pimd(8), ldpd(8), eigrpd(8), mtracebis(8)
|
.. |seealso-programs| replace:: zebra(8), vtysh(1), ripd(8), ripngd(8), ospfd(8), ospf6d(8), bgpd(8), isisd(8), babeld(8), nhrpd(8), pimd(8), pbrd(8), ldpd(8), eigrpd(8), mtracebis(8)
|
||||||
|
@ -18,6 +18,7 @@ Welcome to FRR's documentation!
|
|||||||
ospfclient
|
ospfclient
|
||||||
ospfd
|
ospfd
|
||||||
pimd
|
pimd
|
||||||
|
pbrd
|
||||||
mtracebis
|
mtracebis
|
||||||
ripd
|
ripd
|
||||||
ripngd
|
ripngd
|
||||||
|
39
doc/manpages/pbrd.rst
Normal file
39
doc/manpages/pbrd.rst
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
****
|
||||||
|
PBRD
|
||||||
|
****
|
||||||
|
|
||||||
|
.. include:: defines.rst
|
||||||
|
.. |DAEMON| replace:: pbrd
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
========
|
||||||
|
|DAEMON| |synopsis-options-hv|
|
||||||
|
|
||||||
|
|DAEMON| |synopsis-options|
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
===========
|
||||||
|
|DAEMON| is a routing component that works with the FRRouting engine.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
=======
|
||||||
|
OPTIONS available for the |DAEMON| command:
|
||||||
|
|
||||||
|
.. include:: common-options.rst
|
||||||
|
|
||||||
|
FILES
|
||||||
|
=====
|
||||||
|
|
||||||
|
|INSTALL_PREFIX_SBIN|/|DAEMON|
|
||||||
|
The default location of the |DAEMON| binary.
|
||||||
|
|
||||||
|
|INSTALL_PREFIX_ETC|/|DAEMON|.conf
|
||||||
|
The default location of the |DAEMON| config file.
|
||||||
|
|
||||||
|
$(PWD)/|DAEMON|.log
|
||||||
|
If the |DAEMON| process is configured to output logs to a file, then you
|
||||||
|
will find this file in the directory where you started |DAEMON|.
|
||||||
|
|
||||||
|
.. include:: epilogue.rst
|
||||||
|
|
||||||
|
|
@ -22,6 +22,7 @@ Welcome to FRR's documentation!
|
|||||||
ospfd
|
ospfd
|
||||||
ospf6d
|
ospf6d
|
||||||
pim
|
pim
|
||||||
|
pbr
|
||||||
ripd
|
ripd
|
||||||
ripngd
|
ripngd
|
||||||
vnc
|
vnc
|
||||||
|
130
doc/user/pbr.rst
Normal file
130
doc/user/pbr.rst
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
.. _pbr:
|
||||||
|
|
||||||
|
***
|
||||||
|
PBR
|
||||||
|
***
|
||||||
|
|
||||||
|
:abbr:`PBR` is Policy Based Routing. This implementation supports a very
|
||||||
|
simple interface to allow admins to influence routing on their router. At
|
||||||
|
this time you can only match on destination and source prefixes for
|
||||||
|
an incoming interface. At this point in time, this implementation will
|
||||||
|
only work on Linux.
|
||||||
|
|
||||||
|
.. _starting-pbr:
|
||||||
|
|
||||||
|
STARTING PBR
|
||||||
|
============
|
||||||
|
|
||||||
|
Default configuration file for *pbrd* is :file:`pbrd.conf`. The typical
|
||||||
|
location of :file:`pbrd.conf` is |INSTALL_PREFIX_ETC|/pbrd.conf.
|
||||||
|
|
||||||
|
If the user is using integrated config, then :file:`pbrd.conf` need
|
||||||
|
not be present and the :file:`frr.conf` is read instead.
|
||||||
|
|
||||||
|
.. program:: pbrd
|
||||||
|
|
||||||
|
:abbr:`PBR` supports all the common FRR daemon start options which are
|
||||||
|
documented elsewhere.
|
||||||
|
|
||||||
|
.. _nexthop-groups:
|
||||||
|
|
||||||
|
NEXTHOP GROUPS
|
||||||
|
==============
|
||||||
|
|
||||||
|
Nexthop groups are a way to encapsulate ECMP information together. It's a
|
||||||
|
listing of ECMP nexthops used to forward packets for when a pbr-map is
|
||||||
|
matched.
|
||||||
|
|
||||||
|
.. index:: nexthop-group
|
||||||
|
.. clicmd:: nexthop-group NAME
|
||||||
|
|
||||||
|
Create a nexthop-group with an associated NAME. This will put
|
||||||
|
you into a sub-mode where you can specify individual nexthops.
|
||||||
|
To exit this mode type exit or end as per normal conventions
|
||||||
|
for leaving a sub-mode.
|
||||||
|
|
||||||
|
.. clicmd:: nexthop [A.B.C.D|X:X::X:XX] [interface] [nexthop-vrf NAME]
|
||||||
|
|
||||||
|
Create a v4 or v6 nexthop. All normal rules for creating nexthops
|
||||||
|
that you are used to are allowed here. The syntax was intentionally
|
||||||
|
kept the same as creating nexthops as you would for static routes.
|
||||||
|
|
||||||
|
.. _pbr-maps:
|
||||||
|
|
||||||
|
PBR MAPS
|
||||||
|
========
|
||||||
|
|
||||||
|
PBR MAPS are a way to group policies that we would like to apply
|
||||||
|
to individual interfaces. These policies when applied are matched
|
||||||
|
against incoming packets. If matched the nexthop-group or nexthop
|
||||||
|
is used to forward the packets to the end destination
|
||||||
|
|
||||||
|
.. index:: pbr-map
|
||||||
|
.. clicmd:: pbr-map NAME seq (1-1000)
|
||||||
|
|
||||||
|
Create a pbr-map with NAME and sequence number specified. This
|
||||||
|
command puts you into a new submode for pbr-map specification.
|
||||||
|
To exit this mode type exit or end as per normal conventions
|
||||||
|
for leaving a sub-mode.
|
||||||
|
|
||||||
|
.. index:: match
|
||||||
|
.. clicmd:: match src-ip <PREFIX>
|
||||||
|
|
||||||
|
When a incoming packet matches the source prefix specified, take the packet
|
||||||
|
and forward according to the nexthops specified. This command
|
||||||
|
accepts both v4 and v6 prefixes. This command is used in
|
||||||
|
conjunction of the 'match dst-ip <PREFIX>' command for matching.
|
||||||
|
|
||||||
|
.. clicmd:: match dst-ip <PREFIX>
|
||||||
|
|
||||||
|
When a incoming packet matches the destination prefix specified, take
|
||||||
|
the packet and forward according to the nexthops specified. This
|
||||||
|
command accepts both v4 and v6 prefixes. This command is used in
|
||||||
|
conjuction of the 'match src-ip <PREFIX>' command for matching.
|
||||||
|
|
||||||
|
.. clicmd:: set nexthop-group NAME
|
||||||
|
|
||||||
|
Use the nexthop-group NAME as the place to forward packets when
|
||||||
|
the match commands have matched a packet.
|
||||||
|
|
||||||
|
.. clicmd:: set nexthop [A.B.C.D|X:X::X:XX] [interface] [nexthop-vrf NAME]
|
||||||
|
|
||||||
|
Use this individual nexthop as the place to forward packets when
|
||||||
|
the match commands have matched a packet.
|
||||||
|
|
||||||
|
.. _pbr-policy:
|
||||||
|
|
||||||
|
PBR POLICY
|
||||||
|
==========
|
||||||
|
|
||||||
|
After you have specified a PBR MAP, in order for it to be turned on,
|
||||||
|
you must apply the PBR MAP to an interface. This policy application
|
||||||
|
to an interface causes the policy to be installed into the kernel.
|
||||||
|
|
||||||
|
..index:: pbr-policy
|
||||||
|
.. clicmd:: pbr-policy NAME
|
||||||
|
|
||||||
|
This command is available under interface sub-mode. This turns
|
||||||
|
on the PBR MAP NAME and allows it to work properly.
|
||||||
|
|
||||||
|
.. _pbr-details:
|
||||||
|
|
||||||
|
PBR DETAILS
|
||||||
|
===========
|
||||||
|
|
||||||
|
Under the covers a PBR MAP is translated into two separate constructs
|
||||||
|
in the linux kernel.
|
||||||
|
|
||||||
|
..index:: Rules
|
||||||
|
|
||||||
|
The PBR MAP specified creates a `ip rule ...` that is inserted into
|
||||||
|
the linux kernel that points to a table to use for forwarding once
|
||||||
|
the rule matches.
|
||||||
|
|
||||||
|
..index:: Tables
|
||||||
|
|
||||||
|
The creation of a nexthop or nexthop-group is translated to a default
|
||||||
|
route in a table with the nexthops specified as the nexthops for the
|
||||||
|
default route.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user