ICMP
The BNG Blaster responds to ICMP echo-requests (PING) on all interfaces, allowing you to ping PPPoE and IPoE sessions, as well as network interfaces. When it comes to network interfaces, the BNG Blaster replies to any request with matching MAC address. This means you can ping all advertised prefixes over those interfaces.
Beyond simply responding to echo-requests, the BNG Blaster also includes an ICMP client. With this client, you can initiate ICMP echo-requests (PING) from PPPoE and IPoE sessions and network interfaces. Each client instance maintains its result tracking. Consequently, if the client receives ICMP unreachable, TTL exceeded, or fragmentation needed messages, these are properly logged and made accessible through the associated ICMP commands.
ICMP Client
Following is a basic ICMP client configuration example.
{
"interfaces": {
"network": [
{
"interface": "eth1",
"address": "10.0.1.2/24",
"gateway": "10.0.1.1",
"vlan": 10
}
],
"access": [
{
"interface": "eth2",
"outer-vlan": 7,
"icmp-client-group-id": 1
}
]
},
"icmp-client": [
{
"__comment__": "ping from session"
"icmp-client-group-id": 1,
"destination-address": "10.10.10.10"
},
{
"__comment__": "ping from network interface"
"network-interface": "eth1:10",
"destination-address": "10.0.1.1"
}
]
}
{ "icmp-client": {} }
Attribute |
Description |
---|---|
icmp-client-group-id |
ICMP client identifier.
This identifier is used to create ICMP clients for sessions.
Range: 1 - 65535
|
network-interface |
ICMP client network-interface.
Use network-interface instead of icmp-client-group-id when
creating ICMP clients on a network interface. These two options
are mutually exclusive, but at least one of them is required.
|
destination-address |
Mandatory destination IPv4 address.
|
source-address |
Optional source IPv4 address.
Default: session/interface address
|
size |
ICMP data size.
Default: 8 Range: 0 - 65507
|
interval |
ICMP send interval in seconds.
Default: 1.0
|
count |
ICMP requests to send before stopping.
Default: 0 (infinity)
|
results |
ICMP request to track results for.
Default: 3 or count if set
|
ttl |
IPv4 header TTL value.
Default: 64
|
tos |
IPv4 header TOS value.
Default: 0
|
df |
IPv4 header dont-fragement (DF) bit.
Default: false
|
autostart |
Autostart ICMP client after session reconnects. This applies only
to ICMP clients that are bound to access sessions.
Default: true
|
start-delay |
ICMP client start delay in seconds.
Default: 0
|
The association between the ICMP client and sessions is established through the use of the ICMP client group identifier (icmp-client-group-id). Multiple ICMP clients can be defined with the same ICMP client group identifier.
For instance, if you define 4 ICMP clients with the same ICMP client group identifier and bind them to 100 sessions each, the BNG Blaster will generate a total of 400 ICMP client instances.
It is also possible to setup ICMP clients over network interfaces, in this case the network interface name (network-interface) must be defined instead of the ICMP client group identifier (icmp-client-group-id).
It is mandatory to set either ICMP client group identifier or network interface but only one as those attributes are mutually exclusive.
The ICMP logging flag (-l icmp
) enables detailed ICMP logging:
# network interfaces
Dec 18 15:58:22.394677 ICMP (eth1:10) send echo-request addr=10.0.1.2 id=2 seq=21
Dec 18 15:58:22.395566 ICMP (eth1:10) fragmentation needed addr=10.0.1.2 id=2 seq=21 mtu=1492
# sessions
Dec 18 15:58:22.727988 ICMP (ID: 1) send echo-request addr=10.0.1.2 id=1 seq=21
Dec 18 15:58:22.728992 ICMP (ID: 1) received echo-reply addr=10.0.1.2 id=1 seq=21 size=8 ttl=63 rtt=1ms
Dec 18 15:58:22.927569 ICMP (ID: 2) send echo-request addr=10.0.1.2 id=1 seq=21
Dec 18 15:58:22.928480 ICMP (ID: 2) TTL exceeded addr=10.0.1.2 id=1 seq=21