python3 arp_spoofing_topo.py
It will open three terminals: router (root namespace), client, and attacker.
How do you request the MAC address of the router without using L3 (ping, traceroute, ...) or L4/L7 (nc, telnet, curl, ...)?
python3 dns_spoofing_topo.py
It will open four terminals: router (root namespace), dns (root namespace, running DNS server), client, and attacker (running a DNS server that always answers 10.0.1.2).