DNS technique for the path part of the domain - dns

probably there' re many answer for my problem on google, but i don' t really know how to search for.
Is there any DNS "technique" which will result a different IP for:
http://example.com/apple
and for
http://example.com/frog
? If yes, what is it? I' d appreciate some documentation.

DNS only operates on the domain and subdomain(s).
If you want to have different IPs for the different URLs, you can setup a proxy which will send the different requests to the different IPs.
Suppose example.com resolves to 192.0.2.1. All requests to example.com will come to 192.0.2.1.
Now, if you have a proxy, you can specify to redirect example.com/apple to 192.0.2.2, example.com/frog to 192.0.2.3 and so on...
Here is a link for how to do this in nginx
https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
If your really want example.com/apple to resolve to different IP than example.com/frog, you might want to consider using this as a subdomain.
So, instead of using example.com/apple, you could setup separate DNS entries for apple.example.com and frog.example.com
This way they can resolve to different IPs.

Related

How to mask a subdomain URL with CNAME record?

I need to mask the subdomain URL http://3477er.domainB.com with https://sub.domainA.com Both in different servers.
So I create the "sub" alias in domainA server pointing to https://34tter.domainB.com with a CNAME record and waited for its propagation.
I thought I should see http://3477er.domainB.com content when I type http://sub.domainA.com in browser. Instead I get the message DNS_PROBE_FINISHED_NXDOMAIN Isn't this the way a CNAME record works?
Is there any other way to achieve my subdomain masking goal?
If you are receiving a DNS_PROBE_FINISHED_NXDOMAIN error, it means one of the subdomains you listed is not resolving to an IP address. I would test both subdomains here -
https://mxtoolbox.com/DNSLookup.aspx
There are a couple important notes here though -
This will only work if the server on domainB has a binding setup for either any (wildcard) domains (usually bad idea), or a binding specifically for your domainA subdomain.
This will only hide your domainB subdomain on a very basic level, if this is what you need. So, in other words, hiding it from non-tech savvy users. It can't be relied upon if security is a concern, since someone could easily find domainB with a DNS lookup.
To truly mask the 'origin' server, you'd need to implement a proxy. This could either be done by making the requests on your domainB server itself, or by using serverless tech (such as Cloudflare Workers, AWS Lamba, etc.). However, this still won't prevent people making requests directly to domainA if they do discover it.

Put a subfolder onto a different server with CNAME

Here's the situation. Website.com is an ASP site which needs a blog that is to be Wordpress. So the website.com/blog needs to be hosted onto a php-friendly server. The company hosting the ASP site doesn't want to have anything to do with Wordpress so we have to use some of the shared hosting providers.
How do I have the Blog section placed onto an entirely different server? I've heard this is done with CNAME, but I've never used it. Most of the research I've done revolves around subdomains, but I need a subfolder mapping, and there's not much to read about putting subfolders onto different servers with a different IP and everything.
Thanks.
There are a few different options:
you can bring the traffic to your own server and then redirect to
the correct location
you can bring the traffic to your own server and then proxy it to the correct location
you can direct the traffic to the correct location either via full page or an IFRAME type mechanism
Each option has some benefits and drawbacks depending your devs knowledge level and your infrastructure. Regarding subdomains, you could use a combination approach where you, for example, use subdomain.yourdomain.com to point to a server instance (can be the same server or a totally different one) that maps the subdomain.yourdomain.com name to a specific path, usually via Host header.
A CNAME is a function in DNS that says "Whatever thing you wanted to find for this name, use the same thing for that other name instead". When you're working with web stuff the "thing" in there is nearly always an IP address.
That is, what a CNAME can do for you is to say that when a user's web browser tries to look up the IP address for website.com, it will use the IP address for someotherwebsite.com. Note the total absence of anything web-related, like subfolders, in this. CNAMEs work on whole domain names, nothing else. Since you want to serve only a part of the stuff at a particular name from another server, CNAME cannot help you. CNAME is the wrong tool for you problem. Do not taunt happy fun CNAME.
In order to serve website.com/blog from another server than website.com, you pretty much have to do some sort of reverse proxying (where the ASP site's server relays requests between the user and the Wordpress server). It's probably easier and more robust to give the Wordpress site its own name (blog.website.com or something), and redirect to that from website.com/blog, but only you can know if that's politically possible in your case.

What's best CNAME or A record for www.?

On my DNS (Amazon Route 53) I have an A name:
mydomain.com -> IP Address
For www.mydomain.com do I use another A record www.mydomain.com -> IP Address or shall I use a CNAME that redirects www.mydomain.com -> mydomain.com?
Using the "dig www.arandomwebsite.com" command in Terminal I've looked at CNAME and A records of other live sites and noticed companies do it either way.
Note my site is low traffic.
There are 2 different questions to answer here:
Q1) Is the same web server answering requests for both websites?
If yes, the CNAME is slightly easier to maintain, since there's less to update when something changes. I.e. someday you may want multiple A records for your webserver, why maintain two lists?
Q2) Do you want both websites to serve content?
Be careful with this answer, you probably want to say "NO".
If they both serve all your content, Google will penalize you! Google sees "two" web sites with the same content. Each may get half the traffic, links, etc. Visitors will be confused when searching, bookmarking, etc. The simple way to fix it is to have one website do an HTTP 301 permanent redirect to the other one. (This cannot be done at the DNS level. The easy way is to do it at the virtual hosts level.)
If you say "yes" to question #2, you will at least want all your HTML to have a canonical URL.

DNS: authorative vs. dynamic , can I have dynamic forward all requests to authorative nameservers

Ok, in a nutshell, for my own reaons, I am trying to "build" a solution that extracts my DNS from the location / company where my webserver is located. I need to be able to make DNS changes on the fly for my domains. I have nameservers set-up for the webserver, on the webserver. I basically want to know if I can point my domain registration DNS details, to lets say, a DYN.com dynamic DNS address, and have that dynamic address setup to just forward all traffic onto my nameservers on the webserver.
This way, I can change the dyndns "pointer" if you will, to any other webserver/nameservers immedietly should the need arise.
P.S. I know a dynamic address probably won't work, and If I have to go for a paid up service with DYN, thats fine, but I don't want to create all the records on DYN. I just want it to forward any requests to the actual ip of the name server on the webserver.
I.E.
Domain NS1 -> Dyn.com Record 1 (no specific domain records) -> ns1.mywebserver.com
Domain NS2 -> Dyn.com Record 2 (no specific domain records) -> ns2.mywebserver.com
Can this be acieved, if not, do you get what I am trying to do, and are there other ways of doing this?
I ideally don't want to create a dedicated linux VM somewhere to manage the DNS.
Thanks in advance.
I think my other question, posted after this one, solves this question.
BIND . Registrar says it cant find the nameserver. nslookup shows the domain is being handled by bind
Cheers

How to test CloudFlare without changing your domain's name server

How can you test CloudFlare without changing your domain's name server?
I would not want to change my domain's name server and wait hours for propagation only to find out there is a issue with the DNS settings.
Can you spoof a nameserver or something on a local hosts file?
Yes, you should be able to test before you change your name servers. Here's what to do:
Signup at https://www.cloudflare.com/sign-up and complete the signup through Step 4 when you're asked to update your name servers.
Note the two name servers you are provided which will be in the format [name].ns.cloudflare.com.
From a terminal, do a lookup to get the IP addresses your domain has been assigned. In Linux/Unix it'd be: dig #[name].ns.cloudflare.com yourdomain.example
Repeat step 3 with all the subdomains you want to check.
Update your localhost record to resolve the domain(s) to the IPs you found with the lookup.
Browse the site from the same machine where you did the localhost update and traffic should pass through CloudFlare.
While this will work for a while, after 24 hours CloudFlare's system may detect that your name servers haven't updated and, in some cases, may return an error. However, this technique should allow you basic testing before you update your name servers.
To save future users from some headache, the above answer doesn't work anymore: https://community.cloudflare.com/t/ip-on-cloudflare-nameserver-is-not-masked-despite-orange-cloud/76137
From my understanding, you now need to change your nameserver.

Resources