# [HOWTO] Montar Red Firewire (Ethernet over Firewire)

## Kuan

[HOWTO] Montar Red Firewire (Ethernet over Firewire)

1. Introducción

Hay múltiples formas de transferir archivos entre equipos. Pero, ¿y si tu red tiene un ancho de banda limitado? 

Puedes:

a) comprar un router más rápido ¡$$$!

b) comprar más tarjetas de red, vaaale, no es tan caro. Eso sí, has de desmontar el equipo y mirar si tienes slots pci libres.

Si éste último es tu caso, existe una solución que es el motivo de esta guía. 

Este sistema también tiene otros usos como conectar un iPod e instalarle Linux o utilizarlo como disco duro externo, es todo cuestión de imaginación  :Very Happy: 

2. Material necesario

Generalmente todos los equipos recientes disponen de un conector frontal firewire, si no es así no te leas lo demás.

Puedes probar otras alternativas como conexión inalámbrica o usb.

A diferencia de las soluciones anteriores, bastará con conseguir un cable firewire de 6PIN/6PIN (el grande) que vale alrededor de 5 euros para entre sí los equipos. Tiene una longitud de casi 2 metros. Como nota curiosa, la longitud máxima admisible es de 4'5m, y a partir de ahí se deben utilizar repetidores cada 10m.

Para probar su funcionamiento bastará conectar las dos máquinas que interese, y el cable se puede desconectar en cualquier momento (la red la reconocerá nuevamente en la reconexión).

3. Configuración

Necesitaremos un kernel 2.6.x, cuanto más reciente mejor. Por alguna razón que desconozco no he conseguido hacer funcionar la conexión con la serie 2.4.x ¿controladores más recientes en la 2.6?

Estos pasos hay que hacerlos en los equipos que queramos conectar, teniendo la precaución de asignar distinta ip e igual máscara de red a cada uno.

Las opciones requeridas son las siguientes:

```
Device Drivers  --->

    IEEE 1394 (FireWire) support  --->   

    <*> IEEE 1394 (FireWire) support                                     

              ---   Subsystem Options                                             

         [ ] Excessive debugging output                                    

         [ ] OUI Database built-in                                         

    ---   Build in extra config rom entries for certain functionality   

    ---      IP-1394 Entry                                               

    ---   Device Drivers                                                

    < >    Texas Instruments PCILynx support                             

    <M>   OHCI-1394 support                                             

    ---   Protocol Drivers             

    < >   OHCI-1394 Video support                                       

               < >   SBP-2 support (Harddisks etc.)                                

              <M>   Ethernet over 1394                                            

               <  >   OHCI-DV I/O support                                           

               < >   Raw IEEE1394 I/O support                                      

               < >   IEC61883-1 Plug support

```

Una vez compilado el núcleo y si no ha habido problemas tendremos dos módulos: ohci1394 y eth1394.

Cuando los carguemos (no importa el orden, si cargásemos primero ohci1394 automáticamente carga el otro).:

```
modprobe eth1394

modprobe ohci1394
```

Comprobamos los mensajes del núcleo:

```
$ dmesg |grep 1394

ohci1394: fw-host0: OHCI-1394 1.0 (PCI): IRQ=[19]  MMIO=[e0107000-e01077ff]  Max Packet=[2048]

ip1394: $Rev: 1224 $ Ben Collins <bcollins@debian.org>

ip1394: eth1: IEEE-1394 IPv4 over 1394 Ethernet (fw-host0)

ieee1394: Host added: ID:BUS[0-00:1023]  GUID[00301bab0000af1d]

ieee1394: Node added: ID:BUS[0-01:1023]  GUID[0040635000014966]

```

Ahora aparecerá un nuevo dispositivo de red (sin configurar, generalmente eth1):

```
$ ifconfig -a

dummy0    Link encap:Ethernet  HWaddr 1A:60:19:07:1A:F0

          BROADCAST NOARP  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

eth0      Link encap:Ethernet  HWaddr 00:40:63:D5:A6:9A

          inet addr:XXX.XXX.X.X  Bcast:XXX.XXX.XXX.XXX  Mask:XXX.XXX.XXX.XXX

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:5589 errors:0 dropped:0 overruns:0 frame:0

          TX packets:6415 errors:0 dropped:0 overruns:0 carrier:0

          collisions:4 txqueuelen:1000

          RX bytes:425248 (415.2 Kb)  TX bytes:3392675 (3.2 Mb)

          Interrupt:11 Base address:0xec00

eth1      Link encap:UNSPEC  HWaddr 00-40-63-50-00-01-49-66-00-00-00-00-00-00-00-00

          inet addr:0.0.0.0  Bcast:0.0.0.0  Mask:0.0.0.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:89760 errors:0 dropped:0 overruns:0 frame:0

          TX packets:532549 errors:4710 dropped:4710 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:16187653 (15.4 Mb)  TX bytes:749346544 (714.6 Mb)

lo        Link encap:Local Loopback

          inet addr:127.0.0.1  Mask:255.0.0.0

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:62 errors:0 dropped:0 overruns:0 frame:0

          TX packets:62 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:4340 (4.2 Kb)  TX bytes:4340 (4.2 Kb)

```

Y configuramos la red, por ejemplo:

```
Equipo 1 $ ifconfig eth1 192.168.0.10 netmask 255.0.0.0 up

Equipo 2 $ ifconfig eth1 192.168.0.11 netmask 255.0.0.0 up

```

¡Por fin! Hacemos un ping:

```

$ ping 192.168.0.10

ping 192.168.0.10(192.168.0.10) 56(84)bytes of data

64 bytes from 192.168.0.10: icmp_seq=1 ttl=128 time=0.261 ms

64 bytes from 192.168.0.10: icmp_seq=2 ttl=128 time=0.229 ms

64 bytes from 192.168.0.10: icmp_seq=3 ttl=128 time=0.233 ms

```

¿No está mal, verdad? 

Pues si comprobamos el ancho de banda al transferir tenemos picos de 9000 kBytes/s (apróx. 8.8MB/s)

Es decir, una red de 70Mbs, 7 veces más rápida que un router 10Mbs.

Todos estos pasos se pueden abreviar: 

- Incluir los módulos eth1394 ohci1394 en /etc/modules.autoload.d/kernel-2.6

- Añadir un nuevo dispositivo eth1 en el archivo /etc/conf.d/net

- Crear su servicio en /etc/init.d/net.eth1 y actualizar rc-update:

```
# cd /etc/init.d

# ln -s net.eth0 net.eth1

# rc-update add net.eth1 default

```

Por último, se puede configurar samba para que utilice la red firewire como local:

```
##/etc/samba/smb.conf

interfaces = lo eth1

hosts allow = 127.0.0.1 192.168.0.

##
```

Y modificar /etc/fstab para comunicarnos entre linux (parte del cliente):

```
##/etc/fstab

192.168.0.10:/mnt/fire  /mnt/wire  nfs noauto 0 0

##
```

Enlaces asociados:

Firewire | Linux 1394 | Linux iPod | Rendimiento

Se agradecen las posibles sugerencias y mejoras  :Wink: Last edited by Kuan on Sat Feb 12, 2005 10:14 pm; edited 1 time in total

----------

## asph

gracias por este howto, esta muy bien explicado  :Smile: 

yo la había provado ya como experimento (igual que ethernet over usb) y mola poder montar redes cuando no tienes un cable rj45 a mano xD

----------

## Overpeer

A los bookmarks.

Gracias.

Un saludo.

----------

## psm1984

Un par de cosas:

-La velocidad creo que son 400 Mbps   :Very Happy: 

-Si quieres compartir la conexion a internet puedes hacer lo siguiente:

REDES

A: 192.168.0.0 (LAN con conexion a internet a traves de un GW)

B: 192.168.1.0 (ad-hoc, firewire, usb...)

A:

 GW 192.168.0.1

 H1 192.168.0.5

B: 

 H1 192.168.1.1

 H2 192.168.1.2

H1:

ifconfig eth0:1 192.168.0.6 netmask 255.255.255.0 broadcast 192.168.0.255

iptables -t nat -A PREROUTING -i eth0 -d 192.168.0.6 -j DNAT --to-destination 192.168.1.2

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.2 -j SNAT --to-source 192.168.0.6

H2:

 GW H1 (192.168.1.1)

----------

## Kuan

asph Overpeer <-- Me alegro de que os haya sido útil  :Smile: 

 *Quote:*   

> Un par de cosas: 
> 
> -La velocidad creo que son 400 Mbps

 Eso pensaba que tendría la primera vez que hice las pruebas  :Laughing: 

Sin embargo, ése es el valor máximo en teoría (unos 50 MB/s), y sólo me da picos de 8 MB/s como mucho. 

Si alguien mide valores superiores, que me diga como lo consigue porque me interesa   :Wink:  Si comentáis qué tal os funciona este sistema de compartir archivos también lo agradecería.

 *Quote:*   

> -Si quieres compartir la conexion a internet puedes hacer lo siguiente...

 Mi salida a internet es a través de router, con lo que no tengo problemas al compartir la conexión. Sólo utilizo el firewire para la conexión local (LAN).

Gracias de todos modos por la sugerencia.

----------

## pcmaster

Aunque IEEE1394 tiene una velocidad de conexión de 400 Mbit/seg, eth1394 limita la velocidad a unos 100 Mbit/seg para evitar inestabilizar en el kernel.

Tenéis más información aquí:

http://zaralinux.sourceforge.net/modules.php?name=News&file=article&sid=349

----------

## psm1984

 *pcmaster wrote:*   

> eth1394 limita la velocidad a unos 100 Mbit/seg para evitar inestabilizar en el kernel.

 

¿seguro? mira que me suena raro  :Razz: .

 *Kuan wrote:*   

> Sin embargo, ése es el valor máximo en teoría (unos 50 MB/s), y sólo me da picos de 8 MB/s como mucho.

 

¿las pruebas han sido accediendo a disco? tambien puede ser que tengas una de 100 Mbps

http://www.linux1394.org/doc/libraw1394/intro1394.html

----------

## pcmaster

 *psm1984 wrote:*   

>  *pcmaster wrote:*   eth1394 limita la velocidad a unos 100 Mbit/seg para evitar inestabilizar en el kernel. 
> 
> ¿seguro? mira que me suena raro .
> 
> 

 

Pues al menos es lo que pone en la página web de Zaralinux (el link que os puse):

 Para probar la conexión, realizamos una copia masiva de ficheros a través de NFS. La velocidad media se situó en torno a los 6MB/s, alcanzando picos de 11MB/s. Por hacer una comparación, esta velocidad es similar a la hipotética velocidad de lectura de un lector de CDRom 40x. Técnicamente, el protocolo ieee1394 puede ir hasta 4 veces más rápido (400Mbps), pero eth1394 limita la velocidad a 100Mbps para no inestabilizar el kernel.

----------

## psm1984

Ya, me lo lei, pero en la pagina del driver no dice nada de eso, mas bien puedes encontrar ejemplos de lo contrario. De todas formas con el dmesg tiene que salir a que velocidad a conectado (S100, S200...)

----------

## Peter Punk

¿ Alguien ha probado la velocidad de eth1394 con scp ?

También me gustaría saber configurar rcp para mi LAN interna en la que no tiene sentido encriptar el tráfico, con lo cual la velocidad de transferencia sería mucho mayor que con scp.

Muchas gracias.

----------

## 2xMcK

He encontrado un documento con tests acerca de esto: http://web.mit.edu/kkeville/www/firewire/

  Aunque el bus funcione a 400Mbits/s, el rendimiento de ethernet sobre 1394 es más bajo, según los tamaños de paquete. En los tests de la web indicada se logran transferencias de hasta 140Megabits/s. Supongo que con el tiempo se irá puliendo el driver para optimizar el uso del bus y lograr tasas más elevadas.

Aun así para uso casero creo que nos vale de sobra  :Wink:   :Very Happy: 

Un saludo.

----------

