Ethernet

Allikas: Kuutõrvaja
Redaktsioon seisuga 30. november 2010, kell 15:03 kasutajalt Jj (arutelu | kaastöö) (Sissejuhatus)
(erin) ←Vanem redaktsioon | Viimane redaktsiooni (erin) | Uuem redaktsioon→ (erin)

Sissejuhatus

Järgnevas kirjeldame kuidas kasutada FreeBSDd etherneti võrgus, so kõige klassikalisemas 10/100/1000 Mb/s TCP/IP võrgus. Selleks peab arvutis leiduma vastav võrgukaart, kas emaplaadile integreeritult või laienduskaardina.

Erinevalt Linuxist kus kõiki võrguseadmeid tähistatakse eth lühendiga kannavad FreeBSD võrguseadmed kolme-nelja sümboli pikkuseid nimesid sõltuvalt seadme tootjast. Näiteks fxp, em, rl jms. Selleks, et korraga saaks arvutil küljes olla mitu inteli (fxp) seadet lisatakse neile ka kõigile number. Esimesele seadmele null, teisele üks jne. Nii näiteks ühendades arvuti külge kaks inteli võrgukaarti ilmuvad nad nähtavale kui fxp0 ja fxp1.

Juhul kui FreeBSD ei tunne võrguseadet kohe vaikimisi ära on tarvilik tuuma seaditamine. Sellest on pikemalt juttu tekstis Tuum_ja_Baas

FreeBSD tulemüüri seadistamise kohta võib lugeda tekstist OpenBSD tulemüür Kuigi nimi ja enamus teksti võib olla ehmatav st OpenBSD rõhutav on siiski 90% kogu süntaksist ja näitekonfiguratsioonidest täielikult rakendatav ka FreeBSD'le kuna OpeBSD packet filter on täielikul kujul portitud sinna ümber ja juba süsteemis kaasas kasutamiseks valmis.

Võrgu seadistamise esimesteks sammudeks oleks:

  1. Tuvastada ifconfig käsuga küljes olevad võrgukaardid (status: active näitab ära kas võrgukaart on ühendatud füüsiliselt ka mingi võrguseadmega)
  2. seadistada kas käsitsi või DHCP abil IP aadress ning vaikeruuting
  3. kui IP aadress ja ROUTER sai seadistatud käsitsi tuleb paika panna ka nimeserverid (resolv.conf)
  4. seadistada IP aadress ja ROUTER rc.conf faili, et see seadistuks peale igat taaskäivitumist automaatselt

IP aadressi ja vaikeruutingu seadistamine

Võrguseadme kasutuselevõtmiseks tuleb seade konfigureerida programmiga Ifconfig. Näiteks omistame võrgukaardile (vr0) IPv4 aadressi 192.168.2.130 ning võrgumaski 255.255.255.224

# ifconfig vx0 192.168.2.130 netmask 255.255.255.224

FreeBSD saab ise aru, et masin kuulub võrku 192.168.2.128 ning leviaadressiks (broadcast) on 192.168.2.159.

Võrguseadme omadusi saab vaadata käsuga ifconfig, kirjutades selle taha seadme nime, näiteks selliselt

# ifconfig vx0
vx0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
       inet 192.168.2.130 netmask 0xffffff00 broadcast 192.168.2.159
       inet6 fe80::2a0:24ff:fe75:436e%vx0 prefixlen 64 scopeid 0x1 
       ether 00:a0:24:75:43:6e 

Konfigureeritud võrguseadet saab seisma panna nii

# ifconfig vx0 down

ning varemkonfigureeritud väärtustega taas käima selliselt

# ifconfig vx0 up

Seadme ümberkonfigureerimiseks näidake programmiga Ifconfig uued parameetrite väärtused talitades sarnaselt ülaltoodule.

Peale võrguseadme konfigureerimist lisatakse ruutingutabelisse ruuting, sellesse võrku, kuhu seade ise kuulub. Eraldi on vaja kirjeldada vaikelüüsi aadress, näiteks 192.168.2.1

# route add -net default 192.168.2.1

Selleks, et konfigureerida võrguseadmed automaatselt peale arvuti käivitamist, peavad süsteemi konfiguratsioonifailis rc.conf olema sarnased read

ifconfig_vx0="inet 192.168.2.130  netmask 255.255.255.224"
defaultrouter ="192.168.2.1"

Ifconfig käsk võimaldab muide muuta ka arvuti MAC aadressi, selleks tuleb anda käsk

ifconfig vr0 link 00:00:00:00:00:00

DHCP

Automaatseks dhcp'ga ip aadressi küsimiseks tuleb anda käsk

dhclient fxp0

Viimane on siis soovitud võrguseadme nimi

ja dhcpd kliendi tööshoidmiseks peale igat rebooti tuleb rc.confi lisada

background_dhclient="YES

või siis kindlam võrguseade ette anda

background_dhclient_fxp0="YES"

Üks võimalus on ka dhclient deemoni startimisest, mis pidevalt võrku kuulab, loobuda ning küsida fxp0 tarvis ip aadress vaid üks kord arvuti käivitumisel. Selleks

ifconfig_fxp0="DHCP"

Nimeserverite seadistus

Selle seadistamine toimub failist resolv.conf täpsemalt /etc/resolv.conf, kuhu tuleb nimeserverid kirjutada üksteise alla kujul nameserver ja nimeserver aadress. Soovitatav oleks kasutada enda teenusepakkuja nimeservereid.

nameserver <ip aadres>
nameserver <ip aadress>

Marsruuting

FreeBSDd saab kasutada marsruuterina. Staatilist tuuma ruutingutabelit saab näha käsuga netstat -rn ning seda redigeerida programmiga Route.

Näiteks kui FreeBSD on seatud marsruuteriks R1 mitme kohaliku võrgu ja Interneti vahel

                      ___
                     |   |  teenusepakkuja ruuter Internetti
                     |___|                           ___ 
                       | 1                          |   | 
                       |                            |___| 3
                       |                              |
      |----|-----------|----- 193.40.10.0/26 ---------|---|
           |
           | 
      xl0 _|_ 2                                   ___      ___
         |R1 |                                   |   | .. |   |
         |___|                                   |___|    |___|
     fxp0  |  65                                   |        |  68
           |                                       |        |
      |----|--|----- 193.40.10.64/26 -----------|--|--------|---|
              |                                 |
        eth0 _|_ 66                         67 _|_ eth0
            |R2 |                             |R3 |
            |___|                             |___|
        eth1  |  129                       193  |  eth1
              |                                 |
      |--|----|---|-- -193.40.10.128/26 --|  |--|---|--------|-- 193.40.10.192/26 --|
         |        |                                 |        |
        _|_      _|_                               _|_      _|_
       |   | .. |   | 130                         |   | .. |   | 194
       |___|    |___|                             |___|    |___|


näeb ruutingutabel välja selline, pange tähele, et siin on näha ka marsruuteri enda ning viimatikülastatud sama võrgu masinate võrguseadmete MAC aadressid

# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags       Refs     Use    Netif Expire

default            193.40.10.1        UGSc        0        0      xl0
127.0.0.1          127.0.0.1          UH          0        0      lo0
193.40.10.64/26    link#1             UC          0        0     fxp0 =>
193.40.10.65       0:d0:b7:aa:e6:48   UHLW        0        4      lo0
193.40.10.66       link#1             UHLW        1        0     fxp0 =>
193.40.10.67       link#1             UHLW        1        0     fxp0 =>
193.40.10.128/26   193.40.10.66       UGSc        0        0     fxp0
193.40.10.192/26   193.40.10.67       UGSc        0        0     fxp0
193.40.10.0/26     link#2             UC          0        0      xl0 =>
193.40.10.1        0:20:af:bf:cc:d8   UHLW        1        2      xl0   1194
193.40.10.2        0:a0:24:ef:ef:ff   UHLW        0       12      lo0 

Gateway näitab, kuidas toimub Destinationisse jõudmine

  • 127.0.0.1 127.0.0.1 ..... lo0 - masina kohalik seade, läbi iseenda
  • 193.40.10.64/26 link#1 .... fxp0 - võrguseadme fxp0 külge ühendatud võrku 193.40.10.64/26 saab läbi link#1'e, so esimese võrgukaardi
  • 193.40.10.65 0:d0:b7:aa:e6:48 ... lo0 - omale saadetakse lo0 seadme kaudu
  • 193.40.10.66 link#1 ... fxp0 - masin 193.40.10.66 on link#1 küljes so FreeBSD esimene võrguseade ja
  • 193.40.10.66 võrguseade on sama kaabli peal.
  • 193.40.10.128/26 193.40.10.66 ... fxp0 - võrku 193.40.10.128/26 suunduvad IP-paketid tuleb saata läbi fxp0 võrguseadme lüüsi 193.40.10.66 kaudu kohale
  • 193.40.10.1 0:20:af:bf:cc:d8 ... xl0 - IP-aadressiga 93.40.0.1 võrguseade on xl0'iga sama kaabli peal ja vastava võrgukaardi MAC aadress on 0:20:af:bf:cc:d8

FreeBSD marsruuteriks konfigureerimiseks käsurealt on vaja anda sellised korraldused:

Lubame pakette edasisuunata

# sysctl -w net.inet.ip.forwarding=1

Seadistame võrguseadmed

# ifconfig lx0 193.40.10.2 netmask 255.255.255.192
# ifconfig fxp0 193.40.10.65 netmask 255.255.255.192

ning seejärel ruutingutabel

# route add -net 193.40.10.128 193.40.10.66 255.255.255.192
# route add -net 193.40.10.192 193.40.10.67 255.255.255.192
# route add -net default 193.40.10.1

route käsu süntaks on selline route käsk -sihtkoha-tüüp sihtkoha-aadress lüüs sihtkoha-võrgumask

kus käsk - add või delete vastavalt kirje lisamiseks või eemaldamiseks -sihtkoha-tüüp - -net või -host vastavalt võrgu või hosti lüüsi näitamiseks sihtkoha-aadress - võrgu või hosti nimi, kustkaudu lüüsi pakette saadetakse lüüs - lüüsi aadress, mida kasutatakse pakettide sihtkohta saatmisel sihtkoha-võrgumask

Võrgumaski võib näidata ka lühikesel kujul võrgu aadressi järel, näiteks need kaks vormi on ekvivalentsed

# route add -net 193.40.10.128 193.40.10.66 255.255.255.192
# route add -net 193.40.10.128/26 193.40.10.66

Ruutingutabeli rea kustutamine toimub samuti käsuga route, näiteks kustutame ruutingu võrku 193.40.13.128/26

# route delete -net 193.40.13.128/26

Võrguseadmete parameetrite muutimiseks tuleb enne vastav marsruuting kustutada ning seejärel võrguseade sobivalt konfigureerida.

Selleks, et süsteemi käivitamisel konfigureeritaks automaatselt võrguseadmed, lüüsid ning et masin toimiks ruuterina, peab leiduma failis /etc/rc.conf näiteks muuseas sellised read

ifconfig_xl0="inet 193.40.10.2  netmask 255.255.255.192"
ifconfig_fxp0="inet 193.40.10.65 netmask 255.255.255.192"
hostname="kalake.zoo.edu.ee"
gateway_enable="YES"
defaultrouter="193.40.10.1"
static_routes="vanaklass uusklass"
route_vanaklass="-net 193.40.10.128/26 193.40.10.66"
route_uusklass="-net 193.40.10.192/26 193.40.10.67"

Pisikesed süsteemid tavaliselt ei kasuta marsruutingu deemonit. Vaikimisi seda ei käivitata, kuid süsteemi konfiguratsioonifailis /etc/rc.conf olev rida

router_enable="YES"

annab korralduse ruutingu deemon süsteemi algkäivitamisel tööle panna. Niisiis, tavaliselt peab selline rida puuduma või näitama väärtuse "NO".

IPv6 võrguseadme seadistamine ning marsruuting

FreeBSD ipv6 autoconfig seadistuse jaoks tuleb rc.conf failis ipv6 tugi sisse lülitada

ipv6_enable="YES"

Soovituslik on seadistada ka ära mis device hakkab ipv6't nõutama.

ipv6_network_interface="fxp0"

Peale rebooti peaks süsteem omama juba ipv6 aadressi

http://internecine.eu/systems/freebsd-ipv6.html

Kui on seadistatud packet filteri tulemüür ning võrgukaardil on nii ipv4 kui 6 aadress siis kui on tehtud reeglid interfacede järgi ning mitte ip vahemike siis luuakse reeglid vaikimisi juba nii ipv4 kui ipv6 jaoks. Vajadusel võib aga lisada ka lisareeglid ipv6 läbipääsuks

Enamuse reeglite kohta peaks olema info

pass in on fxp0 inet proto tcp from any to 192.168.1.1 port = http flags S/SA keep state label "www"
pass in on fxp0  inet6 proto tcp from any to fe80::20f:20ff:fed0:2553 port = http flags S/SA keep state label "www"

Vajadusel saab vaid ipv6 pingi lubada

pass in inet6 proto ipv6-icmp all keep state

või siis kogu liikluse

pass in inet6 all keep state
pass out inet6 all keep state

Selline seadistus lubab igasuguse ipv6 liikluse

Peale neid toiminguid peaksime ifconfig käsuga võrgukaardi juures märkama sarnast rida

inet6 fe80::20f:20ff:fed0:2553%bge0 prefixlen 64 scopeid 0x1

Testimiseks võime kasutada käsku ping6

võrguseadmele IPv6 staatilise aadressi konfigureerimiseks lisage /etc/rc.conf faili IPv4 aadressi juurde alias rida

ifconfig_fxp0="inet 192.168.5.2  netmask 255.255.255.0"
ipv6_ifconfig_fxp0="fec0:0:0:5::2 prefixlen 64"

Või sisestage käsurealt

# ifconfig fxp0 inet6 fec0:0:0:5::2 prefixlen 64 alias

Kustutamiseks sisestage

# ifconfig fxp0 inet6 fec0:0:0:5::2 prefixlen 64 -alias

Vaikelüüsi seadmiseks kirjutage näiteks

# route add -inet6 default fec0:0:0:5::1

Kuna vaikimisi üritab FreeBSD nagu enamik teisigi süsteeme kasutada eelistatult ipv6't on sageli vajalik seda muuta kuna mitmetel serveritel on küll ipv6 dns aadress küll tekitatud kuid hiljem on see serverilt mingilt põhjusel kadunud, et vältida sedamoodi tekkivaid viivitusi tuleks seadistada arvuti eelistama ipv4 ühendusi, seda saab teha järgnevalt

Faili /etc/ip6addrctl.conf kirjuta

# Prefer ipv4
::ffff:0.0.0.0/96       50      0
::1/128         40      1
::/0            30      2
2002::/16       20      3
::/96           10      4

Ja siis käivitame käsu:

# /etc/rc.d/ip6addrctl prefer_ipv4

Mille järel eelistab arvuti ipv4 aadresse.

viimase rea võib kirjutada otse crontabi kujul

@reboot /etc/rc.d/ip6addrctl prefer_ipv4