#!/bin/bash # SPDX-License-Identifier: GPL-2.0 # # Author: Brett A C Sheffield <bacs@librecast.net> # Author: Oscar Maes <oscmaes92@gmail.com> # # Ensure destination ethernet field is correctly set for # broadcast packets
source lib.sh
CLIENT_IP4="192.168.0.1"
GW_IP4="192.168.0.2"
setup() {
setup_ns CLIENT_NS SERVER_NS
ip -net "${SERVER_NS}" link add link1 type veth \
peer name link0 netns "${CLIENT_NS}"
ip -net "${CLIENT_NS}" link set link0 up
ip -net "${CLIENT_NS}" addr add "${CLIENT_IP4}"/24 dev link0
ip -net "${SERVER_NS}" link set link1 up
ip -net "${CLIENT_NS}" route add default via "${GW_IP4}"
ip netns exec "${CLIENT_NS}" arp -s "${GW_IP4}" 00:11:22:33:44:55
}
cleanup() { rm -f "${CAPFILE}""${OUTPUT}"
ip -net "${SERVER_NS}" link del link1
cleanup_ns "${CLIENT_NS}""${SERVER_NS}"
}
test_broadcast_ether_dst() {
local rc=0
CAPFILE=$(mktemp -u cap.XXXXXXXXXX)
OUTPUT=$(mktemp -u out.XXXXXXXXXX)
echo"Testing ethernet broadcast destination"
# start tcpdump listening for icmp # tcpdump will exit after receiving a single packet # timeout will kill tcpdump if it is still running after 2s
timeout 2s ip netns exec "${CLIENT_NS}" \
tcpdump -i link0 -c 1 -w "${CAPFILE}" icmp &> "${OUTPUT}" &
pid=$!
slowwait 1 grep -qs "listening""${OUTPUT}"
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.