اهداف و زنجیر های NAT
به علاوه ، دو نوع عمل NAT وجود دارد. NAT مبدا که به صورت هدف SNAT مشخص می شود ، و NAT مقصد ، که به صورت هدف DNAT مشخص می گردد. هدف SNAT برای قوانینی استفاده می شود که آدرس های مبدا را تغییر می دهند و هدف DNAT برای آنهایی است که آدرسهای مقصد را عوض می کنند.
سه زنجیر در جدول NAT توسط کرنل برای عملیات NAT استفاده می شود که عبارتند از : PREROUTING ، POSTROUTING ، و OUTPUT . PREROUTING برای قوانین NAT مقصد ( DNAT ) استفاده می شود. اینها برای بسته هایی می باشند که ترک می شوند. OUTPUT برای قوانین NAT مقصد مربوط به بسته های تولید شده محلی به کار می رود.
همانند فیلتر کردن بسته ، می توانید آدرس های مبدا ( -s ) و مقصد ( -d ) را به همراه دستگاه های ورودی ( -i ) و خروجی ( -o ) مشخص کنید. سوئیچ کردن -j یک هدف مثل MASQUERADE را مشخص می نماید. با اضافه کردن قانون MASQUERADE به زنجیره POSTROUTING ، ماسک IP را پیاده سازی می کنید :
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
برای تغییر آدرس مبدا یک بسته که سیستم شما را ترک می کند ، از قانون POSTROUTING به همراه هدف SNAT استفاده می کنید. برای هدف SNAT ؛ از سوئیچ --to-source برای مشخص کردن آدرس مبدا استفاده می نمایید :
# iptables -t nat -A POSTROUTING -o eth0 -j --to-source 192.168.0.4
برای تغییر آدرس مقصد بسته هایی که به سیستم شما می رسند ، از قانون PREROUTING به همراه هدف DNAT و سوئیچ --to-destination استفاده می کنید :
# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 192.168.0.3
مشخص کردن یک درگاه به شما اجازه می دهد تا مقصد بسته هایی را که به یک درگاه خاص می رسند تغییر دهید. در عمل ، این امکان را میسر می سازد. در مثال بعد ، هر بسته ای که به درگاه 80 برسد 0 درکاه سرویس وب ) به 10.0.0.3 منتقل می شود که در این حالت می تواند یک لیست سرویس دهنده وب را اجرا کند.
# iptables -t nat -A PREROUTING -i eth0 --dport 80 \
-j DNAT --to-destination 10.0.0.3
با هدفهای TOS و MARK می توانید بسته را خرد کنید تا مسیر یا اولویت آن را کنترل نمایید. یک هدف TOS ، نوع سرویس یک بسته را تنظیم می کند ، که اولویت را با استفاده از معیارهایی مثل normal-services ، minimize-cost ، maximize-throughput بین بقیه ، تعیین می نماید.
هدفهایی که تنها برای جدول NAT مجاز می باشند در اینجا نشان داده شده اند :
SNAT |
آدرس مبدا را تغییر می دهد، از سوئیچ --to-source برای مشخص کردن آدرس مبدا جدید استفاده کنید. |
DNAT |
آدرس مقصد را تغییر می دهد، از سوئیچ --to-destination برای مشخص کردن آدرس مقصد جدید استفاده کنید. |
REDIRECT |
یک بسته را تغییر می دهد. |
MASQUERADE |
ماسک IP |
MIRROR |
مبدا و مقصد را برعکس می کند و به فرستنده می فرستد. |
MARK |
فیلد MARK را تغییر می دهد تا مسیر پیام را کنترل کند. |