I pointed my domain name that I registered through route 53 here: Response returned by Route 53
DNS request sent to Route 53
arcadeidea.com. IN A
EDNS0 client subnet IP
24
DNS response code
NOERROR
Protocol
UDP
Response returned by Route 53
34.214.33.108
And when I try going to the elastic IP (34.214.33.108) I get the hello world html page served by a sample
arcadeidea.com’s server DNS address could not be found.
DNS_PROBE_FINISHED_NXDOMAIN
I think it may be a problem with port forwarding, as I'm forwarding 80 to 8080 which is what the sample node app was setup as a default. Not sure how to debug that though...Any thoughts?
This DNS server is not answering for this domain. Check that you have inserted the correct AWS DNS hosts on your domain registrar.
% nslookup
> server NS-1316.AWSDNS-36.ORG
Default server: NS-1316.AWSDNS-36.ORG
Address: 205.251.197.36#53
> arcadeidea.com
Server: NS-1316.AWSDNS-36.ORG
Address: 205.251.197.36#53
** server can't find arcadeidea.com: REFUSED
So what worked for me was resetting my wireless router...my other computer that was directly plugged into the modem was able to load the site after associating the IP with the domain, but not the computer that was wired to my router. I was able to verify this when I used my phone to check the site, while connected to my wireless router's network...Network admins, I understand a little more of your pain now.
Related
I am working on IOT project in which I have to change some variables(fans speed, lights, etc). So just as a starter, I created a node.js server and tried to send requests to the server through a local network using local IP as
http://localhost:7000/users=mandar?lights=OFF
or
http://192.168.43.248:7000/users=mandar?lights=OFF
and it works fine.
Now I want to do the same over the internet. So I got Computer's IP address from https://www.google.co.in/search?q=myip and tried to send a request to the following URL:
http://(IP_address):7000/users=mandar?lights=OFF
This time it keeps on loading and finally shows this site can't be loaded.
So what is the right way to connect to the server through the internet?
Thank you.
You have to do port forwarding.
The IP address you get from the google search is the out-facing IP address of your router. However, your router knows your computer by your local IP address (i.e. 192.168.x.y).
You have to configure your router to send packets coming from internet destined to port 7000(or any other port) to your computer's port 7000.
Check your router's documentation on port forwarding. Likely there is a settings page on the web interface of your router that you can do the desired port forwarding. After configuring the router, there are several tools online to test if the port forwarding is actually working. I suggest you use one of those tools to verify the configuration before testing with your project.
You also might want to check if your router has a firewall. You can add an exception to the firewall such that a specific port number is reachable from the internet.
I've got a customer where the router needs to be replaced with a Cisco router.
The current router is a linux machine with webmin installed on it.
There's a BIND DNS server with multiple zones.
There's a zone called companyname.be with entries name-ip (address records).
There's also a zone called 192.9.200 (which is the local subnet) with entries address-name (reverse address records).
This configuration can be seen below:
I'm not sure why they need this but someone at the customer's company told me that it's necessary.
In the end the goal is to be able to ping by using a name rather than an IP.
Does someone know how to configure this in Cisco IOS?
I've been searching this for a while now but all I came up with is this link: http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/257-cisco-router-dns-server.html
I tried it but this only seems to create a host table on the router itself.
That hosttable is not used by the DNS.
(Can ping to domain name from router CLI but cannot ping to a domain name from a PC with that router as default gateway.)
I've already found the answer here: https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr_dns/configuration/15-sy/dns-15-sy-book/Configuring-DNS.html#GUID-E4A67061-354E-4847-8F56-9A88446C7D30
R1#conf t
R1(config)#ip domain companyname.be
R1(config)#ip name-server 8.8.8.8
R1(config)#ip dns server
R1(config)#ip host computername1.companyname.be
And for the DHCP server to send the DNS server to DHCP clients:
R1(config)#ip dhcp pool pool_name
R1(dhcp-config)#dns-server ip_address_of_router
Now any host can ping computername1.companyname.be.
I've got a cheap openvz Ubuntu vps and i'm trying to run my own dns server on it for learning purpose.
The dns server works fine in localhost (on the vps through ssh), i can query it using dig google.com #127.0.0.1 and i get the expected result (which is not the IP of google.com but a custom one).
When i try to query the dns server from outside the vps, using the same command, I do get a reply but the IP is not what I expect (it's an actual google.com IP).
After further investigation I found out my dns server is not receiving/sending packets when the query is done from outside the vps. So the answer is sent by something else, it seems like inbound packets with destination port 53 are deviated, they do not even reach my dns server.
I tried to query my dns server, still from outside, but this time while the VPS was SHUTDOWN. Magically i got a reply from god knows who.
Changing port from 53 to 54 everything works perfectly.
The problem is i need it to use port 53.
I don't have iptables rules nor any other firewall doing something related to port 53
I also tried to query some other random vps, from different hosting providers, seems like everyone has a dns server running! Why does everyone reply?
Of course i asked technical support, that's what they said:
Hello,
Sorry but we don't do "software" technical support on VPS.
We deliver the hosting and the operating systems, customers that order VPS are their own admins, and have to know how to manage a linux server.
We don't block any port on our side.
Best regards,
Support
Mybe your dns server is bound to the loopback interface only (so it's only listening on localhost). You can check the current service ports used (udp for DNS) using netstat and filter (grep) udp port used
netstat -an | grep ":53"
Also you can test the same dns query using the nslookup command, and checking the dns server ip that answer your dns query, in the result output:
nslookup google.com [dns_server_ip]
Also test it without dns_server_ip to check if there is a default nameserver when the specified nameserver is not responding.
Problem solved, it's my ISP intercepting and replying to dns queries.
I can do dig google.com #1.2.3.4 and i get a reply :D
Who wants to know more about this:
ISP Intercepting DNS Lookups
I am trying to get my Node.js server to listen to a public IP so that I can access it on a different network than my home network.
I've purchased a domain and used a DNS host - right now I'm using No-IP and have downloaded their client to push my IP to their servers.
When I set the IP on No-IP configuration to my local IP I can use the domain name and hit my server on another computer on my network. But if I change this to my public IP and use the domain, the request hangs for about 10 seconds and then fails. I've set up port forwarding (I believe correctly) and opened inbound / outbound traffic on the port I'm listening to (not 80 right now). I even pulled my firewall completely.
I tried changing server.listen(4444) to server.listen(4444, '0.0.0.0') as I've seen all over the web. But this doesn't work.
Anyone have ideas out there? I feel like maybe my ISP is blocking it somehow? I'm fairly new to networking, so maybe I'm missing something critical?
Thanks!
server.listen(4444) should be fine. As long as you don't have multiple active network connections in your server, you don't need to specify an IP address. Port forwarding from your router (if configured correctly) will direct the request that came from to public IP address to the actual local IP address of your host.
Note that for port forwarding to work reliably, you will have to give your host a fixed private IP address (not a DHCP assigned address) so the IP address will not vary. Then, you configure port forwarding to that fixed IP address.
Then, you need to do some network debugging. From a computer outside your own network (e.g. something out on the internet), you should do a couple commands to your public DNS name:
ping yourserver.net
tracert yourserver.net
If your DNS entry is not working, ping should tell you immediately that it didn't find yourserver.net.
If the DNS entry is working, but the IP address can't be reached, then ping will tell you that the server is unreachable. At that point, you will know you have a networking issue with connecting to your public IP address from the internet.
If ping is initially finding your server, but packets aren't flowing properly, then either the ping results or the tracert results should give you an idea where to look next.
If ping and tracert are finding your public IP and packets are flowing to/from it, but you still can't connect to it with the browser, then you either don't have the IP address set correctly (so you're not connecting to the right server) or your node.js server isn't listening appropriately or you aren't using the right ip/port in the browser that represents the actual node.js process. If you suspect this to be the case, then back up and make sure you have everything working purely on your own private network where the browser tries to connect directly to the local IP address and port. When that is working, you will know the node.js server is working appropriately and you can move back to working on the public IP.
FYI, if you tell us what the public DNS name and public IP address is, we here can do a few steps of this debugging from our computers.
It may be that your router can only forward a port to a computer on your network, but not change the port when forwarding. If that's the case, then you have these options:
Put everything on port 4444. Have your server listen to 4444, specify 4444 in the port forwarding in the router and then put 4444 in the URL like http://thecastle.ninja:4444.
Set up the port forwarding for port 80, put your server on port 80. Change the port forwarding to port 80. Change your server to listen to port 80 (if your server is Unix, you will need elevated privileges to listen to port 80 directly). You should then be able to use a URL like http://thecastle.ninja.
Set up the port forwarding for port 80, put your server on port 4444 and use ip table settings to route 80 to 4444 on your server. This allows your server to run in the less privileged 4444 port, but lets the end-user use the default port 80. I have a node.js server on a Linux Raspberry Pi configured this way. You should then be able to use a URL like http://thecastle.ninja
Run a proxy on your server that will route port 80 to port 4444. This is probably more than you need, but nginx is a popular one and it can do port forwarding on the server.
DNS is not working on my embedded device, I can do ping to 74.125.77.147, but ping to google 's ip address 209.85.231.104 works but ping google.com is not working.
embedded device runs embedded linux, It is able to get its ip from dhcp, board is connected to network via Ethernet connection.
What can be the reason?
Look at the file /etc/resolv.conf. The DHCP client should have put the nameserver's IP in there. If not, then your DHCP server may not be passing a DNS address or the client may be ignoring it?
If there's nothing in your /etc/resolv.conf then try adding the line:
nameserver dns-ip-address
Confirm that DNS resolution works by pinging google.com. Then get your DHCP server to send a DNS IP as part of it's configuration to the client.