Python scapy получает IP-адрес исходного кода

#networking #scapy

Вопрос:

У меня есть настройка openvpn на моем сервере, и я пытаюсь захватить все icmp-пакеты, отправленные со всех vpn-клиентов. Теперь, поскольку пакеты, которые я получаю на tun0 openvpn, имеют тип ipsec, я вместо этого читаю интерфейс eth0 на том же сервере для захвата пакетов icmp типа

 scapy.sniff(iface="eth0", lfilter=lambda pkt: ICMPv6EchoRequest in pkt or ICMPv6EchoReply in pkt, store=False, prn=process_packet) 
 

Но моя проблема в том, что таким образом, исходный ip-адрес, который я получаю для пакетов, является самим ip-адресом сервера, а не ip-адресом фактического клиента. Я зарегистрировал прямую цепочку iptables, которая фиксирует фактический ip-адрес источника.

 sudo ip6tables -I FORWARD -j LOG -p icmpv6 --icmpv6-type echo-request --log-prefix '** SUSPECT-FORWARD **'
 

Есть ли способ, которым я могу захватить фактический ip-адрес исходного клиента в своей программе?