Adres IP, który jest równoważny / dev / null

92

Czy istnieje adres IP, który spowodowałby wysłanie dowolnego pakietu do zignorowania (zakłócenie)?

Wiem, że zawsze mogę skonfigurować router z adresem IP, a następnie zignorować wszystkie wysłane do niego pakiety, ale czy istnieje coś takiego, aby zaoszczędzić mi kłopotów?

Tyler Durden
źródło
2
Istnieje kilka urządzeń (takich jak routery i przełączniki z tego San Francisco cisco co.), Które wykorzystują interfejs Null, który może być wykorzystany jako czarna dziura w szkodliwym ruchu. Należy wskazać trasę do tego interfejsu zerowego, aby cały ruch na tej trasie został odrzucony.
Adriano P
12
możesz być zainteresowany devnull-as-a-service.com
wchargin
2
Jestem ciekawy, dlaczego pytanie jest oznaczone jako „zapobieganie spamowi”?
Mike Pennington
@WChargin, mam nadzieję, że to był żart - devnull-as-a-service.comwydaje się, że nie ma to nic wspólnego z siecią, a nawet wygląda jak bzdura . Co to jest : When we say "government" we mean NSA, CIA, FBI, TSA, Communist Party of China (CPC), Nestle, The Coca-Cola Company, the KGB, some of your coworkers and our friends (especially if there is something funny).?
VL-80,
5
@Nikolay tak, to był żart, podobnie jak strona internetowa. Zobacz ich Github README : „Chodzi przede wszystkim o przedsiębiorstwo, chmurę, * jako usługę i krytykę. ” (
Moje

Odpowiedzi:

84

W IPV6 występuje konkretnie przedrostek czarnej dziury, jak opisano w RFC 6666 , jest to 100 :: / 64. IP4 nie ma takiej wyraźnej czarnej dziury, ale nieistniejący host na jednym z zarezerwowanych bloków miałby taki efekt. (np. 240.0.0.0/4 jest „zarezerwowane do użytku w przyszłości” i nie zostanie przez nic przekierowany).

Bandrami
źródło
32
Przesyłanie danych do czegoś zarezerwowanego do wykorzystania w przyszłości jest dobrym pomysłem, dopóki nie zostanie zrealizowane w przyszłości.
corsiKa
5
Bardzo dobra uwaga, choć bardzo wątpię, aby IP4 znacznie się rozszerzyło.
Bandrami
8
Ale czy router ma zagwarantowane upuszczenie pakietów? Ponieważ jeśli zwróci ICMP „miejsce docelowe nieosiągalne”, nie byłoby to, o co poprosił PO.
WGH
41

Istnieje coś takiego jak czarna dziura w sieci .

Jeśli w sieci nie ma żadnych urządzeń o adresie IP 192.168.0.10, ten adres IP jest rodzajem czarnej dziury i „odrzuci” cały ruch do niego, po prostu dlatego, że nie istnieje.

Protokoły, które śledzą stan połączenia (TCP), mogą wykryć brakującego hosta docelowego. Nie stanie się tak z UDP, a pakiety umrą, a host wysyłający nie zostanie o tym poinformowany.

Możesz skonfigurować czarną dziurę za pomocą zapory ogniowej, ustawiając ją w taki sposób, aby dyskretnie upuszczała pakiety ( nie odrzucając ) z określonych (lub wielu) adresów.

O ile wiem, nie ma takiego standardowego adresu sieciowego, który zrobiłby dla ciebie czarną dziurę w TCP / IP w wersji 4 (dzięki Bandrami ).

Masz więc dwie opcje:

  1. Adres IP, który nie został przypisany do żadnego hosta;
  2. Host z zaporą ogniową, która po cichu upuszcza pakiety lub ich odmiany, na przykład używając netcat: (zgodnie z sugestią ultrasawblade ).

nc -vv -l 25 > /dev/nullnasłuchuje połączeń przychodzących na porcie TCP 25 i potokuje wyniki do /dev/null. Więcej przykładów tutaj .

Cała podsieć może być również czarną dziurą ( trasa zerowa ).

VL-80
źródło
4
Jeśli chcesz czegoś, co odbiera ruch TCP, ale nic z tym nie robisz, możesz szybko ustawić za pomocą nc(lub netcat). Jednak, jak mówi @Nikolay, nie ma adresu IP „blackhole”, który robi to automatycznie.
LawrenceC
2
Przynajmniej nie w IP4
Bandrami
@Bandrami: A co z IPv6?
user2357112
2
@ user2357112, spójrz na jego odpowiedź . Jest tuż pod moim.
VL-80
19

Chociaż nie jest to czarna dziura, możesz również rozważyć adresy IP zarezerwowane do celów testowych / przykładowych (wg RFC 5737) , szczególnie jeśli twoim celem jest „bezpiecznie niedziałająca wartość domyślna”.

  • 192.0.2.0/24 (TEST-NET-1),
  • 198.51.100.0/24 (TEST-NET-2)
  • 203.0.113.0/24 (TEST-NET-3)

Operatorzy sieci POWINNI dodać te bloki adresowe do listy niemożliwych do routingu przestrzeni adresowych, a jeśli wdrożone zostaną filtry pakietów, wówczas ten blok adresu MUSI zostać dodany do filtrów pakietów.

Nie ma gwarancji, że pakiety na te adresy zostaną zablokowane (zależy to od Twojego dostawcy usług internetowych itp.), Ale na pewno nikt już nie powinien ich używać.

Darien
źródło
1
Można je również ODRZUĆ zamiast ZROBIĆ, więc…
mirabilos
1
192.0.2.0 wydaje się działać przy mojej pierwszej próbie, nie zwracając do tej pory żadnych pakietów. Zrobię więcej testów.
Tyler Durden,
16

Nie ma „standardowego adresu czarnej dziury” jako takiego, ani też nie ma żadnych wymagań. Nie mówisz, co tak naprawdę próbujesz osiągnąć, więc nie mogę ci pomóc, ale oto kilka niewłaściwych rozwiązań twojego problemu, które odpowiedziałby na twoje pytanie, gdy je zadałeś:

  • Możesz użyć adresu RFC1918, który nie jest używany w sieci i polegać na swoim dostawcy usług internetowych, aby go zostawił . Na przykład, jeśli używasz tylko niektórych części 192.168, 10.255.255.1 zostałby zerowany przez twojego dostawcę usług internetowych (który uzyskałby to dzięki domyślnej bramie).
  • Możesz użyć adresu IP, który jest zarezerwowany do wykorzystania w przyszłości (i prawdopodobnie nigdy nie będzie używany); taki jest stary zakres „ klasy E. ” Będzie działał tak samo jak powyżej, ale zadziała, nawet jeśli już korzystasz ze wszystkich prywatnych zakresów adresów (mając znacznie szersze maski sieciowe niż to konieczne, wątpię, że będziesz mieć miliony podłączonych urządzeń). Na przykład 254.0.0.1 nigdy (prawnie) nie będzie odnosić się do prawdziwego urządzenia.
  • Na komputerze, na którym jest to potrzebne, możesz dodać cel tylko do upuszczania; użycie nieużywanego adresu, takiego jak powyższy, na przykład iptables -I OUTPUT -d 254.0.0.0/8 -j DROPzapewni , że wszystko , co zostanie wysłane do tej „sieci”, zostanie po cichu usunięte, zamiast przeszkadzać jakimkolwiek bramom, a nawet powodować ruch na rzeczywistym interfejsie sieciowym.

Ponownie, prawdopodobnie nie chcesz tego, nawet jeśli uważasz, że jest to wygodne - nie jest, jest mylące i nieoczywiste oraz nie jest dobrym rozwiązaniem tego, czym naprawdę jest twój problem.

Gabe
źródło
254.0.0.1 nie wyświetla pakietów z czarnymi dziurami, pojawia się błąd „błąd transmisji”.
Tyler Durden
7
+1 za „prawdopodobnie nie chcesz tego wszystkiego ...”
RBerteig
2

Zakresy testowe

Prawdopodobnie sugerowałbym jeden z zakresów adresów „TEST-NET”, „do wykorzystania w dokumentacji i przykładach. Nie powinien być stosowany publicznie” .

192.0.2.0/24
198.51.100.0/24
203.0.113.0/24

Zakresy „Bogon” (Bogus / Fake)

Nie jestem pewien, co powiedzieć tutaj, wydaje się, że jest to raczej praktyka zapewniana przez bramę internetową, niż konkretny sposób implementacji pakietu, który jest kierowany gdzieś, gdzie nie powinien być


Zakresy lokalne

Istnieje również zakres adresów sprzężenia zwrotnego 127.0.0.0/8, np 127.0.0.255. Chociaż nadal możliwe jest istnienie tam rzeczy, w szczególności jakichkolwiek usług na komputerze lokalnym, przynajmniej nie będziesz zakłócał żadnych maszyn w sieci (chyba że masz usługi sieciowe, które są wspierane przez inne usługi sieciowe, jak sądzę).

127.0.0.0/8


Nielegalne zakresy miejsc docelowych

Być może 0.0.0.0można również użyć nielegalnego adresu , chociaż 0.0.0.0/8 jest zarezerwowane dla „Używany do nadawania wiadomości do bieżącego („ tego ”)”, więc istnieje ryzyko nadawania na ten temat.

0.0.0.0/8

Strona Wikipedii dla Null Route stwierdza:

Trasy zerowe są zwykle konfigurowane za pomocą specjalnej flagi trasy, ale można je również zaimplementować, przesyłając pakiety na niedozwolony adres IP, taki jak 0.0.0.0 lub adres zwrotny.


Dotyczy: https://en.wikipedia.org/wiki/Reserved_IP_addresses

ThorSummoner
źródło
Ogólnie jednak zdecydowałem się localhostna najwyższy port 65535, ponieważ chciałem upewnić się, że żaden host nie opuści hosta.
ThorSummoner,
Jeśli określisz port, musisz także określić każdy protokół: TCP, UDP itp., A w ten sposób część ruchu może uniknąć reguł (np. ICMP).
Drakes
1

Jedną rzeczą do rozważenia (która może, ale nie musi stanowić problemu w twoim konkretnym scenariuszu) jest to, że jeśli przekierujesz ruch na nieistniejący adres IP, router i / lub host może próbować w sposób ciągły ARP dla tego adresu, co może być złą rzeczą.

Jeśli skonfigurujesz statyczne wiązanie ARP <-> IP dla tego adresu fantomowego, wtedy system zawsze będzie miał rozstrzygnięty wpis ARP i po prostu położy pakiet na przewodzie z tym adresem ARP (który, jak się przypuszcza, jest fałszywy) i ruch właściwie nie wyląduje nigdzie.

Ponownie, to może nie być tak naprawdę to, czego naprawdę chcesz, ale warto to rozważyć.

ljwobker
źródło