Jak bardzo naprawdę wyczerpuje się adres IPv4?


163

Od lat prasa pisze o tym, że obecnie dostępnych jest bardzo niewiele adresów IPv4. Ale z drugiej strony korzystam z firmy hostingowej serwerów, która chętnie rozdaje publiczne adresy IPv4 za niewielką kwotę. A moje prywatne połączenie internetowe ma publiczny adres IPv4.

Jak to możliwe? Czy problem jest tak poważny, jak chce prasa?


23
Niektóre firmy nadal mają pod ręką wiele adresów IPv4. Inni mają bardzo mało. Muszę bardzo ostrożnie przemyśleć wykorzystanie adresu IPv4; w rezultacie mam całkiem sporo maszyn tylko IPv6.
Michael Hampton

21
Daje to również pewną perspektywę na ból, jaki dostawcy usług internetowych są w stanie wyrządzić innym ludziom, aby uniknąć konieczności wdrażania IPv6.
immibis

22
Nie nazwałbym tego złym , ale z pewnością jest to ból. To powiedziawszy, większość konsumentów prawdopodobnie nie dbałaby o to, że stoją za nat, zakładając, że Facebook i WhatsApp działają.
Journeyman Geek

8
@JourneymanGeek Cóż, przeciętnym konsumentom tak naprawdę nie zależy na niczym, czego nie rozumieją. Są pomysły na rozproszonej social media, na przykład (bo to sprawia, że bardzo trudno ocenzurować), ale nikt nie dba o takie rzeczy aż po zabrali z ziemi, które nie mogą z powodu NAT. Śmiem twierdzić, że NAT jest jednym z powodów, dla których skończyliśmy ze scentralizowaną siecią, ponieważ w zasadzie niemożliwe jest prowadzenie własnej witryny bez płacenia komuś.
immibis

15
Jak zauważył @Azendale, hosting serwerów gier jest duży. Dlaczego nie mogę po prostu uruchomić programu minecraft_server.exe i podać moim znajomym mój adres? Z powodu NAT. „Konsumenci” z pewnością czasami chcą uruchamiać serwery gier.
immibis

Odpowiedzi:


176

To bardzo źle. Oto lista przykładów tego, co mam z pierwszej ręki, gdy konsumenci ISP robią, aby walczyć z niedoborem adresów IPv4:

  • Wielokrotnie przetasowania wokół bloków IPv4 między miastami, powodując krótkie przerwy w dostawie i resetowanie połączeń dla klientów.
  • Skrócenie czasu dzierżawy DHCP z dni na minuty.
  • Pozwól użytkownikom wybrać, czy chcą translacji adresów sieciowych (NAT) na sprzęcie lokalu klienta (CPE), czy nie, a następnie włącz je z mocą wsteczną dla wszystkich.
  • Włączanie NAT w CPE dla klientów, którzy już skorzystali z możliwości rezygnacji z NAT.
  • Zmniejszenie ograniczenia liczby jednocześnie aktywnych adresów kontroli dostępu do mediów (MAC) wymuszonych przez CPE.
  • Wdrażanie NAT klasy operatorskiej (CGN) dla klientów, którzy mieli prawdziwy adres IP podczas rejestracji w usłudze.

Wszystko to obniża jakość produktu, który dostawca usług internetowych sprzedaje swoim klientom. Jedynym rozsądnym wyjaśnieniem, dlaczego robią to swoim klientom, jest brak adresów IPv4.

Niedobór adresów IPv4 doprowadził do fragmentacji przestrzeni adresowej, która ma wiele wad:

Bez NAT nie ma dziś szans na przetrwanie dzięki 3700 milionom routowalnych adresów IPv4. Ale NAT to kruche rozwiązanie, które zapewnia mniej niezawodną łączność i problemy, które są trudne do debugowania. Im więcej warstw NAT, tym gorzej. Dwie dekady ciężkiej pracy sprawiły, że przeważnie działa jedna warstwa NAT, ale już przekroczyliśmy punkt, w którym jedna warstwa NAT była wystarczająca, aby obejść niedobór adresów IPv4.


57
Jedną rzeczą do dodania jest to, że NAT prowadzi również do tego, że szkodliwi użytkownicy wpływają na zwykłych użytkowników i generalnie czyni IP niewiarygodnym jako mechanizm różnicowania użytkowników. Na przykład Wikipedia blokuje prawie każdego użytkownika katarskiego z powodu wandalizmu jednego lub kilku użytkowników.
IllusiveBrian

9
@IllusiveBrian ma rację. Odziedziczyłem oprogramowanie do kierowania reklam, które używało adresów IP jako podstawowego identyfikatora. Obecnie nie jest to wystarczające i musiało zostać gruntownie zmodyfikowane, aby zapewnić niezawodność. Indie i Grecja wydają się być dwoma krajami najbardziej dotkniętymi katastrofą. Widzę, że reklama jest wyświetlana ponad 100 razy dziennie z tego samego IPv4, ale każde trafienie może być innym użytkownikiem, określonym przez inne metody śledzenia
Darren H

15
@DmitriySintsov jest niczym więcej niż zwykłą zaporą stanową. Jeśli urządzenie brzegowe może wykonywać translację NAT, może wykonywać stanową zaporę ogniową.
mfinni

15
@DarrenH ”oprogramowanie do kierowania reklam, które wykorzystywało adresy IP jako główny identyfikator ... i musiało zostać gruntownie zmodyfikowane, aby było niezawodne.” Cóż, sam ten powód wystarczy, aby zachować NAT.
Andy

6
@DarrenH To tylko komentarz o tym, że nie lubisz oprogramowania reklamowego, niezależnie od tego, jaki ton masz we własnej głowie.
Andy

132

Zanim zaczęliśmy brakować adresów IPv4, nie korzystaliśmy (powszechnie) z NAT. Każdy komputer podłączony do Internetu miałby swój unikalny globalnie adres. Kiedy NAT został wprowadzony po raz pierwszy, miał przejść od podania klientom ISP 1 rzeczywistego adresu na urządzenie, z którego klient korzystał / był właścicielem, do podania 1 klientowi 1 rzeczywistego adresu. To rozwiązało problem przez jakiś czas (lata), podczas gdy mieliśmy przejść na IPv6. Zamiast przejścia na IPv6 (głównie) wszyscy czekali, aż wszyscy inni się przełączą, więc (głównie) nikt nie wdrożył IPv6. Teraz znów napotykamy ten sam problem, ale tym razem wdrażana jest druga warstwa NAT (CGN), aby dostawcy usług internetowych mogli współdzielić 1 prawdziwy adres między wieloma klientami.

Wyczerpanie adresu IP nie jest wielkim problemem, jeśli NAT nie jest straszny, w tym w przypadku, gdy użytkownik końcowy nie ma nad nim kontroli (NAT klasy Carrier lub CGN).

Twierdziłbym jednak, że NAT jest okropny, szczególnie w przypadku, gdy użytkownik końcowy nie ma nad nim kontroli. I (jako osoba, której praca polega na inżynierii sieci / administracji, ale ma stopień inżyniera oprogramowania) argumentowałbym, że wdrażając NAT zamiast IPv6, administratorzy sieci przesunęli ciężar rozwiązania wyczerpania adresu poza swoje pole i na użytkowników końcowych i twórcy aplikacji.

Więc (moim zdaniem), dlaczego NAT jest straszną, złą rzeczą, której należy unikać?

Zobaczmy, czy mogę to sprawiedliwie wyjaśnić, co psuje (i jakie problemy powodują, że jesteśmy tak przyzwyczajeni, że nawet nie zdajemy sobie sprawy, że może być lepiej):

  • Niezależność warstwy sieci
  • Połączenia peer-to-peer
  • Spójne nazewnictwo i lokalizacja zasobów
  • Optymalne kierowanie ruchem, hosty znające swój prawdziwy adres
  • Śledzenie źródła złośliwego ruchu
  • Protokoły sieciowe oddzielające dane i sterujące w osobne połączenia

Zobaczmy, czy mogę wyjaśnić każdy z tych elementów.

Niezależność warstwy sieci

Dostawcy usług internetowych powinni po prostu ominąć pakiety warstwy 3 i nie dbać o to, co znajduje się w warstwach powyżej. Niezależnie od tego, czy omijasz TCP, UDP, czy coś lepszego / bardziej egzotycznego (może SCTP? Lub nawet inny protokół, który jest lepszy niż TCP / UDP, ale jest niejasny z powodu braku obsługi NAT), twój dostawca usług internetowych nie powinien opieka; wszystko to ma im przypominać dane.

Ale tak nie jest - nie wtedy, gdy wdrażają „drugą falę” NAT, NAT „Carrier Grade”. Następnie muszą koniecznie przyjrzeć się i wspierać protokoły warstwy 4, których chcesz użyć. W tej chwili praktycznie oznacza to, że możesz używać tylko TCP i UDP. Inne protokoły byłyby albo blokowane / upuszczane (zdecydowana większość przypadków z mojego doświadczenia), albo po prostu przekazywane do ostatniego hosta „wewnątrz” NAT, który używał tego protokołu (widziałem 1 implementację, która to robi). Nawet przekazywanie do ostatniego hosta, który używał tego protokołu, nie jest prawdziwą poprawką - gdy tylko dwa hosty go użyją, psuje się.

Wyobrażam sobie, że istnieją pewne protokoły zastępcze dla TCP i UDP, które są obecnie niesprawdzone i nieużywane tylko z powodu tego problemu. Nie zrozumcie mnie źle, TCP i UDP zostały imponująco dobrze zaprojektowane i zadziwiające jest to, jak udało im się skalować do dzisiejszego sposobu korzystania z Internetu. Ale kto wie, co przeoczyliśmy? Czytałem o SCTP i brzmi dobrze, ale nigdy go nie użyłem, ponieważ był niepraktyczny z powodu NAT.

Połączenia peer to peer

Ten jest duży. Właściwie największe według mnie. Jeśli masz dwóch użytkowników końcowych, którzy stoją za swoim NATem, bez względu na to, który z nich spróbuje się połączyć jako pierwszy, NAT drugiego użytkownika porzuci swój pakiet i połączenie się nie powiedzie.

Wpływa to na gry, czat głosowy / wideo (np. Skype), hosting własnych serwerów itp.

Istnieją obejścia. Problem polega na tym, że te obejścia kosztują albo czas programisty, czas użytkownika końcowego i niedogodności, albo koszty infrastruktury usługowej. I nie są niezawodne i czasami pękają. (Zobacz komentarze innych użytkowników na temat awarii spowodowanej przez Skype.)

Jednym obejściem jest przekierowanie portów, w którym programuje się urządzenie NAT do przekazywania określonego portu przychodzącego do określonego komputera za urządzeniem NAT. Istnieją całe strony internetowe poświęcone temu, jak to zrobić dla wszystkich różnych urządzeń NAT. Zobacz https://portforward.com/ . Zwykle kosztuje to czas użytkownika końcowego i frustrację.

Innym obejściem jest dodanie obsługi aplikacji, takich jak dziurkowanie, i utrzymanie infrastruktury serwera, która nie stoi za NAT, w celu wprowadzenia dwóch klientów NATed. Zwykle kosztuje to czas programowania i stawia programistów w pozycji potencjalnie utrzymującej infrastrukturę serwerów tam, gdzie nie byłaby wcześniej wymagana.

(Pamiętasz, co powiedziałem o wdrażaniu NAT zamiast IPv6, przenoszeniu ciężaru problemu z administratorów sieci na użytkowników końcowych i twórców aplikacji?)

Spójne nazewnictwo / lokalizacja zasobów sieciowych

Ponieważ wewnątrz NAT jest używana inna przestrzeń adresowa niż na zewnątrz, każda usługa oferowana przez urządzenie wewnątrz NAT ma wiele adresów, z których można do niej dotrzeć, a poprawny do użycia zależy od tego, skąd klient uzyskuje do niej dostęp . (Jest to nadal problem, nawet po uruchomieniu przekierowania portów).

Jeśli masz serwer WWW wewnątrz NAT, powiedzmy na porcie 192.168.0.23 port 80, a twoje urządzenie NAT (router / brama) ma adres zewnętrzny 35.72.216.228 i skonfigurowałeś przekierowanie portów dla portu TCP 80, teraz twój Dostęp do serwera WWW można uzyskać przy użyciu portu 80.1.1.1.0.0.23 80 LUB 35.72.216.228 portu 80. Ten, którego należy użyć, zależy od tego, czy znajdujesz się w NAT, czy poza nim. Jeśli jesteś poza NAT i używasz adresu 192.168.0.23, nie dotrzesz do miejsca, w którym się spodziewasz. Jeśli jesteś wewnątrz NAT i użyć adresu zewnętrznego 35.72.216.228, wy może dotrzeć tam, gdzie chcesz, jeśli NAT realizacja jest zaawansowanym, który obsługuje zakręt, ale wtedy serwer WWW obsługujący twoje żądanie zobaczy żądanie jako pochodzące z twojego urządzenia NAT. Oznacza to, że cały ruch musi przechodzić przez urządzenie NAT, nawet jeśli za NAT jest krótsza ścieżka w sieci, a to oznacza, że ​​logi na serwerze WWW stają się znacznie mniej przydatne, ponieważ wszystkie one wymieniają urządzenie NAT jako źródło połączenie. Jeśli twoja implementacja NAT nie obsługuje szpilki do włosów, nie dotrzesz tam, gdzie się spodziewałeś.

Problem ten nasila się, gdy tylko użyjesz DNS. Nagle, jeśli chcesz, aby wszystko działało poprawnie dla czegoś hostowanego za NAT, będziesz chciał udzielić różnych odpowiedzi na adres usługi hostowanej wewnątrz NAT, w zależności od tego, kto pyta (DNS DNS split split, IIRC). Fuj

A wszystko to przy założeniu, że masz kogoś znającego się na przekierowywaniu portów i translacji adresów sieciowych NAT oraz DNS DNS z podziałem horyzontu. Co z użytkownikami końcowymi? Jakie są szanse, że wszystko to zostanie skonfigurowane, gdy kupią router konsumencki i kamerę bezpieczeństwa IP i chcą, żeby „po prostu działała”?

I to prowadzi mnie do:

Optymalne kierowanie ruchem, hosty znające swój prawdziwy adres

Jak widzieliśmy, nawet przy zaawansowanym ruchu NAT spinki do włosów nie zawsze przepływa przez optymalną ścieżkę. Dzieje się tak nawet w przypadku, gdy znający się na rzeczy administrator konfiguruje serwer i ma spinki do włosów NAT. (Przyznaję, DNS DNS z podzielonym horyzontem może prowadzić do optymalnego routingu wewnętrznego ruchu w rękach administratora sieci.)

Co się stanie, gdy twórca aplikacji utworzy program taki jak Dropbox i przekaże go użytkownikom końcowym, którzy nie specjalizują się w konfigurowaniu sprzętu sieciowego? W szczególności, co się stanie, gdy włożę plik 4 GB do mojego pliku udostępniania, a następnie spróbuję uzyskać dostęp na następnym komputerze? Czy transferuje się bezpośrednio między komputerami, czy też muszę czekać na przesłanie go do serwera w chmurze za pośrednictwem wolnego połączenia WAN, a następnie poczekać drugi raz, aż pobierze przez to samo wolne połączenie WAN?

W przypadku naiwnej implementacji zostanie on przesłany, a następnie pobrany przy użyciu infrastruktury serwerowej Dropbox, która nie stoi za NAT jako mediator. Ale jeśli te dwa komputery mogłyby tylko zorientować się, że są w tej samej sieci, mogłyby po prostu przenieść plik znacznie szybciej. Dlatego podczas naszej pierwszej mniej naiwnej próby wdrożenia możemy zapytać system operacyjny, jaki adres IP (v4) ma komputer, a następnie sprawdzić, czy w porównaniu z innymi komputerami zarejestrowanymi na tym samym koncie Dropbox. Jeśli jest w tym samym zakresie co my, po prostu prześlij plik bezpośrednio. To może działać w wielu przypadkach. Ale nawet wtedy pojawia się problem: NAT działa tylko dlatego, że możemy ponownie wykorzystywać adresy. A co jeśli adres 192.168.0.23 i 192.168.0. 42 adresy zarejestrowane na tym samym koncie Dropbox są w rzeczywistości w różnych sieciach (takich jak sieć domowa i sieć służbowa)? Teraz musisz wrócić do korzystania z infrastruktury serwera Dropbox do mediacji. (W końcu Dropbox próbował rozwiązać problem, każąc każdemu klientowi Dropbox nadawać w sieci lokalnej w nadziei na znalezienie innych klientów. Ale te transmisje nie przechodzą przez żadne routery, które możesz mieć za NAT, co oznacza, że ​​nie jest to pełne rozwiązanie ,szczególnie w przypadku CGN .)

Statyczne adresy IP

Ponadto, ponieważ pierwszy niedobór (i fala NAT) miał miejsce, gdy wielu klientów nie zawsze korzystało z połączeń (takich jak połączenie telefoniczne), dostawcy usług internetowych mogliby lepiej wykorzystywać ich adresy, przydzielając publiczne / zewnętrzne adresy IP tylko wtedy, gdy użytkownik był faktycznie podłączony. Oznaczało to, że po nawiązaniu połączenia masz dostęp do dowolnego dostępnego adresu, zamiast zawsze otrzymywania tego samego adresu. To sprawia, że ​​prowadzenie własnego serwera jest o wiele trudniejsze i utrudnia tworzenie aplikacji peer-to-peer, ponieważ muszą radzić sobie z poruszającymi się użytkownikami, zamiast przebywać pod ustalonymi adresami.

Zaciemnianie źródła złośliwego ruchu

Ponieważ NAT ponownie zapisuje połączenia wychodzące tak, jakby pochodziły z samego urządzenia NAT, całe zachowanie, dobre lub złe, jest zrolowane na jeden zewnętrzny adres IP. Nie widziałem żadnego urządzenia NAT domyślnie rejestrującego każde połączenie wychodzące. Oznacza to, że domyślnie źródło przeszłego złośliwego ruchu można prześledzić tylko do urządzenia NAT, przez które przeszło. Chociaż więcej urządzeń klasy korporacyjnej lub operatora można skonfigurować do rejestrowania każdego połączenia wychodzącego, nie widziałem żadnych routerów konsumenckich, które to robią. Z pewnością uważam, że interesujące będzie sprawdzenie, czy (i jak długo) dostawcy usług internetowych będą rejestrować wszystkie połączenia TCP i UDP nawiązywane za pośrednictwem CGN podczas ich wdrażania. Takie dane byłyby potrzebne do rozpatrywania skarg dotyczących nadużyć i skarg DMCA.

Niektórzy uważają, że NAT zwiększa bezpieczeństwo. Jeśli tak, robi to przez zaciemnienie. Domyślny spadek ruchu przychodzącego, który NAT jest obowiązkowy, jest taki sam, jak posiadanie zapory ogniowej z funkcją stanową. Rozumiem, że każdy sprzęt zdolny do śledzenia połączenia niezbędnego dla NAT powinien być w stanie uruchomić stanową zaporę ogniową, więc NAT tak naprawdę nie zasługuje na żadne punkty.

Protokoły korzystające z drugiego połączenia

Protokoły takie jak FTP i SIP (VoIP) zwykle używają oddzielnych połączeń do kontroli i rzeczywistej zawartości danych. Każdy protokół, który to robi, musi mieć oprogramowanie pomocnicze o nazwie ALG (brama warstwy aplikacji) na każdym urządzeniu NAT, przez które przechodzi, lub obejść ten problem za pomocą jakiegoś mediatora lub dziurkowania. Z mojego doświadczenia wynika, że ​​ALG są rzadko, jeśli w ogóle aktualizowane, i były przyczyną co najmniej kilku problemów, z którymi miałem do czynienia w związku z SIP. Za każdym razem, gdy słyszę, że ktoś donosi, że VoIP nie działał dla nich, ponieważ dźwięk działał tylko w jedną stronę, od razu podejrzewam, że gdzieś jest brama NAT upuszczająca pakiety UDP, z którą nie może dowiedzieć się, co z tym zrobić.

Podsumowując, NAT ma tendencję do pękania:

  • protokoły alternatywne do TCP lub UDP
  • systemy peer-to-peer
  • dostęp do czegoś hostowanego za NAT
  • rzeczy takie jak SIP i FTP. ALG do obejścia tego problemu nadal powodują losowe i dziwne problemy, szczególnie w przypadku SIP.

U podstaw warstwowe podejście stosu sieciowego jest stosunkowo proste i eleganckie. Spróbuj wyjaśnić to nowicjuszowi w dziedzinie sieci, a oni nieuchronnie zakładają, że ich sieć domowa jest prawdopodobnie dobrą, prostą siecią do zrozumienia. Widziałem to w kilku przypadkach do dość interesujących (nadmiernie skomplikowanych) pomysłów dotyczących działania routingu z powodu pomieszania adresów zewnętrznych i wewnętrznych.

Podejrzewam, że bez NAT VoIP byłby wszechobecny i zintegrowany z PSTN, a wykonywanie połączeń z telefonu komórkowego lub komputera byłoby bezpłatne (z wyjątkiem Internetu, za który już zapłaciłeś). W końcu dlaczego miałbym płacić za telefon, skoro ty i ja możemy po prostu otworzyć strumień VoIP 64K i działa on równie dobrze jak PSTN? Wygląda na to, że dzisiaj problem numer 1 przy wdrażaniu VoIP dotyczy urządzeń NAT.

Podejrzewam, że zwykle nie zdajemy sobie sprawy, o ile prostsze mogłoby być wiele rzeczy, gdybyśmy mieli do końca łączność, która przerwała NAT. Ludzie nadal sami wysyłają pliki (lub Dropbox), ponieważ stanowią podstawowy problem z koniecznością korzystania z mediatora, gdy dwóch klientów stoi za NAT.


3
@supercat Adresy IPv6 są globalnie unikalne, ale nie płaskie (w celu obsługi routingu, który musi być hierarchiczny). Wydaje mi się, że jeśli chcemy, aby jakieś dwa hosty połączone z Internetem teoretycznie mogły się komunikować, konieczne są globalnie unikalne adresy w jakiejś formie.
Jakob

9
@ superupat Niestety, jest to trwały mit, że IPv6 wciąż nie ma wystarczająco dużo miejsca dla wszystkich. Możesz dać / 48 każdemu na ziemi i nadal pozostało ci dużo miejsca. Aby wyczerpać aktualnie przydzielone miejsce 2000::/3, musisz powtórzyć to ćwiczenie ponad 4000 razy! lub daj wszystkim a / 34. Ale a / 48 jest wystarczająco dobry dla praktycznie każdego, a ci, którzy potrzebują więcej, mogą go łatwo zdobyć. Nawet gdyby tego było mało, jest jeszcze 4000::/3, 6000::/3itd dostępny. Mamy DUŻO miejsca; czas z niego skorzystać. Zobacz także RFC 6177 .
Michael Hampton

7
@immibis Wygląda na to, że coś przeoczyłeś. Organizacje nie są ograniczone do uzyskania albo 48/32. Mogą uzyskać praktycznie dowolny rozmiar bloku. Może to być a / 44 lub a / 40 lub / 39 lub / 47 lub cokolwiek innego. Powinieneś także przeczytać RFC 6177.
Michael Hampton

4
Niestety wiele osób zaczęło używać NAT jako głupiej formy bezpieczeństwa, a wiele urządzeń, takich jak chromecast i urządzenia IoT, zakłada, że ​​każde urządzenie, które może się z nim połączyć, jest urządzeniem zaufanym, więc każdy router, który widziałem, zrywa połączenia przychodzące z urządzeniami ipv6 i niektóre, które widziałem, nie mają sposobu, aby to wyłączyć, tylko zwykłe przekierowywanie portów.
Qwertie,

14
... Ok, nienawidzę NAT teraz; jak przejść na IPv6?
Adam Barnes

20

Jednym wielkim symptomem wyczerpania IPv4, o którym nie wspomniałem w innych odpowiedziach, jest to, że niektórzy dostawcy usług mobilnych zaczęli korzystać z IPv6 dopiero kilka lat temu. Istnieje szansa, że ​​używasz IPv6 od lat i nawet o tym nie wiedziałeś. Dostawcy mobilni są nowsi w grze internetowej i niekoniecznie mają ogromne wcześniej istniejące przydziały IPv4. Wymagają także większej liczby adresów niż kabel / DSL / światłowód, ponieważ telefon nie może udostępniać publicznego adresu IP innym członkom gospodarstwa domowego.

Domyślam się, że IaaS, a dostawcy PaaS będą następni, ze względu na ich wzrost, który nie jest związany z fizycznymi adresami klientów. Nie zdziwiłbym się, gdy wkrótce dostawcy IaaS oferujący wyłącznie IPv6 ze zniżką.


10
Widziałem już kilku małych dostawców oferujących maszyny wirtualne tylko IPv6 i pobierających opłatę za IPv4.
Michael Hampton

14

W głównych RIR zabrakło miejsca na normalne przydziały jakiś czas temu. Dlatego dla większości dostawców jedynym źródłem adresów IPv4 są ich własne zapasy i rynki.

Istnieją scenariusze, w których lepiej jest mieć dedykowany publiczny adres IP IPv4, ale nie jest to absolutnie niezbędne. Istnieje również kilka publicznych adresów IPv4, które są przydzielone, ale obecnie nie są używane w publicznym Internecie (mogą być używane w sieciach prywatnych lub mogą nie być w ogóle używane). Wreszcie istnieją starsze sieci, których adresy są przydzielane znacznie luźniej, niż muszą.

Trzy największe RIR pozwalają teraz sprzedawać adresy zarówno między ich członkami, jak i między sobą. Mamy więc rynek między organizacjami, które albo mają adresy, których nie używają, albo adresami, które można zwolnić za jedną stronę, a organizacjami, które naprawdę potrzebują więcej adresów IP z drugiej.

Trudno przewidzieć, jaka będzie podaż i popyt w każdym punkcie cenowym, a zatem co zrobi cena rynkowa w przyszłości. Jak dotąd wydaje się, że cena za IP pozostawała zaskakująco niska.


AfriNIC wciąż ma mniej niż 8 adresów i widziałem wiele przykładów organizacji poza Afryką.
Michael Hampton

7

Idealnie byłoby, gdyby każdy host w Internecie mógł uzyskać adres IP o zasięgu globalnym, jednak wyczerpanie adresu IPv4 jest prawdziwe, w rzeczywistości ARIN zabrakło już adresu w jego puli .

Powodem, dla którego każdy nadal może uzyskać dostęp do usług internetowych jest w porządku, dzięki technikom translacji adresów sieciowych (NAT), które umożliwiają wielu hostom współdzielenie publicznych adresów IP. Nie przychodzi to jednak bez problemów.


18
Nie chcę wiedzieć, ile roboczogodzin, zasobów i milionów zostało zmarnowanych między Napsterem, Gnutellą, Plotkami, Kazaa, BitTorrentem, Kademlia, FastTrack, eDonkey, Freenet, Grokster, Skype, Threema, Spotify i tak dalej , rozwijając techniki przekłuwania NAT.
Jörg W Mittag

@ JörgWMittag Nie wspominając już o tym, jak spektakularny nie zadziałał dla Skype'a w grudniu 2010 roku.
kasperd

4
I przede wszystkim fakt, że musisz używać technik przekłuwania NAT. Jeśli zarówno maszyna X, jak i maszyna Y są w zwykłych połączeniach, nie mogą ze sobą rozmawiać bez pośrednika. Irytujące dla rzeczy takich jak zadania synchronizacji plików.
Loren Pechtel

@kasperd Czy mógłbyś rozwinąć tę kwestię „nie udało się uzyskać Skype'a w grudniu 2010 r.”? Z jakiegoś nieokreślonego powodu mogłem stwierdzić, że duża liczba supernod zawiodła jednocześnie . I nie widzę, jak to ma znaczenie dla wyczerpania adresu IPv4.
ivan_pozdeev

5
@ivan_pozdeev Supernodes to obejście problemów spowodowanych przez NAT. Sam NAT jest obejściem problemu braku adresów IPv4. Tak więc potrzeba używania supernod przez Skype'a była całkowicie spowodowana brakiem adresów IPv4. Gdyby Internet został uaktualniony do IPv6 w bardziej rozsądnym tempie, Skype nie potrzebowałby supernod, a taka awaria nie miałaby miejsca.
kasperd

5

Dostawcy usług internetowych używali do przekazywania firmom bloków 256 adresów IP. Teraz dostawcy usług internetowych są skąpi i dają ci (firmie) jak np. 5. W ciągu dnia (2003) każdy komputer i podłączone urządzenie w domu miało własny internetowy adres IP. Teraz router kablowy / DSN / Fios ma jeden adres IP i przekazuje adresy IP 10.0.0.x wszystkim komputerom w domu. Podsumowanie: dostawcy usług internetowych używali do marnowania adresów IP, a teraz już ich nie marnują.


5
Za dnia (2003) każdy komputer i podłączone urządzenie w domu miało swój własny internetowy adres IP. Tylko jeśli zapłaciłeś za 2, 3, 4 itd.
RonJohn

2
RonJohn ma rację. Byłem jednym z pierwszych użytkowników Internetu szerokopasmowego, kiedy internet kablowy pojawił się w mojej okolicy w 1997 roku. Płaciłem za to 50 USD (USA) miesięcznie i wyraźnie pamiętam, że oferowali drugi adres IP za dodatkowe 20 USD miesięcznie. Mimo że chciałem, nie chciałem za to płacić. W następnym roku mój problem został rozwiązany, gdy odkryłem urządzenia NAT. Nie miały wielu funkcji (takich jak przekierowanie portów dla połączeń przychodzących), ale ta, którą zaspokoiłem, natychmiast.
Charles Burge

@CharlesBurge Też pamiętam. Widzimy też, że niektórzy dostawcy próbują teraz zrobić to samo z IPv6.
Kevin Keane

@CharlesBurge: To zależało od twojego dostawcy usług internetowych. Mniej więcej w tym samym czasie miałem przyjaciela na kablu w Phoenix w stanie Arizona, a on dostał w pełni routowaną podsieć, blok / 29, z 8 adresami, 5 do użytku. Uruchomiliśmy na nim serwer Linux z bramkowaniem (przez przypadek z naszej strony), a sieć kablowa faktycznie udostępniła mu pełne informacje o routingu BGP. To, a ludzie umieszczający komputery i drukarki z systemem Windows z całkowicie otwartymi udziałami w sieci sprawili, że życie było interesujące.
Zan Lynx

O tak, pamiętam widoczność sieci. Wszyscy inni w mojej pętli byli widoczni w „Network Neighborhood” i mogłem przeglądać wszystkie posiadane przez nich udziały.
Charles Burge

5

Masz już wiele doskonałych odpowiedzi, ale chciałbym dodać coś, o czym jeszcze nie wspomniano.

Tak, wyczerpanie adresu IPv4 jest złe, w zależności od sposobu pomiaru. Niektóre firmy wciąż mają ogromną podaż adresów IPv4, ale zaczynamy dostrzegać obejścia takie jak NAT klasy operatorskiej.

Ale wiele odpowiedzi jest błędnych, gdy skręcają w kierunku IPv6.

Oto lista technologii, które mogą pomóc rozwiązać problem braku adresu IPv4. Każdy ma swoje zalety i wady.

  • IPv6

    • Zaleta: znormalizowana i dostępna w większości systemów operacyjnych.
    • Wada: pomimo częstych stwierdzeń przeciwnych, poważne problemy z bezpieczeństwem. Już w 2005 roku amerykański CERT ostrzegał przed problemami bezpieczeństwa spowodowanymi globalnym adresowaniem IPv6. IPv6 może być odpowiednio zabezpieczony, ale biorąc pod uwagę stan routerów konsumenckich, może się to nie zdarzyć.
    • Wada: migracja wymaga czasu, pieniędzy i wiedzy specjalistycznej.
    • Wada: wiele urządzeń konsumenckich ma poważne wady. Na przykład wiele routerów D-Link obsługuje IPv6, po prostu przekierowując cały ruch bez oferowania zapory ogniowej.

Kolejna uwaga: nawet jeśli IPv6 złapie się całkowicie dzisiaj, nadal będzie to trwało około 20 lat, aby wycofać IPv4, ze względu na starszy sprzęt, z którego ludzie będą korzystać przez bardzo długi czas (nadal widzę serwery Windows 2003 i stacje robocze Windows XP czasami! Nie wspominając o wszystkich drukarkach, aparatach i gadżetach IoT, które nie obsługują IPv6).

  • CGNat:
    • Zaleta: działa bez zmian w siedzibie klienta.
    • Wada: obsługuje tylko połączenia wychodzące.
    • Wada: może nie obsługiwać kilku protokołów.

W końcu CGNat nie wystarczy. Może IPv6 złapie, ale całkiem możliwe, że w końcu zobaczymy NAT klasy krajowej lub coś podobnego.

Obecnie jako konsultant często muszę informować moich klientów, że są narażeni na IPv6 (często dzięki Teredo). Następnym pytaniem będzie niezmiennie: „ile to kosztuje naprawić?” a następnie „Ile to kosztuje, aby go zablokować? Co tracimy, jeśli go wyłączymy?” Zgadnij, jaka będzie decyzja za każdym razem.

Konkluzja: aby odpowiedzieć na twoje pytanie, tak, wyczerpanie IPv4 jest prawdziwe. I zobaczymy sporo mechanizmów radzenia sobie z tym. IPv6 może, ale nie musi, być równaniem.

Żeby było jasne: nie mówię, że podoba mi się ta sytuacja. Chciałbym, aby IPv6 odniósł sukces (i chciałbym zobaczyć szereg ulepszeń w stosunku do IPv6). Patrzę tylko na sytuację jaka jest teraz na ziemi.


2
CGN, jak każdy NAT, działa tylko z TCP, UDP i ICMP, a nie z innymi protokołami transportowymi. Łamie także wiele protokołów warstwy aplikacji. NAT to brzydkie rozwiązanie do próby rozszerzenia IPv4 i naprawdę przestało być przydatne.
Ron Maupin

3
@ supercat, pakiety IP nie mają nazw DNS. To byłby inny protokół. Tylko protokoły transportowe TCP, UDP i ICMP działają z NAPT, inne nie. Wiele aplikacji i protokołów warstwy aplikacji nie działa z NAPT i wymagają brzydkich hacków na brzydkim hacku NAPT. Założeniem IP jest to, że każde urządzenie końcowe ma unikalny adres i wokół niego zaprojektowano wiele protokołów. IPv6 rozwiązuje ten problem, a także niektóre niedociągnięcia IPv4.
Ron Maupin

3
@ superupat, jeśli to naprawdę takie proste, nie byłoby powodu, aby ogromna baza sieci IPX przekonwertowała się na IPv4. Możesz zrobić to samo między IPX i IPv4, i zrobiono to przez jakiś czas, ale to tylko kludge.
Ron Maupin

1
@supercat - czy więc aby wesprzeć taką sieć, musimy porzucić istniejące standardy i przepisać wszystkie istniejące aplikacje, które łączą się bezpośrednio z adresami? To nie brzmi jak dobre podejście do mnie.
Jules

2
@KevinKeane Nie dziwię się, że starożytny router konsumencki z 2010 roku ma problemy z IPv6. 30-sekundowe przeglądanie wyników wyszukiwania Google wskazuje, że rozwiązali ten problem lata temu.
Michael Hampton

-1

NAT jest tym, co stało się, gdy IPv6 był pomysłem, zanim stało się rzeczywistością, a przydzielanie adresów IP stało się prawdziwym problemem (ktoś pamięta, kiedy wręczali klasy C na żądanie?), A świat rzeczywisty potrzebował rozwiązania w międzyczasie .

NAT nie jest wystarczający dla IoT. Jeśli IoT się stanie, stanie się tak z IPv6. Natura Internetu Rzeczy jest ściślej dopasowana do tego, jak działał świat dial-upów, z tym wyjątkiem, że jednocześnie będzie podłączonych kilka rzędów wielkości urządzeń.


2
Z szybkiego wyszukiwania NAT wydaje się być pierwotnie zdefiniowany przez RFC 1631 w maju 1994 r. IPv6 jest zdefiniowany w RFC 1883, opublikowanym w grudniu 1995 r. Jako proponowany standard (który jest dość daleko wzdłuż standardowej ścieżki). Nie wiem, gdzie wyznaczasz granicę między „pomysłem” a „rzeczywistością”, ale głównie działający kod IPv6 prawie na pewno istniał w testbedach na długo przed opublikowaniem RFC 1883. Porównaj to z często przywoływanym RFC 1918, który został opublikowany w lutym 1996 r., Kilka miesięcy po początkowym RFC IPv6.
CVn

2
Normy są bezużyteczne bez wdrożenia, a wdrożenie, za które konsumenci lub firmy są skłonne zapłacić. Testy i dowody koncepcji nie liczą się na rynku. Chodzi mi o NAT, że działające implementacje dotarły na rynek (i dlatego zyskały przyczepność), ponieważ istniejący sprzęt (i było go w tym czasie) wszystkie mówił IPv4. Było to raczej kwestią „rozwiązanego problemu, teraz pracujemy nad bardziej palącymi problemami”.
Xavier

2
@Xavier: 64K to górny limit, do którego urządzenie NAT nie może nawet osiągnąć. Po pierwsze, wszystkie niskie porty poniżej 1024 są ograniczone. I większość NAT ogranicza się do wysokiego zakresu portów wynoszącego około 20 000 portów. I oczywiście jest problem z pamięcią: nawet dzisiaj mamy routery przewracające się i resetujące, ponieważ ktoś próbował otworzyć 10 000 połączeń TCP w tym samym czasie. Patrzę na ciebie, Google Home.
Zan Lynx

1
@KevinKeane - ponieważ część losowania do IOT jest w stanie połączyć się z twoimi urządzeniami z zewnątrz. W tej chwili, ponieważ konfiguracja NAT jest bólem, którego producenci urządzeń nie chcą wyrządzać konsumentom, często robimy to za pośrednictwem zewnętrznych usług „podłączania” dostarczanych przez producentów urządzeń, ale nie jest to zrównoważone w perspektywie długoterminowej . Wszystko, czego potrzebuje, to wycofanie się z działalności znanego producenta i nagle wszyscy będą musieli liczyć się z tym, że ich urządzenia będą nadal działać. Jedynym sposobem, w jaki będzie to działać w dłuższej perspektywie, jest to, że większość ludzi ma IPv6.
Jules

1
@supercat - być może, ale jak dotąd wydaje się to być mniej prawdopodobne niż powszechna dostępność IPv6 ...
Jules

-4

Cały problem dotyczący adresu IPv4 jest raczej skomplikowany. Może się okazać, że niektóre artykuły informują, że są wyczerpane, a jeszcze inne mówią o dużej liczbie nadwyżek (nigdy nieużywanych) adresów sprzedawanych między stronami. Pytanie brzmiałoby: dlaczego nie są one dostępne dla tych (wschodzących regionów i obszarów wiejskich krajów rozwiniętych)?

Poniżej znajduje się wynik badania, w które przypadkowo się zapuściliśmy. Wykorzystuje jedynie oryginalny protokół IPv4 RFC791 i długo zarezerwowany, ale rzadko wykorzystywany blok adresów 240/4 do rozszerzenia puli IPv4 o krotnie 256 mln. Przedłożyliśmy IETF projekt wniosku o nazwie EzIP (fonetycznie dla Easy IPv4):

https://tools.ietf.org/html/draft-chen-ati-adaptive-ipv4-address-space-03

Zasadniczo podejście EzIP nie tylko rozwiąże problemy z brakiem adresu IPv4, ale także w dużej mierze złagodzi pierwotną przyczynę luk w zabezpieczeniach cyberbezpieczeństwa, a także otworzy nowe możliwości dla Internetu, wszystko w ramach domeny IPv4. W rzeczywistości schemat ten można zastosować „w ukryciu” w odizolowanych regionach, w razie potrzeby. Powinny one zmniejszyć pilną potrzebę wdrożenia protokołu IPv6 na znaczny czas i unieważnić rynek handlu adresami IPv4.

Wszelkie uwagi i komentarze będą mile widziane.

Abe (2018-07-15 17:29)


3
ServerFault nie jest IGF WG.
womble

-5

Szczerze mówiąc, myślę, że nie jest tak źle, jak ludzie myślą. Tak, może w niektórych miejscach, ale nie tak bardzo, ponieważ nie ma wystarczającej liczby adresów. To dlatego, że wszystkie są własnością. Może to moja lokalizacja, czy coś takiego, ale w ciągu ostatnich siedmiu lat wykonałem pracę IT dla grupy małych i średnich firm, a wszystkie rzeczy, o których wszyscy mówicie, są zwykle tylko standardową konfiguracją. Całkiem proste, chyba że masz kiepskie urządzenie lub w ogóle jest gówniana konfiguracja sieci, którą należy rozwiązać.

Osobiście nie mam nic przeciwko NAT. Ogólnie rzecz biorąc, jest to dodatkowa warstwa ochrony. Przynajmniej muszą przejść przez dodatkowe urządzenie lub znaleźć sposób na pośrednie przejęcie mojego połączenia. Jeśli chodzi o uruchamianie serwerów, jest to generalnie niezgodne z umową z dostawcą usług internetowych i / lub uważane za naruszenie umowy, chyba że za to zapłacisz. Pewnie, że możesz to zrobić, a oni prawdopodobnie nie zrobią ci z tego powodu błędu, ale mogliby.

Przekierowanie portów i wszystko to nie jest dokładnie skomplikowane. Być może niektóre urządzenia nie są łatwe do skonfigurowania, ale nie dzieje się tak z powodu IPv4. Nadal oferuje największą kompatybilność po prostu dlatego, że jest wszechobecny.

W rzeczywistości nikt nie musi sam wysyłać wiadomości e-mail, a wysyłanie czegoś na Drop-box lub Dysk Google lub milion innych podobnych usług nie jest obecnie nauką rakietową ani powolną. Mam na myśli, że wszystko się synchronizuje. Upuszczasz go w folderze. Chyba że jesteś nerdy jak ja i robisz wszystko przez ssh / sftp (okej, nie wszystko ). A jeśli masz jakiś powód, dla którego naprawdę chcesz uruchomić własny serwer, hosting w chmurze jest tani - mam dedykowany serwer wirtualny, który działa na systemie Linux na ssd. Przepustowość jest niesamowicie szybka. Uruchamia się szybciej niż mogę wpisać strzałkę w górę i nacisnąć Enter. Jest skalowalny Cała konfiguracja kosztuje od 5 do 10 dolców miesięcznie, z bezpłatnymi kopiami zapasowymi i bez rachunku za prąd.

Naprawdę nie potrzebuję rozwiązania sieci równorzędnej. Nawet większość gier dla wielu użytkowników jest obecnie skonfigurowana do interakcji przez serwer pośredniczący, wszystkie konfiguracje i prekonfiguracja. Z drugiej strony, jeśli wszystko, co czytam w tym poście, jest prawdą, IT będzie przepełnione i tanie, jeśli / kiedy startuje IPv6. Nawet telefony komórkowe zbliżają się do prędkości podobnych do światłowodów. A przynajmniej kabel.

Jeśli prowadzisz wewnętrzny serwer i musisz trafić go tą samą nazwą domeny wewnątrz lub na zewnątrz sieci, zawsze możesz sfałszować jego adres za pomocą routera z linuksem i dnsmasq lub dowolnych i niestandardowych wpisów na hostach plik, aby przekierować Cię na adres lokalny, jeśli jesteś w środku.

Naprawdę, nie sądzę, aby naprawdę pożądane było, aby każde urządzenie miało swój własny adres, swobodnie otwarty w sieci. Jeśli ktoś chce się zaciemnić podczas atakowania ciebie, stanie się tak niezależnie. Ale jesteś siedzącą kaczką, jeśli po prostu siedzisz tam piłkami na wietrze. Nie, wezmę mój IPv4 i NAT każdego dnia. Ale dobrze, że tam jest.

Anywa, teraz zasypiam ... pewnie więcej do powiedzenia, ale sprawdzę się jutro na wypadek, gdyby coś mi umknęło. Jestem pewien, że jest więcej.


12
Uhm, jest to właściwie pożądane ze względu na połączenia stabler, wyższe prędkości, tańszy internet (ISP nie musi utrzymywać swoich serwerów NAT, alokacji bloków IP na region / miasto i przetasować rzeczy, aby przetrwać w określonych godzinach szczytu). Czy wiesz, jak mylące jest to dla gniazd sieciowych, gdy użytkownik mobilny przeskakuje z jednej wieży komórkowej do drugiej i otrzymuje nowy adres IP? Do jego działania potrzeba dużo kodu kompensacyjnego, wysiłku i energii. Twoja odpowiedź brzmi: ta wieża może nie mieć fundamentu, ale jeszcze się nie przewróciła, więc jest w porządku.
Tschallacka

11
Masz trochę nieporozumień na temat NAT i bezpieczeństwa. Przeczytaj RFC 4864 .
Karl Bielefeldt

4
W tym tempie będzie to więcej niż pokolenie. IPv6 ma w tym roku 20 lat .
Michael Hampton

4
RFC 2460 został opublikowany w grudniu 1998 r. Kilka jego części zostało opublikowanych przed tym punktem i było wiele różnych testów. IPv6 w przybliżeniu w obecnej formie zaproponowano w RFC 1883, która pochodzi z grudnia 1995 r. Można więc powiedzieć, że IPv6 jest starszy niż 20 lat. Ale wszyscy uważają RFC 2460 za punkt, w którym IPv6 był wystarczająco dojrzały, aby go wdrożyć.
Michael Hampton

6
BTW, podczas gdy o tym mówię, powinieneś mieć świadomość, że istnieją już platformy do gier oparte wyłącznie na IPv6, takie jak Xbox One. Xbox One z łącznością IPv4, a nie IPv6, tworzy własny tunel Teredo w celu uzyskania dostępu do Internetu IPv6 , co oczywiście wiąże się z pewnym opóźnieniem i niezawodnością. IPv4 jest w dość smutnym stanie, gdy tunel Teredo jest uważany za mniej zawodny niż typowe konsumenckie połączenie IPv4.
Michael Hampton
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.