Cisco NAT, Static route

 ( lajos22 | 2016. december 14., szerda - 18:33 )

Üdvözletem! Lehet túl gondolom a problémát és ezért nem jutok érdemben sehová. Szóval remélem megoldható az igényem, és sikerülni fog érthetően meg is fogalmaznom. Lássuk:

Van az A hálózat 10.64.0.0/10 ezt a szolgáltató routere kreálja nekem.
Van a B hálózat 172.16.0.0/16 és van C hálózat 172.18.0.0/16 ezeket egy saját router biztosítja.
A probléma, hogy a routing működik az ABC háló között oda-vissza gyönyörűen. ÁM.. NAT miatt a B és C háló nem lát netre. A szolgáltató routerén pedig nem lehet olyat állítani, hogy több NAT legyen. Cserélni sem lehet ezt az eszközt, ezzel kell főzni.
Illetve van még egy vlan, amin csak a ABC hálókkal akarok kommunikálni. Ez jelenleg oké is.

Na már most, olyan kérdésem van, hogy a Cisco-n be lehet-e lőni azt, hogy BC hálóról, ha netezni akarok, akkor a Cisco 10.64... stb címén tegyem, ha pedig A háló a célom, akkor NAT nélkül menjen rá?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Mi a Cisco? A saját router?
Az nem lehet, hogy csinálsz egy D belsőt még A helyett, CBD-t használod belül és mindhármat natolod A-ba, ami tovább lövi?

Igazából a szolgáltató szappantartója is Cisco, de a sajátra hivatkoztam Cisco-ként.

Mindenképpen muszáj a 10.64-essel játszani, és a rajta lévő gépeket nem pakolásznám át. Bár nyilván ez lenne a jó és akkor eleve nem is kellett volna kérdezni.
Vagy csak nem jól értettem a "csináljak egy D belsőt" megoldásod?

--
openSUSE 42.1 x86_64

Jól értetted, csak azt nem írtad az elején, hogy a gépekhez sem nyúlhatsz A-ban.:-) Keresztkérdés csak kíváncsiságból: az A gépeken hogyan van a routing megadva BC felé, hostonként?

Arra static route van belőve a szolgáltatós szappantartón.

--
openSUSE 42.1 x86_64

"Na már most, olyan ötletem van, hogy a Cisco-n be lehet-e lőni azt, hogy BC hálóról, ha netezni akarok, akkor a Cisco 10.64... stb címén tegyem, ha pedig A háló a célom, akkor NAT nélkül menjen rá?"

Igen.

Köszönöm!

"Ötletem" helyett a "kérdésem" szó akart oda kerülni, de aztán nem sikerült időben felvennie a cipőjét. :D

Szerk: Javítottam!

--
openSUSE 42.1 x86_64

0.0.0.0 útvonalat vedd fel a B C hálón és következő ugrás az A háló interfész címe legyen, ha jól értem.

"Na már most, olyan kérdésem van, hogy a Cisco-n be lehet-e lőni azt, hogy BC hálóról, ha netezni akarok, akkor a Cisco 10.64... stb címén tegyem, ha pedig A háló a célom, akkor NAT nélkül menjen rá?"

Igen, a lényeg hogy egy ACL-ben kell megadni hogy milyen SRC/DST ip címekre működjön a NAT, ami accept az ACL-ben arra fog a NAT működni.
kb ilyen a konfig minta:

interface GigabitEthernet1/1
description A.NET
ip address 10.64.x.y/10
ip nat outside
!
interface GigabitEthernet1/2
description B.NET
ip address 172.16.x.y/16
ip nat inside
!
interface GigabitEthernet1/3
description C.NET
ip address 172.18.x.y/16
ip nat inside
!
ip access-list extended nat-this
! ip nat inside - inside interface között nem fog nat-olni, azt nem kell deny-al tiltani...
deny ip any 10.64.0.0 0.63.255.255
permit ip 172.16.0.0 0.0.255.255 any
permit ip 172.18.0.0 0.0.255.255 any
!
ip nat inside source list nat-this interface GigabitEthernet1/1 overload

Üdv:
Angelo

Hasonlóan volt megoldva eredetileg, amikor még külön netkapcsolat volt, de ez most így nem működik.
Lehetséges, hogy subinterface nem jó nat outside-nak?

--
openSUSE 42.1 x86_64

dehogynem jó, valami más lehet elrontva.

dobd be a configot egy linken, persze sanitize az IP-ket, 0 másodperc alatt megoldjuk itt vagy 1000-en :)

Én azért egy móricka ábrát és kérnék a hálózatról biztos ami biztos alapon.

Sikerült a gépez jutnom, adok konfigot: http://pastebin.com/Tqa8GaB1
Az ábra rém egyszerű: A szóban forgó router egy switchez kapcsolódik, abba van betolva a szolgáltató szappantartója is.
A switchen vannak össze-vissza a portok vlanhoz rendelve, de az eddig is így volt.

Illetve a konfigon látható még egy háló, abból szándékosan hiányzik a nat, oda nem akarok semmi más kommunikációt.

--
openSUSE 42.1 x86_64

A konfig nem teljes, ezért kérdés: a (default) route megvan az outside-dal jelölt Fa0/0.10 interfészen át elérhető 10.x.y.z router felé? A 172.16.0.0/16-os és 172.18.0.0/16-os hálózatban lévő gépek default route-ja a routered megfelelő címe? (Az interfészeken lévő IP-k a valóságban ugye nem a hálózati címek, csak átírásra kerültek?)

"a (default) route megvan az outside-dal jelölt Fa0/0.10 interfészen át elérhető 10.x.y.z router felé?"
Igen.

"A 172.16.0.0/16-os és 172.18.0.0/16-os hálózatban lévő gépek default route-ja a routered megfelelő címe?"
Igen.

"Az interfészeken lévő IP-k a valóságban ugye nem a hálózati címek, csak átírásra kerültek?"
Így van. Kicsit rendezgettem a konfigot, mielőtt feldobtam, aztán csúszott bele némi hiba, ami nekem fel sem tűnt volna.
A routeren minden iface cím .1-re végződik. Kivéve a 10.x-es. Az .4-re.

--
openSUSE 42.1 x86_64

Akkor nézzünk ilyeneket:

ping 8.8.8.8 source FastEthernet0/0.10
ping 8.8.8.8 source FastEthernet0/0.1
ping 8.8.8.8 source FastEthernet0/0.2
show ip nat translations
show access-list nat

Ha ezekből nem derülne ki semmi, akkor:

debug ip nat detailed
debug ip packet detail

Ezeket érdemes lehet a releváns forgalomra szűrni, és a másodikhoz ki kell kapcsolni az érintett interfészeken a route-cache-t.

"ping 8.8.8.8 source FastEthernet0/0.10"
Erre: "% Invalid input detected at '^' marker." A source nem tetszik neki.
Kértem egy sh ver-t, hogy mutassam mi fut rajta: System image file is "flash:c2600-is-mz.121-26.bin" Nincs benne elég flash, hogy egy ennél újabb image-et tudjak rátenni. Pedig most az is tervben volt.

"show ip nat translations"
Ez tök üres

"show access-list nat"
Szépen kiadja a listát.
(deny ip any 10.64.0.0 0.63.255.255
permit ip 172.16.0.0 0.0.255.255 any
permit ip 172.18.0.0 0.0.255.255 any)

"debug ip packet detail"
Ez után egy ping 8.8.8.8-ra ez:
"00:16:07: IP: s=172.16.0.1 (local), d=8.8.8.8, len 100, unroutable" Itt már az nem tetszik, hogy ez a fa0/0.1 a route pedig .10-re kéne menjen ilyenkor. Viszont ha a 10.64-es hálón lévő gépet pingelek, akkor oké.

--
openSUSE 42.1 x86_64

Hát, a 12.1 nagyon nem mai csirke, szinte már őskori. A show access-list azért jó, mert az ACE-k listája mellett a rajtuk lévő találatokat írja.

"unroutable"
Akkor tekintsük még meg a "show ip route 0.0.0.0" kimenetét.

"sh access-list nat"
deny ip any 10.64.0.0 0.63.255.255 (5 matches)

"sh ip route 0.0.0.0"
% Network not in table

Ezt elvileg korrigáltam azóta.

"ping -c 5 -I eth0 8.8.8.8" az egyik gépen és a routeren az alábbi jelent meg

01:18:04: NAT: i: icmp (172.18.1.1, 20147) -> (8.8.8.8, 20147) [47337]
01:18:04: NAT: s=172.18.1.1->10.0.0.3, d=8.8.8.8 [47337]
01:18:04: IP: s=10.64.0.3 (FastEthernet0/0.2), d=8.8.8.8 (FastEthernet0/0.10), g=8.8.8.8, len 84, forward
01:18:04: ICMP type=8, code=0
01:18:04: IP: s=10.64.0.3 (FastEthernet0/0.2), d=8.8.8.8 (FastEthernet0/0.10), len 84, encapsulation failed
01:18:04: ICMP type=8, code=0

--
openSUSE 42.1 x86_64

"Ezt elvileg korrigáltam azóta."
"g=8.8.8.8"
"encapsulation failed"
Vélhetőleg nem teljesen jól korrigáltad. A default route-ot nem interfészre adjuk meg, hanem a másik router IP-jét használjuk gatewaynek. Ha interfészre adod meg, akkor a routered ARP-zni fog minden címre, a másik routeren meg - nagyon helyesen - nincs engedélyezve a proxy-arp, így nem kap a routerd az ARP kérésre választ, ezért nem tudja kinek továbbítani, és ezért látszik encapsulation failed hibaüzenet. Tehát "ip route 0.0.0.0 0.0.0.0 10.x.y.z (a másik router feléd eső interfészének IP-je)".

Hát voltam olyan barom, hogy töröltem a régi konfigot, aztán nekiálltam újra beállítani mindent (a switchen is). Bizony interface-re adtam meg, majd örültem, mint majom a farkának. Aztán rájöttem, hogy ez így nemoké...

A natos dolog úgytűnik most jó, viszont nem tudok 10-es hálóra pingelni. Ami azt illeti a fa0/0.10 címét pingelve sem kap választ...

Mindeközben:
02:54:27: IP: s=172.18.1.1 (FastEthernet0/0.100), d=10.64.0.3, len 84, rcvd 4
02:54:27: ICMP type=8, code=0
02:54:27: IP: s=10.64.0.3 (local), d=172.18.1.1 (FastEthernet0/0.2), len 84, sending
02:54:27: ICMP type=0, code=0
02:54:27: IP: s=172.18.1.1 (FastEthernet0/0.2), d=255.255.255.255, len 172, rcvd 2
02:54:27: UDP src=17500, dst=17500
02:54:27: IP: s=172.18.1.1 (FastEthernet0/0.2), d=10.127.255.255 (FastEthernet0/0.2), len 172, rcvd 3
02:54:27: UDP src=17500, dst=17500

Szerk:
Ja, közben ez is oké lett.

--
openSUSE 42.1 x86_64

Rá tudod bírni elvileg így is a ping parancsot, hogy arról az interfészről vagy arról az IP-címről induljon a ping, amelyikről szeretnéd, csak akkor nem teljes parancsot kell beírnod, hanem elég ennyit: ping
Ezután egyesével meg kell adnod a kért paramétereket, amíg eljutsz odáig, hogy "Extended commands [n]:". Itt nyomj egy y-t, majd megadhatod a forrást.

Ez szerintem nagyon nem kell ide:

ip access-list extended nat
 deny ip any 10.64.0.0 0.63.255.255

Csak azokat a hálókat vedd fel amiket ki akarsz engedni a netre. Csak az engedett amit te megengedsz, minden más tiltva van.

Az azért van ott, hogy "ha pedig A háló a célom, akkor NAT nélkül menjen rá". Ha az nincs ott, akkor a következő két sor hatására a 172.16.0.0/16-ból és 172.18.0.0/16-ból a 10.64.0.0/10-be menő forgalom is a követelménnyel ellentétben natolva lenne.

Köszönetem mindenkinek! A problémát az okozta, hogy elkezdtem szétszedni az egész konfigot, aztán hibásan próbáltam összerakni újra és kimaradt ez-az. Többek között a default routing, illetve hogy interfacenek 0-s címet adtam (volna).

Na, ég is a pofám, hogy ezt annak idején még fejből nyomtam össze. :( Viszont legalább rendbe tettem az egészet.

--
openSUSE 42.1 x86_64