Бүлэг 28. PPP болон SLIP | FreeBSD Documentation Portal

# Бүлэг 28. PPP болон SLIP

This translation may be out of date. To help with the translations please access the FreeBSD translations instance.

## 28.1. Ерөнхий агуулга

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 нь гаднах ертөнцтэй холбогдохдоо tun төхөөрөмжийг ашигладаг бол цөмийн PPP ppp төхөөрөмжийг ашигладаг.

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

## 28.2. Хэрэглэгчийн PPP ашиглах

### 28.2.1. Хэрэглэгчийн PPP

#### 28.2.1.1. Таамаглалууд

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

- PPP ашиглан таны холбогдох Интернэтийн үйлчилгээ үзүүлэгчээс (ISP) өгсөн бүртгэл.

- Модем эсвэл өөр төхөөрөмж таны системд холбогдсон байгаа бөгөөд тэр нь танд өөрийн ISP-тай холбогдохыг зөвшөөрөхөөр зөв тохируулагдсан байгаа.

- Таны ISP-ийн хандах dial-up дугаар(ууд).

- Таны нэвтрэх нэр болон нууц үг. (ердийн UNIX® загварын нэвтрэлт болон нууц үгийн хослол юм уу эсвэл PAP эсвэл CHAP нэвтрэлт болон нууц үгийн хослол).

- Нэг буюу хэд хэдэн нэрийн серверүүдийн IP хаяг. Хэвийн үед үүнд зориулан ашиглахаар хоёр IP хаягийг таны ISP танд өгдөг. Хэрэв тэд танд ядаж ганцыг өгөөгүй бол та `enable dns` тушаалыг ppp.conf файлд ашиглавал ppp нэрийн серверүүдийг танд тохируулж өгөх болно. Энэ боломж нь DNS-тай тохиролцоог дэмждэг таны ISP-ийн PPP шийдлээс хамаарах юм.

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

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

  Энэ IP дугаар нь ppp-ээр `HISADDR` гэгдэнэ.

- Таны ашиглах ёстой сүлжээний баг. Хэрэв таны ISP үүнийг өгөөгүй бол та аюулгүйгээр `255.255.255.255` гэж ашиглаж болно.

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

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

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

#### 28.2.1.2. Автомат PPP тохиргоо

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

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

##### PPP болон статик IP хаягууд

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

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

    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

  Параметрүүдийг бүртгэл хийхийг идэвхжүүлнэ. Тохиргоо хангалттайгаар ажиллаж байгаа үед бүртгэлийн файлын их хэмжээнээс сэргийлэхийн тулд энэ мөрийг:

      set log phase tun

  гэж болгох ёстой.

Мөр 3

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

Мөр 4

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

Мөр 5

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

Мөр 6 & 7

  Залгах мөр. Хэрэглэгчийн PPP нь chat(8) програмын адил хүлээгээд илгээх зарчмыг ашигладаг. Энэ хэлний боломжуудын тухай мэдээллийг гарын авлагын хуудаснаас лавлана уу.

  Энэ тушаал нь уншигдахад хялбар байх зорилгоор дараагийн мөрөнд үргэлжилж байгааг анзаараарай. Хэрэв мөрийн сүүлийн тэмдэгт `\` байвал ppp.conf файл дахь ямар ч тушаал ийм байж болох юм.

Мөр 8

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

Мөр 9

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

Мөр 10

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

Мөр 11

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

Мөр 12

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

  Хэрэв та утасны дугаар дээр зай ашиглахаар бол утасны дугаарыг хаалтанд (`"`) хийх ёстой. Ингэхгүй бол энэ нь энгийн боловч баригдашгүй алдаанд хүргэж болох юм.

Мөр 13 & 14

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

Мөр 15

  Хэрэв та PAP эсвэл CHAP ашиглаж байгаа бол нэвтрэлт энэ үед байхгүй байх бөгөөд энэ мөр нь тайлбар болгогдох юм уу эсвэл арилгагдсан байх ёстой. Илүү дэлгэрэнгүй мэдээллийг PAP болон CHAP нэвтрэлт танилт холбоосоос үзнэ үү.

  Нэвтрэлтийн мөр нь залгах мөр шиг чалчихтай төсөөтэй зарчимтай байдаг. Энэ жишээн дээр нэвтрэх сесс нь доор дурдсантай адил үйлчилгээний хувьд уг мөр ажиллаж байна:

      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` гэж ашиглаарай. Хэрэв та "таасан" хаягийг ашиглах хэрэгтэй бол PPP болон динамик IP хаягууд хэсэгт зориулсан заавруудын дагуу /etc/ppp/ppp.linkup файлдаа оруулга үүсгэсэн эсэхээ шалгаарай. Хэрэв энэ мөрийг орхивол `ppp` нь `-auto` горимд ажиллаж чадахгүй.

Мөр 18

  Өөрийн ISP-ийн гарц уруу анхдагч чиглүүлэлтийг нэмнэ. `HISADDR` тусгай үгийг мөр 17 дээр заасан гарцын хаягаар сольдог. Энэ мөр нь 17-р мөрийн дараа байх нь чухал бөгөөд тэгэхгүй бол `HISADDR` нь эхлэн тохируулагдаж амжихгүй байх юм.

  Хэрэв та ppp-г `-auto` горимд ажиллуулахыг хүсэхгүй бол энэ мөрийг ppp.linkup файлд шилжүүлэх ёстой.

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

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

##### PPP болон динамик IP хаягууд

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

    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` горимд ажиллахгүй байгаа бол /etc/ppp/ppp.linkup файлд оруулга үүсгэх хэрэгтэй болно. ppp.linkup нь холболт тогтсоны дараа ашиглагддаг. Энэ үед `ppp` нь интерфэйсийн хаягуудыг олгосон байх бөгөөд одоо чиглүүлэлтийн хүснэгтийн оруулгуудыг нэмэх боломжтой болсон байх болно:

    1     provider:
    2      add default HISADDR

Мөр 1

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

Мөр 2

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

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

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

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

    gateway_enable="YES"

##### Аль getty?

getty(8) ашиглан dial-up буюу гадагш залгах үйлчилгээнүүдийг идэвхжүүлэх тухай сайн тайлбарыг Dial-up буюу гадагш залгах үйлчилгээнүүдэд зориулж FreeBSD-г тохируулах хэсэг өгдөг.

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

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

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

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

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

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

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

    allow users fred mary

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

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

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

    #!/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

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

    # ln -s ppp-shell /etc/ppp/ppp-dialup

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

    pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup

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

    -r--r--r--   1 root     wheel           0 May 27 02:23 .hushlogin
    -r--r--r--   1 root     wheel           0 May 27 02:22 .rhosts

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

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

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

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

    # 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`-ийн бүрхүүл /etc/ppp/ppp-mary байх ёстой).

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

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

    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

| Догол үүсгэх нь чухал юм.

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

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

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

    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

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

    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

##### `mgetty` болон AutoPPP

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

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

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

    /AutoPPP/ -     -		      /etc/ppp/ppp-pap-dialup

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

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

    #!/bin/sh
    exec /usr/sbin/ppp -direct pap$IDENT

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

    pap:
      enable pap
      set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
      enable proxy

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

    enable passwdauth

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

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

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

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

    enable msext
    set ns 203.14.100.1 203.14.100.2
    set nbns 203.14.100.5

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

    accept dns
    set dns 203.14.100.1 203.14.100.2
    set nbns 203.14.100.5

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

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

##### PAP болон CHAP нэвтрэлт шалгалт

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

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

PPP болон статик IP хаягууд эсвэл PPP болон динамик IP хаягууд хэсгүүдийн хувьд дараах өөрчлөлтүүдийг хийх ёстой:

    13      set authname MyUserName
    14      set authkey MyPassword
    15      set login

Мөр 13

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

Мөр 14

  Энэ мөр нь таны PAP/CHAP нууц үгийг заана. Та MyPassword-д зөв утгыг оруулах хэрэгтэй болно. Та дараах шиг нэмэлт мөр нэмэхийг хүсэх юм уу:

      16      accept PAP

  эсвэл

      16      accept CHAP

  гэж болно. Ингэснээр үүнийг зориуд тодорхой болгох юм, гэхдээ PAP болон CHAP-ийг хоюуланг анхдагчаар хүлээн авдаг.

Мөр 15

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

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

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

    set server /var/run/ppp-tun%d DiagnosticPassword 0177

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

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

#### 28.2.1.3. PPP-ийн Network Address Translation буюу Сүлжээний Хаягийн Хөрвүүлэлт боломжийг ашиглах нь

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

    nat enable yes

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

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

    nat port tcp 10.0.0.2:ftp ftp
    nat port tcp 10.0.0.2:http http

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

    nat deny_incoming yes

#### 28.2.1.4. Системийн сүүлийн тохиргоо

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

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

    hostname="foo.example.com"

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

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

    network_interfaces="lo0 tun0"
    ifconfig_tun0=

| `ifconfig_tun0` хувьсагч хоосон байх ёстой бөгөөд /etc/start_if.tun0 гэж нэрлэгдсэн файлыг үүсгэх ёстой. Энэ файл нь дараах мөрийг агуулсан байх ёстой:
    ppp -auto mysystem
Энэ скрипт нь сүлжээ тохируулах үед таны ppp дэмонг автомат горимд эхлүүлэн ажилладаг. Хэрэв та энэ машин гарц болж байгаа LAN-тай бол `-alias` сонголтыг ашиглахыг хүсэж болох юм. Илүү дэлгэрэнгүй мэдээллийг гарын авлагын хуудаснаас лавлана уу.

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

    router_enable="NO"

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

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

    sendmail_flags="-bd"

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

    # /usr/sbin/sendmail -q

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

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

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

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

    # ppp

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

    # ppp -auto provider

#### 28.2.1.5. Дүгнэлт

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

Клиент тал:

1. Таны цөмд tun төхөөрөмж бүтээгдсэн эсэхийг шалгана.

2. /dev санд tunN төхөөрөмжийн файл байгаа эсэхийг шалгана.

3. /etc/ppp/ppp.conf файлд оруулга үүсгэнэ. pmdemand жишээ нь ихэнх ISP-уудын хувьд хангалттай байх ёстой.

4. Хэрэв та динамик IP хаягтай бол /etc/ppp/ppp.linkup файлд оруулга үүсгээрэй.

5. Өөрийн /etc/rc.conf файлыг шинэчилнэ.

6. Хэрэв танд хэрэгцээгээр залгах шаардлага байгаа бол start_if.tun0 скрипт үүсгээрэй.

Сервер тал:

1. Таны цөмд tun төхөөрөмж бүтээгдсэн эсэхийг шалгана.

2. /dev санд tunN төхөөрөмжийн файл байгаа эсэхийг шалгана.

3. /etc/passwd файлд (vipw(8) програмыг ашиглан) оруулга үүсгэнэ.

4. Энэ хэрэглэгчдийн гэрийн санд `ppp -direct direct-server` юм уу эсвэл үүнтэй адилыг ажиллуулах хувийн тохиргоог (profile) үүсгэнэ.

5. /etc/ppp/ppp.conf файлд оруулга үүсгэнэ. direct-server жишээ хангалттай байх ёстой.

6. /etc/ppp/ppp.linkup файлд оруулга үүсгэнэ.

7. Өөрийн /etc/rc.conf файлыг шинэчилнэ.

## 28.3. Цөмийн PPP-г ашиглах

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

### 28.3.1. Цөмийн PPP тохируулах

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

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

1. "Клиент" маягаар - та өөрийн машиныг гаднах ертөнц уруу PPP цуваа холболтоор эсвэл модемийн шугамаар холбохыг хүсдэг.

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

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

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

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

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

    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

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

1. Алсын хост уруу Kermit (эсвэл өөр бусад модемийн програм) ашиглан залгаж өөрийн хэрэглэгчийн нэр болон нууц үгийг (эсвэл алсын хост дээр PPP-г идэвхжүүлэхэд шаардлагатай тэр зүйлийг) оруулна.

2. Kermit-с гарна (шугамыг таслалгүйгээр).

3. Доор дурдсаныг оруулна:

       # /usr/sbin/pppd /dev/tty01 19200

   Тохирох хурд болон төхөөрөмжийн нэрийг ашиглахаа мартуузай.

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

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

    #!/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

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

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

    #!/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` ажиллаж байгаа эсэхийг шалгахын тулд /usr/etc/ppp/ppptest-г ажиллуулна. Энэ нь иймэрхүү харагдах ёстой:

    #!/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

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

    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` холболтыг хийхэд хангалттай байдаг.

/etc/ppp/options:

    /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

/etc/ppp/login.chat.script:

| Дараах нь нэг мөрөнд байх ёстой.

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

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

    # pppd

### 28.3.3. `pppd`-г сервер маягаар ашиглах

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

    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

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

    #!/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

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

    #!/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 скрипт нь (/etc/ppp/kermit.ans) таны модем дээр автомат хариулагчийг нээх/хаах болно. Энэ нь иймэрхүү харагдах ёстой:

    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

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

    ;
    ; 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:

## 28.4. PPP холболтуудын алдааг олж засварлах

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

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

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

    device   uart

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

    # dmesg | grep uart

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

### 28.4.2. Гараар холбогдох нь

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

    # ppp

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

    ppp ON example> set device /dev/cuau1

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

    ppp ON example> set speed 115200

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

    ppp ON example> enable dns

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

    ppp ON example> term

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

    deflink: Entering terminal mode on /dev/cuau1
    type '~h' for help

    at
    OK
    atdt123456789

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

    CONNECT

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

    ISP Login:myusername

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

    ISP Pass:mypassword

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

    Shell or PPP:ppp

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

    Ppp ON example>

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

    PPp ON example>

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

    PPP ON example>

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

    PPP ON example>add default HISADDR

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

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

#### 28.4.2.1. Дибаг хийх нь

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

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

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

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

    ppp ON example> set authname myusername

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

    ppp ON example> set authkey mypassword

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

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

    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 холболтондоо зориулж syslog(3)-г бүртгэл бичихээр болгож болно. Дараах:

    !ppp
    *.*     /var/log/ppp.log

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

## 28.5. Ethernet дээгүүр PPP ашиглах нь (PPPoE)

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

### 28.5.1. Цөмийг тохируулах нь

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

### 28.5.2. ppp.conf файлыг тохируулах

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

    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

### 28.5.3. ppp-г ажиллуулах

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

    # ppp -ddial name_of_service_provider

### 28.5.4. ppp-г ачаалах үед эхлүүлэх

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

    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"

### 28.5.5. PPPoE үйлчилгээний хаягийг ашиглах

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

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

Хамгийн сүүлд та Портын цуглуулгад байх Архирах Оцон шувуу PPPoE хаягт санал болгосон аргыг туршиж болох юм. Гэхдээ энэ нь таны модемийг буцаан програмчилж ажиллагаагүй болгож магадгүй болохоор үүнийг хийхээсээ өмнө дахин бодоорой. Таны үйлчилгээ үзүүлэгчийн модемтой цуг ирсэн програмыг ердөө л суулгаарай. Дараа нь програмаас System цэсд хандаарай. Таны тохиргооны нэр тэнд жагсаагдсан байх ёстой. Энэ нь ихэвчлэн ISP гэж байдаг.

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

    set device PPPoE:xl1:ISP

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

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

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

- Рено Валдурагийн DSL дээр FreeBSD-ээр арай хямд өргөн зурвас ашиглах (Cheaper Broadband with FreeBSD on DSL).

### 28.5.6. 3Com® HomeConnect™ ADSL Хос Холбоос Модемтой PPPoE

Энэ модем нь RFC 2516 (Л. Мамакос, К. Лидл, Ж. Эвартс, Д. Каррел, Д. Симоне, болон Р. Вийлэр нарын бичсэн PPP-г Ethernet дээгүүр (PPPoE) дамжуулах арга) стандартыг дагадаггүй. Харин Ethernet хүрээнүүдийн хувьд пакетийн төрлийн өөр кодуудыг ашигладаг. Хэрэв та үүнийг PPPoE-ийн тодорхойлолтыг мөрдөх ёстой гэж бодож байгаа бол 3Com уруу гомдоллоно уу.

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

    net.graph.nonstandard_pppoe=1

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

    # sysctl net.graph.nonstandard_pppoe=1

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

## 28.6. ATM дээгүүр PPP (PPPoA) ашиглах

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

### 28.6.1. Alcatel SpeedTouch™ USB-тэй PPPoA-г ашиглах нь

Энэ төхөөрөмжийн PPPoA дэмжлэг нь FreeBSD-д порт хэлбэрээр байдаг. Учир нь үүний firmware Alcatel-ийн лицензийн гэрээгээр түгээгддэг бөгөөд FreeBSD-ийн үндсэн системтэй цуг чөлөөтэй түгээгдэж болдоггүй.

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

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

    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 дэмонг идэвхжүүлэхийн тулд дараах мөрийг /etc/rc.conf файлд нэмнэ:

    usbd_enable="YES"

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

    ppp_enable="YES"
    ppp_mode="ddial"
    ppp_profile="adsl"

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

### 28.6.2. mpd ашиглах нь

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

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

| Энэ жишээ mpd.conf файл нь mpd 4.x хувилбартай зөвхөн ажиллана.

    default:
        load adsl

    adsl:
        new -i ng0 adsl adsl
        set bundle authname username (1)
        set bundle password password (2)
        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

1 | Таны ISP-тай холбогдон өөрийгөө таниулан нэвтрэх хэрэглэгчийн нэр.
2 | Таны ISP-тай холбогдон өөрийгөө таниулан нэвтрэх нууц үг.

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

    adsl:
        set link type pptp
        set pptp mode active
        set pptp enable originate outcall
        set pptp self 10.0.0.1 (1)
        set pptp peer 10.0.0.138 (2)

1 | Таны mpd ашиглах FreeBSD компьютерийн IP хаяг.
2 | Таны ADSL модемийн IP хаяг. Alcatel SpeedTouch™ Home-ийн хувьд энэ хаяг нь анхдагчаар `10.0.0.138` байна.

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

    # mpd -b adsl

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

    % 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-г ашиглахыг зөвлөдөг юм.

### 28.6.3. pptpclient ашиглах нь

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

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

    adsl:
     set log phase chat lcp ipcp ccp tun command
     set timeout 0
     enable dns
     set authname username (1)
     set authkey password (2)
     set ifaddr 0 0
     add default HISADDR

1 | DSL үйлчилгээ үзүүлэгчтэй холбогдох таны бүртгэлийн хэрэглэгчийн нэр.
2 | Таны бүртгэлийн нууц үг.

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

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

    # pptp address adsl

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

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

    % 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 бүртгэлийн файл /var/log/ppp.log-оос ямар нэг сэжүүр байгаа эсэхийг шалгах хэрэгтэй.

## 28.7. SLIP ашиглах

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

### 28.7.1. SLIP клиент тохируулах

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

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

| /dev/cuad0 нь COM1, /dev/cuad1 нь COM2, гэх мэт.

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

    device   sl

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

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

1. Өөрийн гэр машин, гарц болон нэрийн серверүүдийг өөрийн /etc/hosts файлд нэмнэ. Биднийх иймэрхүү харагдах болно:

       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

2. Өөрийн /etc/nsswitch.conf файлын `hosts:` хэсэгт `files` мөр нь `dns` мөрөөс өмнө байгаа эсэхийг шалгаарай. Эдгээр параметрүүдгүй бол сонин зүйлс болж магадгүй юм.

3. /etc/rc.conf файлыг засна.

   1. Дараах мөрийг засварлаж өөрийн хостын нэрийг тохируулна:

          hostname="myname.my.domain"

      Таны машины Интернэтийн бүрэн хостын нэрийг энд тавих ёстой. ..

      Дараах мөрийг өөрчилж анхдагч чиглүүлэлт:

          defaultrouter="NO"

      гэдгийг:

          defaultrouter="slip-gateway"

      болгоно.

4. доор дурдсаныг агуулсан /etc/resolv.conf файл үүсгэнэ:

       domain CS.Example.EDU
       nameserver 128.32.136.9
       nameserver 128.32.136.12

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

5. `root` болон `toor` (нууц үггүй бусад бүртгэлүүдийн) нууц үгийг тохируулна.

6. Өөрийн машиныг дахин ачаалж зөв хостын нэртэйгээр ачаалсан эсэхийг нь шалгаарай.

#### 28.7.1.2. SLIP холболт хийх нь

1. Залгаад хүлээх мөрөн дээр `slip` гэж бичээд өөрийн машины нэр болон нууц үгийг оруулна. Юу оруулах шаардлагатай нь таны орчноос хамаарна. Хэрэв та Kermit ашиглаж байгаа бол та иймэрхүү скриптийг ажиллуулахаар оролдож болно:

       # 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` гэж бичих хэрэгтэй.

   | Файлын системд хаа нэгтээ өөрийн нууц үгийг цэвэр текстээр үлдээх нь ерөнхийдөө буруу юм. Үүнийг хийх нь аз туршсан явдал юм.

2. Kermit-г тэнд нь үлдээж (та үүнийг `Ctrl`+`z` хослолоор зогсоож болно) `root`-ээр дараах тушаалыг бичнэ:

       # slattach -h -c -s 115200 /dev/modem

   Хэрэв та чиглүүлэгчийн нөгөө талд байгаа хостууд уруу `ping` хийж чадаж байвал та холбогдсон байна! Хэрэв энэ нь ажиллахгүй байгаа бол `slattach` тушаалд `-c` нэмэлт өгөгдлийн оронд `-a`-г тавьж оролдоод үзээрэй.

#### 28.7.1.3. Холболтыг хэрхэн зогсоох вэ

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

    # kill -INT `cat /var/run/slattach.modem.pid`

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

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

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

#### 28.7.1.4. Алдааг олж засварлах

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

- `slattach` тушаалд `-c` эсвэл `-a` тохируулгуудыг ашиглахгүй байх (энэ нь мөхлийн байх ёсгүй, гэхдээ энэ нь зарим хэрэглэгчдийн асуудлуудыг шийддэг гэж бичсэн байдаг.)

- `sl0`-ийн оронд `s10` тохируулгыг ашиглах (зарим фонтууд дээр ялгааг нь олж харах хэцүү байж болох юм).

- Өөрийн интерфэйсийн төлөвийг харахын тулд `ifconfig sl0` тушаалыг ажиллуулж үзээрэй. Жишээ нь та иймэрхүү дүн харж болох юм:

      # ifconfig sl0
      sl0: flags=10<POINTOPOINT>
              inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00

- Хэрэв та ping(8) тушаалаас `no route to host` мэдэгдлүүдийг авах юм бол таны чиглүүлэлтийн хүснэгтэд асуудал байж болзошгүй юм. Тухайн үед байгаа чиглүүлэлтүүдийг үзүүлэхийн тулд `netstat -r` тушаалыг ашиглаж болно :

      # 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)

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

### 28.7.2. SLIP сервер тохируулах нь

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

#### 28.7.2.1. Шаардлагатай зүйлс

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

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

#### 28.7.2.2. Түргэн дүгнэлт

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

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

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

    Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin

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

    Shelmerg        dc-slip sl-helmer       0xfffffc00		  autocomp

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

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

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

#### 28.7.2.3. Цөмийн тохиргоо

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

    device   sl

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

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

    # service routing start

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

#### 28.7.2.4. Sliplogin тохиргоо

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

##### slip.hosts тохиргоо

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

- SLIP хэрэглэгчийн нэвтрэх ID

- SLIP холбоосын локал хаяг (SLIP серверийн хувьд локал)

- SLIP холбоосын алсын хаяг

- Сүлжээний баг

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

    #
    # 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-ийн шаардлагатай зүйлс (Шаардлагатай зүйлс) хэсэгт дурдсан TCP/IP-ийн номнууд ба/эсвэл өөрийн IP сүлжээний удирдагчаас лавлана уу.

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

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

##### slip.login тохиргоо

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

    #!/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

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

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

    #!/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

Энэ 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` тушаалыг ажиллуулан гарсан үр дүнгээс нь харан олж болох юм; гарсан үр дүнгийн хоёр дахь мөр иймэрхүү харагдах ёстой:

    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 хаяг дахь цэгүүд нь тодорхойлох хоёр цэгээр солигдох ёстой бөгөөд arp(8)-ийн хүсдэг хэлбэр уруу хаягийг хөрвүүлэхийн тулд ганц оронтой 16-тын тоо бүрийн өмнө тэг нэмэх ёстой. Ашиглалтын тухай бүрэн мэдээллийг arp(8) гарын авлагын хуудаснаас үзнэ үү.

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

##### slip.logout тохиргоо

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

    #!/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 оруулгыг устгах /etc/sliphome/slip.logout файлтай байхыг хүсэж болох юм:

    #!/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"slip.login нэмэгддэг.

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

#### 28.7.2.5. Чиглүүлэлтийн эргэцүүллүүд

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

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

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

Last modified on: 2026 оны зургаадугаар сарын 18 by Alexander Ziaee

Prev
Home
Next