mirror of
https://github.com/rtbrick/bngblaster.git
synced 2024-05-06 15:54:57 +00:00
210 lines
4.4 KiB
ReStructuredText
210 lines
4.4 KiB
ReStructuredText
.. _configuration:
|
|
|
|
.. raw:: html
|
|
|
|
<link rel="stylesheet" type="text/css" href="_static/custom.css">
|
|
|
|
Configuration
|
|
=============
|
|
|
|
The BNG Blastert configuration is presented as a JSON file.
|
|
This configuration must include at least one interface function.
|
|
|
|
.. code-block:: json
|
|
|
|
{
|
|
"interfaces": {
|
|
"network": {
|
|
"interface": "eth2",
|
|
"address": "10.0.0.10/24",
|
|
"gateway": "10.0.0.2"
|
|
}
|
|
}
|
|
}
|
|
|
|
In order to minimize the size of this configuration, you have the option
|
|
to relocate the stream definitions to a separate file. However, it's important
|
|
to note that both the streams specified in the main configuration file and
|
|
the additional streams configuration file will be applied. This approach
|
|
proves particularly beneficial when conducting tests that involve an extensive
|
|
number of traffic streams, numbering in the millions. By separating the streams
|
|
into distinct files, you can maintain a more organized and manageable
|
|
configuration while ensuring that the combined streams are effectively utilized
|
|
in your testing scenarios. This flexibility in configuration empowers you to
|
|
handle large-scale traffic simulations with ease.
|
|
|
|
.. code-block:: bash
|
|
|
|
bngblaster -C config.json -T streams.json
|
|
|
|
.. _variables:
|
|
|
|
Variables
|
|
---------
|
|
|
|
Some configuration attributes like **username**, **password**, **agent-remote-id**,
|
|
**agent-circuit-id**, or **cfm-ma-name** support variable substitution.
|
|
The variable **{session-global}** will be replaced with the actual session-id
|
|
starting from 1 and incremented for every new session. The variable **{session}**
|
|
is incremented per-interface section. The variables **{outer-vlan}** and **{inner-vlan}**
|
|
will be replaced with the corresponding VLAN identifier or 0 if not defined.
|
|
The two variables **{i1}** and **{i2}** are configurable per-interface sections
|
|
with user-defined start values and steps.
|
|
|
|
.. code-block:: json
|
|
|
|
{
|
|
"username": "user{session-global}@rtbrick.com",
|
|
"agent-circuit-id": "0.0.0.0/0.0.0.0 eth {outer-vlan}:{inner-vlan}",
|
|
"agent-remote-id": "DEU.RTBRICK.{i1}",
|
|
"i1-start": 10000,
|
|
"i1-step": 2
|
|
}
|
|
|
|
Interfaces
|
|
----------
|
|
|
|
The BNG Blaster interfaces are explained detailed in the
|
|
:ref:`interfaces section <interfaces>`.
|
|
|
|
.. include:: interfaces.rst
|
|
|
|
Links
|
|
~~~~~
|
|
.. include:: interfaces_links.rst
|
|
|
|
Link Aggregation (LAG)
|
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
.. include:: interfaces_lag.rst
|
|
|
|
Network Interfaces
|
|
~~~~~~~~~~~~~~~~~~
|
|
.. include:: interfaces_network.rst
|
|
|
|
Access Interfaces
|
|
~~~~~~~~~~~~~~~~~
|
|
.. include:: interfaces_access.rst
|
|
|
|
A10NSP Interfaces
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
The :ref:`L2BSA <l2bsa>` specification defines two interfaces.
|
|
The so-called U interface (User Interface) at the customer location
|
|
and the A10-NSP interface (A10 Network Service Provider)
|
|
between the service provider networks.
|
|
|
|
The BNG Blaster A10NSP interface emulates such a layer two provider interface.
|
|
This interface type accepts all DHCPv4 and PPPoE sessions were received to verify
|
|
forwarding and header enrichment.
|
|
|
|
.. include:: interfaces_a10nsp.rst
|
|
|
|
Sessions
|
|
--------
|
|
.. include:: sessions.rst
|
|
|
|
IPoE
|
|
----
|
|
.. include:: ipoe.rst
|
|
|
|
PPPoE
|
|
-----
|
|
.. include:: pppoe.rst
|
|
|
|
PPP
|
|
---
|
|
.. include:: ppp.rst
|
|
|
|
PPP Authentication
|
|
~~~~~~~~~~~~~~~~~~
|
|
.. include:: ppp_authentication.rst
|
|
|
|
PPP LCP
|
|
~~~~~~~~~~~~~~~~~~
|
|
.. include:: ppp_lcp.rst
|
|
|
|
PPP IPCP (IPv4)
|
|
~~~~~~~~~~~~~~~
|
|
.. include:: ppp_ipcp.rst
|
|
|
|
PPP IP6CP (IPv6)
|
|
~~~~~~~~~~~~~~~~
|
|
.. include:: ppp_ip6cp.rst
|
|
|
|
DHCP
|
|
----
|
|
.. include:: dhcp.rst
|
|
|
|
DHCPv6
|
|
------
|
|
.. include:: dhcpv6.rst
|
|
|
|
IGMP
|
|
----
|
|
.. include:: igmp.rst
|
|
|
|
L2TPv2 Server (LNS)
|
|
-------------------
|
|
.. include:: lns.rst
|
|
|
|
Traffic
|
|
-------
|
|
.. include:: traffic.rst
|
|
|
|
Traffic-Streams
|
|
---------------
|
|
.. include:: streams.rst
|
|
|
|
Session-Traffic
|
|
---------------
|
|
.. include:: session_traffic.rst
|
|
|
|
Access-Line
|
|
-----------
|
|
.. include:: access_line.rst
|
|
|
|
Access-Line-Profiles
|
|
--------------------
|
|
.. include:: access_line_profiles.rst
|
|
|
|
ISIS
|
|
----
|
|
.. include:: isis.rst
|
|
|
|
ISIS External
|
|
~~~~~~~~~~~~~
|
|
.. include:: isis_external.rst
|
|
|
|
|
|
ISIS External Connections
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
.. include:: isis_external_connections.rst
|
|
|
|
OSPF
|
|
----
|
|
.. include:: ospf.rst
|
|
|
|
OSPF External
|
|
~~~~~~~~~~~~~
|
|
.. include:: ospf_external.rst
|
|
|
|
|
|
OSPF External Connections
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
.. include:: ospf_external_connections.rst
|
|
|
|
LDP
|
|
---
|
|
.. include:: ldp.rst
|
|
|
|
BGP
|
|
---
|
|
.. include:: bgp.rst
|
|
|
|
HTTP-Client
|
|
-----------
|
|
.. include:: http_client.rst
|
|
|
|
HTTP-Server
|
|
-----------
|
|
.. include:: http_server.rst |