31.4. OpenBSD Пакет шүүгч (PF) ба ALTQ
Өмнөх | Бүлэг 31. Галт хана | Дараах

## 31.4. OpenBSD Пакет шүүгч (PF) ба ALTQ

Хянан залруулж шинэчилсэн Жон Феррел.

2003 оны 7 сард OpenBSD-н галт ханын програм болох PF FreeBSD уруу шилжиж, FreeBSD Портын Цуглуулгад орсон. 2004 онд гарсан FreeBSD 5.3 нь PF-г үндсэн системийн багцын нэг хэсэг болгон оруулсан анхны хувилбар юм. PF нь бүрэн хэмжээнд ажиллах чадвартай галт хана бөгөөд ALTQ-тай (Alternate Queuing буюу Ээлжлэн солигдох дараалал) хамтран ажиллах боломжтой. ALTQ нь Quality of Service буюу Үйлчилгээний Чанарын (QoS) боломжоор хангадаг. OpenBSD Төсөл нь PF FAQ-г хөтлөн явуулдаг. Тиймээс гарын авлагын энэ хэсэг нь FreeBSD-д хамаатай PF дээр илүү анхаарлаа хандуулахахаас гадна хэрэглээний талаар зарим нэг ерөнхий мэдээллийг өгнө. Хэрэглээний мэдээллийн талаар илүү дэлгэрэнгүйг PF FAQ-с үзнэ үү.

FreeBSD-д зориулсан PF-ийн талаар илүү дэлгэрэнгүй мэдээллийг http://pf4freebsd.love2party.net/ хаягаас үзэж болно.

### 31.4.1. Цөмийн дуудагдах PF модулиудыг ашиглах нь

PF цөмийн модулийг дуудахдаа `/etc/rc.conf` файлд дараах мөрийг нэмнэ:

pf_enable="YES"

Дараа нь модулийг дуудахдаа эхлүүлэх скриптийг ажиллуулна:

`#` `/etc/rc.d/pf start`

PF модуль нь дүрмийн тохиргооны файлаа олж чадахгүй бол дуудагдахгүйг санаарай. Анхдагч байрлал нь `/etc/pf.conf` байна. Хэрэв PF дүрмийн олонлог өөр хаа нэгтээ байгаа бол `/etc/rc.conf` файлд доор дурдсантай адил мөрийг нэмж PF дүрмийн олонлогоо тэр газраас хайхаар зааж өгч болно:

pf_rules="`/path/to/pf.conf`"

Жишээ `pf.conf` файлыг `/usr/share/examples/pf/` сангаас олж болно.

PF модулийг тушаалын мөрөөс бас дуудан ажиллуулж болно:

`#` `kldload pf.ko`

PF-д зориулсан бүртгэл хөтлөх дэмжлэгийг `pflog.ko` хангадаг бөгөөд `/etc/rc.conf` файлд дараах мөрийг нэмж дуудаж болно:

pflog_enable="YES"

Дараа нь модулийг дуудахдаа эхлүүлэх скриптийг ажиллуулна:

`#` `/etc/rc.d/pflog start`

Хэрэв танд PF-ийн өөр боломжууд хэрэгтэй бол PF-ийн дэмжлэгийг цөмд оруулан эмхэтгэх хэрэгтэй.

### 31.4.2. PF цөмийн тохиргоонууд

PF дэмжлэгийг FreeBSD цөмд оруулж эмхэтгэх нь шаардлагагүй боловч дуудагдах модульд ороогүй байдаг PF-ийн нэмэлт боломжуудын нэг бөгөөд PF-ийн ашигладаг төлвийн хүснэгтэд зарим өөрчлөлтүүдийг ил гаргадаг псевдо төхөөрөмж болох pfsync(4) гэгддэг боломжийг ашиглахын тулд та тэгж хийж өгч болох юм. Үүнийг carp(4)-тэй хослуулан ажиллагаа доголдоход тойрон гарах галт ханаыг PF ашиглан бүтээж болно. CARP-ийн талаар дэлгэрэнгүйг гарын авлагын Хэсэг 32.13, «Common Address Redundancy Protocol (CARP)»-с үзэж болно.

Цөмийн PF тохиргоонуудыг `/usr/src/sys/conf/NOTES`-с олж болох бөгөөд доор үзүүлэв:

device pf device pflog device pfsync

`device pf` тохиргоо «Packet Filter» галт ханыг (pf(4)) дэмждэг болгоно.

`device pflog` тохиргоо псевдо буюу хуурамч pflog(4) сүлжээний төхөөрөмжийг идэвхжүүлнэ. Энэ хуурамч төхөөрөмжийн тусламжтайгаар bpf(4) дескриптор уруу урсгалыг бүртгэх боломжтой. pflogd(8) дэмонг бүртгэлийг дискэн дээр хадгалахад хэрэглэнэ.

`device pfsync` тохиргоо псевдо буюу хуурамч pfsync(4) сүлжээний төхөөрөмжийг идэвхжүүлнэ. Энэ хуурамч төхөөрөмжийн тусламжтайгаар «төлвийн өөрчлөлтүүдийг» хянах боломжтой.

### 31.4.3. rc.conf боломжууд

Дараах rc.conf(5) илэрхийллүүд PF болон pflog(4)-ийг ачаалах үед тохируулна:

pf_enable="YES" # Enable PF (load module if required) pf_rules="/etc/pf.conf" # rules definition file for pf pf_flags="" # additional flags for pfctl startup pflog_enable="YES" # start pflogd(8) pflog_logfile="/var/log/pflog" # where pflogd should store the logfile pflog_flags="" # additional flags for pflogd startup

Хэрвээ энэ галт ханын цаана LAN байгаа бөгөөд LAN-д байгаа компьютерууд уруу пакет дамжуулах шаардлагатай бол эсвэл NAT ашиглах бодолтой байгаа бол дараах илэрхийлэл танд бас хэрэгтэй:

gateway_enable="YES" # Enable as LAN gateway

### 31.4.4. Шүүгч дүрмүүдийг үүсгэх нь

PF нь pf.conf(5)-с (анхдагчаар `/etc/pf.conf`) өөрийн тохиргооны дүрмүүдийг унших бөгөөд тэнд заагдсан дүрмүүд буюу тодорхойлолтуудын дагуу пакетуудыг өөрчлөх, орхих буюу эсвэл дамжуулдаг. FreeBSD суулгацад `/usr/share/examples/pf/`-д байрлах хэд хэдэн жишээ файлууд байдаг. PF-ийн дүрмийн олонлогуудын талаар бүрэн мэдээллийг PF FAQ-с лавлана уу.

### Сануулга:

PF FAQ-г үзэж байхдаа FreeBSD-ийн хувилбар бүр өөр өөр PF хувилбартай байж болохыг анхаарах хэрэгтэй. Одоогоор FreeBSD 8.`X` болон түүнээс өмнөх хувилбарууд OpenBSD 4.1-ийн нэгэн адил PF-ийн хувилбарыг ашигладаг. FreeBSD 9.`X` болон түүнээс хойшхи хувилбарууд OpenBSD 4.5-ийн нэгэн адил PF-ийн хувилбарыг ашигладаг.

FreeBSD пакет шүүгчийн захидлын жагсаалт нь PF галт ханыг тохируулж ажиллуулах талаар асуухад тохиромжтой газар юм. Асуулт асуухаасаа өмнө захидлын жагсаалтын архиваас шалгахаа мартуузай!

### 31.4.5. PF-тэй ажиллах нь

PF-ийг хянахдаа pfctl(8)-г ашиглана. Зарим нэг хэрэгтэй тушаалуудыг доор жагсаав (Бүх боломжит тохиргоонуудын талаар pfctl(8) гарын авлагын хуудаснаас лавлахаа мартуузай):

Тушаал | Зорилго
--- | ---
`pfctl `-e`` | PF-г идэвхжүүлэх
`pfctl `-d`` | PF-г болиулах
`pfctl `-F` all `-f` /etc/pf.conf` | Бүх дүрмүүдийг арилгаж (nat, шүүх, төлөв, хүснэгт, гэх мэт.) `/etc/pf.conf` файлаас дахин ачаалах
`pfctl `-s` [ rules | nat | state ]` | Шүүх дүрмүүд, nat дүрмүүд, эсвэл төлвийн хүснэгтийн талаар тайлан гаргах
`pfctl `-vnf` /etc/pf.conf` | Дүрмийн олонлогийг ачаалалгүйгээр `/etc/pf.conf`-д алдаа байгаа эсэхийг шалгах

### 31.4.6. ALTQ-г идэвхжүүлэх

ALTQ-г идэвхжүүлэх ганц арга зам бол түүний боломжуудыг FreeBSD цөмтэй хамт хөрвүүлэн эмхэтгэх юм. Мөн сүлжээний картын драйвер болгон ALTQ-г дэмждэггүй тул өөрийн тань хэрэглэж буй FreeBSD хувилбарын хувьд дэмжигддэг драйверуудын жагсаалтыг altq(4) гарын авлагын хуудаснаас үзнэ үү.

Дараах тохируулгууд ALTQ-г идэвхжүүлж нэмэлт үүргүүдийг оруулдаг.

options ALTQ options ALTQ_CBQ # Class Bases Queuing (CBQ) options ALTQ_RED # Random Early Detection (RED) options ALTQ_RIO # RED In/Out options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC) options ALTQ_PRIQ # Priority Queuing (PRIQ) options ALTQ_NOPCC # Required for SMP build

`options ALTQ` мөр ALTQ -г бүхэлд нь идэвхжүүлнэ.

`options ALTQ_CBQ` мөр Class Based Queuing буюу Ангиллаас Хамаарсан Дараалал Үүсгэх(CBQ) боломжийг идэвхжүүлнэ. CBQ нь шүүгч дүрмүүд дээр үндэслэн урсгалуудад эрэмбэ тогтоох зорилгоор зурвасын өргөнийг өөр өөр ангиллуудад болон дарааллуудад хуваах боломжийг олгоно.

`options ALTQ_RED` мөр Random Early Detection буюу Санамсаргүй Эрт Илрүүлэлт(RED)-г идэвхжүүлнэ. RED-г сүлжээний даац хэтрэхээс сэргийлэхэд хэрэглэдэг. RED дарааллын уртыг хэмжиж, түүнийг байх ёстой дээд ба доод хэмжээтэй жиших байдлаар ажилладаг. Хэрэв дараалал дээд хэмжээнээс урт болбол шинэ пакетууд орхигдох болно. Нэртэйгээ адилаар, RED нь холболтуудаас пакетийг санамсаргүйгээр орхигдуулдаг.

`options ALTQ_RIO` мөр нь Random Early Detection In and Out буюу Орох ба Гарах Санамсаргүй Эрт Илрүүлэлтийг идэвхжүүлнэ.

`options ALTQ_HFSC` мөр нь Hierarchical Fair Service Curve Packet Scheduler буюу Үе давхаргат Зохимжит Үйлчилгээний Муруйн Пакет Хуваарилагчийг идэвхжүүлнэ. HFSC талаар илүү дэлгэрэнгүй мэдээллийг дараах хаягаас үзнэ үү: http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html.

`options ALTQ_PRIQ` мөр нь Priority Queuing буюу Эрэмбэт Дараалал Үүсгэх (PRIQ)-г идэвхжүүлнэ. PRIQ нь эрэмбэ өндөртэй дараалалд байгаа урсгалыг эхэнд нэвтрүүлэх зарчмаар ажилладаг.

`options ALTQ_NOPCC` мөр нь ALTQ-г SMP-тай хамт ажиллах боломжтой болгоно. SMP системийн хувьд энэ боломжийг заавал идэвхжүүлэх хэрэгтэй.

Өмнөх | Дээш | Дараах
31.3. Галт ханын багцууд | Эхлэл | 31.5. IPFILTER (IPF) Галт хана

Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.

FreeBSD-ийн талаар <questions@FreeBSD.org> хаягтай холбоо барихаасаа өмнө баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал <doc@FreeBSD.org> хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал <admin@mnbsd.org> хаягаар цахим захидал явуулна уу.