Re: dns question??

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



You're a bit mixed up on the roles and nomenclature involved, let's try
to sort it out.

On 01/31/2016 11:57 AM, bruce wrote:
> Hi.
> 
> Researching dns/naming. (sortof fed!!)
> 
> Assume I have a server -rackspace/digitalocean/etc.. And I and I want
> to serve the DNS via something like cloudflare.

CloudFlare does provide authoritative DNS services, but their bread and
butter is a distributed cache layer in front of your web application.
If you're using the cache functionality, the DNS A records for your site
will point at CloudFlare, and users will mostly be served content from
the cache; the cache is transparently populated from your real server.

Authoritative DNS service works the same way regardless of the provider,
so they really only differentiate on implementation details and the
robustness of their infrastructure.  Something, somewhere, needs to be
the source of truth for example.com records.  Some providers provide
some special sauce on top, typically reporting functionality.

> The test server(s) aren't going to be webservers, they're going to be
> used to test apps..
>

You don't need the cache thing at all then.  You need a globally
verifiable way to associate foo.example.com or example.com with the
relevant servers' IP addresses.

> As far as I can tell, most of the sites say you need to already have a
> "name" from a domain name provider. That can't be right, can it!! One
> can have a dns process internal to an org, providing dns names to
> machines all over the place. Granted, those machines/names might be
> internal/private.
> 

That's right.  You must obtain a domain name from a registrar, who may
or may not also provide an authoritative DNS server for you.  You
shouldn't be surprised by the registration requirement; we can't all
start spinning up foo.google.com or foo.fedoraproject.org sites.

You're right that devices that are not public facing do not need public
DNS.  You can also choose to run a DNS resolver inside your environment
that provides authoritative name services for a domain name that's not
publicly registered; it's routine for ActiveDirectory or IPA deployments
to do this.  Whatever names you set up there are resolvable from the
inside, but the general internet doesn't know or care that you're using
bruce-example.com unless you do public registration and public dns too.

> So, does one need an "actual" real name for an externally facing
> server in order to process the DNS so one can do a "ssh test@xxxxxxx"
> or can you use something like "ssh test@xxxxxxxxxxxxxxx"

Right. I can't resolve foo.com unless you register a public domain name,
set up authoritative DNS servers with the registrar, and establish an A
record for foo.com with the authoritative DNS service.

If you personally are the only person that cares that foo.example.com is
at 265.17.34.2, then using letters instead of number is for your
personal convenience and you could put the info in /etc/hosts instead of
paying for domain registration and DNS.

That said, cloud providers often offer authoritative DNS services in
addition to virtual machine instances, and both are accessible through
an API.  If you want an instance to be globally name resolvable, a
typical workflow would both instantiate the server *and* set dns records
programatically, via API calls or various API clients.  \

When configuration is in code like this, you can use ie the ansible rax
module to spin up new servers, and metadata for the new servers, such as
their IP address, is available for use in subsequent steps of your
deployment process.  You could use IP addresses to set up DNS records,
or you could plug IPs or hostnames directly into configuration file
templates used in your environment.  The application doesn't care if it
makes internal API calls to beehive.example.com or 10.34.128.7, as long
as communication is possible.
> 
> At the same time.. if you do need a real/actual "domain name" for the
> externally facing box, digitalocean provides for both public/private
> networks for the linux instances. If you run a private network, would
> you then be able to create your own name for the internal instances
> that would be available to the other instances on the private
> network??
> 
 You could set up an internal authoritative nameserver that operates
inside your private network, but I think it's overkill.  If you already
own a domain name for the application, and have some externally
resolvable names, you may as well use it everywhere; if you'd prefer to
scale out configuration changes like /etc/hosts then you can do it with
orchestration tools.

You might also be interested in the ssh client "ProxyCommand" directive
for accessing hosts that are only on the private network.  You still
need something to do name resolution inside, but you can hop your ssh
connections through one of the public facing instances to access
anything inside.  This would naturally use private IPs; public DNS is
moot at this point, and you need something to authoritatively associate
names with internal IPs.

> I've tried asking IRC/support forums, etc.. but not getting any progress..
> 
> Thanks for helping me get my head around this..
> 

I'm honestly not sure what the question is!  You want DNS functionality,
but you don't want to pay for the services involved because you only
really need them *inside* your environment?  You can do that, but you
need to replicate that functionality inside your environment.  I think
you have a solid understanding of what DNS does, but I'm not sure where
you're seeing incongruity with your use case.  Unless I'm missing
something, you need to either manage a bind instance inside your
environment, or you need to manage /etc/hosts/ across the environment,
or you need to use the public DNS infrastructure everywhere.

-- Pete
-- 
users mailing list
users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
Have a question? Ask away: http://ask.fedoraproject.org



[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux