captura de tramas ethernet

5
Segundo Documento Conceptos Teóricos Captura de Tramas Ethernet. pyEtherIP. Autor: Rodrigo Ancavil del Pino. Versión: 1.0 I. Descripción: El presente documento entrega algunos conceptos teóricos para el entendimiento de los procedimientos utilizados para construir pyEtherIP. En esta entrega nos enfocamos en la captura de tramas Ethernet. II. Funcionamiento de las Redes Ethernet: La definición de Ethernet dice que es una arquitectura desarrollada por Xerox, Intel y DEC en los años 70’s y se basa en la especificación de la IEEE 802.3, la cual define la capa física el software de bajo nivel. Ethernet utiliza tres conceptos esenciales para su operatividad: La difusión. El direccionamiento Ethernet. Trama Ethernet. La difusión o broadcast hace que una trama Ethernet se difunda por todo el medio de comunicación, llegando a cada tarjeta conectada (al cable); sin embargo, sólo la tarjeta con la dirección Ethernet que coincide con la Dirección indicada en la trama la aceptará, el resto simplemente la ignorará.

Upload: enric-pons-guerola

Post on 29-Jun-2015

222 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Captura de Tramas Ethernet

Segundo DocumentoConceptos Teóricos

Captura de Tramas Ethernet.pyEtherIP.

Autor: Rodrigo Ancavil del Pino.

Versión: 1.0

I. Descripción:

El presente documento entrega algunos conceptos teóricos para el entendimiento de los procedimientos utilizados para construir pyEtherIP. En esta entrega nos enfocamos en la captura de tramas Ethernet.

II. Funcionamiento de las Redes Ethernet:

La definición de Ethernet dice que es una arquitectura desarrollada por Xerox, Intel y DEC en los años 70’s y se basa en la especificación de la IEEE 802.3, la cual define la capa física el software de bajo nivel.

Ethernet utiliza tres conceptos esenciales para su operatividad:

La difusión. El direccionamiento Ethernet. Trama Ethernet.

La difusión o broadcast hace que una trama Ethernet se difunda por todo el medio de comunicación, llegando a cada tarjeta conectada (al cable); sin embargo, sólo la tarjeta con la dirección Ethernet que coincide con la Dirección indicada en la trama la aceptará, el resto simplemente la ignorará.

El direccionamiento Ethernet hace que una tarjeta sea única en la red y corresponde a la dirección física de la tarjeta; ninguna tarjeta en el mundo y posiblemente en el universo tiene una dirección igual a otra.

Todo lo que circula por una red Ethernet lo hace a través de una Trama Ethernet; ésta vendría a ser el medio de transporte de todos los protocolos que se definen en las capas superiores. Las tramas son el formato en que los datos son encapsulados para poder ser transmitidos al medio físico. Esquemáticamente una trama Ethernet es:

Dir. Ether. Dest. Dir. Ether. Orig. Proto DatosCRC

Figura 1: Trama Ethernet

Page 2: Captura de Tramas Ethernet

Dir. Ether. Dest. (6 bytes):Corresponde a la dirección Ethernet (dirección física) de la tarjeta destino).

Dir. Ether. Orig. (6 bytes):Corresponde a la dirección Ethernet (dirección física) de la tarjeta destino).

Proto (2 bytes):Es el indicador del protocolo transportado en la trama Ethernet (0x800 indica que los datos corresponden a un datagrama IP).

Datos (46-1500 bytes):Son los datos transportados (protocolos: IP, NetBeui, etc).

CRC (4 bytes):Es el cálculo de la suma de comprobación la cual asegura la integridad de la trama.

En resumen, Ethernet es la interfaz entre las capas superiores (protocolos y aplicación) y la capa física de una red (recordar el modelo OSI). Una aproximación esquemática sería la siguiente:

III. Modo Promiscuo:

La captura del tráfico que circula por una red Ethernet se logra gracias a la posibilidad de poder configurar las tarjetas de red en modo promiscuo, esto permite que las tarjetas puedan obtener una copia de todas las tramas Ethernet que circulan por el medio de comunicación (cable p.e.) independiente del direccionamiento que estas tramas tengan.

Simplificando el concepto, el modo promiscuo deshabilita el filtro que una tarjeta Ethernet utiliza para identificar aquellas tramas cuya Dirección Ethernet coincide con la que tiene asignada.

De esta forma, los sniffers de paquetes pueden capturar las tramas que circulan por el “cable”.

APLICACIONES DE RED

ETHERNET

TCP/IP

MEDIO FÍSICO

APLICACIONES DE RED

ETHERNET

NETBEUI

HOST 1

HOST 2

Figura 2: Esquema de operatividad de Ethernet.

Page 3: Captura de Tramas Ethernet

Cada trama Ethernet identifica el contenido de su área de datos mediante el campo protocolo del formato mostrado en la figura 1.

En el caso pyEtherIP, configura la interfaz de red en modo promiscuo mediante la configuración de un socket y la utilización de ioctl.

Sock = socket(PF_PACKET, SOCK_RAW,htons(ETH_P_IP);

En este caso el socket rescatará sólo las tramas Ethernet que transporten un datagrama IP en su área de datos, es decir.

Proto = ETH_P_IP = 0x0800 Hex.

Todas las otras tramas Ethernet serán ignoradas.

En este ejemplo, se puede apreciar que por el medio de comunicación circula una serie de tramas que busca su destino; sin embargo, según se aprecia sólo las que transportan IP (0x0800Hex) en su interior son llevadas hasta pyEtherIP, el resto son ignoradas.

Los protocolo transportados por Ethernet se definen mediante la asignación de un valor Hexadecimal. Ejemplo:

Protocolo Tipo EthernetIPV4 0x0800IPV6 0x86DDARP 0x0806AppleTalk 0x809B

IV. Resumen:

Eth0

pyEtherIP

0x0800Hex

[00:00:aa:bb:cc:dd,22:3b:4c:43:33:66,0x0800 ]

0x0800Hex 0x0806Hex

Medio de Comunicación

0x86DDHex Tramas Ethernet que circulan por la Red

Figura 3: Funcionamiento de pyEtherIP

HOST 1

Page 4: Captura de Tramas Ethernet

Los conceptos acá entregados no pretenden ser un postulado filosófico de las redes Ethernet, sino más bien se pretende simplificar los conceptos para que, de esta forma, puedan ser aplicados al entendimiento del funcionamiento y operatividad de pyEtherIP.

En una próxima entrega nos enfocaremos en como pyEtherIP realiza la identificación del tráfico IP; para esto utilizaremos como base los conceptos acá planteados.