Prezentare generală și comparație a modalităților de a tonul nat la freebsd

Prezentare generală și compararea modalităților de configurare a NAT pe FreeBSD

În acest articol, aș dori să dau exemple de configurare a NAT pe FreeBSD OS și să comparăm unele dintre modalitățile care, în opinia mea, sunt cele mai des folosite.







Opțiunile luate în considerare sunt:
- Demon Natd
- IPFilter (ipnat)
- PF nat
- ng_nat
- ipfw nat (kernel nat)


NAT cu natd

Natd cere ipfw.


În centrul:
# Sprijin ipfw
opțiuni IPFIREWALL
opțiuni IPFIREWALL_VERBOSE
opțiuni «IPFIREWALL_VERBOSE_LIMIT = 100»
Pachetele #DIVERT care vin la interfața pentru NAT
opțiuni IPDIVERT

În /etc/rc.conf, adăugați
gateway_enable = "da"
sau în /etc/sysctl.conf adăugați
net.inet.ip.forwarding = 1.

De asemenea, în /etc/rc.conf adăugați:
natd_enable = "DA"
natd_interface = "em0"
natd_flags = ""

În firewall-ul adăugăm reguli pentru redirecționare:
/ sbin / ipfw adăugați redirecționarea natd ip de la 192.168.0.0/24 la orice ieșire prin em0
/ sbin / ipfw adăugați redirecționarea natd ip de la orice la 200.200.200.200 în via em0

Este descris în detaliu în Manual.

NAT cu IPFilter (ipnat)

În centrul:
opțiuni IPFILTER
opțiuni IPFILTER_LOG
sau încărcați ca modul și nu atingeți kernelul.

În /etc/rc.conf, adăugați
gateway_enable = "da"
sau în /etc/sysctl.conf adăugați
net.inet.ip.forwarding = 1.

De asemenea, în /etc/rc.conf adăugați:
ipnat_enable = "YES" # Activează ipnat
ipnat_program = "/ sbin / ipnat" # Calea către ipnat
ipnat_rules = "/ etc / ipnat.rules" # Reguli
ipnat_flags = "" # Cu ce ​​parametri începeți

Pentru conectarea la syslog.conf adăugați:
local0. * /var/log/ipmon.log
și executați utilitarul de monitorizare IPFilter - ipmon cu -Dvas
-D - începeți cu daemon
-v - detaliu
-a - urmăriți toate dispozitivele IPFilter
-prin syslog

Acest exemplu de reguli pentru Nath va arăta astfel:
harta em0 de la 192.168.0.0/24 la orice -> 200.200.200.200/32

Unele comenzi utile atunci când lucrați cu ipnat:
Reîncarcă ipnat:
/etc/rc.d/ipnat restart
Statistici generale roboți Nat:
ipnat -s
Lista regulilor active și lista sesiunilor active în prezent:
ipnat -l
Re-citiți config:
ipnat -CF -f /etc/ipnat.rules
-C - șterge tabelul de reguli.
-F - elimină intrările din tabelul de traducere.
Mai multe despre ipnat și IPFilter, în general, puteți învăța de la:
ipnat (1), ipnat (5), ipnat (8), ipf (5), ipf (8), ipfstat (8), ipftest
Mai multe detalii aici.

NAT cu pf

În centrul:
device pf # Activează firewall-ul PF OpenBSD pentru pachetele de pachete
device pflog # Suport pentru jurnale pf

În /etc/rc.conf, adăugați
gateway_enable = "da"
sau în /etc/sysctl.conf adăugați






net.inet.ip.forwarding = 1.

De asemenea, în /etc/rc.conf adăugați:
pf_enable = "DA"
pf_rules = "/ etc / pf.conf"
pf_program = "/ sbin / pfctl"
pf_flags = ""
pflog_enable = "DA"
pflog_logfile = "/ var / log / pf.log"
pflog_program = "/ sbin / pflogd"
pflog_flags = ""

În /etc/pf.conf:
nat pe em0 de la 192.168.0.0/24 la orice -> (em0)

NAT cu ng_nat

În centrul:
opțiuni NETGRAPH
opțiuni NETGRAPH_IPFW
opțiuni LIBALIAS
opțiuni NETGRAPH_NAT
... și alte opțiuni pentru un non-graf, dacă este necesar

Sau încărcați modulele:
/ sbin / kldload / boot / kernel / ng_ipfw.ko
/ sbin / kldload / boot / kernel / ng_nat.ko

Crearea nodurilor NAT:
ngctl mkpeer ipfw: nat 60 out
Nume ngctl ipfw: 60 nat
ngctl conectați ipfw: nat: 61 in
ngctl msg ntct: setaliasaddr 200.200.200.200
În ipfw adăugăm linii pentru redirecționarea traficului la nodul creat:
/ sbin / ipfw adăugați netgraph 61 toate de la orice la 200.200.200.200 în via em0
/ sbin / ipfw adăugați netgraph 60 toate de la 192.168.0.0/24 la orice prin em0
mai departe
sysctl net.inet.ip.fw.one_pass = 0

Toate scrise pentru a fi executate ca script și expediate la /usr/local/etc/rc.d cu drepturi de pornire pentru pornire.


NAT cu ipfw nat

Sprijin pentru ipfw nat a apărut de la lansarea FreeBSD 7.0
În centrul:
opțiuni IPFIREWALL
opțiuni IPFIREWALL_DEFAULT_TO_ACCEPT
opțiuni IPFIREWALL_FORWARD
opțiuni IPFIREWALL_VERBOSE
opțiuni IPFIREWALL_VERBOSE_LIMIT = 50
opțiuni IPFIREWALL_NAT
opțiuni LIBALIAS

În /etc/rc.conf adăugăm
firewall_enable = "YES"
firewall_nat_enable = "DA"
firewall_type = "/ etc / firewall"
gateway_enable = "DA"

În /etc/sysctl.conf adăugați:
net.inet.ip.fw.one_pass = 1

/ sbin / ipfw adăugați nat 1 config log dacă em0 reseta same_ports
/ sbin / ipfw adăugați nat 1 ip de la 192.168.0.0/24 pentru a nu tabela (10) prin em0
/ sbin / ipfw adăugați nat 1 ip de la orice la 200.200.200.200 prin em0
În cazul în care tabelul 10 - nu trece prin nat

Unele statistici pot fi vizualizate după cum urmează:
ipfw nat 1 arată

Trebuie spus că ipfw, natd, ipf, ipnat coexistă perfect împreună. În acest caz, trebuie să vă amintiți caracteristicile filtrelor: ipfw funcționează la primul meci și ipf (fără opțiunea rapidă din regulă) - pe acesta din urmă. Ei bine, ar trebui să țineți cont mereu de ordinea trecerii pachetului prin filtre. Deci, dacă ipf-ul este compilat în kernel, indiferent de modul în care ipfw este pornit, pachetele vor trece mai întâi prin regulile ipf, iar ipfw va primi doar ceea ce lipsește. Dacă ipfw este compilat în kernel și ipf este încărcat ca un modul, atunci ipfw va folosi dreptul de primat.

Dacă luăm în considerare diferența și caracteristicile, putem observa următoarele:

natd:
- Suspiciunea devine ineficientă atunci când traficul depășește 40-50 megabiți
- Implementarea ca demon
- Dificultate de lucru pe mai multe interfețe
+ Configurare ușoară
+ Funcționalitate, flexibilitate

ipnat:
+ Configurare ușoară
+ Proximitatea cu nucleul
- Pentru sarcini foarte mari, aveți nevoie de tuning


ng_nat:
- Un cadru relativ complex
- Nu pot redirect_port
+ Implementat prin libalii în kernel
+ Consumă resurse relativ puține

Ipfw nat:
+ Viteza muncii
+ flexibilitate
+ Implementat prin libalii în kernel
UPD de la ninsoare:
- imposibilitatea, în mod normal, fără o tona de pseudonime din piscină
- statistici indistincte
+ în cele din urmă a încetat să curgă
+ spre deosebire de ceilalți, acesta poate ftr în mod activ din cutie, ceea ce vă permite să nu păstrați un număr de proxy FTP
+ Nu suferiți de boli din copilărie, cum ar fi glume cu pptp simultan prin nat

Pf nat:
+ Viteza muncii
+ Utilizarea macrocomenzilor pentru a scrie reguli
- Probleme cu smp

Nu voi marca nici una dintre opțiunile descrise mai sus, având în vedere faptul că subiectul este un pic omenesc, iar opiniile cititorilor pot să nu coincidă cu a mea. Am încercat doar să descriu exemplele de configurare și să fac o comparație între numeroasele metode de organizare a NAT în FreeBSD.







Articole similare

Trimiteți-le prietenilor: