You are on page 1of 5

NotasdeclaseIPv4PROTOTIPOPorErnestoAlvarez

IntroduccinaIPversin4
IntroduccinaIPv4
IPv4(InternetProtocolversin4)eselprotocolodenivelderedusadoenInternet.Juntoconotros protocolosauxiliaresesresponsabledetransferirlainformacindelusuarioporlared.Elprotocolo IPv4estdefinidoenelRFC791. IPv4esunprotocolodenivelderednoorientadoaconexin,noconfiable.Encasodehaber problemas,seesperaqueelnodoinvolucradodescarteelpaquete.Debidoaqueunpaquetedebe transitarporvariosnodos,posiblementesiguiendouncaminoquenonecesariamenteeselmismoque elusadoporotrospaquetes,losdatosenviadospuedenllegarendesorden.IPv4nointentacorregirel ordendelospaquetes. LascaractersticasdeIPv4hacenqueInternetseaprincipalmenteunaredbesteffort,oseaqueno proveeningunagarantasobreeltrfico,aunquehaciendosumejoresfuerzoparaasegurarsequelos datoslleguenadestino. AunquetambinexisteIPv6,cuandoseuseeltrminoIPenestedocumento,seconsiderarquese esthaciendoreferenciaaIPv4.

ElformatodelpaqueteIPv4
ElprotocoloIPv4tieneunheaderdelongitudvariable.Elheaderestformadoporunaparte obligatoria,de20bytes,seguidoporunaseriedeopciones.Debidoalimitacionesdelheader,las opcionesdebentenerunalongitudmltiplode4bytes,pudiendoelheadercrecerhastaunmximode 60bytes(contandoparteobligatoriayopcional).
0123 01234567890123456789012345678901 +++++++++++++++++++++++++++++++++ |Version|IHL|TypeofService|TotalLength| +++++++++++++++++++++++++++++++++ |Identification|Flags|FragmentOffset| +++++++++++++++++++++++++++++++++ |TimetoLive|Protocol|HeaderChecksum| +++++++++++++++++++++++++++++++++ |SourceAddress| +++++++++++++++++++++++++++++++++ |DestinationAddress| +++++++++++++++++++++++++++++++++ |Options|Padding| +++++++++++++++++++++++++++++++++

Losheadersobligatoriossonlossiguientes(considerandobigendianalosnumerosmencionados) Version(4bits):EselnmerodeversindelprotocoloIP.Unaconstante4.Permitequeotras versionesinteractuenenlamismaredsincausarconflictos.Laotraversinusadacomunmente esIPv6.

IHL(4bits):EslalongituddelheaderIPv4.Puestoqueelvalorcubrede0a15,lamedida usadaesbloquesde32bits.Debeindicaralmenos5. TypeofserviceoTOS(8bits):Esuncampodebitsqueindicacomosedebetrataralpaquete encuestin.Usadoparapriorizaralgunospaquetessobreotros. Totallength(16bits):Eslalongitudtotaldelpaquete,medidaenbytes.Estosignificaqueun paqueteIPv4nopuedetenerunalongitudmayora64KiB. Identification,flagsyfragmentoffset:Estoscampossonusadosenlafragmentacinde paquetesIPv4(averenlasiguienteclase). Timetolive,oTTL(8bits):Esuncampousadoparaevitarqueunpaquetequedecirculando indefinidamenteenlared.Originalmenteindicabalacantidaddesegundosqueelpaquetepuede permanecer.Hoyendaindicalacantidaddesaltosquepuederealizar.Estecamposecambiaal pasarporcadarouter,yelpaquetesedescartasiestevalorllegaa0. Protocol(8bits):Indicacualeselprotocolodelacapasuperior.Usadoparapermitirllevar mltiplesprotocolossobreIPv4(similaralethertypedeethernet). Headerchecksum(8bits):Esunchecksumqueprotegealheader.Nobrindamuchaproteccin ynoprotegealosdatos.Sielchecksumenunpaquetenoescorrecto,sedescartaelmismo.Es principalmenteunamedidaparaevitarlapropagacininnecesariadepaquetes. Sourceaddressydestinationaddress(32bitscadauna):Indicanladireccindeorigenydestino delpaquete.Elorigenestincludoparapermitirqueelreceptorsepaaquiendeberespondery tambinasisteenelmantenimientodelestadoenprotocolosdecapassuperiores.

ElcampoTOSenIPv4
01234567 +++++++++ |PRECEDENCE|D|T|R|ECN| +++++++++

IPv4proveeciertosmecanismosdepriorizacindepaquetes.LaespecificacinoriginaldeIPv4indica quedebeconsiderarseuncampode3bitsqueindicalaprioridad(precendence),conotrostresbits indicandoelserviciodeseadoydejandolosltimosdosbitsencero(porestarreservados).Losbitsque indicaneltipodeservicioson(enorden):minimizarlalatencia(bitD),maximizarelthroughput (bitT)ymaximizarlaconfiabilidad(bitR).Unhostpuedeprendercualquiercombinacinestosbits ylosrouterspuedenusarloscomoguiaparadeterminarelprximosalto. Supongamosqueunrouterestconectadoaotrocondosenlaces,unosatelitalconmuchothrouputy muchalatenciayuncableserie,conpocalatenciaypocothroughput.SiunpaqueteIPv4conelbitD debeserforwardeado,esmuyprobablequeelrouterdecidausarelenlaceserie,yaqueeselquemenos latenciatiene.SielsiguientepaquetetieneelbitTprendido,esdeesperarqueseaenviadoporel enlacesatelital.Todoestetratamientoesopcional,yenltimainstanciadependedelrouterquehaceel forwardeo(ydesuconfiguracin/programacin). Otrainterpretacinposibleeselusototaldelcampodebitsparaindicardistintasclasesdetrfico (indicadasenelcampoDSCP).Puestoqueestainterpretacinfuedefinidamuchodespuesdela interpretacinoriginal,esnecesariodefinirlasdeformatalqueseancompatiblesconlainterpretacin original,amenosquehayaunarreglodeantemanoentretodoslosnodosdelared.Estanueva interpretacinseencuentraenelRFC2474.

01234567 +++++++++ |DSCP|ECN| +++++++++

Esimportanteaclararquelosdosbitsreservadosfueronasignadosrecientementeparacontrolde congestin(marcadoscomoECN),porloqueningnmecanismodeToSdebealterarlos.

AnatomadeunadireccinIPv4
UnadireccinIPv4estformadapordospartes:lapartederedylapartedehost.Estadivisinnoes evidenteenladireccinens,sinoqueestindicadaporotroparmetrollamadolamscaradered. Unamscaraesunaseriedebitsenuno,seguidosporbitsencerohastacompletar32bits.Cuandouna mscaraestasociadaaunadireccinIPv4,losunosdelamismaindicanloslugaresusadosenlaparte dered,mientrasqueloscerosmarcanlapartedehost.Escomnescribirunamscaradeformasimilar aunadireccinIPv4,aunquetambinseacostumbraabreviarlaescribiendoelnmerodebitsenuno queestaposee. LarazndeestadivisinesquenoesfactibleconectardirectamenteatodosloshostsdeInternetpor mediodelniveldeenlace,yalmismotiemponoesposibleasignarunaentradaencadatabladeruteoa cadahostposible.Paraevitaresto,sedefinelaideadered:ungrupodenodosconectados directamenteconunprotocolodeniveldeenlace.Laideaesagruparaloshostsqueseencuentrenenla mismaredyasignarlesunbloquededirecciones.Unavezhechoesto,esposiblerealizarelruteohacia distintasredes,ahorrandoelcostodehacerunruteoindividualacadahost. Pormediodelamscarasepuedenobtenerdosvaloresimportantes:ladireccinderedyladireccin debroadcast.Ladireccinderedesladireccincuyapartedehostcontienetodoscerosysirvepara hacerreferenciaalaredcomoentidad.Ladireccindebroadcastesladireccinconlapartedehost llenadeunos,ysirveparaenviarunmensajeatodoslosnodosdelared.Estasdosdireccionesestn reservadasynopuedenserasignadosaningnhostorouter.Estosparmetrosusualmentese encuentranenlaconfiguracinbsicadeunhost. Lamscaraausardependedeltamaodelared.Cuantosmsunostenga,maspequeaeslared. Obviamenteenlareddebehabersuficientelugarparalosnodosquelaintegran,perousarunamscara demasiadopequeacausaquesedesperdiciendirecciones(yaquenohayhostsenesaredquepuedan usarlas,loquesignificaquebajocircunstanciasnormalesnoseterminanusando).Encontraposicin, cuantomsgrandeesunamscara,menosdireccioneshayentotal,ymssedesperdiciaelespacioen direccionesderedybroadcast(hastallegara/30,quedesperdicia50%delasdirecciones).
Direccin Mscara (explcita) Mscara (resumida) Cantidadde Direccindered direcciones disponibles 65533 14 2 253 126 157.92.0.0 200.80.40.192 5.2.7.0 201.213.16.0 64.41.98.128 Direccinde broadcast

157.92.27.2 200.80.40.197 5.2.7.1 201.213.16.47 64.41.98.153

255.255.0.0 255.255.255.240 255.255.255.252 255.255.255.0 255.255.255.128

/16 /28 /30 /24 /25

157.92.255.255 200.80.40.207 5.2.7.3 201.213.16.255 64.41.98.255

Table1:Distintasdireccionesconmscarasysusdireccionesderedybroadcast.

Ruteobsico
Elforwardingdepaquetesessimilaralovistoenteora:cadadatagramaseprocesa independiendetementedelresto,yselocomparaconlasentradasdelatabladeruteo.Laprincipal diferenciaesquelacomparacinnoserealizacondestinosfinales,sinocondistintasredes,que englobandestinos.Paraello,cadaentradadebetenerunadireccinderedyunamscara,usadaspara buscar,yunsiguientesalto,ounaindicacindequeeldestinoeslocal.Comoesposiblequehayan variasentradasquecoincidanconladireccindedestino,seseguiralarutamsprecisa(laquetiene unamscaramsgrande).
Destino 157.92.0.0/16 192.168.30.0/23 157.92.75.5/32 192.168.0.4/30 200.80.40.192/28 0/0 Interfaz eth0 ser1 ser1 ser1 eth0 eth0 Siguientesalto 200.80.40.193 192.168.0.5 192.168.0.5 Directo Directo 200.80.40.193

Table2:Ejemplodeunatabladeruteo,elhostestconectadodirectamenteadosredes,usandolasinterfaceseth0yser1. Esimportantenotarlarutadefaultylaprecedenciaquetomalatercerareglasobrelaprimerasiambasseaplican.

Porcadapaquetequedebeserforwardeado,serealizaelsiguientealgoritmo:

Porcadaentradadelatabla

Aplicar(AND)lamscaradelaentradaaladireccindestino. Compararelresultadodelpasoanteriorconladireccindereddelaentrada. Sihaycoincidencia,guardarlocomoposibleruta.

Sihayrutasposiblesausar,buscarlademscaramsgrandeytomarlaaccincorrespondiente. Sinohay,descartarelpaqueteporquenoesundestinoalcanzable.

Unarutamuyespecialeslarutadefaultodefaultgateway,queesunarutacuyamscaraes/0.Esta rutasetomacuandonohaycoincidenciaconningunaotraentradaenlatabladeruteo,yaqueesla menosprecisadetodas. Paradeterminarsiunpaqueteestdestinadoaunaredlocal,sepuedeusarelprocedimientoindicado arriba,usandolamscaraydireccinIPv4delhostparaobtenerladireccinderedlocal,repitiendoel procedimientousadoconlasentradasdelatabladeruteo.Normalmentenoesnecesariohaceresta verificacin,yaquelatabladeruteocontieneentradasparadestinoslocales.

Comomanejarespaciosdedirecciones
Sitodaslascomputadorasdeunaredestuvieranconectadasdirectamenteporelniveldeenlace,seran vlidascomodireccionesdehostcualquiercombinacindeoctetos,excepto0.0.0.0y255.255.255.255. PuestoqueInternetestadivididaensubredes,esnecesariofraccionaresteespaciodeacuerdoconlas

necesidadesparticularesdesususuarios.Sinembargo,puestoqueparadefinirunaredseempleauna mscara,noesposiblehacerunaparticinarbitrariadelespaciodedirecciones.Dadaunaparticin vlida,launicaformadevolverapartirespartireseespacioalamitad(almoverlamscaraunbita derechayreescribireseespaciocomodosredesdistintas).Todaparticinquesepuedahacerdeunared endistintassubredesdeberapoderexpresarsecomounaseriedeparticionesendos.Alaplicar cualquierparticin,esimportanteprestaratencinalasdireccionesdereddelasredesresultantes. Estasdeben(unavezmovidalamscara)tenersupartedehostllenadeceros.Unbuenmtodoconsiste enmoverlamscarayluegoincrementaren1(binario)lapartederedmientraselresultadose encuentreenlaredoriginal.Sinimportarelmtodousado,siunotomaunadireccinderedyla incrementaenn(dondeneslacantidaddedireccionesdeesasubred),elresultadodeberaserla direccindeotrared(perononecesariamentedentrodelrangoasignado,siunoaplicaestoalaltima subreddelaparticin). Elprocedimientoaplicadoparadividirunaredendospartes(llamadosubnetting)puedeaplicarseen reversaparaobtenerunaredmsgrande.Paraqueesteprocedimiento(supernetting)funcione,deben usarsedossubredesvacastalesquealcorrerlamscaraunbitaizquierdasevealamismadireccinde redenambas.Siestosucede,esporque(almenosconceptualmente)estasdossubredesfueroncreadas porlasubdivisindelaredmsgrandeanteriormente. Resumiendo: Unonodebesalirsedeloslimitesdelespacioasignado. Esposiblepartirunespacioendos,moviendolamscaraunlugaraladerecha,teniendodos redes,unaconlamismabasequelaoriginalyotraquecomienzaenlamitaddelespacio partido. Esposiblemoverlamscaravarioslugaresaladerecha:enesecaso,lacantidadderedes obtenidasesunapotenciadedos,ytodasestanespaciadasregularmentealolargodelespacio original.Esequivalentearealizarsucesivasparticionesendos. Esposiblevolverajuntardosredesenunamsgrande,siemprequeambaspertenezcanaunpar quefuepartidoanteriormente(ambasdebenindicarlamismadireccinderedsisemuevensus mscarasaizquierdaunlugar),ysiambasestanlibres(siestasfueronpartidas,elalgoritmo debeaplicarserecursivamente,sihayalgunasubredocupada,laredNOestalibre). Lamscaramasgrandedered,bajocircunstanciasnormales,es/30. Esrecomendableasignarprimerolasredesgrandesparaevitarfragmentarelespaciode direcciones.

You might also like