]> gitweb.morketsmerke.org Git - mmdev.git/commitdiff
Zakończenie pisania rozdziału 6, modułu 3, kursu CCNA. Do przeredagowania.
authorxf0r3m <jakubstasinski@protonmail.com>
Thu, 21 Nov 2024 14:23:33 +0000 (15:23 +0100)
committerxf0r3m <jakubstasinski@protonmail.com>
Thu, 21 Nov 2024 14:23:33 +0000 (15:23 +0100)
articles/terminallog/Cisco_-_CCNA.html

index c66b267caa1f71825a6554073b7c497afb83b893..bfb079cbafc9748e373d7017a8dd22067dceea4a 100755 (executable)
@@ -14300,6 +14300,8 @@ R1(config)#
           Istnieje również mechanizm, który jest w stanie zapewnić dostęp do
           sieci zewnętrznej przy jednym lub kilku adres zewnętrznych. Takim
           mechanizmem jest <strong>PAT (<em>Port Adress Translation</em>)</strong>
+          nazywany również NAT-em z przeciążeniem. Ponieważ przeciążamy jeden
+          adres, ruchem większym niż pochodzący z jednego komputera.
           Poza zwykłą translacją adresów,
           działa on na zasadzie zmiany portu źródłowego jeśli do routera
           docierają połączenia z różnych hostów z tymi samymi numerami portów
@@ -14452,6 +14454,11 @@ Total number of translations: 1
             W tablicy znajdują się kolumny, które powinniśmy znać z początku
             rozdziału, dodatkową kolumną jest
             <code class="code-inline">Pro</code>, oznaczająca protokół.
+            Tablicę można wyczyścić za pomocą polecenia:
+            <code class="code-inline">clear ip nat translations *</code>, 
+            gwiazdka (<strong>*</strong>) oznacza, że należy wyczyścić tablicę
+            dla obu kierunków - <em>inside</em> oraz <em>outside</em>.
+            Polecenie to wydaje w trybie uprzywilejowanym EXEC.
           </li>
           <li><strong>show ip nat statistics</strong> - wyświetlenie statystyk
             dotyczących NAT-u. To polecenie wyświetla nam ilość połaczeń, w
@@ -14474,6 +14481,270 @@ Hits: 0  Misses: 0
           (<code class="code-inline">Misses:</code>).
           </li>
         </ul>
+        <h2 id="3.6.4.dynamicnatonios">3.6.4. Dynamiczny NAT w IOS</h2>
+        <p>
+          Poprzedni rodzaj NAT-u wymagał zmapowania adresów prywatnych z
+          publicznymi, jeden
+          do jeden. W tym przypadku mapowanie będzie odbywać się na podstawie
+          żądania do sieci zewnętrznej i będzie odbywać się dynamicznie.
+          Wcześnie to administrator decydował o tym jaki adres prywatny będzie
+          mapowany na adres publiczny. Teraz decyduje o tym router. Ten stan
+          rzeczy powoduje, że konfiguracja będzie nieco bardziej skomplikowana. 
+        </p>
+        <p>
+          Załóżmy, że mamy dwa komputery w dwóch różnych sieciach, mają one
+          następujące adresy: 192.168.10.10/24 oraz 192.168.11.10/24. Komputery
+          chcą skomunikować się z serwerem od adresie 209.165.200.254.
+        </p>
+        <p>
+          Na początku musimy rozpocząć naszą konfigurację od określenia puli
+          adresów, jakie mogą być mapowane podczas dynamiczne NAT-u. Taką
+          pulę zazwyczaj uzyskuje się od swojego dostawcy usług internetowych.
+          W naszym przypadku są to adresy od 209.165.200.226 do 209.165.200.240
+          z maską /27. Aby skonfigurować pulę w trybie konfiguracji globalnej
+          wydajemy poniższe polecenie:
+        </p>
+<pre class="code-block">
+Router(config)# ip nat pool NAT-POOL1 209.165.200.226 209.165.200.240 netmask 255.255.255.224
+</pre>
+        <p>
+          Za pomocą powyższego polecenia zdefiniowaliśmy pulę o nazwie
+          <code class="code-inline">NAT-POOL1</code>. Teraz musimy utworzyć
+          warunek, dzięki któremu określimy jakie sieci mają kwalifikować się
+          tłumaczenia
+          lub ich adresy mają być tłumaczone na jasno określoną pulę adresów.
+          Takie warunki tworzy się za pomocą standardowych list ACL.
+        </p>
+<pre class="code-block">
+Router(config)# access-list 1 permit 192.168.0.0 0.0.255.255
+</pre>
+        <p>
+          Teraz należy połaczyć ze sobą pulę adresów NAT-u oraz listę ACL,
+          w jednej definicji dynamicznej translacji adresów.
+        </p>
+<pre class="code-block">
+Router(config-if)# ip nat inside source list 1 pool NAT-POOL1
+</pre>
+        <p>
+          Przyczym, ACL nie musi być numerowana, nazwana również jest możliwa
+          do użycia w tym przypadku. Ostatnią czynnością jest określenie
+          wewnętrznych i zewnętznych interfejsów. 
+        </p>
+<pre class="code-block">
+Router(config)# interface GigabitEthernet0/1
+Router(config-if)# ip nat inside
+Router(config)# interface GigabitEthernet0/2
+Router(config-if)# ip nat inside
+Router(config)# interface serial 0/1/1
+Router(config-if)# ip nat outside
+</pre>
+        <p>
+          Wersje sprzętowe IOS posiadają dodatkowy słowo kluczowe
+          <code class="code-inline">verbose</code> dla polecenia
+          <code class="code-inline">show ip nat translations</code>. Która
+          wyświetla więcej informacji na temat wpisów w tablicy NAT.
+        </p>
+<pre class="code-inline">
+Router# show ip nat translation verbose
+Pro Inside global      Inside local       Outside local      Outside global
+tcp 209.165.200.228    192.168.10.10      ---                ---
+    create 00:02:11, use 00:02:11 timeout:86400000, left 23:57:48, Map-Id(In): 1, 
+    flags: 
+none, use_count: 0, entry-id: 10, lc_entries: 0
+tcp 209.165.200.229    192.168.11.10      ---                ---
+    create 00:02:10, use 00:02:10 timeout:86400000, left 23:57:49, Map-Id(In): 1, 
+    flags: 
+none, use_count: 0, entry-id: 12, lc_entries: 0
+</pre>
+        <p>
+          Zwróćmy uwagę na to, że wpisy w tablicy NAT-u widnieją przez
+          określony czas. W przypadku NAT-u dynamicznego, domyślnie są to 24
+          godziny, chyba że zdefiniowano inaczej przy pomocy polecenia
+          <code class="code-inline">ip nat translation timeout</code>. Nie
+          musimy jednak wyczekiwać na wygaśnięcie wpisów. Możemy je ręcznie
+          usunąć, czy przy użyciu tego samego polecenia
+          (<code class="code-inline">clear ip nat translation</code>), 
+          które czyści całą tablicę - w tym przypadku podajemy
+          <code class="code-inline">inside lokalny-adr globalny-adr</code> lub
+          <code class="code-inline">outside lokalny-adr globalny-adr</code>.
+        </p>
+        <p>
+          W przypadku dynamicznego NAT i polecenie <code class="code-inline">
+          show ip nat statistics</code> wzraca więcej informacji, np. procent
+          zaalokowanej puli.
+        </p>
+<pre class="code-inline">
+Router# show ip nat statistics 
+Total active translations: 4 (0 static, 4 dynamic; 0 extended)
+Peak translations: 4, occurred 00:31:43 ago
+Outside interfaces:
+  Serial0/1/1
+Inside interfaces: 
+  GigabitEthernet0/1
+  GigabitEthernet0/2
+Hits: 47  Misses: 0
+CEF Translated packets: 47, CEF Punted packets: 0
+Expired translations: 5
+Dynamic mappings:
+-- Inside Source
+[Id: 1] access-list 1 pool NAT-POOL1 refcount 4
+ pool NAT-POOL1: netmask 255.255.255.224
+       start 209.165.200.226 end 209.165.200.240
+       type generic, total addresses 15, allocated 2 (13%), misses 0
+...
+</pre>
+        <p>
+          Wyświetlając bierzącą konfiguracje z poleceniem filtrujący
+          <em>include</em>, możemy podejrzeć konfiguracje NAT-u.
+        </p>
+<pre class="code-inline">
+R2# show running-config | include NAT
+ip nat pool NAT-POOL1 209.165.200.226 209.165.200.240 netmask 255.255.255.224
+ip nat inside source list 1 pool NAT-POOL1
+</pre>
+        <h3 id="3.6.4.pka">Zadanie praktyczne - Packet Tracer</h3>
+        <p>
+          <a href="">Konfigurowanie dynamicznego NAT - scenariusz</a><br />
+          <a href="">Konfigurowanie dynamicznego NAT - zadanie</a>
+        </p>
+        <h2 id="3.6.5.patonios">3.6.5. PAT w IOS</h2>
+        <p>
+          W większości przypadków, konfiguracji sieci czy to w mniejszych, czy
+          większy organizacja, nie skorzystamy z żadnej z powyższych metod,
+          gdyż wymagają one puli adresów publicznych, a te obecnie są bardzo
+          rzadko przydzielane. Najczęstszym rodzajem NAT-u jaki będziemy 
+          konfigurować jest właśnie PAT.
+        </p>
+        <p>
+          Scenariusz z dynamicznego NAT-u rozszerzymy od dodatkowy serwer.
+          Serwery będą mieć adresy 209.165.201.1 oraz 209.165.202.129. Adres
+          sieci zewnętrznej naszego routera to 209.165.200.224/27. Natomiast
+          adres interfejsu podłączonego do sieci zewnętrznej to: 
+          209.165.200.225. Adres sieci zewnętrznej określa pulę przydzielonych
+          adresów publicznych od usługodawcy.
+        </p>
+        <p>
+          Konfigurując PAT, mamy do wyboru tak naprawdę dwa podejścia.
+          Pierszym z nich jest przeciążenie pojedynczego adresu, który mamy
+          przypisany do interfejsu. Tak zazwyczaj będzie w przypadku domów lub
+          małych biur. Konfigurację rozpoczynamy od utworzenia ACL-ki w celu
+          określenia jakie sieci źródłowe mają być tłumaczone.
+        </p>
+<pre class="code-block">
+Router(config)# access-list 1 permit 192.168.0.0 0.0.255.255
+</pre>
+        <p>
+          Następnie musimy powiązać listę ACL z interfejsem, podobnie jak
+          w przypadku dynamicznego NAT-u, kiedy powiązaliśmy ACL z pulą. W celu
+          uruchomienia PAT-u, dodajemy do polecenia słowo kluczowe
+          <strong>overload</strong>.
+        </p>
+<pre class="code-block">
+Router(config)# ip nat inside source list 1 interface serial 0/1/1 overload
+</pre>
+        <p>
+          W tym przypadku wykorzystaliśmy słowo kluczowe 
+          <code class="code-inline">interface</code> i podaliśmy ID interfejsu.
+          Teraz wszystkie połączenia z dwóch naszych podsieci będą tłumaczone
+          na ten jeden adres, który jest ustawiony na interfejsie
+          <code class="code-inline">serial 0/1/1</code>. Poza słowem
+          <code class="code-inline">overload</code> reszta polecenia pozostaje
+          taka sama. Ostatnią czynnością jest określenie stron na interfejsach.
+        </p>
+<pre class="code-block">
+Router(config)# interface GigabitEthernet0/1
+Router(config-if)# ip nat inside
+Router(config)# interface GigabitEthernet0/2
+Router(config-if)# ip nat inside
+Router(config)# interface serial 0/1/1
+Router(config-if)# ip nat outside
+</pre>
+        <p>
+          Drugim podejściem jest translacja adresów na adresy z wcześniej
+          zdefiniowanej puli. Tutaj wykonujemy wszystkie czynności w taki
+          sam sposób jak w przypadku dynamicznego NAT-u, ale do polecenia
+          dowiązania listy ACL do puli dodajemy słowo kluczowe
+          <code class="code-inline">overload</code>.
+        </p>
+<pre class="code-block">
+Router(config)# ip nat pool NAT-POOL1 209.165.200.226 209.165.200.240 netmask 255.255.255.224
+Router(config)# access-list 1 permit 192.168.0.0 0.0.255.255
+Router(config-if)# ip nat inside source list 1 pool NAT-POOL1 overload
+Router(config)# interface GigabitEthernet0/1
+Router(config-if)# ip nat inside
+Router(config)# interface GigabitEthernet0/2
+Router(config-if)# ip nat inside
+Router(config)# interface serial 0/1/1
+Router(config-if)# ip nat outside
+</pre>
+        <p>
+          Po uruchomieniu NAT-u wyżej wymienionymi metodami, router będzie
+          starał zachować oryginalne porty, jednak jednak u któregoś z hostów
+          port źródły będzie się powtarzać to zostanie zmieniony na pierwszy
+          wolny. Router przeszukuje trzy grupy w poszukiwaniu odpowiedniego
+          portu do zmiany. Jeśli w jakiś sposób porty się wyczerpią, wówczas
+          dopiero, albo dalsza możliwość tłumaczenia zaniknie, jeśli
+          tłumaczyliśmy na pojedynczy adres, albo zostanie wykorzystany
+          kolejny adres z puli. Poniżej znajdują się zrzuty tablicy NAT oraz
+          statystyk dotyczących skonfigurowanego przez nas PAT-u.
+        </p>
+<pre class="code-inline">
+Router# show ip nat translations
+  Pro Inside global          Inside local         Outside local      Outside global
+  tcp 209.165.200.225:1444  192.168.10.10:1444  209.165.201.1:80   209.165.201.1:80
+  tcp 209.165.200.225:1445  192.168.11.10:1444  209.165.202.129:80 209.165.202.129:80
+
+Router# show ip nat statistics 
+Total active translations: 4 (0 static, 2 dynamic; 2 extended)
+Peak translations: 2, occurred 00:31:43 ago
+Outside interfaces:
+  Serial0/1/1
+Inside interfaces: 
+  GigabitEthernet0/1
+  GigabitEthernet0/2
+Hits: 4  Misses: 0
+CEF Translated packets: 47, CEF Punted packets: 0
+Expired translations: 0
+Dynamic mappings:
+-- Inside Source
+[Id: 3] access-list 1 pool NAT-POOL1 refcount 2
+  pool NAT-POOL1: netmask 255.255.255.224
+      start 209.165.200.225 end 209.165.200.240
+      type generic, total addresses 15, allocated 1 (6%), misses 0
+...
+</pre>
+        <h3 id="3.6.5.pka">Zadanie praktyczne - Packet Tracer</h3>
+        <p>
+          <a href="">Konfiguracja PAT - scenariusz</a><br />
+          <a href="">Konfiguracja PAT - zadanie</a>
+        </p>
+        <h2 id="3.6.6.nat64"> 3.6.6. NAT64</h2>
+        <p>
+          Protokół IPv6 nie potrzebuje takich mechanizmów jak NAT, zawiera
+          bardzo dużo adresów - nie wiadomo czy kiedyś się one skończą, Zawiera
+          on także adresy lokalne podobne do tych z RFC1918, ale nie mają one
+          takiej samej funkcji. NAT w IPv4, nazwany <strong>NAT64</strong>
+          ma zupełnie inną funkcję, otóż służy on do tworzenia
+          transparentnych połączeń pomiędzy sieciami IPv6 a IPv4. Jest to
+          technologia przejściowa na czas całkowite migracji do IPv6.
+        </p>
+        <h3 id="3.6.7.pka">Zadanie praktyczne - Packet Tracer</h3>
+        <p>
+          <a href="">Konfiguracja NAT dla IPv4 - scenariusz</a><br />
+          <a href="">Konfiguracja NAT dla IPv4 - zadanie</a>
+        </p>
+        <h3 id="3.6.7.lab">Laboratorium</a>
+        <p>
+          <a href="">Konfiguracja NAT dla IPv4</a>
+        </p>
+        <h2 id="3.6.summary">Podsumowanie</h2>
+        <p>
+          W tym rozdziale zapoznaliśmy się mechnizmem sieciowym NAT dla IPv4.
+          Mechnizm ten zapewnia dostęp komputerom sieci lokalnej do sieci
+          zewnętrznych. Poznaliśmy jego metodę działania oraz jego odmiany.
+          Dowiedziliśmy się w jaki sposób uruchomić go na sprzęcie Cisco z
+          systemami IOS. Na koniec wyjaśniono czym jest NAT64.
+        </p>
       </div>
    </body>
 </html>