Page MenuHomePhabricator

Support reverse dns for public labs IPs
Closed, ResolvedPublic

Related Objects

Event Timeline

Andrew raised the priority of this task from to Needs Triage.
Andrew updated the task description. (Show Details)
Andrew added projects: Cloud-VPS, Cloud-Services.
Andrew added subscribers: Aklapper, Andrew.
chasemp added a subscriber: chasemp.

Here's what I propose, to be added to labs dnsrecursor in a manner similar to labsaliaser (actually, maybe part of labsaliaser?). All projects should have existing $project.wmflabs.org DNS zones.
For every $instance in every $project with a floating IP $IP:

  • $IP IN PTR instance-$instance.$project.wmflabs.org
  • instance-$instance.$project.wmflabs.org IN A $IP

We'll also need to insert entries at the bottom of templates/155.80.208.in-addr.arpa to delegate these records to labs DNS servers so they can be updated automatically.

Change 299503 had a related patch set uploaded (by Alex Monk):
dnsrecursor labsaliaser: Set up instance-$instance.$project.wmflabs.org domains for every instance with a public IP

https://gerrit.wikimedia.org/r/299503

Change 299513 had a related patch set uploaded (by Alex Monk):
Delegate 208.80.155.128/25 (labs instances) PTR records to labs-ns* so they can be managed automatically

https://gerrit.wikimedia.org/r/299513

Change 299503 abandoned by Alex Monk:
dnsrecursor labsaliaser: Set up instance-$instance.$project.wmflabs.org domains for every instance with a public IP

Reason:
Unfortunately won't actually work because this needs to be on the authoritative server, not the recursor... Which doesn't seem to support lua hooks. So I'll have to write a script to manage the data in Designate I guess.

https://gerrit.wikimedia.org/r/299503

So I have a WIP script coming along to do this, but there's a blocker: Designate stores the in-addr.arpa zone under the 'noauth-project' account... Which isn't accessible through Keystone-authenticated requests that the python API uses (designate-sink usually deals with this zone). @Andrew, I think you hit the REST API directly instead when you "curl things directly into designate"?

The above is no longer the problem, now there's some designate internal errors happening when I try to create domains under a new 128-25.155.80.208.in-addr.arpa. domain... see labtestservices2001:/var/log/designate/designate-pool-manager.log

Change 300331 had a related patch set uploaded (by Alex Monk):
[WIP/POC/POS] Puppetise script to manage labs floating IP PTR records

https://gerrit.wikimedia.org/r/300331

Change 300331 merged by Andrew Bogott:
Puppetise script to manage labs floating IP PTR records

https://gerrit.wikimedia.org/r/300331

Change 299513 merged by Andrew Bogott:
Delegate 208.80.155.128/25 (labs instances) PTR records to labs-ns* so they can be managed automatically

https://gerrit.wikimedia.org/r/299513

  • labs-morebots (tools.more@instance-tools-exec-1216.tools.wmflabs.org) has joined

^ that used to show an IP :)

This script sets up instance-$instance.$project.wmflabs.org records where possible, primarily for the benefit of cases where you have an instance with a public IP, but no domain pointing at it. It also helps to identify what instance is running what domain though.

I say "where possible" because it relies upon the project having control of the $project.wmflabs.org domain. In some projects (53 of 220 total labs projects = approximately 24% of labs projects actually), this is not the case - these projects will see 'instance-' records in PTRs but they will not resolve.

The following would currently exist but are in projects without full control of $project.wmflabs.org and therefore are missing:
instance-cvn-app4.cvn.wmflabs.org.
instance-cvn-app5.cvn.wmflabs.org.
instance-wm-bot.bots.wmflabs.org.
instance-google-api-proxy-02.google-api-proxy.wmflabs.org.
instance-huggle.huggle.wmflabs.org.
instance-wikisource-dev.wikisource-dev.wmflabs.org.
instance-utrs-primary.utrs.wmflabs.org.
instance-wikistream-web.wikistream.wmflabs.org.
instance-yandex-proxy01.yandex-proxy.wmflabs.org.

And the following other projects are without full control of $project.wmflabs.org and therefore won't be able to get such records either, though do not currently have any AFAIK:
redirects
mediawiki-verp
phlogiston
structured-wikiquote
cyberbot
discourse
analytics
pagemigration
petscan
wikispy
piwik
ores-staging
servermon
planet
git
authmanager
commtech
integration
fastcci
wikistats
reading-web-staging
graphite
commonsarchive
mwv-apt
cvresearch
wpx
shinken
quarry
striker
nginx
phragile
xtools
social-tools
wikidata-topicmaps
pubsubhubbub
embed-sandbox
reportcard
safesandbox
dumps
wikidata-metrics
extdist
openocr
orgcharts
paws
ores

These are blocked on T131367: Proxy corner case: proxy name foo.wmflabs.org == domain name foo.wmflabs.org