Wyślij pakiet przez sieć, nawet jeśli jego celem jest host lokalny


10

W systemie Linux, jeśli wysyłasz pakiet na adres jednego z jego interfejsów sieciowych , ten pakiet jest trasowany wewnętrznie, nigdy nie jest wysyłany przez sieć. Tak jest w 99,99% przypadków.

Czasami podczas testowania konfiguracji sieci przydatne jest wysłanie pakietu przez łącze lokalne z samego komputera, z samym komputerem jako celem. W jaki sposób mogę to zrobić? Przynajmniej dla łącza typu magistrala, takiego jak Ethernet, jeśli nie dla łącza punkt-punkt. Interesują mnie tylko pakiety IP (zarówno IPv4, jak i IPv6).


Próbowałeś skanować nmap?
— Ruban Savvy

Czy jesteś zainteresowany pakietem fizycznie wychodzącym z sieci i ponownie kierowanym? A może chcesz, aby wyglądało to tak, jak gdyby (przejrzyj stos routingu, iptables itp.)?
— Patrick

@Patrick Chcę, żeby wyszedł i osiągnął lokalny router. Chociaż pobyt w tym miejscu, ale wyglądanie lokalnie, jakby zgasło, może być również przydatne w różnych okolicznościach.
— Gilles „SO- przestań być zły”

@Gilles Czy kiedykolwiek miałeś z tym jakiś sukces? Obecnie próbuję to zrobić za pomocą dwóch adapterów TAP i prostego kodu pomostowego, ale bez powodzenia. Routing wydaje się być poprawny, ale ARP wydaje się nie działać (pakiety wychodzą z src mac == dst mac). Mógłbym wyjaśnić moją konfigurację, gdyby to pomogło.
— Jonathon Reinhart

1
@Gilles Nie próbowałem tego, ale mogę sobie wyobrazić implementację routera w taki sposób, że nigdy nie wysyła niczego z powrotem do miejsca, z którego pochodzi, np. Aby zapobiec wiecznemu odbijaniu się między dwoma routerami. Tylko kwestia, na którą należy zwrócić uwagę podczas testowania, na wypadek gdyby paczka wyszła, ale nigdy nie wróciła.
— Anthon

Odpowiedzi:


7

Każda karta sieciowa w systemie Linux ma parametr logiczny sysctl accept_local( /proc/sys/net/ipv4/conf/eth0/accept_local). Spróbuj ustawić wartość 0 dla wszystkich zaangażowanych adapterów (dodatkowo może być konieczne zmodyfikowanie tabeli routingu, aby dostosować ją do konfiguracji testowej).

Upewnij się także, że rp_filter( /proc/sys/net/ipv4/conf/eth0/rp_filter) jest włączone (nie 0).

Odniesienie: http://code.metager.de/source/xref/linux/stable/Documentation/networking/ip-sysctl.txt

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.