a) redirect all IPv6 ICMP Echo Requests (type: 128
(Conta et al., 2006)) with a unique flow label to the
controller; b) handle the remaining traffic with NOR-
MAL action. With such configuration, the switch will
send every IPv6 ICMP Echo Request packet with a
unique flow label field for further inspection. Every
other traffic, not related to the experiments like, for
instance, ARP or even IPv6 ICMP Echo Reply (type:
129 (Conta et al., 2006)), will be forwarded to the
proper destination and will not reach the controller.
This allows to ensure that the controller is not addi-
tionally overloaded and the obtained results are accu-
rate.
3.1 RTT Measurements
Figs. 2, 3, and 4 illustrate a sequence of pack-
ets/messages exchanged between hosts in the exper-
imental testbed and the related measured RTTs (T1-
T3). It should be noted that, in general, we can as-
sume that T1<T2<T3; however, as described in Sec-
tion 2.1, this may not always be the case.
The first part of our experiments is related to T1,
T2, and T3 RTTs approximation. All experiments
were measured separately to exclude their interfer-
ence. For each RTT measurement scenario, we trans-
mitted 1000 ICMP messages to provide statistical rel-
evance. We assume that if the switch is not over-
loaded, T1, T2, and T3 will be almost constant (ex-
cluding anomalies). On the other hand, if the switch
is unstable, it might be impossible to establish a cor-
rect range of each RTT.
To find the optimal values of T1, T2, and T3 for
our needs and exclude the issues described in Sec-
tion 2.1, we use parameters: number of ping probes
(provided by ping command argument −c) and ping
interval (−i). To establish the optimal ping probes
value, we sent n ICMP messages with the same IPv6
flow label, n ⊂ {1, 2, 3, 4, 5}. We decided to use five as
the maximum value of consecutive ICMP messages as
we experimentally established that a new flow in the
flow table is usually installed after sending 2-4 pings.
We also decided to use three interval values: 0.001,
0.005, and 0.01s. In our setup, we determined that the
intervals below 0.001s cause the switch and the con-
troller to be flooded, which causes the measurements
to be unpredictable in terms of delays as small as less
than 1ms. As for the maximum value (0.01s), we em-
pirically measured that the average T3 is about 5ms,
therefore we doubled it.
To calculate T1, we sent one IPv6 ICMP message
with a fixed flow label. Next, we confirmed that the
flow is installed on the switch, and then we started
generating 1000 IPv6 ICMP messages with the same
flow label. As the rule for such traffic was initiated
before, and this rule is installed on the switch, each
ping is not sent to the SDN controller, but forwarded
directly to the destination host (see Fig. 2). Each
experiment was conducted for every combination of
probes (1-5) and intervals (0.001, 0.005, and 0.01s).
To measure T2, a similar experiment was per-
formed. The only difference is that a new flow label
was used for every 1000 IPv6 ICMP Echo requests.
Additionally, the flow table size was not limited, and
all of the 1000 new flows were installed without any
issues. Some extra messages were exchanged be-
tween OVS and SDN controller to install each flow
(see Fig. 3). Again, each combination of probes and
intervals was experimentally evaluated.
Finally, T3 was measured very similar to T2, but
the flow table size was limited and filled before the
experiment started. In such a case, an additional effort
is required from the SDN controller to remove one of
the existing rules to install the new one (see Fig. 4).
For statistical relevance purposes, each experi-
ment was repeated ten times. We also calculated met-
rics such as minimum, maximum, and average values,
and standard deviation. Therefore, 450 experiments
were run in total (3 RTT x 5 probes x 3 intervals x 10
experiments).
3.2 Flow Table Size and Utilization Rate
Measurements
As described in Section 2, the fingerprinting attack is
successful if an attacker is able to infer the flow table
size and its utilization rate. To perform the experi-
mental evaluation of the flow table state inferring, we
made the following assumptions:
• we manually limit the flow table size to ten differ-
ent values (100, 200, ..., 1000);
• we manually filled half of the table with unique
IPv6 flow labels not used further during the exper-
iments (corresponding values: 50, 100, ..., 500).
To measure the flow table size and its utilization
rate, we need to run two ping6 programs in one loop.
The purpose of the first one was to generate a new
flow label in each loop. We call it the noise ping. We
use it to completely fill the flow table, which, in the
result, will cause the change of the measured RTT.
The second ping with the fixed flow label, i.e., con-
trol ping, is used to measure when a specific flow la-
bel is removed because of the introduced noise. Be-
cause the flow table in our environment uses the most
popular algorithm, i.e., FIFO (First In First Out), the
generated noise will fill the queue causing the con-
trol ping flow to be removed. However, as the control
SECRYPT 2021 - 18th International Conference on Security and Cryptography
580