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.14-с үзэж болно.

Цөмийн 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 мөр нь ALTQSMP-тай хамт ажиллах боломжтой болгоно. SMP системийн хувьд энэ боломжийг заавал идэвхжүүлэх хэрэгтэй.

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

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