W standardowej statycznej konfiguracji PAT, w której jedna kombinacja IP: Port jest zawsze odwzorowana na inną kombinację IP: Port, można skonfigurować trzy możliwe kombinacje wewnętrzne / zewnętrzne / źródłowe / docelowe.
Na przykład jest to przykład konfiguracji:
ip nat inside source static tcp 10.0.20.13 8080 2.2.2.33 80
^^^^^^^^^^^^^
Mówiąc ogólnie, ta konfiguracja pozwala dowolnemu hostowi zewnętrznemu na zainicjowanie połączenia TCP z adresem IP 2.2.2.33 przez port 80. Gdy ten pakiet trafi do routera, docelowy adres IP i port ( 2.2.2.33:80
) zostają przetłumaczone 10.0.20.13:8080
.
Odwrotna sytuacja miałaby również miejsce, jeśli wewnętrzny host 10.0.20.13 wyśle pakiet TCP z portem źródłowym 8080, ponieważ ten pakiet przechodzi przez router, źródłowy adres IP i port ( 10.0.20.13:8080
) zostają przetłumaczone 2.2.2.33:80
. (zwykle byłby to pakiet odpowiedzi , a nie inicjowany z hosta Inside)
Oto wszystkie trzy opcje konfiguracji zaznaczonej części powyżej:
Router(config)#ip nat inside ?
destination Destination address translation
source Source address translation
Router(config)#ip nat outside ?
source Source address translation
W efekcie możesz skonfigurować:
- ip nat wewnątrz źródła static tcp {IP} {Port} {IP} {Port}
- ip nat wewnątrz miejsca docelowego static tcp {IP} {Port} {IP} {Port}
- ip nat poza źródłowy static tcp {IP} {Port} {IP} {Port}
Czym różnią się te opcje i kiedy należy użyć każdej z trzech opcji? Proszę użyć terminów laika, tak jak ja powyżej, aby opisać, w jaki sposób każdy manipulowałby pakietami przechodzącymi przez urządzenie.
Ponadto, czy ktoś może mi powiedzieć, dlaczego nie ma opcji zewnętrznego miejsca docelowego ?
Odpowiedzi:
Pomyśl o tym bardzo ostrożnie.
Źródło wewnętrzne oznacza, że chcesz tłumaczyć adres źródłowy z ruchu pochodzącego z Twojej sieci. Jest to typowe ustawienie „sieci domowej”, które umożliwia korzystanie z prywatnych adresów w publicznym Internecie. Oczywiście nie jest to jedyne zastosowanie w tej wersji.
Wewnątrz miejsca docelowego oznacza, że chcesz, aby ruch pochodzący z adresu zewnętrznego do określonego docelowego protokołu transportowego i portu był kierowany do określonego adresu wewnętrznego. To właśnie robią użytkownicy domowi, aby umożliwić dostęp do czegoś w rodzaju serwera WWW z prywatnym adresem z publicznego Internetu. Oczywiście nie jest to jedyne zastosowanie w tej wersji.
Zewnętrzne źródło tłumaczy ruch pochodzący z zewnątrz, aby wyglądał, jakby pochodził z adresu wewnętrznego. Może to być przydatne w przypadkach, gdy firmy z nakładającymi się zakresami adresów IP łączą się i muszą rozpocząć łączenie sieci. Możesz tłumaczyć adresy źródłowe ruchu pochodzącego z zewnątrz, które normalnie miałyby zewnętrzne adresy źródłowe sprzeczne z adresami wewnętrznymi, na adresy źródłowe w dostępnym wewnętrznym zakresie adresów.
Poza miejscem docelowym nie ma większego sensu, ponieważ jest to odwrotność przekierowania portów. Ograniczyłoby to wszelki ruch pochodzący z wewnątrz, kierowany do określonego zewnętrznego protokołu transportowego i portu, do jednego zewnętrznego adresu.
źródło
inside destination
wydaje się pasować do mojego „wyjaśnienia laika”inside source
. Z wyjątkiem tego, że mój przykład zmienił port docelowy # dla ruchu przychodzącego z80
na8080
. Twój opis sugeruje, że numer portu się nie zmienia? Tak czy inaczej, to nie może być jedyna różnica międzyinside destination
iinside source
, prawda?inside source
ruchu pochodzi z wewnątrz, ainside destination
strumień ruchu z zewnątrz. Jeśli ruch pochodzący zinside source
wymaga odpowiedzi,inside destination
nastąpi proces typu tymczasowego dla odpowiedzi. Numer portu można zmienić, gdy ruch jest przenoszony z jednej strony na drugą, ale nie wszystkie routery (szczególnie routery domowe) obsługują to.Musimy zacząć od podstaw, więc poprawmy terminologię NAT. NAT tłumaczy adresy IP w pakietach IP, prawda? Co to znaczy? Że w zasadzie tworzy miraże - tak, złudzenia optyczne, wiesz. Na przykład w typowej konfiguracji NAT, gdy prywatnie adresowane hosty LAN uzyskują dostęp do Internetu za pomocą publicznego adresu IP interfejsu routera zewnętrznego, hosty te wydają się być dla serwerów internetowych jako posiadające ten publiczny adres IP (lub adresy IP z puli publicznych adresów IP). NAT oczywiście nie tworzy nowych hostów fizycznych - ale tworzy coś w rodzaju nowych bytów wirtualnych - w tym przykładzie hosty LAN postrzegają siebie jako, powiedzmy 192.168.1.x, ale serwery internetowe widzą je jako 203.0.113.x - jeden zestaw fizycznych hostów, ale dwa zestawy adresów IP. Dwa odrębne zestawy (logiczne) hostów. Złudzenie optyczne. A terminologia jest następująca:
Jak widać, jesteśmy zobowiązani do rozróżnienia naszej sieci od Internetu lub innej sieci zewnętrznej. Robimy to, oznaczając interfejsy IP routera jako ip nat wewnątrz lub ip nat na zewnątrz , zgadzasz się?
Pamiętajmy teraz, jak zwykle implementowany jest NAT: utrzymuje on specjalne tabele zawierające wpisy dotyczące tłumaczeń. Ważne jest to, że wpisy te można tworzyć statycznie lub dynamicznie . W przypadku wpisów tworzonych dynamicznie ważny jest kierunek ruchu - czy ruch jest inicjowany od wewnątrz na zewnątrz, czy odwrotnie? W przypadku wpisów statycznych tak nie jest - są symetryczne . Instrukcje konfiguracji NAT zawierające słowo kluczowe static tworzą wpisy statyczne natychmiast po umieszczeniu ich w uruchomionej konfiguracji; osoby z dynamicznym słowem kluczowym obserwują interesujący ruch i dynamicznie tworzą wpisy do tłumaczenia, które w końcu przekroczą limit czasu.
Możemy już spekulować na twoje ostatnie pytanie: dlaczego nie ma opcji zewnętrznego miejsca docelowego ? ip nat wewnątrz source static tworzy statyczny wpis NAT, który tłumaczy dokładnie tak, jak opisano, ale obejmuje to nie tylko ruch inicjowany z jednej określonej strony - statyczne wpisy NAT są symetryczne. Tak więc, ip nat poza docelowym statycznym stworzyłby wpis statyczny do tłumaczenia docelowych adresów IP ruchu wchodzącego do Twojej sieci z zewnątrz ORAZ źródłowego adresu IP dla ruchu wychodzącego z wewnątrz - ale to jest dokładnie to, co ip nat wewnątrz źródła statycznegopolecenie robi! Tak więc posiadanie tego polecenia jest po prostu zbędne. Jedyną różnicą jest to, że zamieniasz źródło na docelowy ip, gdy używasz jednej lub innej formy zasadniczo tego samego polecenia.
W odniesieniu do twojego pierwszego stwierdzenia: „Istnieją trzy możliwe kombinacje wewnętrzne / zewnętrzne / źródłowe / docelowe”, które nie są do końca skonfigurowane. Chodzi o to, że ogólnie mówiąc, instrukcje konfiguracji NAT nie są „formułami matematycznymi” i powinny być traktowane w całości, a nie jako zbudowane logicznie z niezależnych słów kluczowych. Tak więc każda „kombinacja” przedstawia rozwiązanie dla konkretnego zadania, na przykład ip nat wewnątrz listy miejsc docelowych służy do konfigurowania równoważenia obciążenia TCP serwera, który używa określonego algorytmu i nie działa z UDP. Ponadto (we współczesnych systemach iOS) w docelowym poleceniu static nie ma adresu IP nat - czy rzeczywiście próbowałeś go z opcją static ?
W tym dokumencie Cisco można zobaczyć niektóre konkretne scenariusze korzystania z NAT, w tym przykłady konfiguracji: http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr_nat/configuration/12-2sx /nat-12-2sx-book/iadnat-addr-consv.html
Na koniec chciałbym wspomnieć, że czasami NAT nie jest tym, czego chcesz, na przykład spójrz na moją odpowiedź na to „kanoniczne pytanie”: /server/55611/loopback-to-forwarded-public- ip-address-from-local-network-hairpin-nat / 733532 # 733532
PS Czy powinienem podać więcej szczegółów?
źródło