---
title: Бүлэг 28. PPP болон SLIP
part: хэсэг IV. Сүлжээний Холболт
prev: books/handbook/serialcomms
next: books/handbook/mail
showBookMenu: true
weight: 33
params:
  path: "/books/handbook/ppp-and-slip/"
---

[[ppp-and-slip]]
= PPP болон SLIP
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 28
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/handbook/ppp-and-slip/

ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[[ppp-and-slip-synopsis]]
== Ерөнхий агуулга

FreeBSD нь нэг компьютерийг нөгөөтэй холбох хэд хэдэн аргуудтай байдаг. Dial-up модемоор сүлжээнд эсвэл Интернэтэд холболт хийх юм уу эсвэл бусдыг өөрөөр чинь дамжихыг зөвшөөрөхийн тулд PPP эсвэл SLIP-г хэрэглэхийг шаарддаг. Энэ бүлэг эдгээр модем дээр тулгуурласан холбооны үйлчилгээнүүдийг тохируулах талаар дэлгэрэнгүй тайлбарлах болно.

Энэ бүлгийг уншсаны дараа, та дараах зүйлсийг мэдэх болно:

* Хэрэглэгчийн PPP-г хэрхэн тохируулах талаар.
* Цөмийн PPP-г хэрхэн тохируулах талаар (зөвхөн FreeBSD 7.X-ийн хувьд).
* PPPoE-г (PPP over Ethernet буюу Ethernet дээгүүрх PPP) хэрхэн тохируулах талаар.
* PPPoA-г (PPP over ATM буюу ATM дээгүүрх PPP) хэрхэн тохируулах талаар.
* SLIP клиент болон серверийг хэрхэн тохируулж суулгах талаар (зөвхөн FreeBSD 7.X-ийн хувьд).

Энэ бүлгийг уншихаасаа өмнө та дараах зүйлсийг гүйцэтгэх хэрэгтэй:

* Сүлжээний үндсэн ухагдахуунуудыг мэддэг байх.
* Гадагш залгах (dialup) холболт болон PPP ба/эсвэл SLIP-ийн үндэс болон зорилгыг ойлгосон байх.

Та хэрэглэгчийн PPP болон цөмийн PPP хоёрын хоорондох гол ялгаа нь юу юм бол гэж гайхаж байж магадгүй юм. Хариулт нь хялбархан: хэрэглэгчийн PPP нь ирж байгаа болон гарч байгаа өгөгдлийг цөмийн талбарт биш хэрэглэгчийн талбарт процесс хийдэг. Энэ нь өгөгдлийг цөм болон хэрэглэгчийн талбар хоёрын хооронд хуулдгаараа зардалтай боловч хамаагүй илүү боломжуудаар баялаг PPP шийдлийг зөвшөөрдөг. Хэрэглэгчийн PPP нь гаднах ертөнцтэй холбогдохдоо [.filename]#tun# төхөөрөмжийг ашигладаг бол цөмийн PPP [.filename]#ppp# төхөөрөмжийг ашигладаг.

[NOTE]
====
Энэ бүлэгт хэрэглэгчийн PPP-г pppd (зөвхөн FreeBSD 7.X-ийн хувьд) зэрэг өөр бусад PPP програм хангамжаас ялгах шаардлага гарахгүй тохиолдолд ердөө л ppp гэх болно. Тусгайлан тайлбарлаагүй л бол энэ бүлэгт тайлбарласан бүх тушаалууд нь `root` эрхээр ажиллуулагдах ёстой.
====

[[userppp]]
== Хэрэглэгчийн PPP ашиглах

=== Хэрэглэгчийн PPP

==== Таамаглалууд

Энэ баримт нь таныг дараах шаардлагуудыг хангасан гэж тооцдог:

* PPP ашиглан таны холбогдох Интернэтийн үйлчилгээ үзүүлэгчээс (ISP) өгсөн бүртгэл.
* Модем эсвэл өөр төхөөрөмж таны системд холбогдсон байгаа бөгөөд тэр нь танд өөрийн ISP-тай холбогдохыг зөвшөөрөхөөр зөв тохируулагдсан байгаа.
* Таны ISP-ийн хандах dial-up дугаар(ууд).
* Таны нэвтрэх нэр болон нууц үг. (ердийн UNIX(R) загварын нэвтрэлт болон нууц үгийн хослол юм уу эсвэл PAP эсвэл CHAP нэвтрэлт болон нууц үгийн хослол).
* Нэг буюу хэд хэдэн нэрийн серверүүдийн IP хаяг. Хэвийн үед үүнд зориулан ашиглахаар хоёр IP хаягийг таны ISP танд өгдөг. Хэрэв тэд танд ядаж ганцыг өгөөгүй бол та `enable dns` тушаалыг [.filename]#ppp.conf# файлд ашиглавал ppp нэрийн серверүүдийг танд тохируулж өгөх болно. Энэ боломж нь DNS-тай тохиролцоог дэмждэг таны ISP-ийн PPP шийдлээс хамаарах юм.

Дараах мэдээллийг таны ISP өгсөн байж болох боловч энэ нь заавал шаардлагагүй юм:

* Таны ISP-ийн гарцын IP хаяг. Гарц нь таны холбогдох машин бөгөөд таны _анхдагч чиглүүлэлт_ гэж тохируулагдах болно. Хэрэв танд энэ мэдээлэл байхгүй бол бид нэгийг орлуулж болох бөгөөд таны ISP-ийн PPP сервер биднийг холбогдох үед зөв утгыг хэлж өгөх болно.
+ 
Энэ IP дугаар нь ppp-ээр `HISADDR` гэгдэнэ.
* Таны ашиглах ёстой сүлжээний баг. Хэрэв таны ISP үүнийг өгөөгүй бол та аюулгүйгээр `255.255.255.255` гэж ашиглаж болно.
* Хэрэв таны ISP танд статик IP хаяг болон хостын нэр өгсөн бол та тэдгээрийг оруулж болно. Үгүй бол бид нөгөө талын өгөх тохирох IP хаягийг ердөө л зөвшөөрөх болно.

Хэрэв танд шаардлагатай мэдээллийн аль нь ч байхгүй бол өөрийн ISP уруугаа хандана уу.

[NOTE]
====
Энэ хэсэгт жишээнүүдийн олонхийн үзүүлж байгаа тохиргооны файлуудын агуулгуудад байгаа мөр бүр дугаарлагдсан байгаа болно. Эдгээр дугаарууд нь танилцуулга болон хэлэлцүүлэгт туслах зорилгоор зөвхөн ашиглагддаг бөгөөд яг үнэндээ жинхэнэ файл дээрээ тавигдах ёстой гэсэн үг биш юм. Tab ашиглан зөв догол хийх болон зайн тэмдэгтүүд нь бас чухал юм.
====

==== Автомат PPP тохиргоо

`ppp` болон `pppd` нь (PPP-ийн цөмийн түвшний шийдэл, зөвхөн FreeBSD 7.X-ийн хувьд) [.filename]#/etc/ppp# сан дахь тохиргооны файлуудыг ашигладаг. Хэрэглэгчийн ppp-д зориулсан жишээнүүдийг [.filename]#/usr/shared/examples/ppp/# сангаас олж болно.

`ppp`-г тохируулах нь таны өөрийн шаардлагуудаас хамаарч хэд хэдэн файлуудыг засварлахыг танаас шаарддаг. Тэдгээрт юу оруулах нь таны ISP IP хаягуудыг статикаар өгдөг үү (өөрөөр хэлбэл танд нэг IP хаяг өгөх бөгөөд зөвхөн тэрийг дандаа ашиглана) эсвэл динамикаар (өөрөөр хэлбэл таны IP хаяг таныг ISP-даа холбогдох бүрт өөрчлөгддөг) өгдөг үү гэдгээс зарим талаараа хамаардаг.

[[userppp-staticIP]]
===== PPP болон статик IP хаягууд

Та [.filename]#/etc/ppp/ppp.conf# тохиргооны файлыг засварлах хэрэгтэй. Энэ нь доорх жишээтэй төстэй харагдах ёстой.

[NOTE]
====
`:`-ээр төгссөн мөрүүд эхний баганаас эхэлнэ (мөрийн эхлэл)- бусад бүх мөрүүдэд доор үзүүлсэн шиг зай эсвэл tab-аар догол гаргасан байх ёстой.
====

[.programlisting]
....
1     default:
2       set log Phase Chat LCP IPCP CCP tun command
3       ident user-ppp VERSION (built COMPILATIONDATE)
4       set device /dev/cuau0
5       set speed 115200
6       set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
7                 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
8       set timeout 180
9       enable dns
10
11    provider:
12      set phone "(123) 456 7890"
13      set authname foo
14      set authkey bar
15      set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp"
16      set timeout 300
17      set ifaddr x.x.x.x y.y.y.y 255.255.255.255 0.0.0.0
18      add default HISADDR
....

Мөр 1:::
Анхдагч оруулгыг тэмдэглэдэг. Энэ оруулга дахь тушаалууд нь ppp ажиллах үед автоматаар ажилладаг.

Мөр 2:::
Параметрүүдийг бүртгэл хийхийг идэвхжүүлнэ. Тохиргоо хангалттайгаар ажиллаж байгаа үед бүртгэлийн файлын их хэмжээнээс сэргийлэхийн тулд энэ мөрийг:
+
[.programlisting]
....
set log phase tun
....
+
гэж болгох ёстой.

Мөр 3:::
PPP-д нөгөө талдаа өөрийгөө хэрхэн таниулахыг хэлж өгдөг. PPP нь тохиролцож холбоосыг үүсгэх үедээ ямар нэгэн асуудалтай байгаа эсэхээ таниулсан мэдээллээр нөгөө талаа хангадаг бөгөөд нөгөө талын администратор иймэрхүү асуудлуудыг судалж байгаа үед энэ нь ашигтай байж болох юм.

Мөр 4:::
Модемийн холбогдсон төхөөрөмжийг тодорхойлдог. [.filename]#COM1# нь [.filename]#/dev/cuau0# бөгөөд [.filename]#COM2# нь [.filename]#/dev/cuau1# юм.

Мөр 5:::
Таны холбогдох хурдыг заадаг. Хэрэв 115200 ажиллахгүй бол (ямар ч шинэ модемтой энэ нь болох ёстой) 38400-гаар оролдож үзээрэй.

Мөр 6 & 7:::
Залгах мөр. Хэрэглэгчийн PPP нь man:chat[8] програмын адил хүлээгээд илгээх зарчмыг ашигладаг. Энэ хэлний боломжуудын тухай мэдээллийг гарын авлагын хуудаснаас лавлана уу.
+
Энэ тушаал нь уншигдахад хялбар байх зорилгоор дараагийн мөрөнд үргэлжилж байгааг анзаараарай. Хэрэв мөрийн сүүлийн тэмдэгт `\` байвал [.filename]#ppp.conf# файл дахь ямар ч тушаал ийм байж болох юм.

Мөр 8:::
Энэ холбоосонд зориулж сул зогсох хугацааг тохируулна. 180 секунд нь анхдагч байна, тэгэхээр энэ мөр нь цэвэр гоо сайхны зүйл юм.

Мөр 9:::
Локал танигчийн тохиргоог бататгахын тулд нөгөө талаасаа асуухыг PPP-д хэлнэ. Хэрэв та локал нэрийн серверийг ажиллуулах бол энэ мөрийг тайлбар болгох юм уу эсвэл арилгах ёстой.

Мөр 10:::
Уншихад хялбар байх зорилгоор хоосон мөр байна. PPP нь хоосон мөрүүдийг орхидог.

Мөр 11:::
"provider" гэж нэрлэгдсэн үзүүлэгчид зориулсан оруулгыг тодорхойлдог. Үүнийг өөрийн ISP-ийн нэрээр сольж болох юм. Ингэсний дараа та холболтыг эхлүүлэхийн тулд `load _ISP_` гэж ашиглаж болох юм.

Мөр 12:::
Энэ үзүүлэгчийн хувьд утасны дугаарыг тохируулдаг. Олон утасны дугаарыг тодорхойлох хоёр цэг (`:`) юм уу эсвэл хоолой тэмдэгтийг (`|`) тусгаарлагч болгон ашиглан зааж өгч болно. Хоёр тусгаарлагчийн ялгаа man:ppp[8]-д тайлбарлагдсан байдаг. Дүгнэж хэлэхэд хэрэв та дугааруудыг ээлжлэн ашиглах бол тодорхойлох цэгийг ашиглана. Хэрэв та эхний дугаар уруу эхлээд үргэлж залгахыг хүсэж байгаа бөгөөд зөвхөн эхний дугаар нь амжилтгүй болсон тохиолдолд бусад дугааруудыг ашиглахыг хүсэж байгаа бол хоолой тэмдэгтийг ашиглаарай. Утасны дугааруудыг тэр чигээр нь үзүүлсэн шиг үргэлж хаалтанд хийх хэрэгтэй.
+
Хэрэв та утасны дугаар дээр зай ашиглахаар бол утасны дугаарыг хаалтанд (`"`) хийх ёстой. Ингэхгүй бол энэ нь энгийн боловч баригдашгүй алдаанд хүргэж болох юм.

Мөр 13 & 14:::
Хэрэглэгчийн нэр болон нууц үгийг тодорхойлно. UNIX(R) загварын нэвтрэлт хүлээх мөрийг ашиглан холбогдох үед эдгээр утгууд нь `set login` тушаалаар \U болон \P хувьсагчуудыг ашиглан хийгддэг. PAP эсвэл CHAP ашиглан холбогдож байгаа үед эдгээр утгууд нь нэвтрэлт танилт хийгдэхэд хэрэглэгддэг.

Мөр 15:::
Хэрэв та PAP эсвэл CHAP ашиглаж байгаа бол нэвтрэлт энэ үед байхгүй байх бөгөөд энэ мөр нь тайлбар болгогдох юм уу эсвэл арилгагдсан байх ёстой. Илүү дэлгэрэнгүй мэдээллийг <<userppp-PAPnCHAP,PAP болон CHAP нэвтрэлт танилт>> холбоосоос үзнэ үү.
+
Нэвтрэлтийн мөр нь залгах мөр шиг чалчихтай төсөөтэй зарчимтай байдаг. Энэ жишээн дээр нэвтрэх сесс нь доор дурдсантай адил үйлчилгээний хувьд уг мөр ажиллаж байна:
+
[source,shell]
....
J. Random Provider
login: foo
password: bar
protocol: ppp
....
+
Та энэ скриптийг өөрийн хэрэгцээндээ тааруулан өөрчлөх хэрэгтэй болно. Энэ скриптийг эхний удаа бичиж байхдаа та яриа хүссэнээр үргэлжилж байгаа эсэхийг тодорхойлж чадахаар байхын тулд "chat" буюу чалчих бүртгэлийг идэвхжүүлсэн эсэхээ баталгаажуулах хэрэгтэй.

Мөр 16:::
Анхдагч сул зогсох хугацааг (секундээр) холболтод зориулж тохируулдаг. Энд холболт нь 300 секундын хугацаанд идэвхгүй байвал автоматаар хаагдах болно. Хэрэв та хугацааны хувьд хэзээ ч дуусахгүй байхыг хүсвэл энэ утгыг тэг болгох юм уу эсвэл `-ddial` тушаалын мөрийн тохируулгыг ашиглах хэрэгтэй.

Мөр 17:::
Интерфэйсийн хаягуудыг тохируулна. _x.x.x.x_ мөрийг таны интернэтийн үйлчилгээ үзүүлэгчийн танд хуваарилсан IP хаягаар солих шаардлагатай. _y.y.y.y_ мөрийг таны ISP өөрийн гарцыг (таны холбогдох машин) заасан тэр IP хаягаар солих шаардлагатай. Хэрэв таны ISP гарцын хаягийг танд өгөөгүй бол `10.0.0.2/0` гэж ашиглаарай. Хэрэв та "таасан" хаягийг ашиглах хэрэгтэй бол <<userppp-dynamicIP,PPP болон динамик IP хаягууд>> хэсэгт зориулсан заавруудын дагуу [.filename]#/etc/ppp/ppp.linkup# файлдаа оруулга үүсгэсэн эсэхээ шалгаарай. Хэрэв энэ мөрийг орхивол `ppp` нь `-auto` горимд ажиллаж чадахгүй.

Мөр 18:::
Өөрийн ISP-ийн гарц уруу анхдагч чиглүүлэлтийг нэмнэ. `HISADDR` тусгай үгийг мөр 17 дээр заасан гарцын хаягаар сольдог. Энэ мөр нь 17-р мөрийн дараа байх нь чухал бөгөөд тэгэхгүй бол `HISADDR` нь эхлэн тохируулагдаж амжихгүй байх юм.
+
Хэрэв та ppp-г `-auto` горимд ажиллуулахыг хүсэхгүй бол энэ мөрийг [.filename]#ppp.linkup# файлд шилжүүлэх ёстой.

Та статик IP хаягтай бөгөөд ppp-г `-auto` горимоор ажиллуулж байгаа бол [.filename]#ppp.linkup# файлд оруулга нэмэх шаардлагагүй бөгөөд учир нь таныг холбогдохоос өмнө таны чиглүүлэлтийн хүснэгтийн оруулгууд нь аль хэдийн зөв байх учраас тэр юм. Гэхдээ та холболтын дараа програмуудыг ажиллуулах оруулга үүсгэхийг хүсэж болох юм. Энэ нь sendmail-ийн жишээн дээр сүүлд тайлбарлагдах болно.

Жишээ тохиргооны файлууд нь [.filename]#/usr/shared/examples/ppp/# санд байрлана.

[[userppp-dynamicIP]]
===== PPP болон динамик IP хаягууд

Хэрэв таны үйлчилгээ үзүүлэгч статик IP хаягуудыг олгодоггүй бол локал болон алсын хаягууд дээр тохирдог байхаар `ppp` нь тохируулагдаж болно. IP хаягийг "таах" болон холболтын дараа IP Configuration Protocol (IPCP) буюу IP тохиргооны протокол ашиглан зөвөөр тохируулахыг `ppp`-д зөвшөөрөх замаар үүнийг хийнэ. [.filename]#ppp.conf# тохиргоо нь дараах өөрчлөлтийн хамтаар <<userppp-staticIP,PPP болон статик IP хаягууд>> хэсэгтэй адил байна:

[.programlisting]
....
17      set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 0.0.0.0
....

Дахин хэлэхэд мөрийн дугаарыг битгий оруулаарай, энэ нь зөвхөн лавлагааны зорилгоор байгаа юм. Ядаж нэг хоосон зайгаар догол гаргах шаардлагатай.

Мөр 17:::
`/` тэмдэгтийн дараах дугаар нь ppp-ийн шаардах хаягийн битийн тоо юм. Та өөрийн нөхцөлдөө тохируулан IP дугааруудыг ашиглахыг хүсэж болох юм, гэхдээ дээрх жишээнүүд нь үргэлж ажиллах болно.
+
Сүүлийн нэмэлт өгөгдөл (`0.0.0.0`) нь PPP-д `10.0.0.1`-ийн оронд `0.0.0.0` хаяг ашиглан тохиролцоог эхлүүлэхийг хэлж байгаа бөгөөд зарим нэгэн ISP-уудын хувьд энэ нь шаардлагатай байдаг. Эхний чиглүүлэлтийг `-auto` горимд тохируулахад PPP-д саад болдог учраас `set ifaddr` тушаалд `0.0.0.0`-г эхний нэмэлт өгөгдөл болгон битгий ашиглаарай.

Хэрэв та `-auto` горимд ажиллахгүй байгаа бол [.filename]#/etc/ppp/ppp.linkup# файлд оруулга үүсгэх хэрэгтэй болно. [.filename]#ppp.linkup# нь холболт тогтсоны дараа ашиглагддаг. Энэ үед `ppp` нь интерфэйсийн хаягуудыг олгосон байх бөгөөд одоо чиглүүлэлтийн хүснэгтийн оруулгуудыг нэмэх боломжтой болсон байх болно:

[.programlisting]
....
1     provider:
2      add default HISADDR
....

Мөр 1:::
Холболт тогтоохдоо `ppp` нь дараах дүрмүүдийн дагуу [.filename]#ppp.linkup# файлд оруулгыг хайх болно: Эхлээд бидний [.filename]#ppp.conf# файлд ашигласантай адил хаяг/шошготой таарахыг оролдоно. Хэрэв амжилтгүй болвол бидний гарцын IP хаягийн оруулгыг хайна. Энэ оруулга нь дөрвөн ширхэг найман битээс тогтох IP загварын хаяг/шошго юм. Хэрэв бид тэгсэн ч гэсэн оруулга олоогүй байгаа бол `MYADDR` оруулгыг хайна.

Мөр 2:::
Энэ мөр нь `HISADDR` уруу заасан анхдагч чиглүүлэлт нэмэхийг `ppp`-д хэлж байна. `HISADDR` нь IPCP-ээр тохиролцсоны дагуу гарцын IP хаягаар солигдох болно.

Нарийвчилсан жишээний хувьд [.filename]#/usr/shared/examples/ppp/ppp.conf.sample# болон [.filename]#/usr/shared/examples/ppp/ppp.linkup.sample# файлууд дахь `pmdemand` оруулгыг харна уу.

===== Ирж байгаа дуудлагуудыг хүлээн авах

LAN-д холбогдсон машин дээр ирж байгаа дуудлагуудыг хүлээн авахаар болгож ppp-г тохируулахдаа LAN уруу пакетуудыг дамжуулахыг хүсэж байгаа эсэхээсээ хамаарч үүнийг шийдэх ёстой. Хэрэв та ингэхийг хүсэж байгаа бол өөрийн LAN-ий дэд сүлжээнээс IP хаягийг нөгөө талдаа хуваарилж өгөх хэрэгтэй бөгөөд өөрийн [.filename]#/etc/ppp/ppp.conf# файлд `enable proxy` тушаалыг ашиглах хэрэгтэй. [.filename]#/etc/rc.conf# файл доор дурдсаныг агуулж байгаа эсэхийг бас баталгаажуулах хэрэгтэй:

[.programlisting]
....
gateway_enable="YES"
....

===== Аль getty?

man:getty[8] ашиглан dial-up буюу гадагш залгах үйлчилгээнүүдийг идэвхжүүлэх тухай сайн тайлбарыг crossref:serialcomms[dialup,Dial-up буюу гадагш залгах үйлчилгээнүүдэд зориулж FreeBSD-г тохируулах] хэсэг өгдөг.

`getty`-тэй төстэй програм нь dial-up шугамуудыг бодолцож хийсэн `getty`-ийн илүү ухаалаг хувилбар болох http://mgetty.greenie.net/[mgetty] ( package:comms/mgetty+sendfax[] порт) юм.

`mgetty`-г ашиглахын давуу тал нь тэрээр модемуудтай идэвхтэйгээр _ярилцдаг_ явдал бөгөөд энэ нь юу гэсэн үг вэ гэхээр хэрэв таны порт хаагдсан бол модем чинь утсанд хариулахгүй гэсэн үг юм.

`mgetty`-ийн сүүлийн хувилбарууд нь (0.99beta-аас эхлэн) таны клиентүүдэд скриптгүйгээр таны серверт хандах хандалтыг зөвшөөрч PPP урсгалуудын автомат илрүүлэлтийг бас дэмждэг.

`mgetty`-ийн тухай дэлгэрэнгүй мэдээллийг <<userppp-mgetty,Mgetty ба AutoPPP>> хаягаас лавлана уу.

===== PPP зөвшөөрлүүд

`ppp` тушаалыг `root` хэрэглэгчээр хэвийн үед ажиллуулах ёстой. Гэхдээ хэрэв та `ppp`-г доор тайлбарласны адилаар энгийн хэрэглэгчээр серверийн горимд ажиллуулах боломжтой болгохыг хүсэж байгаа бол хэрэглэгчийг `ppp` ажиллуулах зөвшөөрөлтэй болгож тэдгээрийг [.filename]#/etc/group# файлд `network` бүлэгт нэмэх ёстой.

Та `allow` тушаалыг ашиглан тохиргооны файлын нэг буюу хэд хэдэн хэсгүүдэд хандах боломжийг бас өгөх шаардлагатай болно:

[.programlisting]
....
allow users fred mary
....

Хэрэв энэ тушаал нь `default` хэсэгт хэрэглэгдсэн бол заасан хэрэглэгчдэд бүх зүйл уруу хандах боломжийг олгоно.

===== Динамик IP-тай хэрэглэгчдэд зориулсан PPP бүрхүүлүүд

доор дурдсаныг агуулсан [.filename]#/etc/ppp/ppp-shell# гэгдэх файлыг үүсгэнэ:

[.programlisting]
....
#!/bin/sh
IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
CALLEDAS="$IDENT"
TTY=`tty`

if [ x$IDENT = xdialup ]; then
        IDENT=`basename $TTY`
fi

echo "PPP for $CALLEDAS on $TTY"
echo "Starting PPP for $IDENT"

exec /usr/sbin/ppp -direct $IDENT
....

Энэ скрипт нь ажиллахаар болсон байх ёстой. Одоо энэ скрипт уруу [.filename]#ppp-dialup# гэгдсэн симболын холбоосыг дараах тушаалуудыг ашиглан үүсгэх хэрэгтэй:

[source,shell]
....
# ln -s ppp-shell /etc/ppp/ppp-dialup
....

Та энэ скриптийг өөрийн бүх dialup хэрэглэгчдийн хувьд _бүрхүүл_ маягаар ашиглах ёстой. Энэ нь `pchilds` гэсэн хэрэглэгчийн нэртэй dialup PPP хэрэглэгчид зориулсан [.filename]#/etc/passwd# файлд байгаа жишээ юм (нууц үгийн файлыг шууд битгий засаарай, man:vipw[8]-г ашиглаарай).

[.programlisting]
....
pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup
....

Дараах 0 байт файлуудыг агуулсан бүгд бичих боломжтой [.filename]#/home/ppp# санг үүсгэнэ:

[source,shell]
....
-r--r--r--   1 root     wheel           0 May 27 02:23 .hushlogin
-r--r--r--   1 root     wheel           0 May 27 02:22 .rhosts
....

Энэ нь [.filename]#/etc/motd# файлыг үзүүлэхээс сэргийлдэг.

===== Статик IP-тай хэрэглэгчдэд зориулсан PPP бүрхүүлүүд

Дээр дурдсаны адил [.filename]#ppp-shell# файл үүсгээд статикаар өгөгдсөн IP-тай бүртгэл бүрийн хувьд [.filename]#ppp-shell# уруу симболын холбоос үүсгэнэ.

Жишээ нь хэрэв та `fred`, `sam`, болон `mary` гэсэн гурван dialup хэрэглэгчтэй бөгөөд тэдгээрт зориулж /24 CIDR сүлжээнүүдийг чиглүүлж байгаа бол дараах тушаалыг ажиллуулж болох юм:

[source,shell]
....
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary
....

Эдгээр хэрэглэгчдийн dialup бүртгэл бүр өөрсдийн бүрхүүлийг дээр үүсгэсэн симболын холбоос уруу заасан байх ёстой (жишээ нь `mary`-ийн бүрхүүл [.filename]#/etc/ppp/ppp-mary# байх ёстой).

===== Динамик IP-тай хэрэглэгчдэд зориулж [.filename]#ppp.conf#-г тохируулах

[.filename]#/etc/ppp/ppp.conf# файл доор дурдсантай төстэй мөрүүдээс тогтох ёстой:

[.programlisting]
....
default:
  set debug phase lcp chat
  set timeout 0

ttyu0:
  set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
  enable proxy

ttyu1:
  set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
  enable proxy
....

[NOTE]
====
Догол үүсгэх нь чухал юм.
====

`default:` хэсэг нь хэсэг бүрийн хувьд дуудагддаг. [.filename]#/etc/ttys# файлд идэвхжүүлсэн dialup мөр бүрийн хувьд дээрх `ttyu0:`-д зориулсантай төстэй оруулга үүсгэнэ. Динамик хэрэглэгчдэд зориулсан IP хаягийн цөөрмөөс мөр болгон өөр өөр IP хаяг авах ёстой.

===== Статик IP-тай хэрэглэгчдэд зориулж [.filename]#ppp.conf#-г тохируулах

Дээрх жишээ [.filename]#/usr/shared/examples/ppp/ppp.conf# файлын агуулгатай цуг статикаар өгөгдсөн dialup хэрэглэгч бүрийн хувьд зохих хэсэг нэмэх шаардлагатай. Бид өөрсдийн `fred`, `sam`, болон `mary` хэрэглэгчидтэй жишээгээ үргэлжлүүлэх болно.

[.programlisting]
....
fred:
  set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255

sam:
  set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255

mary:
  set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255
....

[.filename]#/etc/ppp/ppp.linkup# файл хэрэв шаардлагатай бол статик IP-тай хэрэглэгч бүрийн хувьд чиглүүлэлтийн мэдээллийг бас агуулсан байх ёстой. Доорх мөр нь клиентийн ppp холбоосоор `203.14.101.0/24` сүлжээнд зориулж чиглүүлэлт нэмэх болно.

[.programlisting]
....
fred:
  add 203.14.101.0 netmask 255.255.255.0 HISADDR

sam:
  add 203.14.102.0 netmask 255.255.255.0 HISADDR

mary:
  add 203.14.103.0 netmask 255.255.255.0 HISADDR
....

[[userppp-mgetty]]
===== `mgetty` болон AutoPPP

Анхдагчаар package:comms/mgetty+sendfax[] порт `AUTO_PPP` тохируулга идэвхжүүлсэн байдлаар ирдэг нь `mgetty`-д PPP холболтуудын LCP шатыг илрүүлж автоматаар ppp бүрхүүл ажиллуулах боломжийг олгодог. Гэхдээ анхдагч нэвтрэлт/нууц үгийн дараалал болдоггүй болохоор PAP аль эсвэл CHAP ашиглан хэрэглэгчдийн нэвтрэлтийг таних шаардлагатай юм.

Энэ хэсэг нь хэрэглэгч package:comms/mgetty+sendfax[] портыг амжилттайгаар эмхэтгэж өөрийн систем дээрээ суулгасан гэж үздэг.

Таны [.filename]#/usr/local/etc/mgetty+sendfax/login.config# файл доор дурдсаныг агуулсан эсэхийг шалгаарай:

[.programlisting]
....
/AutoPPP/ -     -		      /etc/ppp/ppp-pap-dialup
....

Энэ нь илрүүлсэн PPP холболтууддаа [.filename]#ppp-pap-dialup# скриптийг ажиллуулахыг `mgetty`-д хэлнэ.

доор дурдсаныг агуулсан [.filename]#/etc/ppp/ppp-pap-dialup# файлыг үүсгэнэ (файл ажиллах боломжтой байх ёстой):

[.programlisting]
....
#!/bin/sh
exec /usr/sbin/ppp -direct pap$IDENT
....

[.filename]#/etc/ttys#-д идэвхжүүлсэн dialup мөр бүрийн хувьд тохирох оруулгыг [.filename]#/etc/ppp/ppp.conf# файлд үүсгэнэ. Энэ нь бидний үүсгэсэн тодорхойлолтуудтай аз жаргалтайгаар цуг байх болно.

[.programlisting]
....
pap:
  enable pap
  set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
  enable proxy
....

Энэ аргаар нэвтэрч байгаа хэрэглэгч бүр [.filename]#/etc/ppp/ppp.secret# файлд хэрэглэгчийн нэр/нууц үгтэй байх шаардлагатай, эсвэл өөр нэг арга нь [.filename]#/etc/passwd# файлаас хэрэглэгчдийг PAP-аар таньж нэвтрүүлэхийн тулд дараах тохируулгыг хийх явдал юм.

[.programlisting]
....
enable passwdauth
....

Хэрэв та зарим хэрэглэгчдэд статик IP хаяг өгөхийг хүсвэл та хаягийг [.filename]#/etc/ppp/ppp.secret# файлд гурав дахь нэмэлт өгөгдөл болгон зааж өгч болно. Жишээнүүдийг [.filename]#/usr/shared/examples/ppp/ppp.secret.sample#-с үзнэ үү.

===== MS өргөтгөлүүд

DNS болон NetBIOS нэрийн серверийн хаягуудыг шаардлагын дагуу хангахаар PPP-г тохируулах боломжтой байдаг.

PPP хувилбар 1.x дээр эдгээр өргөтгөлүүдийг идэвхжүүлэхийн тулд дараах мөрүүдийг [.filename]#/etc/ppp/ppp.conf# файлын тохирох хэсэгт нэмэх ёстой.

[.programlisting]
....
enable msext
set ns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5
....

PPP хувилбар 2 болон түүнээс хойно гарсан хувилбарын хувьд:

[.programlisting]
....
accept dns
set dns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5
....

Энэ нь анхдагч болон хоёрдох нэрийн серверийн хаягууд болон NetBIOS нэрийн серверийн хостыг клиентүүдэд хэлнэ.

Хувилбар 2 болон түүнээс дээшхид `set dns` мөрийг орхигдуулсан бол PPP нь [.filename]#/etc/resolv.conf# файлд байгаа утгуудыг ашиглах болно.

[[userppp-PAPnCHAP]]
===== PAP болон CHAP нэвтрэлт шалгалт

Таны холболтын нэвтрэлт танилтын хэсгийг PAP юм уу эсвэл CHAP нэвтрэлт танилтын аргуудыг ашиглан хийдэг байхаар зарим ISP-ууд өөрсдийн системийг тохируулдаг. Хэрэв ийм бол таны ISP нь `login:` хүлээх мөрийг таныг холбогдох үед харуулдаггүй бөгөөд PPP нэн даруй ярьж эхлэх болно.

PAP нь CHAP-аас аюулгүй байдлын хувьд дутуу байдаг бөгөөд нууц үг нь PAP-аар цэвэр текст маягаар илгээгддэг боловч цуваа шугамаар зөвхөн дамжуулагддаг болохоор аюулгүй байдал нь нууц үгүүдэд байдаг асуудал шиг биш байдаг. Эвдлэгчдэд зориулсан "сэм чагнах" зай бараг байдаггүй гэсэн үг юм.

<<userppp-staticIP,PPP болон статик IP хаягууд>> эсвэл <<userppp-dynamicIP,PPP болон динамик IP хаягууд>> хэсгүүдийн хувьд дараах өөрчлөлтүүдийг хийх ёстой:

[.programlisting]
....
13      set authname MyUserName
14      set authkey MyPassword
15      set login
....

Мөр 13:::
Энэ мөр нь таны PAP/CHAP хэрэглэгчийн нэрийг заана. Та _MyUserName_-д зөв утгыг оруулах хэрэгтэй болно.

Мөр 14:::
Энэ мөр нь таны PAP/CHAP нууц үгийг заана. Та _MyPassword_-д зөв утгыг оруулах хэрэгтэй болно. Та дараах шиг нэмэлт мөр нэмэхийг хүсэх юм уу:
+
[.programlisting]
....
16      accept PAP
....
+
эсвэл
+
[.programlisting]
....
16      accept CHAP
....
+
гэж болно. Ингэснээр үүнийг зориуд тодорхой болгох юм, гэхдээ PAP болон CHAP-ийг хоюуланг анхдагчаар хүлээн авдаг.

Мөр 15:::
Хэрэв та PAP эсвэл CHAP ашиглаж байгаа бол таны ISP хэвийн үед сервер уруу нэвтрэн орохыг шаарддаггүй. Тийм болохоор та өөрийн "set login" мөрийг хаах ёстой.

===== Өөрийн `ppp` тохиргоог явцын дунд шууд өөрчлөх нь

`ppp`-г ар талд далд ажиллаж байхад түүнтэй зөвхөн тохирох оношлогооны порт тохируулагдсан тохиолдолд харилцаж болдог. Үүнийг хийхийн тулд өөрийн тохиргоондоо дараах мөрийг нэмнэ:

[.programlisting]
....
set server /var/run/ppp-tun%d DiagnosticPassword 0177
....

Энэ нь клиентүүдийн хандалтыг зөвшөөрөхийн өмнө тэднээс нууц үгийг асууж заасан UNIX(R) домэйн сокет дээр сонсохыг PPP-д хэлнэ. Нэрэн дэх `%d` нь ашиглагдаж байгаа [.filename]#tun# төхөөрөмжийн дугаараар солигдоно.

Сокет тохируулагдсаны дараа man:pppctl[8] програм нь ажиллаж байгаа програмыг удирдахыг хүсэж байгаа скриптүүдэд ашиглагдаж болно.

[[userppp-nat]]
==== PPP-ийн Network Address Translation буюу Сүлжээний Хаягийн Хөрвүүлэлт боломжийг ашиглах нь

PPP нь цөмийн divert буюу өөрчлөн дамжуулах боломжуудыг ашиглалгүйгээр дотоод NAT-ийг ашиглах чадвартай байдаг. [.filename]#/etc/ppp/ppp.conf# файл дахь дараах мөрөөр энэ боломжийг идэвхжүүлж болно:

[.programlisting]
....
nat enable yes
....

Өөрөөр, PPP NAT-ийг тушаалын мөрийн `-nat` тохируулгаар идэвхжүүлж болох юм. Мөн [.filename]#/etc/rc.conf# файлын хувьсагч `ppp_nat` гэж байх бөгөөд энэ нь анхдагчаар идэвхжүүлэгдсэн байна.

Хэрэв та энэ боломжийг ашиглаж байгаа бол ирж байгаа холболтуудын цааш дамжуулалтыг идэвхжүүлэх дараах [.filename]#/etc/ppp/ppp.conf# файлын тохируулгуудын ашигтайг харж болох юм:

[.programlisting]
....
nat port tcp 10.0.0.2:ftp ftp
nat port tcp 10.0.0.2:http http
....

эсвэл гадна талд ерөөсөө битгий итгээрэй

[.programlisting]
....
nat deny_incoming yes
....

[[userppp-final]]
==== Системийн сүүлийн тохиргоо

Та одоо `ppp`-г тохируулчихлаа, гэхдээ яг ажиллахад бэлэн болохын өмнө хийх цөөн хэдэн зүйлс бий. Тэдгээр нь бүгд [.filename]#/etc/rc.conf# файлыг засварлуулах болно.

Энэ файлтай дээрээс доош ажиллахдаа `hostname=` мөр тохируулагдсан эсэхийг шалгаарай, өөрөөр хэлбэл:

[.programlisting]
....
hostname="foo.example.com"
....

Хэрэв таны ISP танд статик IP хаяг болон нэр өгсөн бол та энэ нэрийг хостын нэрэндээ ашиглах нь магадгүй зүйтэй юм.

`network_interfaces` хувьсагчийг хайгаарай. Хэрэв та өөрийн системийг ISP уруугаа шаардлага хүсэлтээр залгахаар тохируулахыг хүсвэл [.filename]#tun0# төхөөрөмжийг жагсаалтад нэмсэн эсэхээ баталгаажуулаарай, хэрэв тэгж хүсээгүй бол түүнийг устгаарай.

[.programlisting]
....
network_interfaces="lo0 tun0"
ifconfig_tun0=
....

[NOTE]
====
`ifconfig_tun0` хувьсагч хоосон байх ёстой бөгөөд [.filename]#/etc/start_if.tun0# гэж нэрлэгдсэн файлыг үүсгэх ёстой. Энэ файл нь дараах мөрийг агуулсан байх ёстой:

[.programlisting]
....
ppp -auto mysystem
....

Энэ скрипт нь сүлжээ тохируулах үед таны ppp дэмонг автомат горимд эхлүүлэн ажилладаг. Хэрэв та энэ машин гарц болж байгаа LAN-тай бол `-alias` сонголтыг ашиглахыг хүсэж болох юм. Илүү дэлгэрэнгүй мэдээллийг гарын авлагын хуудаснаас лавлана уу.
====

Таны [.filename]#/etc/rc.conf# файлд чиглүүлэлтийн програм `NO` гэж дараах мөрөөр хийгдсэн эсэхийг шалгаарай:

[.programlisting]
....
router_enable="NO"
....

`routed` дэмон нь эхлэхгүй байх нь чухал юм. Учир нь `routed` нь `ppp`-ийн үүсгэсэн анхдагч чиглүүлэлтийн хүснэгтийн оруулгуудыг устгадаг юм.

`sendmail_flags` мөр `-q` тохируулгыг агуулаагүй эсэхийг шалгах нь магадгүй зүйтэй юм. Тэгэхгүй бол `sendmail` нь таны машиныг гадагш залгуулан үргэлж сүлжээний хайлт хийхийг оролдох болно. Та доор дурдсаныг тохируулж болох юм:

[.programlisting]
....
sendmail_flags="-bd"
....

Үүний сул тал нь ppp холбоос тогтсон үед та доор дурдсаныг бичиж `sendmail`-ээр захидлын дарааллыг дахин шалгуулж байх явдал юм:

[source,shell]
....
# /usr/sbin/sendmail -q
....

Та үүнийг хийхийн тулд [.filename]#ppp.linkup# файлд `!bg` тушаалыг ашиглахыг хүсэж болох юм:

[.programlisting]
....
1     provider:
2       delete ALL
3       add 0 0 HISADDR
4       !bg sendmail -bd -q30m
....

Хэрэв танд энэ таалагдахгүй байгаа бол SMTP урсгалыг хаахын тулд "dfilter"-г тохируулах боломжтой байдаг. Илүү дэлгэрэнгүй мэдээллийг жишээ файлуудаас лавлана уу.

Одоо машиныг дахин ачаалах л үлдлээ. Дахин ачаалсны дараа та доор дурдсаныг бичиж:

[source,shell]
....
# ppp
....

дараа нь PPP сессийг эхлүүлэхийн тулд `dial provider` тушаалыг ажиллуулах юм уу эсвэл гадагшаа урсгал байгаа (бөгөөд та [.filename]#start_if.tun0# скрипт үүсгээгүй) бол сессүүдийг автоматаар тогтоодгоор `ppp`-г байлгахыг хүсэж байгаа бол доор дурдсаныг бичээрэй:

[source,shell]
....
# ppp -auto provider
....

==== Дүгнэлт

Дүгнэхэд ppp-г эхний удаа тохируулахад дараах алхмууд шаардлагатай:

Клиент тал:

[.procedure]
====
. Таны цөмд [.filename]#tun# төхөөрөмж бүтээгдсэн эсэхийг шалгана.
. [.filename]#/dev# санд [.filename]#tunN# төхөөрөмжийн файл байгаа эсэхийг шалгана.
. [.filename]#/etc/ppp/ppp.conf# файлд оруулга үүсгэнэ. [.filename]#pmdemand# жишээ нь ихэнх ISP-уудын хувьд хангалттай байх ёстой.
. Хэрэв та динамик IP хаягтай бол [.filename]#/etc/ppp/ppp.linkup# файлд оруулга үүсгээрэй.
. Өөрийн [.filename]#/etc/rc.conf# файлыг шинэчилнэ.
. Хэрэв танд хэрэгцээгээр залгах шаардлага байгаа бол [.filename]#start_if.tun0# скрипт үүсгээрэй.
====

Сервер тал:

[.procedure]
====
. Таны цөмд [.filename]#tun# төхөөрөмж бүтээгдсэн эсэхийг шалгана.
. [.filename]#/dev# санд [.filename]#tunN# төхөөрөмжийн файл байгаа эсэхийг шалгана.
. [.filename]#/etc/passwd# файлд (man:vipw[8] програмыг ашиглан) оруулга үүсгэнэ.
. Энэ хэрэглэгчдийн гэрийн санд `ppp -direct direct-server` юм уу эсвэл үүнтэй адилыг ажиллуулах хувийн тохиргоог (profile) үүсгэнэ.
. [.filename]#/etc/ppp/ppp.conf# файлд оруулга үүсгэнэ. [.filename]#direct-server# жишээ хангалттай байх ёстой.
. [.filename]#/etc/ppp/ppp.linkup# файлд оруулга үүсгэнэ.
. Өөрийн [.filename]#/etc/rc.conf# файлыг шинэчилнэ.
====

[[ppp]]
== Цөмийн PPP-г ашиглах

[WARNING]
====

Энэ хэсэг нь зөвхөн FreeBSD 7.X хувилбаруудад зориулагдсан.
====

=== Цөмийн PPP тохируулах

Та өөрийн машин дээр PPP-г тохируулж эхлэхээсээ өмнө `pppd` нь [.filename]#/usr/sbin# санд байгаа болон [.filename]#/etc/ppp# сан байгаа эсэхийг шалгаарай.

`pppd` нь хоёр горимд ажиллах чаддаг:

. "Клиент" маягаар - та өөрийн машиныг гаднах ертөнц уруу PPP цуваа холболтоор эсвэл модемийн шугамаар холбохыг хүсдэг.
. "Сервер" маягаар - Таны машин сүлжээн дээр байгаа бөгөөд бусад компьютеруудыг PPP ашиглан холбоход хэрэглэгдэнэ.

Аль ч тохиолдол байлаа гэсэн та тохируулгуудын файлыг ([.filename]#/etc/ppp/options# эсвэл хэрэв та PPP ашиглаж байгаа өөрийн машин дээрээ нэгээс илүү олон хэрэглэгчидтэй бол [.filename]#~/.ppprc#) тохируулах хэрэгтэй болно.

Та залгаж алсын хосттой холболт тогтоохын тулд танд бас зарим модем/цуваа програм хангамж (package:comms/kermit[]-г аль болох эрхэмлэх) хэрэгтэй болно.

=== `pppd`-г клиент маягаар ашиглах

Дараах [.filename]#/etc/ppp/options# файл нь Cisco терминал серверийн PPP шугам уруу холбогдоход хэрэглэгдэж болох юм.

[.programlisting]
....
crtscts         # enable hardware flow control
modem           # modem control line
noipdefault     # remote PPP server must supply your IP address
                # if the remote host does not send your IP during IPCP
                # negotiation, remove this option
passive         # wait for LCP packets
domain ppp.foo.com      # put your domain name here

:remote_ip    # put the IP of remote PPP host here
                # it will be used to route packets via PPP link
                # if you didn't specified the noipdefault option
                # change this line to local_ip:remote_ip

defaultroute    # put this if you want that PPP server will be your
                # default router
....

Холбогдохын тулд:

[.procedure]
====

. Алсын хост уруу Kermit (эсвэл өөр бусад модемийн програм) ашиглан залгаж өөрийн хэрэглэгчийн нэр болон нууц үгийг (эсвэл алсын хост дээр PPP-г идэвхжүүлэхэд шаардлагатай тэр зүйлийг) оруулна.
. Kermit-с гарна (шугамыг таслалгүйгээр).
. Доор дурдсаныг оруулна:
+
[source,shell]
....
# /usr/sbin/pppd /dev/tty01 19200
....
+ 
Тохирох хурд болон төхөөрөмжийн нэрийг ашиглахаа мартуузай.
====

Одоо таны компьютер PPP-тэй холбогдлоо. Хэрэв холболт амжилтгүй болбол та [.filename]#/etc/ppp/options# файлд `debug` тохируулгыг нэмж асуудлыг олохын тулд консолын мэдэгдлүүдийг шалгана.

Дараах [.filename]#/etc/ppp/pppup# скрипт нь бүх 3 алхмыг автомат болгоно:

[.programlisting]
....
#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
        echo 'killing pppd, PID=' ${pid}
        kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
        echo 'killing kermit, PID=' ${pid}
        kill -9 ${pid}
fi

ifconfig ppp0 down
ifconfig ppp0 delete

kermit -y /etc/ppp/kermit.dial
pppd /dev/tty01 19200
....

[.filename]#/etc/ppp/kermit.dial# нь Kermit скрипт бөгөөд гадагш залгаж бүх шаардлагатай нэвтрэлт таниулалтыг алсын хост дээр хийдэг (энэ баримтын төгсгөлд ийм скриптийн жишээ хавсаргагдсан болно).

Дараах [.filename]#/etc/ppp/pppdown# скриптийг ашиглаж PPP шугамыг салгаж болно:

[.programlisting]
....
#!/bin/sh
pid=`pgrep pppd`
if [ X${pid} != "X" ] ; then
        echo 'killing pppd, PID=' ${pid}
        kill -TERM ${pid}
fi

pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
        echo 'killing kermit, PID=' ${pid}
        kill -9 ${pid}
fi

/sbin/ifconfig ppp0 down
/sbin/ifconfig ppp0 delete
kermit -y /etc/ppp/kermit.hup
/etc/ppp/ppptest
....

`pppd` ажиллаж байгаа эсэхийг шалгахын тулд [.filename]#/usr/etc/ppp/ppptest#-г ажиллуулна. Энэ нь иймэрхүү харагдах ёстой:

[.programlisting]
....
#!/bin/sh
pid=`pgrep pppd`
if [ X${pid} != "X" ] ; then
        echo 'pppd running: PID=' ${pid-NONE}
else
        echo 'No pppd running.'
fi
set -x
netstat -n -I ppp0
ifconfig ppp0
....

Модемийг салгаж буцааж залгахын тулд [.filename]#/etc/ppp/kermit.hup#-г ажиллуулна. Энэ нь доор дурдсаныг агуулах ёстой:

[.programlisting]
....
set line /dev/tty01	; put your modem device here
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none

pau 1
out +++
inp 5 OK
out ATH0\13
echo \13
exit
....

Энд `kermit` тушаалын оронд `chat` тушаал хэрэглэх өөр арга байна:

Дараах хоёр мөр нь `pppd` холболтыг хийхэд хангалттай байдаг.

[.filename]#/etc/ppp/options#:

[.programlisting]
....
/dev/cuad1 115200

crtscts		# enable hardware flow control
modem		# modem control line
connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
noipdefault	# remote PPP serve must supply your IP address
	        # if the remote host doesn't send your IP during
                # IPCP negotiation, remove this option
passive         # wait for LCP packets
domain your.domain	# put your domain name here

:		# put the IP of remote PPP host here
	        # it will be used to route packets via PPP link
                # if you didn't specified the noipdefault option
                # change this line to local_ip:remote_ip

defaultroute	# put this if you want that PPP server will be
	        # your default router
....

[.filename]#/etc/ppp/login.chat.script#:

[NOTE]
====
Дараах нь нэг мөрөнд байх ёстой.
====

[.programlisting]
....
ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDTphone.number
  CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: login-id
  TIMEOUT 5 sword: password
....

Эдгээр нь суулгагдаж зөв болж өөрчлөгдсөний дараа таны хийх ганц зүйл бол `pppd`-г иймэрхүү маягаар ажиллуулах явдал юм:

[source,shell]
....
# pppd
....

=== `pppd`-г сервер маягаар ашиглах

[.filename]#/etc/ppp/options# файл нь доор дурдсантай төстэйг агуулах ёстой:

[.programlisting]
....
crtscts                         # Hardware flow control
netmask 255.255.255.0           # netmask (not required)
192.114.208.20:192.114.208.165  # IP's of local and remote hosts
                                # local ip must be different from one
                                # you assigned to the Ethernet (or other)
                                # interface on your machine.
                                # remote IP is IP address that will be
                                # assigned to the remote machine
domain ppp.foo.com              # your domain
passive                         # wait for LCP
modem                           # modem line
....

Дараах [.filename]#/etc/ppp/pppserv# скрипт нь pppd-г сервер маягаар ажиллахыг заах болно:

[.programlisting]
....
#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
        echo 'killing pppd, PID=' ${pid}
        kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
        echo 'killing kermit, PID=' ${pid}
        kill -9 ${pid}
fi

# reset ppp interface
ifconfig ppp0 down
ifconfig ppp0 delete

# enable autoanswer mode
kermit -y /etc/ppp/kermit.ans

# run ppp
pppd /dev/tty01 19200
....

Серверийг зогсоохын тулд энэ [.filename]#/etc/ppp/pppservdown# скриптийг ашиглана:

[.programlisting]
....
#!/bin/sh
pgrep -l pppd
pid=`pgrep pppd`
if [ "X${pid}" != "X" ] ; then
        echo 'killing pppd, PID=' ${pid}
        kill ${pid}
fi
pgrep -l kermit
pid=`pgrep kermit`
if [ "X${pid}" != "X" ] ; then
        echo 'killing kermit, PID=' ${pid}
        kill -9 ${pid}
fi
ifconfig ppp0 down
ifconfig ppp0 delete

kermit -y /etc/ppp/kermit.noans
....

Дараах Kermit скрипт нь ([.filename]#/etc/ppp/kermit.ans#) таны модем дээр автомат хариулагчийг нээх/хаах болно. Энэ нь иймэрхүү харагдах ёстой:

[.programlisting]
....
set line /dev/tty01
set speed 19200
set file type binary
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none

pau 1
out +++
inp 5 OK
out ATH0\13
inp 5 OK
echo \13
out ATS0=1\13   ; change this to out ATS0=0\13 if you want to disable
                ; autoanswer mode
inp 5 OK
echo \13
exit
....

[.filename]#/etc/ppp/kermit.dial# гэсэн нэртэй скрипт нь гадагш залгаж алсын хост дээр нэвтрэлт таниулахад хэрэглэгддэг. Та үүнийг өөрийн хэрэгцээнд зориулан өөрчлөх хэрэгтэй болно. Өөрийн нэвтрэх нэр болон нууц үгийг энэ скриптэд оруулах хэрэгтэй; та бас оролтын илэрхийллийг таны модем болон алсын хостоос ирэх хариунуудаас хамааран өөрчлөх хэрэгтэй болно.

[.programlisting]
....
;
; put the com line attached to the modem here:
;
set line /dev/tty01
;
; put the modem speed here:
;
set speed 19200
set file type binary            ; full 8 bit file xfer
set file names literal
set win 8
set rec pack 1024
set send pack 1024
set block 3
set term bytesize 8
set command bytesize 8
set flow none
set modem hayes
set dial hangup off
set carrier auto                ; Then SET CARRIER if necessary,
set dial display on             ; Then SET DIAL if necessary,
set input echo on
set input timeout proceed
set input case ignore
def \%x 0                       ; login prompt counter
goto slhup

:slcmd                          ; put the modem in command mode
echo Put the modem in command mode.
clear                           ; Clear unread characters from input buffer
pause 1
output +++                      ; hayes escape sequence
input 1 OK\13\10                ; wait for OK
if success goto slhup
output \13
pause 1
output at\13
input 1 OK\13\10
if fail goto slcmd              ; if modem doesn't answer OK, try again

:slhup                          ; hang up the phone
clear                           ; Clear unread characters from input buffer
pause 1
echo Hanging up the phone.
output ath0\13                  ; hayes command for on hook
input 2 OK\13\10
if fail goto slcmd              ; if no OK answer, put modem in command mode

:sldial                         ; dial the number
pause 1
echo Dialing.
output atdt9,550311\13\10               ; put phone number here
assign \%x 0                    ; zero the time counter

:look
clear                           ; Clear unread characters from input buffer
increment \%x                   ; Count the seconds
input 1 {CONNECT }
if success goto sllogin
reinput 1 {NO CARRIER\13\10}
if success goto sldial
reinput 1 {NO DIALTONE\13\10}
if success goto slnodial
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 60 goto look
else goto slhup

:sllogin                        ; login
assign \%x 0                    ; zero the time counter
pause 1
echo Looking for login prompt.

:slloop
increment \%x                   ; Count the seconds
clear                           ; Clear unread characters from input buffer
output \13
;
; put your expected login prompt here:
;
input 1 {Username: }
if success goto sluid
reinput 1 {\255}
if success goto slhup
reinput 1 {\127}
if success goto slhup
if < \%x 10 goto slloop         ; try 10 times to get a login prompt
else goto slhup                 ; hang up and start again if 10 failures

:sluid
;
; put your userid here:
;
output ppp-login\13
input 1 {Password: }
;
; put your password here:
;
output ppp-password\13
input 1 {Entering SLIP mode.}
echo
quit

:slnodial
echo \7No dialtone.  Check the telephone line!\7
exit 1

; local variables:
; mode: csh
; comment-start: "; "
; comment-start-skip: "; "
; end:
....

[[ppp-troubleshoot]]
== PPP холболтуудын алдааг олж засварлах

Энэ хэсэг нь PPP-г модемийн холболтоор ашиглах үед гарч болох цөөн асуудлуудыг хамрах болно. Жишээ нь магадгүй танд залгаж холбогдох гэж байгаа систем чинь яг ямар хүлээх мөрүүдийг үзүүлэхийг мэдэх шаардлагатай байж болох юм. Зарим ISP-ууд `ssword` хүлээх мөрийг үзүүлдэг бол зарим нь `password` гэж үзүүлэх болно; хэрэв `ppp` скрипт нь түүний дагуу бичигдээгүй бол нэвтрэх оролдлого амжилтгүй болох болно. `ppp` холболтуудыг дибаг хийх хамгийн түгээмэл арга бол гараар холбогдох явдал юм. Дараах мэдээлэл нь алхам алхмаар гар холболтыг танд тайлбарлах болно.

=== Төхөөрөмжийн цэгүүдийг шалгана

Хэрэв өөрчлөн тохируулсан цөм ашиглаж байгаа бол дараах мөрийг өөрийн цөмийн тохиргооны файлдаа нэмсэн эсэхээ шалгаарай:

[.programlisting]
....
device   uart
....

[.filename]#uart# төхөөрөмж `GENERIC` цөмд аль хэдийн орсон байдаг учир энэ тохиолдолд нэмэлт алхмууд хэрэггүй юм. Модем төхөөрөмжийн хувьд `dmesg` гаралтыг шалгаарай:

[source,shell]
....
# dmesg | grep uart
....

Та [.filename]#uart# төхөөрөмжүүдийн талаар тохирох мэдээллүүдийг авах ёстой. Эдгээр нь бидэнд хэрэгтэй COM портууд юм. Хэрэв таны модем стандарт цуваа порт шиг ажиллаж байвал та түүнийг [.filename]#uart1#, эсвэл [.filename]#COM2# дээр жагсаагдсан байхыг харах ёстой. Хэрэв тийм бол та цөмийг дахин бүтээх шаардлагагүй юм. sio модем [.filename]#uart1# дээр эсвэл хэрэв та DOS дээр байгаа бол [.filename]#COM2# дээр таарч байвал таны модемийн төхөөрөмж [.filename]#/dev/cuau1# байх болно.

=== Гараар холбогдох нь

Гараар `ppp`-г хянаж Интернэтэд холбогдох нь холболтыг дибаг хийх юм уу эсвэл ердөө л таны ISP чинь `ppp` клиент холболтуудад хэрхэн ханддаг талаар мэдээлэл авахад хурдан, хялбар, агуу арга байдаг. Тушаалын мөрөөс PPP-г эхлүүлье. Бидний бүх жишээнүүд дээр бид PPP ажиллуулж байгаа машины хостын нэрийг _example_ гэж авч ашиглах болно. Та `ppp`-г `ppp` гэж бичин эхлүүлнэ:

[source,shell]
....
# ppp
....

Бид одоо `ppp`-г эхлүүллээ.

[source,shell]
....
ppp ON example> set device /dev/cuau1
....

Бид өөрсдийн модемний төхөөрөмжийг тохируулна. Энэ тохиолдолд [.filename]#cuau1# болно.

[source,shell]
....
ppp ON example> set speed 115200
....

Холболтын хурдыг тохируулна. Энэ тохиолдолд бид 115,200 kbps-г ашиглаж байна.

[source,shell]
....
ppp ON example> enable dns
....

Бидний нэр танигчийг тохируулж [.filename]#/etc/resolv.conf# файлд нэрийн серверүүдийн мөрүүдийг нэмэхийг `ppp`-д хэлнэ. `ppp` бидний хостын нэрийг тодорхойлж чадахгүй байгаа бол бид дараа нь гараараа тохируулж өгч болно.

[source,shell]
....
ppp ON example> term
....

Модемийг гараар хянаж чадаж байхын тулд "Терминал" горимд шилжих хэрэгтэй.

[.programlisting]
....
deflink: Entering terminal mode on /dev/cuau1
type '~h' for help
....

[source,shell]
....
at
OK
atdt123456789
....

Модемийг эхлүүлэхийн тулд `at`-г ашиглаж дараа нь `atdt` дээр өөрийн ISP-ийн дугаараа нэмээд залгах процессоо эхлэх хэрэгтэй.

[source,shell]
....
CONNECT
....

Холболтын баталгаа гарах ёстой, хэрэв бид тоног төхөөрөмжтэй холбоогүй ямар нэг холболтын асуудлуудтай байх бол энд бид тэдгээрийг шийдэхийг оролдох болно.

[source,shell]
....
ISP Login:myusername
....

Энд танаас хэрэглэгчийн нэрийг асуух болно, ISP-ээс өгсөн хэрэглэгчийн нэрийг оруулаад буцахыг дарна.

[source,shell]
....
ISP Pass:mypassword
....

Энэ удаад нууц үгийг асуух болно, ISP-ээс өгсөн нууц үгээр хариулах хэрэгтэй. Яг л FreeBSD уруу нэвтрэн ордог шиг нууц үг нь буцаж дэлгэцэд харагдахгүй.

[source,shell]
....
Shell or PPP:ppp
....

Таны ISP-ээс хамаараад энэ хүлээх мөр нь хэзээ ч гарахгүй байж болох юм. Энд биднээс үйлчилгээ үзүүлэгч дээр бүрхүүл ашиглах эсэх эсвэл `ppp` эхлүүлэх эсэхийг асуудаг. Энэ жишээн дээр бид Интернэт холболтыг хүсэж байгаа болохоор `ppp`-г ашиглахаар сонгосон.

[source,shell]
....
Ppp ON example>
....

Энэ жишээн дээр эхний `p` тохируулга томоор бичигдсэнийг хараарай. Энэ нь бид ISP-д амжилттайгаар холбогдсоныг харуулж байна.

[source,shell]
....
PPp ON example>
....

Бид ISP-д амжилттайгаар өөрсдийгөө таниулан нэвтэрч заагдсан IP хаягийг хүлээж байна.

[source,shell]
....
PPP ON example>
....

Бид IP хаяг дээрээ зөвшилцөж холболтоо амжилттайгаар хийж дуусгалаа.

[source,shell]
....
PPP ON example>add default HISADDR
....

Энд бид өөрсдийн анхдагч чиглүүлэлтээ нэмж байна. Бид үүнийг гаднах ертөнцтэй ярьж эхлэхээсээ өмнө хийх ёстой бөгөөд одоогоор зөвхөн хийгдсэн холболт нь нөгөө талтайгаа хийгдсэн холболт байгаа болно. Хэрэв энэ нь байгаа чиглүүлэлтүүдээсээ болоод амжилтгүй болбол та `add` тохируулгын өмнө анхаарлын тэмдэг `!` тавьж болно. Өөрөөр та үүнийг жинхэнэ холболт хийхээсээ өмнө тохируулж болох бөгөөд энэ нь шинэ чиглүүлэлтийг зохих ёсоор тохиролцоно.

Хэрэв бүх зүйл сайн болж өнгөрсөн бол бид одоо идэвхтэй Интернэтийн холболттой болсон байх бөгөөд үүнийг ар талд kbd:[CTRL+z] хослолоор оруулж болох юм. Хэрэв та `PPP`-г `ppp` болохыг анзаарах юм бол бид өөрсдийн холболтоо алдсан гэсэн үг юм. Энэ нь бидний холболтын төлөвийг үзүүлдэг болохоор мэдэхэд илүүдэхгүй юм. Том P үсэгнүүд нь бид ISP уруу холболттой байгааг үзүүлэх бөгөөд жижиг p үсэгнүүд нь холболт ямар нэг шалтгаанаар тасарсныг харуулна. `ppp` нь зөвхөн эдгээр хоёр төлөвтэй байдаг.

==== Дибаг хийх нь

Хэрэв та шууд шугамтай бөгөөд холболт хийж чадахгүй байгаа юм шиг санагдвал CTS/RTS тоног төхөөрөмжийн урсгалыг `set ctsrts off` болгон хаах хэрэгтэй. Энэ нь ялангуяа та PPP хийж чаддаг терминал серверт холбогдох тохиолдол юм. Энэ тохиолдолд PPP нь таны холбооны шугам дээр өгөгдлийг бичихээр оролдох үед өлгөгдөж хэзээ ч ирэхгүй байж болох CTS юм уу эсвэл Clear To Send буюу Илгээхэд Цэвэр дохиог хүлээж байж болох юм. Хэрэв та энэ тохируулгыг ашиглах юм бол `set accmap` тохируулгыг бас хэрэглэх шаардлагатай. Энэ тохируулга нь зарим нэг параметрүүдийг, ихэнх тохиолдолд XON/XOFF-г төгсгөлөөс төгсгөлд дамжуулахад тоног төхөөрөмжийн хувьд хамааралтай байдлыг үгүй хийхийн тулд шаардлагатай байж болох юм. Энэ тохируулгын талаар дэлгэрэнгүй мэдээллийг болон хэрхэн ашиглагддаг талаар man:ppp[8] гарын авлагын хуудаснаас үзнэ үү.

Хэрэв та хуучин модемтой бол `set parity even` тохируулгыг ашиглах хэрэгтэй болж болох юм. Parity нь анхдагчаар none буюу байхгүй гэж тохируулагдсан байдаг боловч хуучин модемууд болон ISP-уудад (урсгалын хувьд их хэмжээгээр ихсэхэд) алдаа шалгахад хэрэглэгддэг. Compuserve ISP-ийн хувьд танд энэ тохируулга хэрэгтэй байж болох юм.

PPP нь тушаалын горимд буцахгүй байж болох юм. Энэ нь ихэвчлэн ISP нь танаас харилцан тохиролцохыг эхлүүлэхийг хүлээх тохиролцооны алдаа байдаг. Энэ үед `~p` тушаалыг ашиглах нь ppp-г тохиргооны мэдээллээ илгээж эхлэхэд хүргэх болно.

Хэрэв та нэвтрэлт хүлээх мөрийг хэзээ ч авахгүй байгаа бол та магадгүй дээрх жишээн дээрх UNIX(R) загварын нэвтрэлт танилтын оронд PAP юм уу эсвэл CHAP нэвтрэлт танилтыг ашиглах хэрэгтэй байж болох юм. PAP эсвэл CHAP-г ашиглахын тулд ердөө л дараах тохируулгуудыг PPP-д терминал горим уруу орохоос өмнө нэмэх хэрэгтэй:

[source,shell]
....
ppp ON example> set authname myusername
....

Дээр байгаа _myusername_-г ISP-с өгөгдсөн хэрэглэгчийн нэрээр солих шаардлагатай.

[source,shell]
....
ppp ON example> set authkey mypassword
....

Дээр байгаа _mypassword_-г ISP-с өгөгдсөн нууц үгээр солих шаардлагатай.

Хэрэв та зүгээр холбогдсон мөртлөө ямар ч домэйн нэр олохгүй байгаа юм шиг байвал man:ping[8] тушаалыг IP хаягтай ашиглаж ямар нэг мэдээлэл буцаж ирж байгаа эсэхийг шалгах хэрэгтэй. Хэрэв та 100 хувийн (100%) пакетийн алдагдалд орж байвал танд бараг л анхдагч чиглүүлэлт заагдаагүй байгаа гэсэн үг юм. Холболтын үеэр `add default HISADDR` тохируулга тохируулагдсан эсэхийг давхар шалгаарай. Хэрэв та алсын IP хаяг уруу холбогдож чадаж байвал нэр танигчийн хаяг [.filename]#/etc/resolv.conf# файлд нэмэгдээгүй байх магадлалтай юм. Энэ файл нь иймэрхүү харагдах ёстой:

[.programlisting]
....
domain example.com
nameserver x.x.x.x
nameserver y.y.y.y
....

Дээр байгаа _x.x.x.x_ болон _y.y.y.y_ нь таны ISP-ийн DNS серверүүдийн IP хаягаар солигдох ёстой. Таныг үйлчилгээнд эхэлж бүртгүүлэхэд энэ мэдээлэл өгөгдсөн юм уу эсвэл өгөгдөөгүй байж болох бөгөөд өөрийн ISP уруугаа хурдхан утасдаж энэ мэдээллийг мэдэж болох юм.

Та өөрийн PPP холболтондоо зориулж man:syslog[3]-г бүртгэл бичихээр болгож болно. Дараах:

[.programlisting]
....
!ppp
*.*     /var/log/ppp.log
....

мөрийг [.filename]#/etc/syslog.conf# файлд нэмнэ. Ихэнх тохиолдолд энэ боломж аль хэдийн орсон байдаг.

[[pppoe]]
== Ethernet дээгүүр PPP ашиглах нь (PPPoE)

Энэ хэсэг нь Ethernet дээгүүр PPP (PPPoE) хэрхэн тохируулах талаар тайлбарлах болно.

=== Цөмийг тохируулах нь

Одоо PPPoE-д зориулсан цөмийн тохиргоо шаардлагатай байхаа больжээ. Хэрэв шаардлагатай netgraph-ийн дэмжлэг цөмд бүтээгдээгүй бол энэ нь динамикаар ppp-ээр дуудагдах болно.

=== [.filename]#ppp.conf# файлыг тохируулах

Энд ажилладаг [.filename]#ppp.conf# файлын жишээ байна:

[.programlisting]
....
default:
  set log Phase tun command # you can add more detailed logging if you wish
  set ifaddr 10.0.0.1/0 10.0.0.2/0

name_of_service_provider:
  set device PPPoE:xl1 # replace xl1 with your Ethernet device
  set authname YOURLOGINNAME
  set authkey YOURPASSWORD
  set dial
  set login
  add default HISADDR
....

=== ppp-г ажиллуулах

`root` хэрэглэгчээр та доор дурдсаныг ажиллуулж болно:

[source,shell]
....
# ppp -ddial name_of_service_provider
....

=== ppp-г ачаалах үед эхлүүлэх

доор дурдсаныг өөрийн [.filename]#/etc/rc.conf# файлд нэмнэ:

[.programlisting]
....
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"	# if you want to enable nat for your local network, otherwise NO
ppp_profile="name_of_service_provider"
....

=== PPPoE үйлчилгээний хаягийг ашиглах

Заримдаа өөрийн холболтыг хийхийн тулд үйлчилгээний хаягийг ашиглах шаардлагатай болж болох юм. Үйлчилгээний хаягууд нь өгөгдсөн сүлжээнд залгагдсан өөр өөр PPPoE серверүүдийг ялгахын тулд хэрэглэгддэг.

Таны ISP-ээс өгсөн баримтад шаардлагатай үйлчилгээний хаягийн мэдээлэл байх ёстой. Хэрэв та ийм мэдээлэл олоогүй бол өөрийн ISP-ийн техникийн дэмжлэг үзүүлэгч ажилтнаас асуугаарай.

Хамгийн сүүлд та crossref:ports[ports,Портын цуглуулга]д байх http://www.roaringpenguin.com/pppoe/[Архирах Оцон шувуу PPPoE] хаягт санал болгосон аргыг туршиж болох юм. Гэхдээ энэ нь таны модемийг буцаан програмчилж ажиллагаагүй болгож магадгүй болохоор үүнийг хийхээсээ өмнө дахин бодоорой. Таны үйлчилгээ үзүүлэгчийн модемтой цуг ирсэн програмыг ердөө л суулгаарай. Дараа нь програмаас menu:System[] цэсд хандаарай. Таны тохиргооны нэр тэнд жагсаагдсан байх ёстой. Энэ нь ихэвчлэн _ISP_ гэж байдаг.

Тохиргооны нэр (үйлчилгээний хаяг) нь [.filename]#ppp.conf# файл дахь PPPoE тохиргооны оруулгад `set device` тушаалын үйлчилгээ үзүүлэгч хэсэг болон ашиглагдах болно (бүрэн мэдээллийг man:ppp[8] гарын авлагын хуудаснаас үзнэ үү). Энэ нь иймэрхүү харагдах ёстой:

[.programlisting]
....
set device PPPoE:xl1:ISP
....

_xl1_-г өөрийн Ethernet картны зөв төхөөрөмжөөр солихоо мартуузай.

_ISP_ гэснийг дээрх дөнгөж олсон тохиргоогоор солихоо мартуузай.

Нэмэлт мэдээллийг доорх хаягуудаас үзнэ үү:

* Рено Валдурагийн http://renaud.waldura.com/doc/freebsd/pppoe/[DSL дээр FreeBSD-ээр арай хямд өргөн зурвас ашиглах (Cheaper Broadband with FreeBSD on DSL)].

[[ppp-3com]]
=== 3Com(R) HomeConnect(TM) ADSL Хос Холбоос Модемтой PPPoE

Энэ модем нь http://www.faqs.org/rfcs/rfc2516.html[RFC 2516] (Л. Мамакос, К. Лидл, Ж. Эвартс, Д. Каррел, Д. Симоне, болон Р. Вийлэр нарын бичсэн _PPP-г Ethernet дээгүүр (PPPoE) дамжуулах арга_) стандартыг дагадаггүй. Харин Ethernet хүрээнүүдийн хувьд пакетийн төрлийн өөр кодуудыг ашигладаг. Хэрэв та үүнийг PPPoE-ийн тодорхойлолтыг мөрдөх ёстой гэж бодож байгаа бол http://www.3com.com/[3Com] уруу гомдоллоно уу.

Энэ төхөөрөмжтэй FreeBSD-г холбогдох боломжтой болгохын тулд sysctl тохируулагдах ёстой. [.filename]#/etc/sysctl.conf# файлыг шинэчилж ачаалалтын үед энэ нь автоматаар хийгдэж болно:

[.programlisting]
....
net.graph.nonstandard_pppoe=1
....

эсвэл дараах тушаалаар нэн даруй хийгдэж болно:

[source,shell]
....
# sysctl net.graph.nonstandard_pppoe=1
....

Харамсалтай нь энэ нь системийн дагуух тохиргоо болохоор хэвийн PPPoE клиент эсвэл сервер болон 3Com(R) HomeConnect(TM) ADSL модемтой нэгэн зэрэг холбогдох боломжгүй болох юм.

[[pppoa]]
== ATM дээгүүр PPP (PPPoA) ашиглах

Дараах нь ATM дээгүүр PPP-г (PPPoA) хэрхэн тохируулах талаар тайлбарлана. PPPoA нь Европийн DSL үзүүлэгчдийн дунд алдартай сонголт болдог.

=== Alcatel SpeedTouch(TM) USB-тэй PPPoA-г ашиглах нь

Энэ төхөөрөмжийн PPPoA дэмжлэг нь FreeBSD-д порт хэлбэрээр байдаг. Учир нь үүний firmware http://www.speedtouchdsl.com/disclaimer_lx.htm[Alcatel-ийн лицензийн гэрээ]гээр түгээгддэг бөгөөд FreeBSD-ийн үндсэн системтэй цуг чөлөөтэй түгээгдэж болдоггүй.

Програм хангамжийг суулгахын тулд ердөө л crossref:ports[ports,Портуудын цуглуулгыг] ашиглана. package:net/pppoa[] портыг суулгаад түүнтэй хамт ирсэн заавруудыг дагаарай.

Олон USB төхөөрөмжүүдийн адил Alcatel-ийн SpeedTouch(TM) USB нь зөв ажиллахын тулд хост компьютераас firmware татах хэрэгтэй болдог. FreeBSD дээр энэ дамжуулалт нь төхөөрөмж USB порт уруу холбогдсон үед хийгдэхээр болгож энэ процессийг автоматчилах боломжтой. Энэ автомат firmware дамжуулалтыг идэвхжүүлэхийн тулд дараах мэдээллийг [.filename]#/etc/usbd.conf# файлд нэмж болох юм. Энэ файлыг `root` хэрэглэгчээр засварлах шаардлагатай.

[.programlisting]
....
device "Alcatel SpeedTouch USB"
    devname "ugen[0-9]+"
    vendor 0x06b9
    product 0x4061
    attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"
....

usbd USB дэмонг идэвхжүүлэхийн тулд дараах мөрийг [.filename]#/etc/rc.conf# файлд нэмнэ:

[.programlisting]
....
usbd_enable="YES"
....

Эхлүүлэхэд залгадаг байхаар ppp-г тохируулах боломжтой байдаг. Үүнийг хийхийн тулд дараах мөрүүдийг [.filename]#/etc/rc.conf# файлд нэмнэ. Ахин хэлэхэд энэ процедурын хувьд та `root` хэрэглэгчээр нэвтрэн орох хэрэгтэй болно.

[.programlisting]
....
ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="adsl"
....

Үүнийг зөв ажиллуулахын тулд та package:net/pppoa[] порттой цуг ирсэн [.filename]#ppp.conf# файлыг ашиглах хэрэгтэй болно.

=== mpd ашиглах нь

Та төрөл бүрийн үйлчилгээнүүдэд ялангуяа PPTP үйлчилгээнүүдэд холбогдохын тулд mpd-г ашиглаж болно. Та mpd-г Портуудын цуглуулга package:net/mpd[] сангаас олж болно. Олон ADSL модемууд нь модем болон компьютерийн хооронд PPTP хоолой үүсгэгдсэн байхыг шаарддаг бөгөөд тийм модемийн нэг нь Alcatel SpeedTouch(TM) Home юм.

Та эхлээд портоо суулгах ёстой бөгөөд дараа нь өөрийн шаардлага болон үйлчилгээ үзүүлэгчийн тохиргоонуудад тааруулан mpd-г тохируулж болно. Порт нь жишээ тохиргооны файлуудыг байрлуулдаг бөгөөд эдгээр нь [.filename]#PREFIX/etc/mpd/#-д сайн баримтжуулагдсан байдаг. Энд нэг юмыг тэмдэглэх хэрэгтэй. _PREFIX_ гэдэг нь таны портууд суулгагдсан сан бөгөөд анхдагчаар [.filename]#/usr/local/# байдаг. mpd-г тохируулах бүрэн заавар порт суулгагдсаны дараа HTML хэлбэрээр орсон байдаг. Энэ нь [.filename]#PREFIX/shared/doc/mpd/# санд байрладаг. Энд mpd-ээр ADSL үйлчилгээнд холбогдох жишээ тохиргоо байна. Тохиргоо нь хоёр файлаас тогтох бөгөөд эхний [.filename]#mpd.conf# нь ийм байна:

[NOTE]
====
Энэ жишээ [.filename]#mpd.conf# файл нь mpd 4.x хувилбартай зөвхөн ажиллана.
====

[.programlisting]
....
default:
    load adsl

adsl:
    new -i ng0 adsl adsl
    set bundle authname username <.>
    set bundle password password <.>
    set bundle disable multilink

    set link no pap acfcomp protocomp
    set link disable chap
    set link accept chap
    set link keep-alive 30 10

    set ipcp no vjcomp
    set ipcp ranges 0.0.0.0/0 0.0.0.0/0

    set iface route default
    set iface disable on-demand
    set iface enable proxy-arp
    set iface idle 0

    open
....

<.> Таны ISP-тай холбогдон өөрийгөө таниулан нэвтрэх хэрэглэгчийн нэр.

<.> Таны ISP-тай холбогдон өөрийгөө таниулан нэвтрэх нууц үг.

[.filename]#mpd.links# файл нь таны хийхийг хүссэн холбоос эсвэл холбоосуудын тухай мэдээллийг агуулдаг. Дээрх жишээнд тохирох харгалзах жишээ [.filename]#mpd.links# файлыг доор үзүүлэв:

[.programlisting]
....
adsl:
    set link type pptp
    set pptp mode active
    set pptp enable originate outcall
    set pptp self 10.0.0.1 <.>
    set pptp peer 10.0.0.138 <.>
....

<.> Таны mpd ашиглах FreeBSD компьютерийн IP хаяг.

<.> Таны ADSL модемийн IP хаяг. Alcatel SpeedTouch(TM) Home-ийн хувьд энэ хаяг нь анхдагчаар `10.0.0.138` байна.

Дараах тушаалыг `root`-ээр ажиллуулж холболтыг хялбараар эхлүүлэх боломжтой байдаг:

[source,shell]
....
# mpd -b adsl
....

Та холболтын төлөвийг дараах тушаалаар харж болно:

[source,shell]
....
% ifconfig ng0
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
     inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff
....

FreeBSD дээр ADSL үйлчилгээнд холбогдохын тулд mpd-г ашиглахыг зөвлөдөг юм.

=== pptpclient ашиглах нь

Мөн бусад PPPoA үйлчилгээнүүдэд FreeBSD-ээр холбогдохын тулд package:net/pptpclient[] ашиглах боломжтой байдаг.

package:net/pptpclient[]-г ашиглан DSL үйлчилгээнд холбогдохын тулд порт болон багцыг суулгаад өөрийн [.filename]#/etc/ppp/ppp.conf# файлыг засварлана. Эдгээр үйлдлүүдийг хийж гүйцэтгэхийн тулд та `root` болсон байх ёстой. [.filename]#ppp.conf# файлын жишээ хэсгийг доор үзүүлэв. [.filename]#ppp.conf#-ийн тохируулгуудын тухай илүү мэдээллийг ppp гарын авлагын хуудас man:ppp[8]-с лавлана уу.

[.programlisting]
....
adsl:
 set log phase chat lcp ipcp ccp tun command
 set timeout 0
 enable dns
 set authname username <.>
 set authkey password <.>
 set ifaddr 0 0
 add default HISADDR
....

<.> DSL үйлчилгээ үзүүлэгчтэй холбогдох таны бүртгэлийн хэрэглэгчийн нэр.

<.> Таны бүртгэлийн нууц үг.

[WARNING]
====

Та өөрийн бүртгэлийн нууц үгийг [.filename]#ppp.conf# файлд цэвэр текст хэлбэрээр тавих ёстой болохоор энэ файлын агуулгыг хэн ч уншиж чадахгүй болгосон эсэхээ шалгах хэрэгтэй. Дараах сери тушаалууд нь энэ файлыг зөвхөн `root` бүртгэлээр уншигдахаар болгох юм. Дэлгэрэнгүй мэдээллийг man:chmod[1] болон man:chown[8] гарын авлагын хуудаснуудаас лавлана уу.

[source,shell]
....
# chown root:wheel /etc/ppp/ppp.conf
# chmod 600 /etc/ppp/ppp.conf
....

====

Энэ нь PPP сессэд зориулан таны DSL чиглүүлэгч уруу хоолой нээх болно. Ethernet DSL модемууд нь LAN IP хаягаар урьдчилан тохируулагдсан байдаг бөгөөд та түүн уруу холбогдоно. Alcatel SpeedTouch(TM) Home-ийн хувьд энэ хаяг нь `10.0.0.138` байна. Таны чиглүүлэгчийн баримтад төхөөрөмж ямар хаяг ашиглаж байгааг хэлсэн байх ёстой. Хоолой нээж PPP сесс эхлүүлэхийн тулд дараах тушаалыг ажиллуулна:

[source,shell]
....
# pptp address adsl
....

[TIP]
====

Та өмнөх тушаалын төгсгөлд "&" тэмдгийг нэмэхийг хүсэж болох юм. Ингэхгүй бол pptp нь танд тушаал хүлээх мөрийг буцаадаггүй.
====

[.filename]#tun# виртуал хоолой төхөөрөмж нь pptp болон ppp процессуудын хоорондох харилцаанд зориулан үүсгэгдэх болно. Тушаал хүлээх мөрөнд буцаж ирснийхээ дараа юм уу эсвэл pptp нь холболтыг баталгаажуулсны дараа та хоолойг ингэж шалгаж болно:

[source,shell]
....
% ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
        inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
        Opened by PID 918
....

Хэрэв та холбогдож чадахгүй байгаа бол өөрийн чиглүүлэгчийн тохиргоог шалгаарай. Энэ нь ихэвчлэн telnet юм уу эсвэл вэб хөтчөөр хандах боломжтой байдаг. Хэрэв та холбогдож чадахгүй хэвээр байвал `pptp` тушаалын гаралт болон ppp бүртгэлийн файл [.filename]#/var/log/ppp.log#-оос ямар нэг сэжүүр байгаа эсэхийг шалгах хэрэгтэй.

[[slip]]
== SLIP ашиглах

[WARNING]
====

Энэ хэсэг зөвхөн FreeBSD 7.X хувилбаруудад зориулагдсан.
====

[[slipc]]
=== SLIP клиент тохируулах

Дараах нь FreeBSD машиныг SLIP-д зориулан статик хост сүлжээн дээр тохируулах нэг арга юм. Динамикаар хостын нэрийг өгөхийн тулд (таныг залгаж холбогдох болгонд таны хаяг өөрчлөгддөг) танд илүү төвөгтэй тохируулга хэрэгтэй болох байх.

Эхлээд таны модем аль цуваа портод холбогдсоныг тодорхойлно. Олон хүн [.filename]#/dev/modem# гэх зэргээр жинхэнэ төхөөрөмжийн нэр [.filename]#/dev/cuadN# уруугаа заасан симболын холбоосыг тохируулдаг. Энэ нь модемийг өөр порт уруу шилжүүлэх шаардлагатай болсон тохиолдолд жинхэнэ төхөөрөмжийн нэрийг хийсвэрлэх боломжийг танд олгож байгаа юм. Бүх системийн дагуу [.filename]#/etc# дэх олон файлууд болон [.filename]#.kermrc# файлуудыг засварлах шаардлагатай болох үед энэ нь нэлээн ярвигтай болж ирдэг!

[NOTE]
====
[.filename]#/dev/cuad0# нь [.filename]#COM1#, [.filename]#/dev/cuad1# нь [.filename]#COM2#, гэх мэт.
====

Өөрийн цөмийн тохиргооны файлд дараах нь байгаа эсэхийг шалгаарай:

[.programlisting]
....
device   sl
....

Энэ нь [.filename]#GENERIC# цөмд орсон байдаг бөгөөд та түүнийг устгаагүй л бол энэ нь асуудал биш юм.

==== Зөвхөн нэг удаа хийх зүйлс

[.procedure]
====

. Өөрийн гэр машин, гарц болон нэрийн серверүүдийг өөрийн [.filename]#/etc/hosts# файлд нэмнэ. Биднийх иймэрхүү харагдах болно:
+
[.programlisting]
....
127.0.0.1               localhost loghost
136.152.64.181          water.CS.Example.EDU water.CS water
136.152.64.1            inr-3.CS.Example.EDU inr-3 slip-gateway
128.32.136.9            ns1.Example.EDU ns1
128.32.136.12           ns2.Example.EDU ns2
....
+
. Өөрийн [.filename]#/etc/nsswitch.conf# файлын `hosts:` хэсэгт `files` мөр нь `dns` мөрөөс өмнө байгаа эсэхийг шалгаарай. Эдгээр параметрүүдгүй бол сонин зүйлс болж магадгүй юм.
. [.filename]#/etc/rc.conf# файлыг засна.
.. Дараах мөрийг засварлаж өөрийн хостын нэрийг тохируулна:
+
[.programlisting]
....
hostname="myname.my.domain"
....
+ 
Таны машины Интернэтийн бүрэн хостын нэрийг энд тавих ёстой.
..
+ 
Дараах мөрийг өөрчилж анхдагч чиглүүлэлт:
+
[.programlisting]
....
defaultrouter="NO"
....
+ 
гэдгийг:
+
[.programlisting]
....
defaultrouter="slip-gateway"
....
+ 
болгоно.
+
. доор дурдсаныг агуулсан [.filename]#/etc/resolv.conf# файл үүсгэнэ:
+
[.programlisting]
....
domain CS.Example.EDU
nameserver 128.32.136.9
nameserver 128.32.136.12
....
+ 
Таны харж байгаагаар эдгээр нь нэрийн серверийн хостуудыг тохируулж байна. Мэдээж жинхэнэ домэйн нэрс болон хаягууд нь таны орчноос хамаарна.
. `root` болон `toor` (нууц үггүй бусад бүртгэлүүдийн) нууц үгийг тохируулна.
. Өөрийн машиныг дахин ачаалж зөв хостын нэртэйгээр ачаалсан эсэхийг нь шалгаарай.
====

==== SLIP холболт хийх нь

[.procedure]
====

. Залгаад хүлээх мөрөн дээр `slip` гэж бичээд өөрийн машины нэр болон нууц үгийг оруулна. Юу оруулах шаардлагатай нь таны орчноос хамаарна. Хэрэв та Kermit ашиглаж байгаа бол та иймэрхүү скриптийг ажиллуулахаар оролдож болно:
+
[.programlisting]
....
# kermit setup
set modem hayes
set line /dev/modem
set speed 115200
set parity none
set flow rts/cts
set terminal bytesize 8
set file type binary
# The next macro will dial up and login
define slip dial 643-9600, input 10 =>, if failure stop, -
output slip\x0d, input 10 Username:, if failure stop, -
output silvia\x0d, input 10 Password:, if failure stop, -
output ***\x0d, echo \x0aCONNECTED\x0a
....
+ 
Мэдээж өөртөө тааруулаад өөрийн хэрэглэгчийн нэр болон нууц үгийг солих хэрэгтэй. Ингэснийхээ дараа та Kermit-ийн хүлээх мөрөөс холбогдохын тулд `slip` гэж бичих хэрэгтэй.
+
[NOTE]
======
Файлын системд хаа нэгтээ өөрийн нууц үгийг цэвэр текстээр үлдээх нь ерөнхийдөө _буруу_ юм. Үүнийг хийх нь аз туршсан явдал юм.
======
+
. Kermit-г тэнд нь үлдээж (та үүнийг kbd:[Ctrl+z] хослолоор зогсоож болно) `root`-ээр дараах тушаалыг бичнэ:
+
[source,shell]
....
# slattach -h -c -s 115200 /dev/modem
....
+ 
Хэрэв та чиглүүлэгчийн нөгөө талд байгаа хостууд уруу `ping` хийж чадаж байвал та холбогдсон байна! Хэрэв энэ нь ажиллахгүй байгаа бол `slattach` тушаалд `-c` нэмэлт өгөгдлийн оронд `-a`-г тавьж оролдоод үзээрэй.
====

==== Холболтыг хэрхэн зогсоох вэ

доор дурдсаныг хийж:

[source,shell]
....
# kill -INT `cat /var/run/slattach.modem.pid`
....

`slattach`-г зогсооно. Дээр дурдсаныг хийхийн тулд `root` байх шаардлагатайг санаарай. Дараа нь `kermit` уруугаа (хэрэв та түр зогсоосон бол `fg` тушаалыг ажиллуулан) буцаж түүнээс гарна (kbd:[q]).

man:slattach[8] гарын авлагын хуудсанд интерфэйсийг зогссон гэж тэмдэглэхийн тулд `ifconfig sl0 down` тушаалыг ашиглах ёстой гэсэн байдаг боловч энэ нь ямар ч өөрчлөлт хийдэггүй юм шиг санагддаг. (`ifconfig sl0` тушаал нь бас үүнтэй адилыг гаргадаг.)

Заримдаа таны модем зөөгчийг унагахаасаа татгалзаж болох юм. Тийм тохиолдолд ердөө л дахин `kermit`-г ажиллуулаад тэгээд түүнээс гарах хэрэгтэй. Энэ нь ихэвчлэн хоёр дахь оролдлогод болдог.

==== Алдааг олж засварлах

Хэрэв энэ нь ажиллахгүй байгаа бол link:{freebsd-net-url}[freebsd-net] захидлын жагсаалтаас чөлөөтэй асуугаарай. Одоогоор хүмүүсийн аялж мэдсэн зүйлс гэх юм бол:

* `slattach` тушаалд `-c` эсвэл `-a` тохируулгуудыг ашиглахгүй байх (энэ нь мөхлийн байх ёсгүй, гэхдээ энэ нь зарим хэрэглэгчдийн асуудлуудыг шийддэг гэж бичсэн байдаг.)
* `sl0`-ийн оронд `s10` тохируулгыг ашиглах (зарим фонтууд дээр ялгааг нь олж харах хэцүү байж болох юм).
* Өөрийн интерфэйсийн төлөвийг харахын тулд `ifconfig sl0` тушаалыг ажиллуулж үзээрэй. Жишээ нь та иймэрхүү дүн харж болох юм:
+
[source,shell]
....
# ifconfig sl0
sl0: flags=10<POINTOPOINT>
        inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00
....

* Хэрэв та man:ping[8] тушаалаас `no route to host` мэдэгдлүүдийг авах юм бол таны чиглүүлэлтийн хүснэгтэд асуудал байж болзошгүй юм. Тухайн үед байгаа чиглүүлэлтүүдийг үзүүлэхийн тулд `netstat -r` тушаалыг ашиглаж болно :
+
[source,shell]
....
# netstat -r
Routing tables
Destination      Gateway            Flags     Refs     Use  IfaceMTU    Rtt    Netmasks:

(root node)
(root node)

Route Tree for Protocol Family inet:
(root node) =>
default          inr-3.Example.EDU  UG          8   224515  sl0 -      -
localhost.Exampl localhost.Example. UH          5    42127  lo0 -       0.438
inr-3.Example.ED water.CS.Example.E UH          1        0  sl0 -      -
water.CS.Example localhost.Example. UGH        34 47641234  lo0 -       0.438
(root node)
....
+ 
Өмнөх жишээнүүд нь харьцангуй завгүй байгаа системүүдийнх юм. Таны систем дээрх тоонууд нь сүлжээний ачааллаас хамаарч өөр өөр байх болно.

[[slips]]
=== SLIP сервер тохируулах нь

Энэхүү баримт нь FreeBSD систем дээр SLIP серверийн үйлчилгээнүүдийг тохируулахад зориулсан зөвлөгөөнүүдийг санал болгодог. Энэ нь юу гэсэн үг вэ гэхээр алсын SLIP клиентүүдийн нэвтрэлтийн үед холболтуудыг автоматаар эхлүүлэхээр болгож таны системийг тохируулна гэсэн үг юм.

[[slips-prereqs]]
==== Шаардлагатай зүйлс

Энэ баримт нь өөрийн үндсэн чанарын хувьд хэт техникийн учраас тодорхой мэдлэг шаардах болно. Энэ нь таныг TCP/IP сүлжээний протоколыг тодорхой хэмжээгээр мэддэг бөгөөд ялангуяа сүлжээ болон цэгийн хаяглалт, сүлжээний хаягийн багууд, дэд сүлжээ үүсгэх, чиглүүлэлт болон RIP зэрэг чиглүүлэлтийн протоколуудыг мэддэг гэж тооцдог. SLIP үйлчилгээнүүдийг dial-up сервер дээр тохируулах нь эдгээр ухагдахуунуудын тухай мэдлэгийг шаарддаг бөгөөд хэрэв та эдгээрийг мэдэхгүй бол O'Reilly & Associates, Inc-ийн хэвлэсэн Крэг Хантын _TCP/IP Network Administration_ буюу TCP/IP сүлжээний удирдлага номыг юм уу эсвэл TCP/IP протоколуудын тухай Даглас Комерийн номнуудыг уншина уу.

Мөн таныг модемоо суулгаж өөрийн модемоор дамжин нэвтрэх боломжуудыг зөвшөөрөхөөр тохируулсан байгаа гэж үздэг. Хэрэв та үүнд зориулж өөрийн системийг бэлдэж амжаагүй байгаа бол dialup үйлчилгээнүүдийн тохиргооны тухай мэдээллийг crossref:serialcomms:[dialup,Dial-in буюу гаднаас залгах үйлчилгээ] хэсгээс үзнэ үү. Та бас цуваа портын төхөөрөмжийн драйверийн тухай мэдээлэл болон модемууд дээр нэвтрэлтүүдийг хүлээн авахаар болгож системийг тохируулах тухай мэдээллийг man:sio[4] болон man:ttys[5], man:gettytab[5], man:getty[8], & man:init[8] гарын авлагын хуудаснуудаас шалгахыг хүсэж болох юм. Цуваа портын параметрүүдийг (шууд холбогдсон цуваа интерфэйсүүдийн хувьд `clocal` зэрэг) тохируулах тухай мэдээллийг man:stty[1] гарын авлагын хуудаснаас үзнэ үү.

==== Түргэн дүгнэлт

FreeBSD-г SLIP сервер болгон ашиглах ердийн тохиргоонд дараах маягаар ажилладаг: SLIP сервер нь таны FreeBSD SLIP сервер системийг гадагш залгуулдаг бөгөөд [.filename]#/usr/sbin/sliplogin#-ийг тусгай хэрэглэгчийн бүрхүүл болгон ашигладаг тусгай SLIP нэвтрэх ID-аар нэвтэрдэг. `sliplogin` програм нь тусгай хэрэглэгчийн хувьд таарах мөрийг олохын тулд [.filename]#/etc/sliphome/slip.hosts# файлыг гүйлгэн үздэг бөгөөд хэрэв олсон бол цуваа шугамыг байгаа SLIP интерфэйс уруу холбож дараа нь SLIP интерфэйсийг тохируулахын тулд [.filename]#/etc/sliphome/slip.login# бүрхүүлийн скриптийг ажиллуулдаг.

===== SLIP серверийн нэвтрэлтийн жишээ

Жишээ нь хэрэв SLIP хэрэглэгчийн ID нь `Shelmerg` байсан бол [.filename]#/etc/master.passwd# файл дахь `Shelmerg`-ийн оруулга иймэрхүү байж болох юм:

[.programlisting]
....
Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin
....

`Shelmerg` нэвтрэх үед `sliplogin` нь таарах хэрэглэгчийн ID-тай мөрийг [.filename]#/etc/sliphome/slip.hosts# файлаас хайх болно, жишээ нь [.filename]#/etc/sliphome/slip.hosts# файлд дараах мөр байж болох юм:

[.programlisting]
....
Shelmerg        dc-slip sl-helmer       0xfffffc00		  autocomp
....

`sliplogin` тушаал нь тэр таарах мөрийг олох бөгөөд цуваа шугамыг дараачийн байгаа SLIP интерфэйс уруу залгаж дараа нь [.filename]#/etc/sliphome/slip.login#-ийг иймэрхүүгээр ажиллуулна:

[.programlisting]
....
/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp
....

Хэрэв бүгд зүгээр болж өнгөрвөл [.filename]#/etc/sliphome/slip.login# нь өөрийгөө залгасан (дээрх жишээн дээр [.filename]#slip.login# уруу өгөгдсөн жагсаалтан дахь эхний параметр болох SLIP интерфэйс 0) SLIP интерфэйсийн хувьд `ifconfig` тушаалыг ажиллуулж локал IP хаяг (`dc-slip`), алсын IP хаяг (`sl-helmer`), SLIP интерфэйсийн сүлжээний баг (`0xfffffc00`) болон бусад нэмэлт тугнуудыг (`autocomp`) тохируулдаг. Хэрэв ямар нэг зүйл буруу болвол `sliplogin` нь ихэвчлэн [.filename]#/var/log/messages# уруу бүртгэх syslogd дэмон боломжоор дамжуулан боломжийн мэдээллийн чанартай мэдэгдлүүдийг ихэвчлэн бүртгэдэг. (man:syslogd[8] болон man:syslog.conf[5]-ийн гарын авлагын хуудаснуудыг үзнэ үү. [.filename]#/etc/syslog.conf#-ийг шалгаж syslogd-ийн юу бүртгэдэг болон хаана бүртгэдгийг харна уу).

==== Цөмийн тохиргоо

FreeBSD-ийн анхдагч цөм ([.filename]#GENERIC#) нь SLIP (man:sl[4]) дэмжлэгтэй цуг ирдэг; тухайлан өөрчилсөн цөмийн хувьд бол та өөрийн цөмийн тохиргооны файлдаа дараах мөрийг нэмэх хэрэгтэй:

[.programlisting]
....
device   sl
....

Анхдагчаар таны FreeBSD машин пакетуудыг урагш дамжуулахгүй байх болно. Хэрэв та өөрийн SLIP серверийг чиглүүлэгч маягаар ашиглахыг хүсвэл [.filename]#/etc/rc.conf# файлыг засварлах хэрэгтэй болох бөгөөд `gateway_enable` хувьсагчийн тохиргоог `YES` болгож өөрчлөх хэрэгтэй. Ингэж зааж өгснөөр чиглүүлэлтийн тохиргоог дахин ачаалсны дараа ч тогтмол байлгадаг.

Тохиргоог даруй идэвхтэй болгохын тулд та `root` хэрэглэгчээр дараах тушаалыг ажиллуулж болно:

[source,shell]
....
# service routing start
....

FreeBSD-ийн цөмийг тохируулах талаар бичсэн crossref:kernelconfig[kernelconfig,FreeBSD цөмийг тохируулах нь]-с өөрийн цөмийг дахин тохируулах талаар лавлана уу.

==== Sliplogin тохиргоо

Урьд нь дурдаж байсны дагуу [.filename]#/usr/sbin/sliplogin# файлын тохиргооны хэсэг болох гурван файл [.filename]#/etc/sliphome# санд байдаг (`sliplogin`-ий талаар мэдээллийг man:sliplogin[8] гарын авлагын хуудаснаас үзнэ үү). Эдгээрт SLIP хэрэглэгчид болон тэдгээрийн холбоотой IP хаягуудыг тодорхойлдог [.filename]#slip.hosts# файл, SLIP интерфэйсийг ихэвчлэн тохируулдаг [.filename]#slip.login# файл, болон (нэмэлт) цуваа холболт төгссөн үед [.filename]#slip.login#-ий нөлөөллүүдийг буцаадаг [.filename]#slip.logout# файл ордог.

===== [.filename]#slip.hosts# тохиргоо

[.filename]#/etc/sliphome/slip.hosts# нь өөр хоорондоо зайгаар тусгаарлагдсан хамгийн багаар бодоход дөрвөн хэсгээс тогтох мөрүүдээс тогддог:

* SLIP хэрэглэгчийн нэвтрэх ID
* SLIP холбоосын локал хаяг (SLIP серверийн хувьд локал)
* SLIP холбоосын алсын хаяг
* Сүлжээний баг

Локал болон алсын хаягууд нь хостын нэрс ( [.filename]#/etc/nsswitch.conf# файлд заасан таны тодорхойлолтуудаас хамаарч [.filename]#/etc/hosts# файлаар юм уу эсвэл домэйн нэрний үйлчилгээгээр IP болон танигддаг) байж болох бөгөөд сүлжээний баг нь [.filename]#/etc/networks#-аас хийгдэх хайлтаар танигдах нэр байж болно. Жишээ систем дээр [.filename]#/etc/sliphome/slip.hosts# нь иймэрхүү харагдана:

[.programlisting]
....
#
# login local-addr      remote-addr     mask            opt1    opt2
#                                               (normal,compress,noicmp)
#
Shelmerg  dc-slip       sl-helmerg      0xfffffc00      autocomp
....

Мөрийн төгсгөлд нэг буюу хэд хэд тохируулгууд байна:

* `normal` - толгойн шахалт байхгүй
* `compress` - толгойнуудыг шахна
* `autocomp` - алсын тал толгойнуудыг шахахыг зөвшөөрөх бол хийнэ
* `noicmp` - ICMP пакетуудыг хаана (таны урсгалыг дүүргэхийн оронд "ping" пакетууд хаягдах болно)

Таны SLIP холбоосуудын локал болон алсын хаягуудын сонголт та TCP/IP дэд сүлжээг тусгайлан зориулах уу эсвэл өөрийн SLIP сервер дээрээ "proxy ARP"-г (энэ нь "жинхэнэ" proxy ARP биш боловч үүнийг тайлбарлахын тулд энэ хэсэгт энэ ухагдахуун ашиглагдах болно) ашиглах уу гэдгээс хамаарна. Хэрэв та аль аргыг сонгохдоо эсвэл IP хаягуудыг хэрхэн зааж өгөхдөө эргэлзэж байгаа бол SLIP-ийн шаардлагатай зүйлс (<<slips-prereqs>>) хэсэгт дурдсан TCP/IP-ийн номнууд ба/эсвэл өөрийн IP сүлжээний удирдагчаас лавлана уу.

Та өөрийн SLIP клиентүүдийн хувьд тусдаа дэд сүлжээг ашиглах бол та өөрийн өгөгдсөн IP сүлжээний дугаараас дэд сүлжээний дугаарыг хуваарилж өөрийн SLIP клиент бүрийн IP дугааруудыг тэр дэд сүлжээнээс зааж өгөх хэрэгтэй болно. Дараа нь өөрийн хамгийн ойрын чиглүүлэгч дээр SLIP серверээрээ дамжуулан SLIP дэд сүлжээ уруу статик чиглүүлэлт тохируулах хэрэгтэй болох болов уу.

Өөрөөр, хэрэв та "proxy ARP" аргыг ашиглах бол та өөрийн SLIP клиентийн IP хаягуудыг өөрийн SLIP серверийн Ethernet дэд сүлжээнээс олгох хэрэгтэй болох бөгөөд та бас SLIP серверийн ARP хүснэгт дэх "proxy ARP" оруулгуудыг удирдахын тулд man:arp[8]-г ашиглахаар болгож өөрийн [.filename]#/etc/sliphome/slip.login# болон [.filename]#/etc/sliphome/slip.logout# скриптүүдийг тохируулах хэрэгтэй болно.

===== [.filename]#slip.login# тохиргоо

Ердийн [.filename]#/etc/sliphome/slip.login# файл иймэрхүү харагдана:

[.programlisting]
....
#!/bin/sh -
#
#       @(#)slip.login  5.1 (Berkeley) 7/1/90

#
# generic login file for a slip line.  sliplogin invokes this with
# the parameters:
#      1        2         3        4          5         6     7-n
#   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
....

Энэ [.filename]#slip.login# файл нь ердөө л тохирох SLIP интерфэйсийн хувьд `ifconfig`-г локал ба алсын хаягууд болон SLIP интерфэйсийн сүлжээний багтайгаар ажиллуулдаг.

Хэрэв та "proxy ARP" аргыг ашиглахаар шийдсэн бол (өөрийн SLIP клиентүүдийн хувьд тусдаа дэд сүлжээг ашиглахын оронд) таны [.filename]#/etc/sliphome/slip.login# файл иймэрхүү харагдах ёстой:

[.programlisting]
....
#!/bin/sh -
#
#       @(#)slip.login  5.1 (Berkeley) 7/1/90

#
# generic login file for a slip line.  sliplogin invokes this with
# the parameters:
#      1        2         3        4          5         6     7-n
#   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
# Answer ARP requests for the SLIP client with our Ethernet addr
/usr/sbin/arp -s $5 00:11:22:33:44:55 pub
....

Энэ [.filename]#slip.login# файл дахь `arp -s $5 00:11:22:33:44:55 pub` тушаал нь SLIP серверийн ARP хүснэгтэд ARP оруулгыг үүсгэдэг. Ethernet дэх өөр IP цэг SLIP клиентийн IP хаягтай ярилцахыг хүсэх үед энэ ARP оруулга нь SLIP серверийг SLIP серверийн Ethernet MAC хаягаар хариулахад хүргэдэг.

Дээрх жишээг ашиглаж байхдаа Ethernet MAC хаягийг (`00:11:22:33:44:55`) өөрийн системийн Ethernet картын MAC хаягаар солисон эсэхээ шалгаарай. Тэгэхгүй бол таны "proxy ARP" чинь мэдээж ажиллахгүй! Та өөрийн SLIP серверийн Ethernet MAC хаягийг `netstat -i` тушаалыг ажиллуулан гарсан үр дүнгээс нь харан олж болох юм; гарсан үр дүнгийн хоёр дахь мөр иймэрхүү харагдах ёстой:

[source,shell]
....
ed0   1500  <Link>0.2.c1.28.5f.4a         191923	0   129457     0   116
....

Энэ нь системийн Ethernet MAC хаяг нь `00:02:c1:28:5f:4a` гэдгийг үзүүлж байгаа юм - `netstat -i` тушаалаар өгөгдсөн Ethernet MAC хаяг дахь цэгүүд нь тодорхойлох хоёр цэгээр солигдох ёстой бөгөөд man:arp[8]-ийн хүсдэг хэлбэр уруу хаягийг хөрвүүлэхийн тулд ганц оронтой 16-тын тоо бүрийн өмнө тэг нэмэх ёстой. Ашиглалтын тухай бүрэн мэдээллийг man:arp[8] гарын авлагын хуудаснаас үзнэ үү.

[NOTE]
====
[.filename]#/etc/sliphome/slip.login# болон [.filename]#/etc/sliphome/slip.logout# файлыг үүсгэж байхдаа "execute" буюу ажиллуулах битийг (өөрөөр хэлбэл `chmod 755 /etc/sliphome/slip.login /etc/sliphome/slip.logout`) тавих ёстой, тэгэхгүй бол `sliplogin` тушаал түүнийг ажиллуулж чадахгүй байх болно.
====

===== [.filename]#slip.logout# тохиргоо

[.filename]#/etc/sliphome/slip.logout# нь заавал хатуу чангаар хэрэгтэй биш (та "proxy ARP" хийгээгүй л бол) боловч та үүнийг үүсгэхийг хүсвэл энд үндсэн [.filename]#slip.logout# скриптийн жишээ байна:

[.programlisting]
....
#!/bin/sh -
#
#       slip.logout

#
# logout file for a slip line.  sliplogin invokes this with
# the parameters:
#      1        2         3        4          5         6     7-n
#   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down
....

Хэрэв та "proxy ARP" ашиглаж байгаа бол SLIP клиентийн хувьд ARP оруулгыг устгах [.filename]#/etc/sliphome/slip.logout# файлтай байхыг хүсэж болох юм:

[.programlisting]
....
#!/bin/sh -
#
#       @(#)slip.logout

#
# logout file for a slip line.  sliplogin invokes this with
# the parameters:
#      1        2         3        4          5         6     7-n
#   slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/sbin/ifconfig sl$1 down
# Quit answering ARP requests for the SLIP client
/usr/sbin/arp -d $5
....

`arp -d $5` тушаал нь ARP оруулгыг устгаж SLIP клиент нэвтрэх үед "proxy ARP"[.filename]#slip.login# нэмэгддэг.

[.filename]#/etc/sliphome/slip.logout# файлыг үүсгэснийхээ дараа ажиллуулах битийг тавьсан эсэхээ шалгаарай (өөрөөр хэлбэл `chmod 755 /etc/sliphome/slip.logout`).

==== Чиглүүлэлтийн эргэцүүллүүд

Хэрэв та өөрийн SLIP клиентүүд болон таны бусад сүлжээний хоорондох (болон магадгүй Интернэт хоорондох) чиглүүлэлтийн пакетуудын хувьд "proxy ARP" аргыг ашиглахгүй байгаа бол өөрийн SLIP клиентүүдийн дэд сүлжээг өөрийн SLIP серверээр дамжуулан чиглүүлэхийн тулд өөрийн хамгийн ойрын анхдагч чиглүүлэгчид(үүдэд) статик чиглүүлэлтүүдийг нэмэх хэрэгтэй болж болох юм.

===== Статик чиглүүлэлтүүд

Өөрийн хамгийн ойрын чиглүүлэгчүүдэд статик чиглүүлэлтүүдийг нэмэх нь яршигтай байж болох юм (эсвэл хэрэв та тэгж хийх зөвшөөрөлгүй бол боломжгүй байх юм...). Та өөрийн байгууллагадаа олон чиглүүлэгчтэй бол Cisco болон Proteon-ий хийсэн зарим чиглүүлэгчүүд нь зөвхөн SLIP дэд сүлжээ уруу статик чиглүүлэлттэй байхаар тохируулагдсан байх шаардлагагүй байж болох бөгөөд бас аль статик чиглүүлэлтүүд нь бусад чиглүүлэгчүүдэд хэлж байгааг хэлж өгөх хэрэгтэй болох юм. Тийм болохоор статик чиглүүлэлт дээр тулгуурласан чиглүүлэлтийг ажиллуулахад зарим нэг чадамж болон алдаа олж засварлах/тааруулах чадвар хэрэгтэй болж болох юм.
