parent
7f654d8997
commit
17426c3eeb
@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env ruby
|
||||
require "resolv"
|
||||
require_relative "lib/lxc"
|
||||
|
||||
class Resolver
|
||||
def initialize
|
||||
@stub_resolver = Resolv::DNS.new
|
||||
@cache = {}
|
||||
end
|
||||
def resolve(name, delegated_subdomain, typeclass)
|
||||
if name == "@"
|
||||
fqdn = delegated_subdomain
|
||||
else
|
||||
fqdn = "#{name}.#{delegated_subdomain}"
|
||||
end
|
||||
result = @cache[fqdn + typeclass.to_s] ||= @stub_resolver.getresource(fqdn, typeclass)
|
||||
if result == :no_record
|
||||
nil
|
||||
else
|
||||
result
|
||||
end
|
||||
rescue Resolv::ResolvError => e
|
||||
puts "warning: #{e}"
|
||||
@cache[fqdn + typeclass.to_s] = :no_record
|
||||
return nil
|
||||
end
|
||||
def a(name, delegated_subdomain)
|
||||
result = resolve(name, delegated_subdomain, Resolv::DNS::Resource::IN::A)
|
||||
return "" unless result
|
||||
"#{name} A #{result.address.to_s}\n"
|
||||
end
|
||||
def aaaa(name, delegated_subdomain)
|
||||
result = resolve(name, delegated_subdomain, Resolv::DNS::Resource::IN::AAAA)
|
||||
return "" unless result
|
||||
"#{name} AAAA #{result.address.to_s}\n"
|
||||
end
|
||||
end
|
||||
|
||||
template_path = Lxc::CONFIG_ROOT.join("templates/higgsboson.tk.zone.erb")
|
||||
template = Lxc::Template.new(template_path)
|
||||
serial = Time.new.to_i
|
||||
resolver = Resolver.new
|
||||
zones = [
|
||||
["zones/higgsboson.tk.zone", :pub],
|
||||
["zones/internal-eve.higgsboson.tk.zone", :eve],
|
||||
["zones/internal-eva.higgsboson.tk.zone", :eva],
|
||||
]
|
||||
zones.each do |zone, type|
|
||||
template.write(zone, resolver: resolver, serial: serial, type: type)
|
||||
end
|
||||
Lxc::Utils.sh("lxc-attach", "-n", "dns", "--", "rndc", "reload")
|
@ -1,5 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
/usr/bin/ip route add 172.16.0.0/12 via 172.16.75.1 proto static metric 200
|
||||
/usr/bin/ip route add 10.0.0.0/8 via 172.16.75.1 proto static metric 200
|
||||
exit 0
|
||||
ip rule add from 172.23.75.0/24 table 42
|
||||
ip route add 192.168.66.0/24 via 172.23.75.4 dev eth1 table 42
|
||||
ip route add 172.16.0.0/12 via 172.23.75.1
|
||||
ip route add 10.0.0.0/8 via 172.23.75.1
|
||||
ip route flush cache
|
||||
|
@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
cd ${LXC_ROOTFS_MOUNT}/dev
|
||||
mkdir net
|
||||
mknod net/tun c 10 200
|
||||
chmod 0666 net/tun
|
@ -0,0 +1,89 @@
|
||||
$TTL 300
|
||||
@ 3600 IN SOA ns1 admin.higgsboson.tk. (
|
||||
<%= serial %> ; serial
|
||||
7200 ; refresh
|
||||
3600 ; retry
|
||||
86400 ; expire
|
||||
3600) ; minimum
|
||||
|
||||
;; NS Records (YOU MUST CHANGE THIS)
|
||||
NS ns1
|
||||
NS ns2
|
||||
|
||||
;; MX Records
|
||||
MX 10 mail
|
||||
|
||||
;; TXT Records
|
||||
TXT "v=spf1 mx a:mail.higgsboson.tk aaaa:mail.higgsboson.tk -all"
|
||||
_adsp._domainkey TXT "dkim=all\;"
|
||||
default._domainkey TXT "v=DKIM1\; k=rsa\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDhqBgbSEMgdWYmBSBsNbI2opjEZSFuZiqnAzv2yxLYyXB0l1uL4tw9npNkC4w5cNehc87qhuuzADsSOJoFUQ+H3oWOnENcGKatQqRKzLxKLBWwUf+TnC21AKGHXD4eABZk3ahfYnlR7li3Wh/JSMsAxWmaikLj3uLHd/WN9eH4rwIDAQAB"
|
||||
_dmarc TXT "v=DMARC1\; p=none\; adkim=r\; aspf=r\; rua=mailto:admin@higgsboson.tk\; ruf=mailto:admin@higgsboson.tk\; pct=100"
|
||||
joerg._pka TXT "v=pka1\;fpr=4ABA07382AD57E6B9AA4E88DCA4106B8D7CC79FA\;uri=http://higgsboson.tk/joerg/joerg.asc"
|
||||
|
||||
;; SRV Records (Service locator)
|
||||
_xmpp-client._tcp.muc SRV 0 5 5222 jabber
|
||||
_xmpp-client._tcp SRV 0 5 5222 jabber
|
||||
_xmpp-server._tcp.muc SRV 0 5 5269 jabber
|
||||
_xmpp-server._tcp SRV 0 5 5269 jabber
|
||||
|
||||
;; CNAME Records
|
||||
*.jabber CNAME jabber
|
||||
anon CNAME jabber
|
||||
proxy CNAME jabber
|
||||
pubsub CNAME jabber
|
||||
|
||||
imap CNAME mail
|
||||
smtp CNAME mail
|
||||
|
||||
tinc1 CNAME dn42
|
||||
|
||||
archfeed CNAME arch-pkg-feed.herokuapp.com.
|
||||
githubtags CNAME github-tags-feed.herokuapp.com.
|
||||
reisekosten CNAME reisekosten.herokuapp.com.
|
||||
|
||||
;; A Records (IPv4 addresses)
|
||||
<% if type == :eve -%>
|
||||
* A 192.168.66.5
|
||||
<% else -%>
|
||||
* A 148.251.132.243
|
||||
<% end -%>
|
||||
|
||||
dn42 A 148.251.132.243
|
||||
<%= resolver.aaaa("dn42", "eve.higgsboson.tk") -%>
|
||||
|
||||
;; eve -->
|
||||
<% eve_services = %w{@ classifier eve jabber login mail ns1 web} -%>
|
||||
<% if type == :eve -%>
|
||||
<% eve_services.each do |name| -%>
|
||||
<%= resolver.a(name, "eve.higgsboson.tk") -%>
|
||||
<% end -%>
|
||||
<% else -%>
|
||||
<% eve_services.each do |name| -%>
|
||||
<%= name %> A 148.251.132.243
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
;; <-- eve
|
||||
|
||||
;; eva -->
|
||||
<% eva_services = %w{eva ns2 tinc2} -%>
|
||||
<% if type == :eva -%>
|
||||
<% eva_services.each do |name| -%>
|
||||
<%= resolver.a(name, "eva.higgsboson.tk") -%>
|
||||
<% end -%>
|
||||
<% else -%>
|
||||
<% eva_services.each do |name| -%>
|
||||
<%= name %> A 188.166.16.37
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
;; <-- eva
|
||||
|
||||
;; AAAA Records (IPv6 addresses)
|
||||
* AAAA 2a01:4f8:210:31fd:1::5
|
||||
|
||||
<% eve_services.each do |name| -%>
|
||||
<%= resolver.aaaa(name, "eve.higgsboson.tk") -%>
|
||||
<% end -%>
|
||||
|
||||
<% eva_services.each do |name| -%>
|
||||
<%= resolver.aaaa(name, "eva.higgsboson.tk") -%>
|
||||
<% end -%>
|
Loading…
Reference in new issue