در پروژه‌های زیرساختی، مخصوصاً در محیط‌های Kubernetes، شبکه‌های داخلی دیتاسنتر یا سرورهای Bare-metal، مدیریت درست آدرس‌های IP اهمیت بالایی دارد. به همین دلیل، ابزاری سبک و قابل اعتماد به نام ipam را توسعه دادم.

ipam چیست؟ Link to heading

ipam (مخفف IP Address Management) یک ابزار ساده برای مدیریت محدوده‌های IP و تخصیص آدرس‌های آزاد است. برخلاف سیستم‌های پیچیده‌ی مدیریت شبکه، این ابزار با تمرکز بر سادگی، شفافیت و قابل اسکریپت شدن طراحی شده و مناسب DevOpsها و SREهایی است که درگیر اتوماسیون شبکه هستند.

ویژگی‌های کلیدی Link to heading

  • تعریف محدوده‌های IP با فرمت CIDR (مثلاً 192.168.100.0/24)
  • تخصیص اولین آدرس آزاد در یک محدوده
  • علامت‌گذاری آدرس‌ها به‌عنوان «رزرو شده» یا «استفاده‌شده»
  • رابط خط فرمان ساده و قابل استفاده در CI/CD یا Ansible
  • ذخیره‌سازی در فایل JSON برای استفاده بدون دیتابیس

موارد کاربرد Link to heading

  • تخصیص آدرس در زمان استقرار سرویس‌ها یا ماشین‌های مجازی
  • رزرو IP برای سرورهای خاص در محیط‌های bare-metal
  • بررسی اینکه یک IP در محدوده مشخص استفاده شده یا نه
  • تعامل با ابزارهای اتوماسیون مثل Ansible، Terraform یا Bash Scripts

شروع سریع Link to heading

ابتدا پروژه را کلون کنید:

git clone https://github.com/hoseinmontazer/ipam
cd ipam
go build -o ipam .

سپس محدوده IP خود را تعریف کنید و از ipam بخواهید اولین آدرس آزاد را برای شما پیدا کند:

./ipam add-pool 192.168.10.0/24
./ipam get-free-ip 192.168.10.0/24

در برخی پروژه‌های واقعی، نیازی به راه‌اندازی نرم‌افزارهای پیچیده مثل Infoblox یا NetBox نیست. گاهی فقط یک ابزار کوچک نیاز داریم که با چند دستور خط فرمان بتواند وظیفه تخصیص IP را انجام دهد — سریع، سبک و بدون وابستگی.

این پروژه متن‌باز است و خوشحال می‌شوم اگر شما هم در توسعه آن مشارکت کنید. اگر نیاز خاصی دارید یا باگ پیدا کردید، لطفاً در GitHub issue باز کنید یا Pull Request بفرستید.

📎 لینک پروژه: github.com/hoseinmontazer/ipam