- با راه اندازی یک کانتینر در درون LXC به صورت پیشفرض یک آی پی به داخل کانتینر تخصیص داده می شود.
- طبیعی است که می توان از داخل هاست با این کانتینر ارتباط برقرار کرد. ( به عنوان مثال پینگ کرد و … )
- در صورتی که تنظیمات شبکه برای کانتینر به صورت NAT در نظر گرفته شده باشد. انگاه برای اتصال کانتینر به دنیای بیرون از هاست باید از قابلیت Masquerade استفاده کرد.
- از آنجایی که قابلیت Masquerade در سیستم های لینوکسی توسط فایروال iptables محیاست، لذا می توان آن را به سادگی پیاده سازی کرد.
- برای این منظور کافیست :
iptables -A POSTROUTING -o eth0 -j MASQUERADE
- توجه کنید که eth0 نام اینترفیس اصلی هاست می باشد. (اینترفیسی که بر روی آن آی پی مربوط به هاست سوار شده)
- برای اتصال به داخل کانتینر از محیط بیرون از هاست، می توان از قابلیت DNAT با استفاده از فایروال iptables استفاده کرد.
- به عنوان مثال هاست اصلی دارای سرویس sshd بوده و بر روی پورت ۲۲ نیز خدمات می دهد.
- کانتینر نیز دارای سرویس sshd بوده و بر روی پورت ۲۲ نیز خدمات می دهد.
- با استفاده از قابلیت DNAT می توان تعیین نمود که مثلا پورت ۲۰۲۰ هاست به پورت ۲۲ کانتینر متصل شود.
- یعنی با اتصال به آی پی هاست بر روی پورت ۲۰۲۰ ، به پورت ۲۲ کانتینر متصل شد.
- برای این منظور کافیست :
iptables -A PREROUTING -i eth0 -p tcp -m tcp --dport 2222 -j DNAT --to-destination 10.0.0.2:22
- توجه فرمایید که eth0 نام اینترفیس اصلی هاست می باشد. (اینترفیسی که بر روی آن آی پی مربوط به هاست سوار شده)
- تست شده بر روی Debian 9.x
- تست شده با LXC 2.0.7