Эхо-ответ ICMP был создан scapy следующим образом.
Код: Выделить всё
from scapy.all import *
ip = IP(src="10.45.0.2", dst="192.168.22.242")
icmp = ICMP(id=0x1234, seq=1, type=0)
data = b"Hello World"
packet = ip / icmp / data
send(packet)
Код: Выделить всё
from scapy.all import *
ip = IP(dst="192.168.22.242", src="10.45.0.2")
tcp = TCP(dport=80, flags="RA")
packet = ip / tcp
send(packet)
Я проверил исходный код ICMP, но не нашел ничего особенного.
Я пытался использовать PF_RING, который, как говорили, работал отдельно от kernel.network. стек и отдельный цикл.
Я использовал встроенные инструменты, такие как pfcount и pfsend, для отправки и получения пакетов на двух виртуальных машинах.
На VM-A я использовал следующее команда для отправки пакета.
Код: Выделить всё
pfsend -i enp6s18 -f test.pcap
test.pcap
На VM-B я использовал следующую команду для получения пакета.
Код: Выделить всё
pfcount -i eth0 -f "ip src host 10.45.0.2"
Ребята, вы имеете представление о моих вышеупомянутых операциях?
Кто-нибудь может сказать мне, почему нежелательный пакет, то есть автономный icmp эхо-ответ или tcp rst-syn будет перехвачен и отфильтрован ядром? отслеживание соединения ошибочно?
Кто-нибудь может рассказать мне всю процедуру, которую ядро оценивает, действителен ли пакет, и получает его?
Кто-нибудь может сказать мне, действительно ли стандартный режим PF_RING отправляет и получает пакеты непосредственно из сети интерфейсы?
Кто-нибудь может сказать мне, есть ли какой-нибудь способ действительно отправлять и получать пакеты непосредственно из сетевых интерфейсов? PF_RING Режим нулевого копирования?
Заранее спасибо.
Подробнее здесь: https://stackoverflow.com/questions/789 ... e-received