LoginSignup
5
4

More than 5 years have passed since last update.

NetAddr で CIDR を統合・分割する

Posted at

netaddr という gem がありまして、色々便利なのですが AWSer 的にも便利です。

使い方も超簡単なのでワンライナーで紹介。

統合

なんといっても Security Group 1つあたりのルール個数制限(最大50)のやりくりで苦労してる人に朗報です。 /32/31, /30 になるだけでだいぶ減らせるはず。

ruby -r netaddr -e 'puts NetAddr.merge(%w(192.168.0.1/32 192.168.0.2/32 192.168.0.3/32 192.168.0.4/32 192.168.0.5/32 192.168.0.6/32 192.168.0.7/32 192.168.0.8/32 192.168.0.9/32))'
192.168.0.1/32
192.168.0.2/31
192.168.0.4/30
192.168.0.8/31
# 9つのレンジが4つまで統合された

分割

/8, /16, /24, /32 にしか対応していない AWS WAF の IP での制限 を使うときに /27 くらいのレンジを /32 にバラすのに便利でしょう。

ruby -r netaddr -e 'puts NetAddr::CIDR.create("192.168.0.0/29").enumerate'
192.168.0.0
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
192.168.0.6
192.168.0.7
5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4