Ethernet
Sisukord
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:
- 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)
- seadistada kas käsitsi või DHCP abil IP aadress ning vaikeruuting
- kui IP aadress ja ROUTER sai seadistatud käsitsi tuleb paika panna ka nimeserverid (resolv.conf)
- 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