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