Өнөөдөр бид сүлжээний холболтгүй компьютерийн талаар бодох ч аргагүй болсон билээ. Сүлжээний картыг нэмж тохируулах нь FreeBSD-ийн дурын администраторын ердийн ажил болдог.
Эхлэхээсээ өмнө та өөрт байгаа картынхаа загвар, түүнд ашигласан бичил схем болон PCI эсвэл ISA картын аль нь эсэхийг мэдэх шаардлагатай. FreeBSD өргөн төрлийн PCI болон ISA картуудыг дэмждэг. Таны карт таны ашиглах хувилбар дээр дэмжигдсэн эсэхийг Тоног Төхөөрөмжийн Нийцтэй Байдлын Жагсаалтаас шалгаарай.
Таны карт дэмжигдсэнийг мэдсэний дараа та өөрийн картанд тохирох драйвераа
тодорхойлох хэрэгтэй. /usr/src/sys/conf/NOTES
болон
/usr/src/sys/
нь сүлжээний интерфэйс драйверуудын жагсаалтыг дэмжигдсэн бичил схем/картуудын тухай
зарим мэдээллийн хамтаар танд өгөх болно. Хэрэв та аль драйвер нь зөв эсэхэд эргэлзэж
байгаа бол драйверийн гарын авлагын хуудсыг уншаарай. Гарын авлагын хуудас нь
дэмжигдсэн тоног төхөөрөмж болон бүр учирч болзошгүй асуудлуудын тухай дэлгэрэнгүй
мэдээллийг өгдөг.arch
/conf/NOTES
Хэрэв та ердийн карттай бол ихэнхдээ драйверийг хичээнгүйлэн хайх шаардлагагүй юм.
Ердийн сүлжээний картуудад зориулсан драйверууд нь GENERIC
цөмд байдаг, тэгэхээр таны карт ачаалах явцад иймэрхүү харагдах ёстой:
Энэ жишээн дээр систем дээр байгаа хоёр карт dc(4) драйверийг ашиглаж байгааг бид харж байна.
Хэрэв таны NIC-д (Network Interface Card буюу Сүлжээний Интерфэйс Карт)
зориулсан драйвер GENERIC
-д байхгүй бол та өөрийн NIC-г
ашиглахын тулд тохирох драйверийг ачаалах хэрэгтэй. Ингэхийн тулд хоёр аргын аль нэгийг
ашиглана:
Хамгийн амархан арга нь ердөө л өөрийн сүлжээний картанд зориулсан цөмийн модулийг
kldload(8) ашиглан эсвэл тохирох мөрийг /boot/loader.conf
-д
нэмж ачаалах үед автоматаар ачаалах юм. Бүх NIC драйверууд модуль хэлбэрээр байдаггүй;
модулиуд нь байдаггүй төхөөрөмжүүдийн дурдаж болох жишээнүүд гэвэл ISA картууд юм.
Өөр нэг арга нь та өөрийн картын дэмжлэгийг цөмд оруулан статикаар
хөрвүүлж болох юм. Өөрийн цөмийн тохиргооны файлд юу нэмэх ёстойг мэдэхийн тулд
/usr/src/sys/conf/NOTES
,
/usr/src/sys/
болон драйверийн гарын авлагын хуудсыг шалгаарай. Цөмийг дахин хөрвүүлэх талаар
дэлгэрэнгүй мэдээллийг Бүлэг 9, FreeBSD цөмийг тохируулах нь-с үзнэ үү.
Хэрэв таны картыг таны цөм (arch
/conf/NOTESGENERIC
) ачаалах явцад илрүүлсэн бол
та шинэ цөм бүтээх шаардлагагүй.
Харамсалтай нь өөрийн драйверуудад зориулсан схемүүдийг нээлттэй эхийн хүрээнийхэнд өгдөггүй, тийм мэдээллийг худалдааны нууц гэж үздэг олон үйлдвэрлэгчид байсаар байна. Ингэснээр FreeBSD болон өөр үйлдлийн системүүдийн хөгжүүлэгчдэд хоёр сонголт үлдсэн: буцаах инженерчлэлийн хүнд хэцүү, урт хугацааны процессийг туулж драйверуудыг хөгжүүлэх эсвэл Microsoft® Windows® тавцангуудад байдаг хоёртын хэлбэрийн драйверуудыг ашиглах арга замууд юм. FreeBSD-тэй холбогдсон зэрэг ихэнх хөгжүүлэгчид сүүлийн хандлагыг авч ашигладаг.
Билл Полын (wpaul) оруулсан хувь нэмрийн ачаар Сүлжээний Драйверийн Интерфэйсийн Тодорхойлолтын (NDIS) «эх (native)» дэмжлэг ордог болсон. FreeBSD NDISulator (өөрөөр Чөтгөр Төсөл) Windows® хоёртын драйверийг аваад ерөнхийдөө түүнийг Windows® дээр ажиллаж байгаа мэтээр хуурдаг. ndis(4) драйвер нь Windows® хоёртын файл ашиглаж байгаа учраас энэ нь зөвхөн i386™ болон amd64 системүүд дээр ажилладаг. PCI, CardBus, PCMCIA (PC-Card), болон USB төхөөрөмжүүдийг дэмждэг.
NDISulator ашиглахын тулд 3 зүйл хэрэгтэй:
Цөмийн эхүүд
Windows® XP драйверийн хоёртын файл
(.SYS
өргөтгөл)
Windows® XP драйверийн тохиргооны файл
(.INF
өргөтгөл)
Та өөрийн картад зориулсан файлуудыг олоорой. Ерөнхийдөө
тэдгээрийг хавсаргасан CD-үүд эсвэл үйлдвэрлэгчүүдийн вэб хуудаснаас
олж болно. Дараах жишээнүүдэд бид W32DRIVER.SYS
болон W32DRIVER.INF
файлуудыг ашиглах
болно.
Драйверын битийн урт FreeBSD-ийн хувилбарынхтай таарсан байх ёстой. FreeBSD/i386-н хувьд Windows® 32-бит драйвер ашиглана. FreeBSD/amd64-н хувьд Windows® 64-бит драйвер хэрэгтэй.
Дараагийн алхамд драйверийн хоёртын файлыг цөмийн ачаалж болох
модуль болгон хөрвүүлнэ. root
эрхээр ndisgen(8)-г хэрэглэнэ:
#
ndisgen /path/to/W32DRIVER.INF
/path/to/W32DRIVER.SYS
ndisgen(8) хэрэгсэл нь интерактив бөгөөд шаардлагатай нэмэлт мэдээллийг асуудаг. Одоо байгаа санд цөмийн шинэ модуль үүсгэнэ. kldload(8) ашиглан шинэ модулийг ачаална:
#
kldload ./W32DRIVER_SYS.ko
Үүсгэгдсэн цөмийн модулиас гадна та ndis.ko
болон
if_ndis.ko
модулиудыг ачаалах хэрэгтэй. Энэ нь
таныг ndis(4)-ээс хамаарсан дурын модулийг ачаалах үед автоматаар
хийгдэх ёстой. Хэрэв та тэдгээрийг гараар ачаалахыг хүсвэл дараах тушаалыг
ашиглаарай:
#
kldload ndis
#
kldload if_ndis
Эхний тушаал нь NDIS минипорт драйвер дугтуйлагчийг ачаалах бөгөөд хоёр дахь нь яг сүлжээний интерфэйсийг ачаална.
Одоо dmesg(8)-ийг шалгаж ачаалахад алдаа байгаа эсэхийг үзэх хэрэгтэй. Бүгд сайн болж өнгөрсөн бол та дараах үр дүнг харах ёстой:
Эндээс эхлээд та ndis0
төхөөрөмжид
өөр бусад сүлжээний интерфэйсийн (өөрөөр хэлбэл dc0
)
нэгэн адилаар хандах боломжтой болох юм.
Та бусад модулиудтай адилаар NDIS модулиудыг ачаалах явцад ачаалахаар
системийг тохируулж болно. Эхлээд үүсгэгдсэн модуль W32DRIVER_SYS.ko
-г
/boot/modules
уруу хуулах хэрэгтэй.
Тэгээд дараах мөрийг /boot/loader.conf
-д нэмнэ:
Сүлжээний картанд зориулсан зөв драйвер ачаалагдсаны дараа картыг тохируулах шаардлагатай. Бусад олон зүйлсийн адил сүлжээний карт нь sysinstall програмаар суулгах явцад тохируулагдаж болно.
Таны системийн сүлжээний интерфэйсүүдэд зориулсан тохиргоог харуулахын тулд дараах тушаалыг ажиллуулна:
%
ifconfig
dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80008<VLAN_MTU,LINKSTATE>
ether 00:a0:cc:da:da:da
inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
dc1: flags=8802<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80008<VLAN_MTU,LINKSTATE>
ether 00:a0:cc:da:da:db
inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
media: Ethernet 10baseT/UTP
status: no carrier
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=3<RXCSUM,TXCSUM>
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
nd6 options=3<PERFORMNUD,ACCEPT_RTADV>Энэ жишээн дээр дараах төхөөрөмжүүдийг харуулсан:
dc0
: Эхний Ethernet интерфэйс
dc1
: Хоёрдугаар Ethernet интерфэйс
plip0
: Параллел порт интерфэйс (хэрэв
параллел порт машин дээр байгаа бол)
lo0
: Буцаж эргэх төхөөрөмж
FreeBSD нь драйверийн нэр дээр цөмийн ачаалах явцад картууд ямар дарааллаар илрүүлэгдсэн
тэр дарааллын тоог нэмж сүлжээний картыг нэрлэдэг. Жишээ нь sis2
нь систем дээрх sis(4) драйвер ашиглаж байгаа 3 дахь сүлжээний карт байж болох юм.
Энэ жишээн дээр dc0
төхөөрөмж босон ажиллаж байна.
Түлхүүр индикаторууд нь:
UP
нь картын тохиргоо хийгдэж бэлэн болсныг илэрхийлнэ.
Карт нь Интернэт (inet
) хаягтай
(энэ тохиолдолд 192.168.1.3
).
Энэ нь зөв дэд сүлжээний багтай (netmask
;
0xffffff00
нь
255.255.255.0
адил).
Энэ нь зөв нийтэд цацах хаягтай (энэ тохиолдолд
192.168.1.255
).
Картны MAC (ether
) хаяг нь
00:a0:cc:da:da:da
байна.
Физик зөөгчийн сонголт нь автомат сонголтын
горим дээр байна (media: Ethernet autoselect (100baseTX
<full-duplex>)
).
dc1
нь 10baseT/UTP
зөөгчтэй ажиллахаар тохируулагдсан байгааг бид харж болно. Байж болох
зөөгчийн төрлүүдийн тухай дэлгэрэнгүй мэдээллийн талаар өөрийнх нь гарын авлагын
хуудсанд хандаж үзнэ үү.
Холболтын (status
) төлөв нь
active
буюу идэвхтэй байна, өөрөөр хэлбэл
дамжуулагч илэрсэн байна. dc1
-ийн
хувьд бид status: no carrier
буюу дамжуулагч
байхгүйг харж болно. Энэ нь Ethernet кабель картанд залгагдаагүй байх үед
хэвийн байна.
Хэрэв ifconfig(8)-ийн үр дүн дараах маягтай төстэй байвал:
Энэ нь карт тохируулагдаагүйг илэрхийлнэ.
Картаа тохируулахын тулд танд root
зөвшөөрлүүд
хэрэгтэй. Сүлжээний картын тохируулгууд тушаалын мөрөөс ifconfig(8)-р
хийгдэх боломжтой, гэхдээ та системийг дахин ачаалсан болгоныхоо дараа үүнийг хийх хэрэгтэй болно.
/etc/rc.conf
файл нь сүлжээний картын тохиргоог нэмэх
газар юм.
/etc/rc.conf
-ийг өөрийн дуртай засварлагч дээр
нээгээрэй. Систем дээрх сүлжээний карт бүрийн хувьд мөр нэмэх хэрэгтэй, манай
жишээн дээр бид эдгээр мөрүүдийг нэмсэн:
Та dc0
,
dc1
болон бусдуудыг өөрийн картуудад зориулсан
төхөөрөмжөөр өөрчлөх болон хаягуудыг зөвөөр солих хэрэгтэй. Зөвшөөрөгдсөн тохируулгуудын
талаар дэлгэрэнгүйг картын драйвер болон ifconfig(8)-ийн гарын авлагын хуудаснуудаас,
бас rc.conf(5) гарын авлагын хуудаснаас /etc/rc.conf
-ийн
синтаксын тухай дэлгэрэнгүй мэдээллийг унших хэрэгтэй.
Хэрэв та суулгах явцад сүлжээг тохируулсан бол сүлжээний карт(ууд)ын талаар зарим
мөрүүд аль хэдийн байж болох юм. Мөрүүд нэмэхээсээ өмнө /etc/rc.conf
-ийг
дахин шалгаарай.
Мөн та LAN дахь төрөл бүрийн машинуудын нэрүүд болон IP хаягууд
/etc/hosts
файлд байхгүй бол тэдгээрийг нэмж засварлах
шаардлагатай. Дэлгэрэнгүй мэдээллийн талаар hosts(5) болон
/usr/share/examples/etc/hosts
файлд хандана уу.
Хэрэв энэ машинаар Интернэтэд холболт хийхээр төлөвлөсөн бол та гараараа анхдагч гарц болон нэрийн серверийг бас тохируулж өгөх ёстой:
#
echo 'defaultrouter="your_default_router
"' >> /etc/rc.conf
#
echo 'nameserver your_DNS_server
' >> /etc/resolv.conf
/etc/rc.conf
-д хэрэгцээтэй өөрчлөлтүүдийг
хийснийхээ дараа та системээ дахин ачаалах шаардлагатай. Ингэснээр
интерфэйс(үүд)эд хийгдэх өөрчлөлт(үүд)ийг зөвшөөрөх бөгөөд ямар нэг тохиргооны
алдаагүйгээр систем ачаалж байгаа эсэхийг шалгадаг. Мөн өөрөөр та сүлжээний
системээ дахин дуудаж болно:
#
/etc/rc.d/netif restart
Хэрэв анхдагч гарцыг
/etc/rc.conf
файлд зааж өгсөн бол энэ
тушаалыг ашиглана:
#
/etc/rc.d/routing restart
Сүлжээний систем дахин дуудагдсаны дараа та сүлжээний интерфэйсүүдээ тест хийх хэрэгтэй.
Ethernet карт зөв тохируулагдсаныг шалгахдаа та 2 зүйлийг оролдох хэрэгтэй. Эхлээд интерфэйс уруу өөр уруу нь ping хийгээд дараа нь LAN дахь өөр машин уруу ping хийх хэрэгтэй.
Эхлээд локал интерфэйсийг тест хийнэ:
%
ping -c5 192.168.1.3
PING 192.168.1.3 (192.168.1.3): 56 data bytes
64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms
64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms
64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms
64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms
--- 192.168.1.3 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 msОдоо бид LAN дахь өөр машин уруу ping хийх хэрэгтэй:
%
ping -c5 192.168.1.2
PING 192.168.1.2 (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms
64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms
--- 192.168.1.2 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 msХэрэв та
/etc/hosts
файлыг тохируулсан бол
192.168.1.2
-ийн оронд
машины нэрийг бас ашиглаж болох болох юм.
Тоног төхөөрөмж болон програм хангамжийн тохиргоонуудын алдааг олж засварлах нь үргэлж зовлон байдаг бөгөөд зовлонг энгийн зүйлүүдийг эхлээд шалгаснаар багасгах боломжтой. Таны сүлжээний кабель холбогдсон уу? Сүлжээний үйлчилгээнүүдээ зөв тохируулсан уу? Галт ханаа зөв тохируулсан уу? Таны хэрэглэж байгаа картыг FreeBSD дэмждэг үү? Алдааны тайланг явуулахаасаа өмнө тоног төхөөрөмжийн тэмдэглэлийг заавал шалгах хэрэгтэй. Өөрийн FreeBSD-ийн хувилбарыг хамгийн сүүлийн STABLE хувилбар уруу шинэчлээрэй. Захидлын жагсаалтын архивууд шалгах буюу эсвэл Интернетээс хайгаарай.
Хэрэв карт ажилласан мөртлөө ажиллагаа муу бол tuning(7) гарын авлагын хуудсыг унших нь зүйтэй юм. Мөн буруу сүлжээний тохиргоонууд удаан холболтын шалтгаан болдог учир та сүлжээний тохиргоог бас шалгаж болох юм.
Зарим хэрэглэгчид ганц хоёр device timeout мэдээлэлтэй тулгарч болох бөгөөд энэ нь зарим картуудын хувьд хэвийн юм. Хэрэв энэ нь үргэлжлээд эсвэл шаналгаатай болоод эхэлбэл уг төхөөрөмж өөр бусад төхөөрөмжтэй зөрчилдөж байгаа эсэхийг та магадгүй шалгахыг хүсэх байх. Кабелийн холболтуудыг дахин шалгаарай. Магадгүй танд өөр нэг карт хэрэгтэй байж болох юм.
Хэрэглэгчид зарим үед цөөн watchdog timeout гэсэн алдаанууд хардаг. Ийм үед эхлээд хийх юм нь сүлжээний кабелийг шалгана. Олон картууд Bus Mastering дэмждэг PCI оролтыг шаарддаг. Зарим нэг эх хавтангуудад үүнийг зөвхөн нэг PCI оролт зөвшөөрдөг (ихэнхдээ 0-р оролт). Энэ нь асуудал байж болох эсэхийг сүлжээний карт болон эх хавтангийн баримтаас шалгаарай.
Систем пакетийг зорьсон газар нь чиглүүлж чадахгүй тохиолдолд
No route to host мэдээллүүд гардаг.
Энэ нь анхдагч чиглүүлэлт заагаагүй тохиолдолд эсвэл кабель салгагдсан бол
гардаг. netstat -rn
тушаалын үр дүнг
үзээд таны хүрэхийг оролдож байгаа тэр хост уруу чинь зөв чиглүүлэлт байгаа
эсэхийг шалгаарай. Хэрэв байхгүй бол
Бүлэг 32, Сүлжээний нэмэлт ойлголтууд-г уншаарай.
ping: sendto: Permission denied
алдааны мэдээллүүд нь буруу тохируулсан галт ханаас ихэвчлэн болдог.
Хэрэв ipfw
нь цөмд идэвхжсэн бөгөөд
ямар ч дүрэм тодорхойлогдоогүй бол анхдагч бодлого нь бүх трафикийг бүр
ping хүсэлтийг хүртэл татгалзан хаадаг! Дэлгэрэнгүйг Бүлэг 31, Галт хана-с уншина уу.
Заримдаа картын ажиллагаа муу эсвэл дунджаас доогуур байдаг.
Эдгээр тохиолдолд зөөгч сонголтын горимыг
autoselect
горимоос зөв зөөгчийн сонголт
уруу болгож тааруулах нь шилдэг арга юм. Энэ нь ихэнх тоног төхөөрөмжийн
хувьд ихэвчлэн ажиллах боловч хүн болгоны хувьд байгаа ийм асуудлыг шийдэхгүй ч
байж болох юм. Дахин хэлэхэд бүх сүлжээний тохиргоонуудыг шалгаж
tuning(7) гарын авлагын хуудсыг уншаарай.
Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.
FreeBSD-ийн талаар
<questions@FreeBSD.org>
хаягтай холбоо барихаасаа өмнө
баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал
<doc@FreeBSD.org>
хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал
<admin@mnbsd.org>
хаягаар цахим захидал явуулна уу.