scapy.layers.tuntap¶
Implementation of TUN/TAP interfaces.
These allow Scapy to act as the remote side of a virtual network interface.
-
class
scapy.layers.tuntap.
LinuxTunIfReq
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.Packet
]Structure to request a specific device name for a tun/tap Linux
struct ifreq
.See linux/if.h (struct ifreq) and tuntap.txt for reference.
-
aliastypes
¶
-
fields_desc
¶ Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IFRN NAME | IFRU FLAGS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. LinuxTunIfReq
LinuxTunIfReq fields¶ ifrn_name
b''
ifru_flags
0
-
-
class
scapy.layers.tuntap.
LinuxTunPacketInfo
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.Packet
]Base for TUN packets.
See linux/if_tun.h (struct tun_pi) for reference.
-
aliastypes
¶
-
fields_desc
¶ Display RFC-like schema
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | FLAGS | TYPE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. LinuxTunPacketInfo
LinuxTunPacketInfo fields¶ flags
<Flag 0 ()>
type
36864
-
-
class
scapy.layers.tuntap.
NativeShortField
(name, default)[source]¶ Bases:
Generic
[scapy.fields.I
,scapy.fields.M
]
-
class
scapy.layers.tuntap.
TunPacketInfo
(*args, **kargs)[source]¶ Bases:
scapy.base_classes.Gen
[scapy.packet.Packet
]-
aliastypes
¶
-
-
class
scapy.layers.tuntap.
TunTapInterface
(iface=None, mode_tun=None, default_read_size=65535, strip_packet_info=True, *args, **kwargs)[source]¶ Bases:
scapy.supersocket.SimpleSocket
A socket to act as the host’s peer of a tun / tap interface.
This implements kernel interfaces for tun and tap devices.
- Parameters
iface – The name of the interface to use, eg: ‘tun0’
mode_tun (bool) – If True, create as TUN interface (layer 3). If False, creates a TAP interface (layer 2). If not supplied, attempts to detect from the
iface
name.strip_packet_info (bool) – If True (default), strips any TunPacketInfo from the packet. If False, leaves it in tact. Some operating systems and tunnel types don’t include this sort of data.
FreeBSD references:
tap(4): https://www.freebsd.org/cgi/man.cgi?query=tap&sektion=4
tun(4): https://www.freebsd.org/cgi/man.cgi?query=tun&sektion=4
Linux references:
-
desc
= "Act as the host's peer of a tun / tap interface"¶