Pozor museum: Toto je archivní verze blogu. Pro vkládání komentářů přejděte na tento článek v nové verzi blogu.

FireWire - propojení dvou počítačů (síť)

Počítačové rozhraní FireWire (nazývané také IEEE 1394, či i.Link) neslouží jen k připojení kamer a pevných disků, ale můžeme pomocí něj vytvořit normální počítačovou síť mezi dvěma počítači (IPv4 i IPv6). A teoreticky budeme moci komunikovat čtyřikrát rychleji.

Předpoklady

Předpokládejme, že máme dva GNU/Linuxové počítače (dell a asus) vybavené FireWire konektory. Jsou připojené do stovkové ethernetové (drátové) sítě a mají nějaké IP adresy. Koupíme si za přibližně sto korun FireWire kabel a počítače propojíme.

Zprovoznění sítě

Linux je moderní operační systém a zprovoznění FireWire sítě je záležitost na pár jednoduchých příkazů (pouštěno pod rootem na obou počítačích):

  1. Natáhneme jaderný modul: modprobe eth1394 (Aktualizace: v novějších jádrech firewire-net)
    Abychom to nemuseli dělat pokaždé, můžeme si ho přidat do /etc/modules
    Tím nám přibude nové síťové rozhraní – pomocí ip a show zjistíme, jak se jmenuje (Aktualizace: v novějších jádrech firewire0 místo eth1).
  2. Toto síťové rozhraní zapneme: ip link set eth1 up (místo eth1 tam samozřejmě můžeme mít jiné zařízení)
  3. Nastavíme si IP adresu - na každém počítači jinou:
    dell: ip addr add 10.0.0.204 dev eth1
    asus: ip addr add 10.0.0.202 dev eth1
    Kromě normální IP adresy, kterou jsme měli dřív, nám teď přibyla nová, na novém zařízení. Každý počítač má tedy dvě síťová rozhraní a dvě IP adresy.
  4. Směrování: aby počítač věděl, po kterém drátu má komunikovat, musíme nastavit cestu:
    dell: ip route add 10.0.0.202 dev eth1 proto kernel scope link src 10.0.0.204
    asus: ip route add 10.0.0.204 dev eth1 proto kernel scope link src 10.0.0.202
    Počítač dell má FireWire IP adresu 10.0.0.204 a počítač asus má 10.0.0.202. Počítač dell potom ví, že když se chceme připojit na 10.0.0.202, má to jít po eth1 (FireWire) místo po výchozí eth0 (ethernet).
    Kdybychom tohle nenastavili, byl by nám ten kabel úplně na nic, protože počítače by se snažili komunikovat po výchozí cestě (pomalá ethernetová síťovka).
  5. Protože si nechceme pamatovat nějaké ošklivé IP adresy, přidáme si záznamy do /etc/hosts:
    10.0.0.204         dell-firewire
    10.0.0.202         asus-firewire

Jak nám síť po FireWire krásně funguje, si vyzkoušíme třeba pomocí SSH nebo pingu. Pravděpodobně si budete muset upravit nastavení svého firewallu.

Praktické použití

Připojíme se z počítače dell na asus SSHčkem a pustíme si nějaký film na DVD v Kaffeinu. Obraz je krásně plynulý a ani bychom nepoznali, že Kaffeine neběží lokálně, kdyby zvuk nešel z reproduktorů druhého počítače :-)

Pokud obraz plynulý není, máme pravdepodobně zapnutou SSH kompresi → pak se úzkým hrdlem stává pomalý procesor (který nestíhá komprimovat a dekomprimovat) a rychlá síť to nezachrání. RTFM: Compression is desirable on modem lines and other slow connections, but will only slow down things on fast networks.

Pokud nemáme obraz vůbec žádný, resp. Kaffeine se ani nespustí, zapomněli jsme povolit tunelování X protokolu: parametr -X příkazu SSH nebo ForwardX11 yes v konfuguráku ~/.ssh/conf.

Závěr

Ve skutečnosti na plynulé přehrávání DVD (přes X protokol tunelovaný SSHčkem) stačí stovkový ethernet. A ani při kopírování souborů přes FireWire jsem nezaznamenal výrazné zrychlení. Ještě budu pátrat proč… Zatím máme tedy jen zdvojené síťové propojení, takže po jednom drátě můžeme třeba zálohovat a po druhém dělat všechno ostatní (aniž by to bylo zpomalené zálohováním)

Průměr: 3.3 (4 hlasů)

Aktualizace

V novějších jádrech se modul jmenuje firewire-netmodprobe firewire-net a síťové rozhraní firewire0 místo eth1. Modul by měl být načtený ještě před zapojením kabelu (jinak mi to nefungovalo: firewire0 hlásilo NO-CARRIER).

Kabel

P.S. to s tím kabelem možná není pravda – zjistil jsem, že kabel byl vadný a fungoval nespolehlivě, takže to budu muset ještě prověřit…