Tools for working with IP routes and rules
require 'net/ip'
Net::IP.routes.flush(:cache)
Net::IP.routes.each do |route|
puts route
end
Net::IP.routes.find_gateways.each do |gateway|
puts gateway.via
end
gws = ["192.168.0.1", "192.168.0.2"].collect do |ip|
Net::IP::Route.new(:via => ip, :dev => "eth0", :weight => 1)
end
Net::IP.routes.update_gateways(gws)
require 'net/ip'
Net::IP.rules.each do |rule|
puts rule
end
rule = Net::IP::Rule.new(:to => '1.1.1.1', :table => 'custom')
Net::IP.rules.add(rule)