Co oznaczają te trzy opcje w konfiguracji NAT routera Cisco?

10

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 ?

Eddie
źródło
2
@Eddie, zamiast nas wszystkich zwracających uwagę na instrukcje obsługi, zapoznaj się z tym cisco.com/c/en/us/support/docs/ip/… lub this groupstudy.com/archives/ccielab/200702/msg01284.html i zobacz, czy ci to pomoże. Następnie, jeśli nadal masz konkretne pytania, chętnie pomożemy.
Ron Trunk,
Czy jakaś odpowiedź ci pomogła? jeśli tak, powinieneś zaakceptować odpowiedź, aby pytanie nie wyskakiwało wiecznie, szukając odpowiedzi. Alternatywnie możesz podać i zaakceptować własną odpowiedź.
Ron Maupin

Odpowiedzi:

7

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.

Ron Maupin
źródło
Twój opis inside destinationwydaje 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 z 80na 8080. Twój opis sugeruje, że numer portu się nie zmienia? Tak czy inaczej, to nie może być jedyna różnica między inside destinationi inside source, prawda?
Eddie,
Różnica jest źródłem ruchu. Strumień inside sourceruchu pochodzi z wewnątrz, a inside destinationstrumień ruchu z zewnątrz. Jeśli ruch pochodzący z inside sourcewymaga odpowiedzi, inside destinationnastą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.
Ron Maupin
4

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:

  • wewnątrz lokalnych - „prawdziwe” adresy IP wewnętrznych hostów przypisane do ich interfejsów i wzajemnie się widzące
  • inside global - „mirażowe” adresy IP widziane przez świat zewnętrzny
  • poza globalnym - „prawdziwe” adresy IP hostów zewnętrznych, które widzą oni sami i (prawie) cały Internet
  • poza lokalnymi - „mirażowe” adresy IP, gdy widzimy zewnętrzne hosty (jeśli poprosimy NAT o odpowiednie tłumaczenie)

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?

Sergio
źródło