V tomto článku testujem správanie smerovacieho správania (ip classless versus ip classfull) cisco smerovačov. Test je vykonaný v nástroji Dynagen.
Situácia na overenie je nasledovná. V prípade, že sa v sieti vyskytne situácia tzv. discontiguos siete, t.j. v danej topológií siete používajú adresovanie získané subsieťovaním materskej major siete a niekde v topológií sú tieto IP siete prerušené linkou, ktorá má adresovanie z úplne inej major siete (u nás dosiahnuté e0/0 rozhraním medzi R3 a R4). Pri distance vector smerovacích protokoloch (RIPv1, RIPv2) takáto situácia môže viesť k výpadkom v smerovaní následkom auto sumarizácie na tejto linke, a následne k strate konektivity. V prípade CIDR protokolu RIPv2 môže byť riešením vypnutie autosumarizácie na rozhraní. Iným riešením môže byť zavedenie default smerovacej cesty. Riešenie pri CIDR protokoloch bude funkčné. Pri classfull protokoloch ako je RIPv1 sa auto sumarizácia vypnúť nedá a zavedenie default smerovacích ciest je funkčné len vtedy ak je na smerovačoch zapnuté ip classless správanie a nie ip classfull.
Správanie ip classfull je zdedené z doby kedy sa prideľovali zákazníkom celé adresné triedy, kde sa predpokladalo vlastnenie celého adresného rozsahu organizáciou. V takomto prípade sa pri smerovaní prehľadali Level 1 cesty a ak sa našla odpovedajúca vhodná rodičovská (parent) cesta (najdlhšia zhoda) so svojími Level 2 child smerovacími cestami, následne sa prehľadali tieto level2 cesty, ak sa našla zhoda, vykonalo sa smerovanie, ak sa nenašla, paket bol dropnutý. Takéto správanie neriešilo ani pridanie default routy, nakoľko k jej nájdeniu ako ďalšej level 1 cesty sa nevykonalo.
Ip classless je nový typ správania, ktorý predpokladá nové spôsoby prideľovania už nie celých adresných tried ale ich fragmentov, definovaných sieťovým prefixom. Zmena v správaní je tá, že akonáhle sa nenájde cesta ani medzi child level 2 cestami danej parent level 1 cesty, smerovač vykoná prehľadanie zvyšných Level 1 ciest, ak sa medzi nimi nenájde zhoda na danom prefixe a ak máme zavedenú default cestu, tá bude nájdená a následne sa použije, ak nemáme def. cestu, paket bude tiež dropnutý.
Cieľom tejto simulácie je preskúmať popisované správanie.
Na testovanie mám založenú topológiu šiestich smerovačov podľa topológie ďalej. Smerovače R1, R2, R3 sú prepojené do kruhu, smerovače R4, R5, R6 sú tiež zapojené do kruhu. Obe skupiny sú prepojené cez R3 na R4 pomocou rozhrania e0/0.
Dynagen Topo.
# dva kruhy po troch routroch prepojenych ethernetom
#
[localhost]
[[3620]]
image = \Program Files\Dynamips\images\c3620-is-mz.123-22.image
ram = 64
slot0 = NM-4E
slot1 = NM-4T
mmap = True
ghostios = true
idlepc = 0x603ec450
[[ROUTER R1]]
model = 3620
s1/0 = R2 s1/0
s1/1 = R3 s1/1
[[router R2]]
model = 3620
s1/1 = R3 s1/0
[[router R3]]
model = 3620
e0/0 = R4 e0/0
[[ROUTER R4]]
model = 3620
s1/0 = R5 s1/0
s1/1 = R6 s1/1
[[router R5]]
model = 3620
s1/1 = R6 s1/0
[[router R6]]
model = 3620
Konfigurácia rozhraní je nasledovná,
R1:
R1#sh ip int brief
Interface IP-Address OK? Method Status Protocol
Ethernet0/3 unassigned YES NVRAM administratively down down
Serial1/0 1.1.1.1 YES NVRAM up up
Serial1/1 1.3.3.1 YES NVRAM up up
R2
Serial1/0 1.1.1.2 YES NVRAM up up
Serial1/1 1.2.2.1 YES NVRAM up up
R3
Ethernet0/0 2.1.1.1 YES NVRAM up up
Serial1/0 1.2.2.2 YES NVRAM up up
Serial1/1 1.3.3.2 YES NVRAM up up
R4:
Ethernet0/0 2.1.1.2 YES NVRAM up up
Serial1/0 1.5.5.1 YES manual up up
Serial1/1 1.7.7.1 YES manual up up
R5
Serial1/0 1.5.5.2 YES NVRAM up up
Serial1/1 1.7.7.1 YES NVRAM up up
R6
Serial1/0 1.7.7.2 YES NVRAM up up
Serial1/1 1.6.6.2 YES NVRAM up up
t.j. skupiny každá používa subsiete s /24 bit prefixom odvodené od siete 1.0.0.0/8. Discontiguous net je dosiahnutá prepojením cez Ethernet s adresáciou z úplne inej major siete a to 2.1.1.0./24. Smerovacia tabuľka na R3 a R4:
R4
R4#sh ip route
Codes: C – connected, S – static, R – RIP, M – mobile, B – BGP
D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
ia – IS-IS inter area, * – candidate default, U – per-user static route
o – ODR, P – periodic downloaded static routeGateway of last resort is not set
1.0.0.0/24 is subnetted, 3 subnets
C 1.7.7.0 is directly connected, Serial1/1
R 1.6.6.0 [120/2] via 1.5.5.2, 00:00:26, Serial1/0
C 1.5.5.0 is directly connected, Serial1/0
2.0.0.0/24 is subnetted, 1 subnets
C 2.1.1.0 is directly connected, Ethernet0/0
a na R3:
R3#sh ip route
Codes: C – connected, S – static, R – RIP, M – mobile, B – BGP
D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
ia – IS-IS inter area, * – candidate default, U – per-user static route
o – ODR, P – periodic downloaded static routeGateway of last resort is not set
1.0.0.0/24 is subnetted, 3 subnets
C 1.3.3.0 is directly connected, Serial1/1
C 1.2.2.0 is directly connected, Serial1/0
R 1.1.1.0 [120/1] via 1.3.3.1, 00:00:00, Serial1/1
[120/1] via 1.2.2.1, 00:00:15, Serial1/0
2.0.0.0/24 is subnetted, 1 subnets
C 2.1.1.0 is directly connected, Ethernet0/0
Ako je vidno z tabuliek, ani jedna skupina nevidí cesty z inej skupiny smerovačov,efektdiscontiguos net a auto summary pri RIPv1 zabraňuje v preposlaní updates o subsieťach 1.0.0.0/24 cez rozhranie 2.0.0.0/24.
Následne na všetkých smerovačoch vypneme ip classless, čím vlastne zapneme ip classfull správanie, kde toto správanie je podporované od verzie IOS 9. Cez príkaz
R1(config)#no ip classless
Nakoľko však nové verzie Cisco smerovačov používajú CEF forwarding, ktorý spracováva pakety pri routingu ináč ako process routing, musíme kvôli priblíženiu sa skorším smerovačom vypnúť CEF express forwarding na všetkých smerovačoch.
R1(config)#no ip cef
Vyskúšame správanie, ping z R1 na R6 serial1/1 bude neúspešný:
R1#ping 1.7.7.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.7.7.2, timeout is 2 seconds:
…..
Success rate is 0 percent (0/5)
Traceroute končí hneď na R1, toto správanie je OK, nakoľko hneĎ router R1 nenájde cestu do siete 1.7.7.2, pretože R1 routing tabuľka cestu nepozná.
R1#traceroute 1.7.7.2
Type escape sequence to abort.
Tracing the route to 1.7.7.21 * * *
2 * * *
3 * * *
R1 routing tableako dôsledok discontiguos net nevie nič o sieťach za R3v grupe routrov R4, R5, R6.
R1#sh ip route
Codes: C – connected, S – static, R – RIP, M – mobile, B – BGP
D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
ia – IS-IS inter area, * – candidate default, U – per-user static route
o – ODR, P – periodic downloaded static routeGateway of last resort is not set
1.0.0.0/24 is subnetted, 3 subnets
C 1.3.3.0 is directly connected, Serial1/1
R 1.2.2.0 [120/1] via 1.3.3.2, 00:00:06, Serial1/1
[120/1] via 1.1.1.2, 00:00:26, Serial1/0
C 1.1.1.0 is directly connected, Serial1/0
R 2.0.0.0/8 [120/1] via 1.3.3.2, 00:00:06, Serial1/1
. Následne sa pokúsime vyriešiť probém pridaním def ciest na R1, R2, R3, R4, R5 a R6:
R1(config)#ip route 0.0.0.0 0.0.0.0 s 1/1
R2(config)#ip route 0.0.0.0 0.0.0.0 s 1/1
R3(config)#ip route 0.0.0.0 0.0.0.0 e 0/0 2.1.1.2
R4(config)#ip route 0.0.0.0 0.0.0.0 e 0/0 2.1.1.1
R5(config)#ip route 0.0.0.0 0.0.0.0 s 1/0
R6(config)#ip route 0.0.0.0 0.0.0.0 s1/1
ping opetovne z routra R1 na R6 neprejde, paradox je, že traceroute aj napriek default route skončí hneď na prvom routri R1
R1#ping 1.7.7.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.7.7.1, timeout is 2 seconds:
…..
Success rate is 0 percent (0/5)R1#tracer 1.7.7.1
Type escape sequence to abort.
Tracing the route to 1.7.7.11 * * *
2 * * *
3 * * *
4 * * *
Správanie pri následujúcej routing tabuľke na R1 je asi následovné
R1#sh ip route
Codes: C – connected, S – static, R – RIP, M – mobile, B – BGP
D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2
ia – IS-IS inter area, * – candidate default, U – per-user static route
o – ODR, P – periodic downloaded static routeGateway of last resort is 0.0.0.0 to network 0.0.0.0
1.0.0.0/24 is subnetted, 3 subnets
C 1.3.3.0 is directly connected, Serial1/1
R 1.2.2.0 [120/1] via 1.3.3.2, 00:00:12, Serial1/1
[120/1] via 1.1.1.2, 00:00:06, Serial1/0
C 1.1.1.0 is directly connected, Serial1/0
R 2.0.0.0/8 [120/1] via 1.3.3.2, 00:00:12, Serial1/1
S* 0.0.0.0/0 is directly connected, Serial1/1
Paket na hosta 1.7.7.1 musí byť na R1 odsmerovaný, R1 nájde medzi level 1 parent cestu (zvýraznené žltým), a následne prehľadá jej child routy (zaleným), medzi nimi nenájde zhodu, následne v duchi ip classfull správania sa domieva, že daná subnet neexistuje a Ďalej ńeprehľadáva Level 1 routy a tým padom nenájde ani default route.
Akonáhla zapneme na smerovačoch ip classless
R1(config)#ip classless
, paket prejde.
R1#sh ip route
*Mar 1 01:41:18.279: %SYS-5-CONFIG_I: Configured from consoleping 1.7.7.1Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.7.7.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/52/140 msR1#tracer 1.7.7.1
Type escape sequence to abort.
Tracing the route to 1.7.7.11 1.3.3.2 16 msec 40 msec 16 msec
2 2.1.1.2 32 msec 52 msec 12 msec
3 1.6.6.2 52 msec 56 msec 28 msec
4 1.7.7.1 80 msec 260 msec *
R1#