1
0
mirror of https://github.com/rtbrick/bngblaster.git synced 2024-05-06 15:54:57 +00:00
Christian Giese 73399a8224 docu update
2023-06-15 07:55:51 +00:00

209 lines
7.5 KiB
ReStructuredText

.. _ipoe:
IPoE
----
In addition to its versatile testing capabilities, the BNG Blaster excels in emulating
IP over Ethernet (IPoE) subscribers, providing support for both static and dynamic address
assignments. This functionality is particularly valuable for testing and validating the
performance and behavior of network infrastructure components that handle IPoE-based connections.
The BNG Blaster's IPoE emulation allows network administrators, developers, and service providers
to simulate subscriber connections that utilize Ethernet as the underlying link layer protocol.
This emulation extends to address assignment, offering the flexibility to configure both static
and dynamic IP address assignment methods.
For scenarios where IP addresses are statically assigned to subscribers, the BNG Blaster enables
users to define and assign specific IP addresses to individual subscribers or groups of subscribers.
This facilitates accurate testing of network configurations and policies that rely on static IP
address allocation.
In cases where dynamic IP address assignment is required, the BNG Blaster supports protocols
like DHCP (Dynamic Host Configuration Protocol) to dynamically allocate IP addresses to subscribers.
This dynamic address assignment capability allows for realistic testing of scenarios where IPoE subscribers
obtain IP addresses dynamically, similar to real-world deployments.
Furthermore, the BNG Blaster provides support for different VLAN (Virtual Local Area Network) modes,
including 1:1 and N:1 configurations. In the 1:1 VLAN mode, each IPoE subscriber is associated with a
dedicated VLAN, ensuring isolation and individual control over their network traffic. On the other hand,
the N:1 VLAN mode allows multiple IPoE subscribers to share a common VLAN.
By supporting various IP address assignment methods and VLAN configurations, the BNG Blaster offers a
comprehensive and realistic emulation environment for testing IPoE-based network infrastructures.
Whether it's validating static IP address configurations, evaluating dynamic IP allocation mechanisms,
or assessing VLAN-based deployments, the BNG Blaster's IPoE emulation capabilities enable thorough testing
and optimization of network components and services.
Static Addresses
~~~~~~~~~~~~~~~~
Static addresses mean that the IP address and gateway are assigned
statically as shown in the example below.
.. code-block:: json
{
"interfaces": {
"access": [
{
"interface": "eth1",
"type": "ipoe",
"vlan-mode": "1:1",
"outer-vlan-min": 128,
"outer-vlan-max": 4000,
"address": "200.0.0.1",
"address-iter": "0.0.0.4",
"gateway": "200.0.0.2",
"gateway-iter": "0.0.0.4",
}
]
}
}
DHCPv4/v6
~~~~~~~~~
The most common case for IPoE is using DHCPv4/v6 as shown below.
.. code-block:: json
{
"interfaces": {
"access": [
{
"interface": "eth1",
"type": "ipoe",
"outer-vlan": 7,
"vlan-mode": "N:1"
}
]
},
"dhcp": {
"enable": true,
},
"dhcpv6": {
"enable": true
},
"access-line": {
"agent-remote-id": "DEU.RTBRICK.{session-global}",
"agent-circuit-id": "0.0.0.0/0.0.0.0 eth 0:{session-global}"
}
}
IPoE
^^^^^
.. include:: ../configuration/ipoe.rst
DHCP
^^^^
.. include:: ../configuration/dhcp.rst
DHCPv6
^^^^^^
.. include:: ../configuration/dhcpv6.rst
IPoE Commands
~~~~~~~~~~~~~
The :ref:`command <api>` ``session-info session-id <id>`` provides
detailed information for IPoE sessions.
``$ sudo bngblaster-cli run.sock session-info session-id 1 | jq .``
.. code-block:: json
{
"status": "ok",
"code": 200,
"session-information": {
"type": "ipoe",
"session-id": 1,
"session-state": "Established",
"interface": "eth1",
"outer-vlan": 8,
"inner-vlan": 1,
"mac": "02:00:00:00:00:01",
"agent-circuit-id": "0.0.0.0/0.0.0.0 eth 0:1",
"agent-remote-id": "DEU.RTBRICK.1",
"ipv4-address": "1.1.1.3",
"ipv4-netmask": "255.255.255.255",
"ipv4-gateway": "1.1.1.1",
"ipv4-dns1": "10.0.0.3",
"ipv4-dns2": "10.0.0.4",
"ipv6-prefix": "fc66:1337:2222::3/128",
"ipv6-delegated-prefix": "fc66:1337:3333:2::/64",
"dhcp-state": "Bound",
"dhcp-server": "1.1.1.1",
"dhcp-lease-time": 300,
"dhcp-lease-expire": 299,
"dhcp-lease-expire-t1": 149,
"dhcp-lease-expire-t2": 261,
"dhcp-tx": 2,
"dhcp-rx": 2,
"dhcp-tx-discover": 1,
"dhcp-rx-offer": 1,
"dhcp-tx-request": 1,
"dhcp-rx-ack": 1,
"dhcp-rx-nak": 0,
"dhcp-tx-release": 0,
"dhcpv6-state": "Bound",
"dhcpv6-lease-time": 14400,
"dhcpv6-lease-expire": 14399,
"dhcpv6-lease-expire-t1": 899,
"dhcpv6-lease-expire-t2": 1439,
"dhcpv6-tx": 1,
"dhcpv6-rx": 1,
"dhcpv6-tx-solicit": 1,
"dhcpv6-rx-advertise": 0,
"dhcpv6-tx-request": 0,
"dhcpv6-rx-reply": 1,
"dhcpv6-tx-renew": 0,
"dhcpv6-tx-release": 0,
"dhcpv6-dns1": "fc66::3",
"dhcpv6-dns2": "fc66::4",
"tx-packets": 6,
"rx-packets": 6,
"rx-fragmented-packets": 0,
"session-traffic": {
"total-flows": 6,
"verified-flows": 0,
"downstream-ipv4-flow-id": 2,
"downstream-ipv4-tx-packets": 13,
"downstream-ipv4-rx-packets": 13,
"downstream-ipv4-rx-first-seq": 1,
"downstream-ipv4-loss": 0,
"downstream-ipv4-wrong-session": 0,
"upstream-ipv4-flow-id": 1,
"upstream-ipv4-tx-packets": 13,
"upstream-ipv4-rx-packets": 13,
"upstream-ipv4-rx-first-seq": 1,
"upstream-ipv4-loss": 0,
"upstream-ipv4-wrong-session": 0,
"downstream-ipv6-flow-id": 4,
"downstream-ipv6-tx-packets": 13,
"downstream-ipv6-rx-packets": 13,
"downstream-ipv6-rx-first-seq": 1,
"downstream-ipv6-loss": 0,
"downstream-ipv6-wrong-session": 0,
"upstream-ipv6-flow-id": 3,
"upstream-ipv6-tx-packets": 13,
"upstream-ipv6-rx-packets": 13,
"upstream-ipv6-rx-first-seq": 1,
"upstream-ipv6-loss": 0,
"upstream-ipv6-wrong-session": 0,
"downstream-ipv6pd-flow-id": 6,
"downstream-ipv6pd-tx-packets": 13,
"downstream-ipv6pd-rx-packets": 13,
"downstream-ipv6pd-rx-first-seq": 1,
"downstream-ipv6pd-loss": 0,
"downstream-ipv6pd-wrong-session": 0,
"upstream-ipv6pd-flow-id": 5,
"upstream-ipv6pd-tx-packets": 13,
"upstream-ipv6pd-rx-packets": 13,
"upstream-ipv6pd-rx-first-seq": 1,
"upstream-ipv6pd-loss": 0,
"upstream-ipv6pd-wrong-session": 0
}
}
}