Module: Landrush::Cap::Linux::RedirectDns

Defined in:
lib/landrush/cap/guest/linux/redirect_dns.rb

Class Method Summary collapse

Class Method Details

._redirect_dns_rule(protocol, original_server, target_server, target_port) ⇒ Object



17
18
19
# File 'lib/landrush/cap/guest/linux/redirect_dns.rb', line 17

def self._redirect_dns_rule(protocol, original_server, target_server, target_port)
  "OUTPUT -t nat -p #{protocol} -d #{original_server} --dport 53 -j DNAT --to-destination #{target_server}:#{target_port}"
end

.redirect_dns(machine, target = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/landrush/cap/guest/linux/redirect_dns.rb', line 5

def self.redirect_dns(machine, target = {})
  dns_servers = machine.guest.capability(:configured_dns_servers)
  %w(tcp udp).each do |proto|
    dns_servers.each do |dns_server|
      machine.guest.capability(
        :add_iptables_rule,
        _redirect_dns_rule(proto, dns_server, target.fetch(:host), target.fetch(:port))
      )
    end
  end
end