2022-04-01 12:16:46 +02:00
<!DOCTYPE html>
2024-02-23 20:14:00 +00:00
< html class = "writer-html5" lang = "en" >
2022-04-01 12:16:46 +02:00
< head >
2024-02-23 20:14:00 +00:00
< meta charset = "utf-8" / > < meta name = "generator" content = "Docutils 0.17.1: http://docutils.sourceforge.net/" / >
2022-04-01 12:16:46 +02:00
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / >
2022-10-31 23:26:32 +00:00
< title > Quickstart Guide — BNG Blaster 0.8 documentation< / title >
2024-02-23 20:14:00 +00:00
< link rel = "stylesheet" href = "_static/pygments.css" type = "text/css" / >
< link rel = "stylesheet" href = "_static/css/theme.css" type = "text/css" / >
< link rel = "stylesheet" href = "_static/tabs.css" type = "text/css" / >
< link rel = "stylesheet" href = "_static/custom.css" type = "text/css" / >
2022-04-01 12:16:46 +02:00
2024-02-23 20:14:00 +00:00
< script data-url_root = "./" id = "documentation_options" src = "_static/documentation_options.js" > < / script >
< script src = "_static/jquery.js" > < / script >
< script src = "_static/underscore.js" > < / script >
< script src = "_static/doctools.js" > < / script >
2022-04-01 12:16:46 +02:00
< script src = "_static/js/theme.js" > < / script >
< link rel = "index" title = "Index" href = "genindex.html" / >
< link rel = "search" title = "Search" href = "search.html" / >
< link rel = "next" title = "Interfaces" href = "interfaces.html" / >
< link rel = "prev" title = "Installation" href = "install.html" / >
< / head >
< body class = "wy-body-for-nav" >
< div class = "wy-grid-for-nav" >
< nav data-toggle = "wy-nav-shift" class = "wy-nav-side" >
< div class = "wy-side-scroll" >
< div class = "wy-side-nav-search" >
2024-02-23 20:14:00 +00:00
< a href = "index.html" class = "icon icon-home" > BNG Blaster
< img src = "_static/rtbrick_logo.png" class = "logo" alt = "Logo" / >
2022-04-01 12:16:46 +02:00
< / a >
< div role = "search" >
< form id = "rtd-search-form" class = "wy-form" action = "search.html" method = "get" >
2024-02-23 20:14:00 +00:00
< input type = "text" name = "q" placeholder = "Search docs" / >
2022-04-01 12:16:46 +02:00
< input type = "hidden" name = "check_keywords" value = "yes" / >
< input type = "hidden" name = "area" value = "default" / >
< / form >
< / div >
< / div > < div class = "wy-menu wy-menu-vertical" data-spy = "affix" role = "navigation" aria-label = "Navigation menu" >
< ul class = "current" >
< li class = "toctree-l1" > < a class = "reference internal" href = "install.html" > Installation< / a > < / li >
< li class = "toctree-l1 current" > < a class = "current reference internal" href = "#" > Quickstart Guide< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "#pppoe" > PPPoE< / a > < / li >
2022-05-25 16:02:12 +00:00
< li class = "toctree-l2" > < a class = "reference internal" href = "#dhcp" > DHCP< / a > < / li >
2022-04-01 12:16:46 +02:00
< li class = "toctree-l2" > < a class = "reference internal" href = "#isis" > ISIS< / a > < / li >
2022-04-08 15:15:51 +02:00
< li class = "toctree-l2" > < a class = "reference internal" href = "#bgp" > BGP< / a > < / li >
2023-01-13 16:02:11 +00:00
< li class = "toctree-l2" > < a class = "reference internal" href = "#ldp" > LDP< / a > < / li >
2023-02-14 10:41:39 +00:00
< li class = "toctree-l2" > < a class = "reference internal" href = "#network-traffic" > Network Traffic< / a > < / li >
2022-04-01 12:16:46 +02:00
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "interfaces.html" > Interfaces< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "access/index.html" > Access Protocols< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "routing/index.html" > Routing Protocols< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "streams.html" > Traffic Streams< / a > < / li >
2023-06-30 11:07:35 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "http.html" > HTTP Emulation< / a > < / li >
2023-11-03 08:56:38 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "nat.html" > NAT / CGNAT< / a > < / li >
2022-04-01 12:16:46 +02:00
< li class = "toctree-l1" > < a class = "reference internal" href = "reports.html" > Reports< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "configuration/index.html" > Configuration< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "api/index.html" > API/CLI< / a > < / li >
2022-05-02 17:40:37 +02:00
< li class = "toctree-l1" > < a class = "reference internal" href = "controller.html" > Controller< / a > < / li >
2023-02-15 21:24:51 +00:00
< li class = "toctree-l1" > < a class = "reference internal" href = "performance.html" > Performance Guide< / a > < / li >
2022-04-01 12:16:46 +02:00
< li class = "toctree-l1" > < a class = "reference internal" href = "troubleshooting.html" > Troubleshooting< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "faq.html" > Frequently Asked Questions< / a > < / li >
< / ul >
< / div >
< / div >
< / nav >
< section data-toggle = "wy-nav-shift" class = "wy-nav-content-wrap" > < nav class = "wy-nav-top" aria-label = "Mobile navigation menu" >
< i data-toggle = "wy-nav-top" class = "fa fa-bars" > < / i >
< a href = "index.html" > BNG Blaster< / a >
< / nav >
< div class = "wy-nav-content" >
< div class = "rst-content" >
< div role = "navigation" aria-label = "Page navigation" >
< ul class = "wy-breadcrumbs" >
2024-02-23 20:14:00 +00:00
< li > < a href = "index.html" class = "icon icon-home" > < / a > » < / li >
< li > Quickstart Guide< / li >
2022-04-01 12:16:46 +02:00
< li class = "wy-breadcrumbs-aside" >
< a href = "_sources/quickstart.rst.txt" rel = "nofollow" > View page source< / a >
< / li >
< / ul >
< hr / >
< / div >
< div role = "main" class = "document" itemscope = "itemscope" itemtype = "http://schema.org/Article" >
< div itemprop = "articleBody" >
< section id = "quickstart-guide" >
2024-02-23 20:14:00 +00:00
< h1 > Quickstart Guide< a class = "headerlink" href = "#quickstart-guide" title = "Permalink to this headline" > < / a > < / h1 >
2022-04-01 12:16:46 +02:00
< p > In this guide, we’ ll walk you through the BNG Blaster basics. All the
2022-04-05 15:11:53 +02:00
examples here work standalone without having network devices.< / p >
< p > First, you need to < a class = "reference internal" href = "install.html#install" > < span class = "std std-ref" > install< / span > < / a > the BNG Blaster on your machine.< / p >
< p > In the next step, you create a virtual ethernet interface pair. This can be
2023-06-30 11:07:35 +00:00
used by the BNG Blaster to send and receive traffic.< / p >
2022-04-01 12:16:46 +02:00
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > sudo ip link add veth1.1 type veth peer name veth1.2
sudo ip link set veth1.1 up
sudo ip link set veth1.2 up
< / pre > < / div >
< / div >
< section id = "pppoe" >
2024-02-23 20:14:00 +00:00
< h2 > PPPoE< a class = "headerlink" href = "#pppoe" title = "Permalink to this headline" > < / a > < / h2 >
2022-04-01 12:16:46 +02:00
< p > Let’ s start with a simple PPPoE setup where BNG Blaster emulates the
2022-04-05 15:11:53 +02:00
client and server. On the first interface we use an
< a class = "reference internal" href = "interfaces.html#a10nsp-interface" > < span class = "std std-ref" > A10NSP interface< / span > < / a > . Those interfaces emulate a
lightweight PPPoE server by accepting every session. The other interface is
2022-04-01 12:16:46 +02:00
configured as PPPoE client.< / p >
2022-04-06 23:03:25 +02:00
< img alt = "PPPoE Quickstart" src = "_images/quickstart_pppoe.png" / >
2022-04-01 12:16:46 +02:00
< p > The configured < a class = "reference internal" href = "access/traffic.html#session-traffic" > < span class = "std std-ref" > session traffic< / span > < / a > generates
bidirectional traffic between client and server. There is also
2022-04-05 15:11:53 +02:00
one more < a class = "reference internal" href = "streams.html#streams" > < span class = "std std-ref" > traffic stream< / span > < / a > bound to the sessions.< / p >
2022-04-01 12:16:46 +02:00
< p > < strong > pppoe.json:< / strong > < / p >
2024-02-23 20:14:00 +00:00
< div class = "highlight-json notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interfaces" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " a10nsp" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " __comment__" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " PPPoE Server" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.1" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ],< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " access" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " __comment__" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " PPPoE Client" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " type" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " pppoe" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " outer-vlan-min" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " outer-vlan-max" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 4000< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " inner-vlan" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 7< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " stream-group-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ]< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " pppoe" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " reconnect" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "kc" > true< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " dhcpv6" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " enable" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "kc" > false< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " session-traffic" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " ipv4-pps" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " streams" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " stream-group-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " name" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " S1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " type" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " ipv4" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " direction" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " both" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " priority" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 128< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " length" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 256< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " pps" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " a10nsp-interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.1" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ]< / span > < span class = "w" > < / span >
< span class = "p" > }< / span > < span class = "w" > < / span >
2022-04-01 12:16:46 +02:00
< / pre > < / div >
< / div >
< p > Now you can start the BNG Blaster with this configuration.< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > $ sudo bngblaster -C pppoe.json
Mar 30 14:27:59.303904 Resolve network interfaces
Mar 30 14:27:59.303952 All network interfaces resolved
Mar 30 14:27:59.396765 ALL SESSIONS ESTABLISHED
< / pre > < / div >
< / div >
2022-04-05 15:11:53 +02:00
< p > After pressing < code class = "docutils literal notranslate" > < span class = "pre" > ctrl+c< / span > < / code > , the test should be stopped and a detailed
2022-04-01 12:16:46 +02:00
report printed.< / p >
< p > Let’ s advance the test by enabling some features explained below.< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > $ sudo bngblaster -C pppoe.json -c 1 -L test.log -l ip -J report.json -j sessions -j streams -P test.pcap -S run.sock -I
< / pre > < / div >
< / div >
< ul class = "simple" >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > -C< / span > < span class = "pre" > test.json< / span > < / code > loads the configuration file< / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > -c< / span > < span class = "pre" > 1< / span > < / code > defines how many sessions to be emulated, you can increase the number to see what happens…< / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > -L< / span > < span class = "pre" > test.log< / span > < / code > creates an optional logging file< / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > -l< / span > < span class = "pre" > ip< / span > < / code > enables the IP address logging< / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > -J< / span > < span class = "pre" > report.json< / span > < / code > generates a final JSON report at the end< / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > -j< / span > < span class = "pre" > sessions< / span > < / code > include detailed results for every session in the JSON report< / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > -j< / span > < span class = "pre" > streams< / span > < / code > include detailed results for every stream in the JSON report< / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > -P< / span > < span class = "pre" > test.pcap< / span > < / code > generates a PCAP file< / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > -S< / span > < span class = "pre" > run.sock< / span > < / code > opens the JSON RPC API socket< / p > < / li >
< li > < p > < code class = "docutils literal notranslate" > < span class = "pre" > -I< / span > < / code > start interactive courses user interface< / p > < / li >
< / ul >
2022-04-06 23:03:25 +02:00
< img alt = "BNG Blaster Interactive" src = "_images/quickstart_interactive.png" / >
2022-04-01 12:16:46 +02:00
< p > Now let’ s try to press < code class = "docutils literal notranslate" > < span class = "pre" > F1< / span > < / code > to navigate through the different views. All supported
keyboard inputs are listed in the top left corner. After pressing < code class = "docutils literal notranslate" > < span class = "pre" > F9< / span > < / code > the test
should be stopped.< / p >
2022-04-06 23:03:25 +02:00
< img alt = "BNG Blaster Interactive" src = "_images/quickstart_streams.png" / >
2022-04-01 12:16:46 +02:00
< p > If the test is still running, you can open a second terminal. Then go to the same
directory from where you started the BNG Blaster and enter the following command.< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > $ sudo bngblaster-cli run.sock session-info session-id 1 | jq .
< / pre > < / div >
< / div >
2024-02-23 20:14:00 +00:00
< div class = "highlight-json notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " status" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " ok" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " code" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 200< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " session-info" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " type" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " pppoe" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " session-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " session-state" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " Established" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " outer-vlan" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " inner-vlan" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 7< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " mac" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 02:00:00:00:00:01" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " username" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " user1@rtbrick.com" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " reply-message" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " BNG-Blaster-A10NSP" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " lcp-state" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " Opened" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " ipcp-state" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " Opened" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " ip6cp-state" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " Opened" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " ipv4-address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 10.10.10.10" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " ipv4-dns1" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 10.12.12.10" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " ipv4-dns2" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 10.13.13.10" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " dhcpv6-state" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " Init" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " tx-packets" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 38< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " rx-packets" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 35< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " rx-fragmented-packets" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " session-traffic" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " total-flows" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 2< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " verified-flows" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 2< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " downstream-ipv4-flow-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 2< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " downstream-ipv4-tx-packets" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 13< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " downstream-ipv4-rx-packets" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 13< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " downstream-ipv4-rx-first-seq" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " downstream-ipv4-loss" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " downstream-ipv4-wrong-session" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " upstream-ipv4-flow-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " upstream-ipv4-tx-packets" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 13< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " upstream-ipv4-rx-packets" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 13< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " upstream-ipv4-rx-first-seq" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " upstream-ipv4-loss" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " upstream-ipv4-wrong-session" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 0< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " a10nsp" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " s-vlan" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " qinq-send" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "kc" > false< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " qinq-received" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "kc" > false< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " tx-packets" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 35< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " rx-packets" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 38< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "p" > }< / span > < span class = "w" > < / span >
2022-04-01 12:16:46 +02:00
< / pre > < / div >
< / div >
< p > You can also try other < a class = "reference internal" href = "api/index.html#api" > < span class = "std std-ref" > commands< / span > < / a > to get familiar with the API.< / p >
< p > After the test has stopped, you can also check the final JSON report (< code class = "docutils literal notranslate" > < span class = "pre" > jq< / span > < span class = "pre" > .< / span > < span class = "pre" > report.json< / span > < / code > ),
log, and PCAP files.< / p >
< / section >
2022-05-25 16:02:12 +00:00
< section id = "dhcp" >
2024-02-23 20:14:00 +00:00
< h2 > DHCP< a class = "headerlink" href = "#dhcp" title = "Permalink to this headline" > < / a > < / h2 >
2022-05-25 16:02:12 +00:00
< p > Let’ s repeat all the steps from the PPPoE example before but with the following
IPoE DHCP configuration.< / p >
< p > < strong > dhcp.json:< / strong > < / p >
2024-02-23 20:14:00 +00:00
< div class = "highlight-json notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interfaces" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " a10nsp" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " __comment__" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " DHCP Server" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.1" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ],< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " access" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " __comment__" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " DHCP Client" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " type" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " ipoe" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " ipv6" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "kc" > false< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " outer-vlan-min" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " outer-vlan-max" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 4000< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " inner-vlan" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 7< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " stream-group-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ]< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " access-line" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " agent-remote-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " DEU.RTBRICK.{session-global}" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " agent-circuit-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 0.0.0.0/0.0.0.0 eth 0:{session-global}" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " dhcp" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " enable" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "kc" > true< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " broadcast" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "kc" > false< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " session-traffic" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " ipv4-pps" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " streams" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " stream-group-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " name" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " S1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " type" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " ipv4" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " direction" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " both" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " priority" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 128< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " length" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 256< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " pps" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " a10nsp-interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.1" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ]< / span > < span class = "w" > < / span >
< span class = "p" > }< / span > < span class = "w" > < / span >
2022-05-25 16:02:12 +00:00
< / pre > < / div >
< / div >
< / section >
2022-04-01 12:16:46 +02:00
< section id = "isis" >
2024-02-23 20:14:00 +00:00
< h2 > ISIS< a class = "headerlink" href = "#isis" title = "Permalink to this headline" > < / a > < / h2 >
2022-04-01 12:16:46 +02:00
< p > In the following example, we create two < a class = "reference internal" href = "routing/isis.html#isis" > < span class = "std std-ref" > ISIS< / span > < / a > nodes (R1 and R2) with an emulated
2023-09-04 14:55:57 +00:00
ISIS topology attached to R1 (< cite > isis.mrt`< / cite > ).< / p >
2022-04-06 23:03:25 +02:00
< img alt = "ISIS Quickstart" src = "_images/quickstart_isis.png" / >
2022-04-01 12:16:46 +02:00
< p > < strong > isis.json:< / strong > < / p >
2024-02-23 20:14:00 +00:00
< div class = "highlight-json notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interfaces" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " network" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 10.0.0.1/24" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " gateway" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 10.0.0.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " address-ipv6" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " fc66:1337:7331::1/64" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " gateway-ipv6" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " fc66:1337:7331::2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " isis-instance-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " isis-level" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 10.0.0.2/24" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " gateway" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 10.0.0.1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " address-ipv6" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " fc66:1337:7331::2/64" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " gateway-ipv6" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " fc66:1337:7331::1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " isis-instance-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 2< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " isis-level" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ]< / span > < span class = "w" > < / span >
2022-04-01 12:16:46 +02:00
2024-02-23 20:14:00 +00:00
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " isis" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " instance-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " area" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "s2" > " 49.0001/24" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "s2" > " 49.0002/24" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ],< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " system-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 1921.6800.1001" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " router-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.1.1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " hostname" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " R1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " sr-base" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1000< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " sr-range" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 100< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " sr-node-sid" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " level1-auth-key" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " secret123" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " level1-auth-type" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " md5" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " external" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " mrt-file" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " isis.mrt" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " connections" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " system-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 1921.6800.0000.00" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " l1-metric" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1000< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " l2-metric" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 2000< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ]< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " instance-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 2< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " area" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "s2" > " 49.0001/24" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "s2" > " 49.0002/24" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ],< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " system-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 1921.6800.1002" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " router-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.1.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " hostname" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " R2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " sr-base" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1000< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " sr-range" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 100< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " sr-node-sid" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 2< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " level1-auth-key" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " secret123" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " level1-auth-type" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " md5" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ],< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " streams" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " name" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " RAW1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " type" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " ipv4" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " direction" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " downstream" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " priority" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 128< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " destination-ipv4-address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.1.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " length" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 256< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " pps" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " network-interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.1" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ]< / span > < span class = "w" > < / span >
< span class = "p" > }< / span > < span class = "w" > < / span >
2022-04-01 12:16:46 +02:00
< / pre > < / div >
< / div >
< p > Now use the included tool < code class = "docutils literal notranslate" > < span class = "pre" > lspgen< / span > < / code > to generate the attached ISIS topology.< / p >
2023-09-04 14:55:57 +00:00
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > $ lspgen -a 49.0001/24 -K secret123 -T md5 -C 1921.6800.1001 -m isis.mrt
2022-04-01 12:16:46 +02:00
Mar 30 14:54:19.647569 Add context for instance default, protocol isis, topology unicast
Mar 30 14:54:19.647630 Add connector to 0x192168001001
Mar 30 14:54:19.647633 LSP generation parameters
Mar 30 14:54:19.647639 Area 49.0001/24
Mar 30 14:54:19.647642 Level 1, sequence 0x1, lsp-lifetime 65535
Mar 30 14:54:19.647645 Authentication-key secret123, Authentication-type md5
Mar 30 14:54:19.647648 IPv4 Node Base Prefix 192.168.0.0/32
Mar 30 14:54:19.647651 IPv4 Link Base Prefix 172.16.0.0/31
Mar 30 14:54:19.647654 IPv4 External Base Prefix 10.0.0.0/28
Mar 30 14:54:19.647657 IPv6 Node Base Prefix fc00::c0a8:0/128
Mar 30 14:54:19.647660 IPv6 Link Base Prefix fc00::ac10:0/127
Mar 30 14:54:19.647669 IPv6 External Base Prefix fc00::a00:0/124
Mar 30 14:54:19.647672 SRGB base 10000, range 2000
Mar 30 14:54:19.647678 Generating a graph of 10 nodes and 20 links
Mar 30 14:54:19.647813 Root node 1921.6800.0000.00
< / pre > < / div >
< / div >
< p > Finally, you can start the BNG Blaster.< / p >
2024-02-20 20:03:00 +00:00
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > $ sudo bngblaster -C isis.json -l isis -P test.pcap -S run.sock
2022-04-01 12:16:46 +02:00
Mar 30 14:56:11.981279 Init IS-IS instance 1
2023-09-04 14:55:57 +00:00
Mar 30 14:56:11.981314 Load ISIS MRT file isis.mrt
2022-04-01 12:16:46 +02:00
Mar 30 14:56:11.981335 Init IS-IS instance 2
Mar 30 14:56:12.031917 Add network interface veth1.1 to IS-IS instance 1
Mar 30 14:56:12.087877 Add network interface veth1.2 to IS-IS instance 2
Mar 30 14:56:12.087971 opened pcap-file test.pcap
Mar 30 14:56:12.088013 Opened control socket run.sock
Mar 30 14:56:13.088035 Resolve network interfaces
Mar 30 14:56:13.088050 All network interfaces resolved
Mar 30 14:56:22.093906 ISIS L1 adjacency UP on interface veth1.2
Mar 30 14:56:22.093964 ISIS L1 adjacency UP on interface veth1.1
< / pre > < / div >
< / div >
< p > If the test is still running, you can open a second terminal, go to the same directory
from where you started the BNG Blaster and enter the following command.< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > $ sudo bngblaster-cli run.sock isis-adjacencies
< / pre > < / div >
< / div >
2024-02-23 20:14:00 +00:00
< div class = "highlight-json notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " status" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " ok" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " code" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 200< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " isis-adjacencies" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " type" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " P2P" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " level" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " L1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " instance-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " adjacency-state" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " Up" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " peer" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " system-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 1921.6800.1002" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " type" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " P2P" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " level" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " L1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " instance-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 2< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " adjacency-state" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " Up" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " peer" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " system-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 1921.6800.1001" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ]< / span > < span class = "w" > < / span >
< span class = "p" > }< / span > < span class = "w" > < / span >
2022-04-01 12:16:46 +02:00
< / pre > < / div >
< / div >
< p > You can also try other < a class = "reference internal" href = "api/index.html#api" > < span class = "std std-ref" > commands< / span > < / a > to get familiar with the API.< / p >
< / section >
2022-04-08 15:15:51 +02:00
< section id = "bgp" >
2024-02-23 20:14:00 +00:00
< h2 > BGP< a class = "headerlink" href = "#bgp" title = "Permalink to this headline" > < / a > < / h2 >
2022-04-08 15:15:51 +02:00
< p > In the following example, we create a BGP session between BNG Blaster
and < a class = "reference external" href = "https://github.com/osrg/gobgp" > gobgp< / a > .< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > sudo apt install gobgpd
< / pre > < / div >
< / div >
< p > Therefore, we use again the veth interface pair. But this time
the side used by < a class = "reference external" href = "https://github.com/osrg/gobgp" > gobgp< / a >
needs an IP address and TCP checksum offloading must be disabled!< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > sudo ip link add veth1.1 type veth peer name veth1.2
sudo ip link set veth1.1 up
sudo ip link set veth1.2 up
# disable checksum offloading
sudo ethtool -K veth1.1 tx off
sudo ethtool -K veth1.2 tx off
# add IPv4 address for gobgpd
sudo ip address add 192.168.92.1/24 dev veth1.1
< / pre > < / div >
< / div >
< p > Following the < a class = "reference external" href = "https://github.com/osrg/gobgp" > gobgp< / a > and
BNG Blaster configuration files needed.< / p >
< p > < strong > gobgpd.conf:< / strong > < / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > [global.config]
as = 65001
router-id = " 192.168.92.1"
local-address-list = [" 192.168.92.1" ]
[[neighbors]]
[neighbors.config]
peer-as = 65001
neighbor-address = " 192.168.92.2"
[[neighbors.afi-safis]]
[neighbors.afi-safis.config]
afi-safi-name = " ipv4-unicast"
[[neighbors.afi-safis]]
[neighbors.afi-safis.config]
afi-safi-name = " ipv6-unicast"
[[neighbors.afi-safis]]
[neighbors.afi-safis.config]
2023-11-23 16:47:05 +00:00
afi-safi-name = " ipv4-labelled-unicast"
2022-04-08 15:15:51 +02:00
[[neighbors.afi-safis]]
[neighbors.afi-safis.config]
2023-11-23 16:47:05 +00:00
afi-safi-name = " ipv6-labelled-unicast"
2022-04-08 15:15:51 +02:00
< / pre > < / div >
< / div >
< p > < strong > bgp.json:< / strong > < / p >
2024-02-23 20:14:00 +00:00
< div class = "highlight-json notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interfaces" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " tx-interval" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " rx-interval" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " io-slots" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 4096< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " network" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.92.2/24" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " gateway" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.92.1" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " bgp" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " local-ipv4-address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.92.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " peer-ipv4-address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.92.1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " raw-update-file" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " out.bgp" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " local-as" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 65001< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " peer-as" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 65001< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ]< / span > < span class = "w" > < / span >
< span class = "p" > }< / span > < span class = "w" > < / span >
2022-04-08 15:15:51 +02:00
< / pre > < / div >
< / div >
< p > Use the included tool < code class = "docutils literal notranslate" > < span class = "pre" > bgpupdate< / span > < / code > to generate a BGP update file
with 10.000 IPv4 and 10.000 IPv6 prefixes.< / p >
2023-11-23 16:47:05 +00:00
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > bgpupdate -a 65001 -l 100 -n 192.168.92.2 -p 11.0.0.0/28 -P 10000
bgpupdate -a 65001 -l 100 -n 192.168.92.2 -p fc66:11::/64 -P 10000 --append
2022-04-08 15:15:51 +02:00
< / pre > < / div >
< / div >
< p > Start the < a class = "reference external" href = "https://github.com/osrg/gobgp" > gobgp< / a > daemon.< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > $ sudo -E gobgpd -f gobgpd.conf
{" level" :" info" ," msg" :" gobgpd started" ," time" :" 2022-04-08T14:51:03+02:00" }
{" Topic" :" Config" ," level" :" info" ," msg" :" Finished reading the config file" ," time" :" 2022-04-08T14:51:03+02:00" }
{" level" :" info" ," msg" :" Peer 192.168.92.2 is added" ," time" :" 2022-04-08T14:51:03+02:00" }
{" Topic" :" Peer" ," level" :" info" ," msg" :" Add a peer configuration for:192.168.92.2" ," time" :" 2022-04-08T14:51:03+02:00" }
< / pre > < / div >
< / div >
< p > Finally, start the BNG Blaster in another terminal window.< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > $ sudo bngblaster -C bgp.json -l bgp -S run.sock
Apr 08 14:53:51.870722 Loaded BGP RAW update file out.bgp (138.63 KB, 36 updates)
Apr 08 14:53:51.904266 BGP (veth1.2 192.168.92.2 - 192.168.92.1) init session
Apr 08 14:53:51.904293 BGP (veth1.2 192.168.92.2 - 192.168.92.1) state changed from closed -> idle
Apr 08 14:53:51.904369 Opened control socket run.sock
Apr 08 14:53:52.904359 Resolve network interfaces
Apr 08 14:53:52.904389 All network interfaces resolved
Apr 08 14:53:53.904448 BGP (veth1.2 192.168.92.2 - 192.168.92.1) state changed from idle -> connect
Apr 08 14:53:53.905659 BGP (veth1.2 192.168.92.2 - 192.168.92.1) state changed from connect -> opensent
2023-01-13 16:02:11 +00:00
Apr 08 14:53:53.907888 BGP (veth1.2 192.168.92.2 - 192.168.92.1) open message received with peer AS: 65001, hold-time: 90s
2022-04-08 15:15:51 +02:00
Apr 08 14:53:53.907903 BGP (veth1.2 192.168.92.2 - 192.168.92.1) state changed from opensent -> openconfirm
Apr 08 14:53:53.907917 BGP (veth1.2 192.168.92.2 - 192.168.92.1) state changed from openconfirm -> established
Apr 08 14:53:54.907989 BGP (veth1.2 192.168.92.2 - 192.168.92.1) raw update start
Apr 08 14:53:55.182885 BGP (veth1.2 192.168.92.2 - 192.168.92.1) raw update stop after 0s
< / pre > < / div >
< / div >
< p > If the test is still running, you can open one more terminal, go to the same directory
from where you started the BNG Blaster and enter the following command.< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > $ sudo bngblaster-cli run.sock bgp-sessions
< / pre > < / div >
< / div >
2024-02-23 20:14:00 +00:00
< div class = "highlight-json notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " status" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " ok" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " code" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 200< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " bgp-sessions" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " local-address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.92.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " local-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 1.2.3.4" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " local-as" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 65001< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " local-hold-time" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 90< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " peer-address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.92.1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " peer-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 1.92.168.192" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " peer-as" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 65001< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " peer-hold-time" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 90< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " state" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " established" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " raw-update-state" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " done" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " raw-update-file" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " out.bgp" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " stats" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " messages-rx" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 3< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " messages-tx" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 38< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " keepalive-rx" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 2< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " keepalive-tx" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " update-rx" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " update-tx" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 36< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ]< / span > < span class = "w" > < / span >
< span class = "p" > }< / span > < span class = "w" > < / span >
2022-04-08 15:15:51 +02:00
< / pre > < / div >
< / div >
< p > You can also try other < a class = "reference internal" href = "api/index.html#api" > < span class = "std std-ref" > commands< / span > < / a > to get familiar with the API.< / p >
< p > The following command shows the session in < a class = "reference external" href = "https://github.com/osrg/gobgp" > gobgp< / a > .< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > $ gobgp neighbor 192.168.92.2
BGP neighbor is 192.168.92.2, remote AS 65001
BGP version 4, remote router ID 4.3.2.1
BGP state = established, up for 00:01:36
BGP OutQ = 0, Flops = 0
Hold time is 90, keepalive interval is 30 seconds
Configured hold time is 90, keepalive interval is 30 seconds
Neighbor capabilities:
multiprotocol:
ipv4-unicast: advertised and received
ipv6-unicast: advertised and received
2022-10-31 23:26:32 +00:00
ipv4-labeled-unicast: advertised and received
ipv6-labeled-unicast: advertised and received
2022-04-08 15:15:51 +02:00
route-refresh: advertised
4-octet-as: advertised and received
Message statistics:
Sent Rcvd
Opens: 2 2
Notifications: 0 0
Updates: 0 72
Keepalives: 5 4
Route Refresh: 0 0
Discarded: 0 0
Total: 7 79
Route statistics:
Advertised: 0
Received: 20000
Accepted: 0
< / pre > < / div >
< / div >
< p > If the test is still running, you can add further routes. Therefore
first create a new BGP update file.< / p >
2023-11-24 18:05:05 +00:00
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > bgpupdate -a 65001 -l 100 -n 192.168.92.2 -p 22.0.0.0/28 -P 100000 -f update.bgp
2022-04-08 15:15:51 +02:00
< / pre > < / div >
< / div >
< p > Apply this file to the specified BGP session.< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > sudo bngblaster-cli run.sock bgp-raw-update file update.bgp peer-ipv4-address 192.168.92.1 local-ipv4-address 192.168.92.2
< / pre > < / div >
< / div >
2024-02-23 20:14:00 +00:00
< div class = "highlight-json notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " status" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " ok" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " code" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 200< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " bgp-raw-update" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " started" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " skipped" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " filtered" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 0< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "p" > }< / span > < span class = "w" > < / span >
2022-04-08 15:15:51 +02:00
< / pre > < / div >
< / div >
< p > The parameters < code class = "docutils literal notranslate" > < span class = "pre" > peer-ipv4-address< / span > < / code > and < code class = "docutils literal notranslate" > < span class = "pre" > local-ipv4-address< / span > < / code > are used to filter to which sessions
this update should be applied. Without any of those parameters, the update will be applied to all
sessions.< / p >
< p > Check if they are received in the < a class = "reference external" href = "https://github.com/osrg/gobgp" > gobgp< / a > daemon.< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > $ gobgp neighbor
Peer AS Up/Down State |#Received Accepted
192.168.92.2 65001 00:09:36 Establ | 120000 0
< / pre > < / div >
< / div >
< p > Finally, you can withdraw them again.< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > bgpupdate -a 65001 -n 192.168.92.2 -p 22.0.0.0/28 -P 100000 -f withdraw.bgp --withdraw
sudo bngblaster-cli run.sock bgp-raw-update file withdraw.bgp
< / pre > < / div >
< / div >
< / section >
2023-01-13 16:02:11 +00:00
< section id = "ldp" >
2024-02-23 20:14:00 +00:00
< h2 > LDP< a class = "headerlink" href = "#ldp" title = "Permalink to this headline" > < / a > < / h2 >
2023-01-13 16:02:11 +00:00
< p > In the following example, we create two connected < a class = "reference internal" href = "routing/ldp.html#ldp" > < span class = "std std-ref" > LDP< / span > < / a > instances.< / p >
< p > < strong > ldp.json:< / strong > < / p >
2024-02-23 20:14:00 +00:00
< div class = "highlight-json notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interfaces" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " capture-include-streams" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "kc" > true< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " network" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 10.0.0.1/24" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " gateway" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 10.0.0.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " ldp-instance-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 10.0.0.2/24" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " gateway" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 10.0.0.1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " ldp-instance-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 2< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ]< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " ldp" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " instance-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " lsr-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 10.2.3.1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " raw-update-file" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " out.ldp" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " instance-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 2< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " lsr-id" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 10.2.3.2" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ],< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " streams" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " name" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " S1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " type" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " ipv4" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " direction" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " downstream" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " priority" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 128< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " network-interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " destination-ipv4-address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 100.0.0.1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " ldp-ipv4-lookup-address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 13.37.0.1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " pps" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ]< / span > < span class = "w" > < / span >
< span class = "p" > }< / span > < span class = "w" > < / span >
2023-01-13 16:02:11 +00:00
< / pre > < / div >
< / div >
< p > Use the included tool < code class = "docutils literal notranslate" > < span class = "pre" > ldpupdate< / span > < / code > to generate an LDP update file
with 10 labeled IPv4 prefixes.< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > ldpupdate -l 10.2.3.1 -p 13.37.0.0/32 -P 10 -M 10000
< / pre > < / div >
< / div >
< p > Now you can start the BNG Blaster with this configuration.< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > sudo bngblaster -C ldp.json -l ldp -S run.sock -P ldp.pcap
< / pre > < / div >
< / div >
< / section >
2023-02-14 10:41:39 +00:00
< section id = "network-traffic" >
2024-02-23 20:14:00 +00:00
< h2 > Network Traffic< a class = "headerlink" href = "#network-traffic" title = "Permalink to this headline" > < / a > < / h2 >
2023-02-14 10:41:39 +00:00
< p > In the following example, we create two connected network interfaces
and set up RAW traffic streams between them.< / p >
< p > < strong > network.json:< / strong > < / p >
2024-02-23 20:14:00 +00:00
< div class = "highlight-json notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interfaces" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " network" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.0.1/24" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " gateway" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.0.2" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.0.2/24" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " gateway" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.0.1" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ]< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " streams" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " name" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " S1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " type" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " ipv4" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " pps" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " network-interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.1" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " destination-ipv4-address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.0.2" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > },< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " name" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " S2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " type" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " ipv4" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " pps" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " network-interface" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " veth1.2" < / span > < span class = "p" > ,< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "nt" > " destination-ipv4-address" < / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > " 192.168.0.1" < / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
< span class = "w" > < / span > < span class = "p" > ]< / span > < span class = "w" > < / span >
< span class = "p" > }< / span > < span class = "w" > < / span >
2023-02-14 10:41:39 +00:00
< / pre > < / div >
< / div >
< p > Now you can start the BNG Blaster with stream reports enabled to get extensive
result of every single stream at the end of the test.< / p >
< div class = "highlight-none notranslate" > < div class = "highlight" > < pre > < span > < / span > $ sudo bngblaster -C network.json -l loss -J report.json -j streams -S run.sock -I
< / pre > < / div >
< / div >
< p > Such a configuration with two network interfaces in the same network can be used to
test layer two network QoS configurations or filters. The same would also work through
a routed network with two network interfaces in different networks.< / p >
< / section >
2022-04-01 12:16:46 +02:00
< / section >
< / div >
< / div >
< footer > < div class = "rst-footer-buttons" role = "navigation" aria-label = "Footer" >
< a href = "install.html" class = "btn btn-neutral float-left" title = "Installation" accesskey = "p" rel = "prev" > < span class = "fa fa-arrow-circle-left" aria-hidden = "true" > < / span > Previous< / a >
< a href = "interfaces.html" class = "btn btn-neutral float-right" title = "Interfaces" accesskey = "n" rel = "next" > Next < span class = "fa fa-arrow-circle-right" aria-hidden = "true" > < / span > < / a >
< / div >
< hr / >
< div role = "contentinfo" >
2024-02-23 20:14:00 +00:00
< p > © Copyright 2020-2024, RtBrick, Inc..< / p >
2022-04-01 12:16:46 +02:00
< / div >
Built with < a href = "https://www.sphinx-doc.org/" > Sphinx< / a > using a
< a href = "https://github.com/readthedocs/sphinx_rtd_theme" > theme< / a >
provided by < a href = "https://readthedocs.org" > Read the Docs< / a > .
< / footer >
< / div >
< / div >
< / section >
< / div >
< script >
jQuery ( function ( ) {
SphinxRtdTheme . Navigation . enable ( true ) ;
} ) ;
< / script >
< / body >
< / html >