Tło:Packet zachowanie dopasowywania w scapy
Używam scapy przetestować urządzenie sieciowe, które mogą selektywnie pakiety pętli zwrotnej poprzez zamianę MAC źródłowy/docelowy, adresy IP i numery portów w warstwie 4. Zamiana może być wybrana dla layer_2_only
, layers_2_and_3
, layers_2_3_and_4
. Używam scapy na serwerze, przesyłając pakiety do urządzenia i sprawdzam, czy pakiety odesłane mają odpowiednie zmienne źródłowe/docelowe w zależności od ustawienia.
Problem:
Sposób scapy srploop()
, który wysyła i odbiera pakiety mecze działa dobrze dla typów komunikatów, takich jak ping ARP. Zauważyłem, że jeśli przesyłam pakiet UDP, a porty źródłowe/dest nie są odwracane przez urządzenie z pętlą zwrotną, wówczas scapy nie traktuje pakietu z zapętlonymi połączeniami jak dopasowania. Gdy numery portów są odwracane przez urządzenie z pętlą zwrotną, pakiety są wykrywane jako dopasowania.
Pytania:
Czy istnieje sposób, aby zastąpić lub w inny sposób wpływać na dopasowanie pakietów logiki scapy'S? Na przykład przydatne byłoby wyłączenie dopasowywania w warstwie 4. Przyjrzałem się dokumentacji i nie natknąłem się na nic, co sugeruje, że jest to możliwe.
Czy istnieje inny sposób, aby osiągnąć to w scapy. Eksperymentowałem z użyciem
send()
, a następniesniff()
, ale nie udało mi się przechwycić odpowiedzi przy użyciu tej metody.