Encabezados de funciones

Encabezados de funciones

de Martin Manitto Mier -
Número de respuestas: 6
Se pueden modificar los encabezados de las funciones de sr_router? En particular queremos hacerlo para sr_send_icmp_error_packet.


Por lo que vemos, si no se puede entonces para construir el header Ethernet necesitamos una mac que no tenemos en esa función y tendríamos que buscarla en el cache, etc. Nosotros pensábamos usar la mac del paquete recibido. No sería correcto hacer eso?

Alternativamente, sería correcto agregar a la cache el par ip->mac al recibir un mensaje si no está ya y así asegurarnos de que va a estar disponible al momento de enviar el error icmp?

En respuesta a Martin Manitto Mier

Re: Encabezados de funciones

de Matias Richart -

Hola.

Lo correcto (al igual que para cualquier envío de un paquete IP) es buscar la MAC del next hop al que estará dirigido el paquete IP que contenga al ICMP.

Luego, como esa asociación se ingresa a la cache es otro problema.

Es correcto (pero no necesario), actualizar la cache cuando reciben un paquete. Si no hacen esto lo que sucederá es que se deberá generar un ARP request.

Se entiende? Cualquier cosa vuelvan a preguntar.

Saludos

En respuesta a Matias Richart

Re: Encabezados de funciones

de Matias Richart -

Releyendo su mensaje, me pareció importante aclarar un poco mas.

Tengan cuidado que en la mayoría de los casos la IP origen no coincide con la MAC origen, es decir no pertenecen a la misma interfaz.

No se confundan con nuestro escenario que es muy pequeño, piensen que un paquete IP puede venir de varios saltos de distancia.

Además, tampoco tiene porque coincidir la MAC origen de un  paquete con la MAC destino de un paquete de respuesta ICMP. Como digo en el mensaje anterior, para saber a donde enviar el nuevo mensaje ICMP deben mirar la tabla de forwarding.

Lo que es correcto y suele hacerse (aunque no es necesario en la tarea) es aprovechar la recepción de un ARP request para aprender la asociación IP-MAC del origen de ese paquete.

Espero haber sido claro dado que esto es un concepto fundamental de esta tarea.

Saludos

En respuesta a Matias Richart

Re: Encabezados de funciones

de Martin Manitto Mier -
Bien, está claro. Nosotros pensamos que si teníamos que generar un error ICMP, ese mensaje iba a salir por el mismo lugar que llegó el mensaje original.


Entonces salvo en el caso de los mensajes ARP que sí se contestan directamente a la MAC de origen del mensaje, para los demás siempre hay que buscar en la tabla de forwarding aunque no se vaya a forwardear el mensaje?

En respuesta a Martin Manitto Mier

Re: Encabezados de funciones

de Matias Richart -

Exacto. Porque el error ICMP va destinado a la IP que generó el mensaje original.

Esa IP no tiene porque ser vecino, por lo que se debe buscar en la tabla por que interfaz y cual next hop le corresponde.

Saludos

En respuesta a Matias Richart

Re: Encabezados de funciones

de Maria Belen Brandino Larrosa -
Al final se puede cambiar el encabezado de una función en sr_router?