Masquerade setting for LXC container

  • با راه اندازی یک کانتینر در درون 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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *