mirror of
https://github.com/rtbrick/bngblaster.git
synced 2024-05-06 15:54:57 +00:00
docu update
This commit is contained in:
@@ -5,21 +5,19 @@
|
||||
[](https://github.com/rtbrick/bngblaster/blob/main/LICENSE)
|
||||
[](https://rtbrick.github.io/bngblaster)
|
||||
|
||||
The BNG Blaster is an open-source network tester for access and routing protocols.
|
||||
It can simulate massive PPPoE and IPoE (DHCP) subscribers including IPTV, and L2TPv2.
|
||||
The BNG Blaster is an open-source network tester
|
||||
for access and routing protocols. It can emulate massive
|
||||
PPPoE and IPoE (DHCP) subscribers including IPTV, and L2TP (LNS).
|
||||
There are various routing protocols supported like ISIS and BGP.
|
||||
So you can use it for end-to-end BNG and non-BNG router testing.
|
||||
|
||||
There are various routing protocols supported like ISIS and BGP. So you can use it for
|
||||
end-to-end BNG and non-BNG router testing.
|
||||
You can use the included traffic generator for forwarding verification,
|
||||
QoS testing or to measure convergence times. The traffic generator supports
|
||||
millions of separate tracked flows. This allows you to verify every single
|
||||
forwarding state of a full feed internet routing table. You can also send
|
||||
traffic to every single QoS queue of your service edge router.
|
||||
|
||||
You can use the included traffic generator for forwarding verification, which allows you
|
||||
to test QoS configurations or measure convergence times.
|
||||
|
||||
The traffic generator supports more than a million separate tracked flows.
|
||||
So you can use this to verify every single forwarding state of a full feed
|
||||
internet routing table. You can also send traffic for every single QoS queue
|
||||
of carrier grade BNG hardware.
|
||||
|
||||
The BNG Blaster is used by network operators and vendors of network hard- and software.
|
||||
The BNG Blaster is used by leading network operators, network hard- and software vendors.
|
||||
|
||||
A short [introduction](https://youtu.be/EHJ70p0_Sw0 "BNG Blaster") and good presentation
|
||||
from [DENOG13](https://youtu.be/LVg6rlVEfNU "DENOG13") can be found on YouTube.
|
||||
|
||||
@@ -78,7 +78,7 @@ DHCPv6
|
||||
IPoE Commands
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
The control socket command ``session-info session-id <id>`` provides
|
||||
The :ref:`command <api>` ``session-info session-id <id>`` provides
|
||||
detailed information for IPoE sessions.
|
||||
|
||||
``$ sudo bngblaster-cli run.sock session-info session-id 1 | jq .``
|
||||
|
||||
@@ -325,7 +325,7 @@ is possible to send also CSURQ requests to the LAC.
|
||||
L2TP Commands
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
The control socket command ``session-info l2tp-tunnels`` provides
|
||||
The :ref:`command <api>` ``session-info l2tp-tunnels`` provides
|
||||
detailed information about L2TP tunnels.
|
||||
|
||||
``$ sudo bngblaster-cli run.sock l2tp-tunnels``
|
||||
@@ -357,7 +357,7 @@ detailed information about L2TP tunnels.
|
||||
]
|
||||
}
|
||||
|
||||
The ``l2tp-sessions`` command returns all L2TP sessions.
|
||||
The ``l2tp-sessions`` :ref:`command <api>` returns all L2TP sessions.
|
||||
|
||||
``$ sudo bngblaster-cli run.sock l2tp-sessions``
|
||||
|
||||
|
||||
@@ -101,8 +101,8 @@ allows to search for the missing packets in the corresponding capture files.
|
||||
Manual Join/Leave Testing
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
It is possible to join and leave multicast groups manually using the <<Control Socket>> as
|
||||
shown in the example below.
|
||||
It is possible to join and leave multicast groups manually using the :ref:`command <api>`
|
||||
``igmp-join``.
|
||||
|
||||
``$ sudo bngblaster-cli run.sock igmp-join session-id 1 group 232.1.1.1 source1 202.11.23.101 source2 202.11.23.102 source3 202.11.23.103``
|
||||
|
||||
@@ -183,7 +183,7 @@ sending leave and the last multicast packet received for this group. Multicast p
|
||||
received for the leaved group after first packet of joined group is received are counted
|
||||
as overlap.
|
||||
|
||||
The following configuration shows an example of the `igmp` section
|
||||
The following configuration shows an example of the ``igmp`` section
|
||||
for a typical zapping test.
|
||||
|
||||
.. code-block:: json
|
||||
@@ -205,13 +205,12 @@ for a typical zapping test.
|
||||
}
|
||||
}
|
||||
|
||||
.. include:: ../configuration/igmp.rst
|
||||
|
||||
Multicast Limitations
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The BNG Blaster IGMP implementation supports up to 3 sources per group record
|
||||
and 8 group records per session.
|
||||
|
||||
The IGMP protocol stops working if IPCP has closed also if session IPCP renegotiates.
|
||||
The whole session needs to be disconnected to restart IGMP.
|
||||
|
||||
The check for overlapping multicast traffic is supported for zapping tests only.
|
||||
|
||||
@@ -125,7 +125,6 @@ PPP IP6CP (IPv6)
|
||||
^^^^^^^^^^^^^^^^
|
||||
.. include:: ../configuration/ppp_ip6cp.rst
|
||||
|
||||
|
||||
LCP Vendor Extension
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -144,7 +143,7 @@ The value from request is stored in the session as ``connection-status-message``
|
||||
PPPoE Commands
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
The control socket command ``session-info session-id <id>`` provides
|
||||
The :ref:`command <api>` ``session-info session-id <id>`` provides
|
||||
detailed information for PPPoE sessions.
|
||||
|
||||
``$ sudo bngblaster-cli run.sock session-info session-id 1 | jq .``
|
||||
|
||||
@@ -41,8 +41,6 @@ Verification
|
||||
The final report includes detailed information
|
||||
for session traffic.
|
||||
|
||||
*Example report output for 100 sessions:*
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
Session Traffic:
|
||||
|
||||
@@ -103,7 +103,7 @@ The configured ``raw-update-file`` under the BGP session is loaded
|
||||
during Blaster startup phase and send as soon as the session is
|
||||
established.
|
||||
|
||||
The ``bgp-raw-update`` command allows to send further updates during
|
||||
The ``bgp-raw-update`` :ref:`command <api>` allows to send further updates during
|
||||
the session lifetime.
|
||||
|
||||
``$ sudo bngblaster-cli run.sock bgp-raw-update file update1.bgp``
|
||||
|
||||
@@ -168,7 +168,7 @@ LSP entries in the ISIS database.
|
||||
The type ``self`` is used for the self originated LSP describing the own
|
||||
BNG Blaster ISIS instance. LSP entries of type ``adjacency`` are learned
|
||||
via ISIS adjacencies. The type ``external`` is used for those LSP entries
|
||||
learned via MRT files or injected via ``isis-lsp-update`` command.
|
||||
learned via MRT files or injected via ``isis-lsp-update`` :ref:`command <api>`.
|
||||
|
||||
``$ sudo bngblaster-cli run.sock isis-database instance 1 level 1``
|
||||
|
||||
@@ -255,7 +255,7 @@ the ISIS common header starting with ``0x83``.
|
||||
|
||||
Those files can be loaded at startup via configuration option
|
||||
``"isis": { "external": { "mrt-file": "<file>" } }`` or alternative
|
||||
via ``isis-load-mrt`` command.
|
||||
via ``isis-load-mrt`` :ref:`command <api>`.
|
||||
|
||||
``$ sudo bngblaster-cli run.sock isis-load-mrt file test.mrt instance 1``
|
||||
|
||||
@@ -263,9 +263,9 @@ LSP Update Command
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
It is also possible to inject external LSP's using the ``isis-lsp-update``
|
||||
command.
|
||||
:ref:`command <api>`.
|
||||
|
||||
The command expects a list of hex encoded PDU's including
|
||||
The :ref:`command <api>` expects a list of hex encoded PDU's including
|
||||
the ISIS common header starting with ``0x83``,
|
||||
|
||||
``$ cat command.json | jq .``
|
||||
@@ -286,15 +286,63 @@ the ISIS common header starting with ``0x83``,
|
||||
LSPGEN
|
||||
~~~~~~
|
||||
|
||||
The BNG Blaster includes a tool called ```lspgen`` which is able to generate
|
||||
link state packets and topologies for export as MRT and PCAP files or directly
|
||||
injected via BNG Blaster LSP update command.
|
||||
The BNG Blaster includes a tool called ``lspgen`` which is able to generate
|
||||
link state packets and topologies for export as MRT and PCAP files. This tool
|
||||
is also able to inject LSP's directly using the ``isis-lsp-update``
|
||||
:ref:`command <api>`.
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
$ lspgen --help
|
||||
|
||||
____ __ ____ _ __ ,/
|
||||
/ __ \ / /_ / __ ) _____ (_)_____ / /__ ,'/
|
||||
/ /_/ // __// __ |/ ___// // ___// //_/ ,' /
|
||||
/ _, _// /_ / /_/ // / / // /__ / ,< ,' /_____,
|
||||
/_/ |_| \__//_____//_/ /_/ \___//_/|_| .'____ ,'
|
||||
__ _____ ____ ______ / ,'
|
||||
/ / / ___// __ \/ ____/__ ____ / ,'
|
||||
/ / \__ \/ /_/ / / __/ _ \/ __ \ /,'
|
||||
/ /______/ / ____/ /_/ / __/ / / / /
|
||||
/_____/____/_/ \____/\___/_/ /_/
|
||||
|
||||
Usage: lspgen [OPTIONS]
|
||||
|
||||
-v --version
|
||||
-a --area <args>
|
||||
-K --authentication-key <args>
|
||||
-T --authentication-type none|simple|md5
|
||||
-r --read-config-file <args>
|
||||
-w --write-config-file <args>
|
||||
-C --connector <args>
|
||||
-S --control-socket <args>
|
||||
-l --ipv4-link-prefix <args>
|
||||
-L --ipv6-link-prefix <args>
|
||||
-n --ipv4-node-prefix <args>
|
||||
-N --ipv6-node-prefix <args>
|
||||
-x --ipv4-external-prefix <args>
|
||||
-X --ipv6-external-prefix <args>
|
||||
-M --lsp-lifetime <args>
|
||||
-z --no-ipv4
|
||||
-Z --no-ipv6
|
||||
-e --external-count <args>
|
||||
-g --graphviz-file <args>
|
||||
-h --help
|
||||
-m --mrt-file <args>
|
||||
-c --node-count <args>
|
||||
-p --pcap-file <args>
|
||||
-f --stream-file <args>
|
||||
-s --seed <args>
|
||||
-q --sequence <args>
|
||||
-V --level <args>
|
||||
-t --log normal|debug|lsp|lsdb|timer|timer-detail|ctrl|error
|
||||
|
||||
|
||||
LSP Update via Scapy
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The following example shows how to generate LSP's via Scapy
|
||||
and inject them using the ``isis-lsp-update`` command.
|
||||
and inject them using the ``isis-lsp-update`` :ref:`command <api>`.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
MPLS
|
||||
----
|
||||
|
||||
The BNG Blaster is able to send and receive traffic with
|
||||
up to two MPLS labels.
|
||||
Reference in New Issue
Block a user