# HOW-TO - Bridging w malej sieci

## yemu

Bridging w malej sieci - HOW-TO

Czyli jak mozna wykorzystac zalegajacy w szafie zlom komputerowy i nie tylko  :Smile: 

W moim poprzednim tutorialu opisywalem jak odpalic Neostrade z modemem Speedtouch pod Gentoo. Mam nadzieje, ze wszystkim juz Neo smiga jak trzeba i mozemy zrobic kolejny krok i pogrzebac troche w naszym ulubionym systemie. W zwiazku z tym, ze Neostrada jako jedna z niewielu ofert dostepu do sieci pozwala legalnie dzielic lacze (wewnatrz jednego lokalu) to mozemy wykorzystac komputer z Gentoo na pokladzie do zbudowania malej sieci w domu lub firmie. Oczywiscie istnieja prostsze rozwiazania typu router sprzetowy, ale sa one bez porownania mniej perspektywiczne, poza tym nie mozna na nich nic skompilowac  :Wink: . Zostanmy wiec i przy Gentoo i zacznijmy od uruchomienia malej sieci lokalnej. Jak wszystko bedzie dzialac OK, zapewnimy naszej sieci dostep do internetu, dzielenie plikow i drukarek i bog wie czego jeszcze  :Smile: 

Co bedzie nam potrzebne

Zeby zbudowac mala siec potrzebny bedzie nam komputer ktory bedzie pracowal jako serwer. Moze to byc zarowno komputer z ktorego korzystamy na codzien (jesli jest wystarczajaco szybki i godzimy sie z faktem, ze nie bedziemy mogli go wylaczac),  jak i komputer przeznaczony wylacznie do tego celu. To drugie rozwiazanie jest lepsze, wiec na nim sie skupie.  Jesli macie gdzies w szafie stare pentium albo nawet 486dx4 to mozecie go do tego spokojnie wykorzystac.  Mozna tez na Allegro kupic za niewielkie pieniadze tego typu zabytki. Oprocz komputera potrzebujemy jeszcze kart sieciowych  :Smile:   Jesli mamy do podlaczenia np. 2 komputery to bedziemy potrzebowac 4 kart sieciowych (2 do serwera, po 1 do komputerow). 

Instalacja i konfiguracja systemu

Kiedy mamy juz skompletowany sprzet instalujemy na serwerku Gentoo - tak naprawde to nie polecalbym nikomu instalowania gentoo na pentium 100, wiec wyciagamy dysk, wkladamy do jakiegos przyzwoitego kompa i jedziemy z instalacja, oczywiscie konfigurujac wszystko tak jakby dysk siedzial w serwerze.  Opcja na ktora trzeba zwrocic uwage podczas konfiguracji jadra to:

Networking options 

--> 802.1d Ethernet Bridging (M)

Zapewni ona nam mozliwosc polaczenia dwoch kart sieciowych w serwerze w jedna "wirtualna", czyli stworzenie tzw. bridge'a. Aby bridge dzialal konieczne jest takze zainstalowanie pakietu bridge-utils

```
emerge bridge-utils
```

Wazne jest takze zeby nie dodawac uruchamiania sieci na starcie. mozna oczywiscie wrzucic wpisy do /etc/conf.d/net ale nie nalezy dodawac net.eth0 ani net.eth1 do poziomow startowych.

Odpalamy

Kiedy serwer jest juz skonfigurowany, podlaczamy kable (koniecznie tzw. skrossowane)  ustawiamy IP komputerow w sieci (na np. 192.168.0.3 i 192.168.0.4) i odpalamy bridge. 

Najpierw musimy zaladowac modul do obslugi bridge'a i uruchomic obie karty w serwerze, ale bez przyznawania im adresow IP.

```
modprobe bridge 

ifconfig eth0 0.0.0.0 up

ifconfig eth1 0.0.0.0 up

```

Nastepnie sprawdzmy przez ifconfig czy pojawily nam sie interfejsy eth0 i eth1. Jesli wszystko jest w porzadku to tworzymy bridge i dodajemy do niego oba interfejsy sieciowe:

```
brctl addbr br0

brctl addif br0 eth0

brctl addif br0 eth1
```

Jesli dodawanie poszlo gladko, to uruchamiamy stworzony wczesniej bridge, dostepny teraz pod nazwa br0, nadajac mu IP:

```
ifconfig br0 192.168.0.1 up
```

Standardowo potem sprawdzamy przez ifconfig czy br0 jest aktywny. Jesli tak to sprawdzamy komunikacje miedzy wszystkimi komputerami w sieci: 

```
ping 192.168.0.1

ping 192.168.0.2

ping 192.168.0.3

```

Wszystkie komputery powinny widziec wszystkie! Na tym wlasnie polega idea bridge'a.

Tworzymy skrypt startowy

Jesli komputery sie widza, mozemy przystapic do automatyzacji wlaczania i wylaczania bridge'a, czyli do stworzenia malego skryptu. Skrypt ktory napisalem wyglada tak, jak widac ponizej. Umieszczamy go w /etc/init.d/ i nazywamy bridge:

```
#!/sbin/runscript

#NB: Config is in /etc/conf.d/bridge

depend() {

   need localmount

   use logger

}

start() {

   ebegin "Preparing to bring $BRIDGE up"

   lsmod | grep bridge > /dev/null

   if [ $? != 0 ]; then

       ebegin "   Loading bridge module"

       modprobe bridge

       eend ${?}

   fi

   brctl addbr $BRIDGE

   for INT in $INTERFACES

   do

       ifconfig -a | grep $INT > /dev/null

       if [ $? == 0 ]; then

      ebegin "   Bringing $INT up"

      ifconfig $INT 0.0.0.0 up

      eend ${?}

       else

      eerror "   No such interface: $INT (check your /etc/conf.d/bridge)"

       fi

   done

   for INT in $INTERFACES

   do

       ifconfig -a | grep $INT > /dev/null

       if [ $? == 0 ]; then

       ebegin "   Adding interface $INT to bridge $BRIDGE"

       brctl addif $BRIDGE $INT

       eend ${?}

       fi

   done

   ebegin "   Bringing bridge $BRIDGE up"

   ifconfig $BRIDGE $BRIDGE_IP up

   eend ${?}

   eend ${?}

}

stop() {

   ebegin "Bringing bridge $BRIDGE down"

   ifconfig $BRIDGE $BRIDGE_IP down

   #for INT in $INTERFACES

   #do

   #    ebegin "   Deleting interface $INT from bridge $BRIDGE"

   #    brctl delif $BRIDGE $INT

   #    eend ${?}

   #done

   ebegin "   Deleting bridge $BRIDGE"

   brctl delbr $BRIDGE

   eend ${?}

   for INT in $INTERFACES

   do

       ifconfig | grep $INT > /dev/null

       if [ $? == 0 ]; then

       ebegin "   Bringing $INT down"

       ifconfig $INT down

       eend ${?}

       fi

   done

   eend ${?}

} 
```

W /etc/conf.d tworzymy plik konfiguracyjny dla naszego skryptu i nazywamy go oczywiscie bridge. Zawartosc  tego pliku powinna wygladac mniej wiecej tak:

```
INTERFACES="etho eth1"

BRIDGE=br0

BRIDGE_IP=192.168.0.1

```

gdzie INTERFACES to lista wszystkich kart, ktore chcemy polaczyc w jedna siec (rozdzielonych spacjami), BRIDGE to nazwa interfejsu bridge'a, i BRIDGE_IP to jego adres IP.

Teraz juz mozemy sprawdzic, czy skrypt bridge dziala poprawnie:

```
/etc/init.d/bridge start

/etc/init.d/bridge stop
```

Jesli wszystko idzie po naszej mysli to dodajemy bridge do poziomu startowego default, tak aby uruchamial sie automatycznie na starcie:

[code]rc-update add bridge default[/conf]

Slowo na koniec

Mam nadzieje, ze udalo sie wam skonfigurowanie bridge'a i siec dziala jak nalezy. W razie jakichs problemow, pytan czy sugestii odnoscie tego HOW-TO  piszcie koniecznie. Na koniec chcialbym jeszcze powiedziec, ze w nastepnej czesci napisze wreszcie, tak jak obiecywalem we wstepie, jak podlaczyc nasza mala siec do internetu.

Pozdro

Yemu

----------

## Woocash

Ja bym jeszcze dodal po stworzeniu skryptu prawa wykonalne, bo inaczej sie wszystko chrzani.

chmod +x /etc/init.d/bridge 

 :Wink: 

A poza tym to wszystko dziala bez zarzutow.

----------

## OBenY

Dzieki Yemu za HOW-TO, akurat na dzis potrzebowalem takiej wiedzy, bardzo sie przydalo, bo oszczedzilo mi szperania w necie by uzyskac wiedze, ktora Ty przedstawiles w sposob zwiezly i tresciwy  :Smile: 

----------

## voytas

dziś już raczej nieprzydatne, bo skrypt konfiguracji sieci wspiera bridge

odsyłam do konfiguracji sieci w HB

----------

## arturx

Lamerskie pytanko, a jakie wpisy powinienem mieć w pliku /etc/conf.d/net jeśli mam eth0 podłączone pod dhcp . I drugiemu komputerwi udostępniam net poprzez eth1

----------

## Paczesiowa

zainteresuj sie natem/maskarada a nie bridgowaniem... mostki slusza raczej do laczenia roznych lokalnych sieci a nie zeby moc udostepniac neta innym kompom.

----------

