ASP.net4 sql connection issues - asp.net

Okay, some background first:
I have 2 servers at home, 1 of them runs the Webserver, while the other one is pretty much a data server.
Both of these servers have 2 Gigabit lan ports.
Lan port 1 on both servers are directly connected to the internet.
while Lan port 2 is connecting the two of them together.
(See Schematic: Schematic http://www.swan10.nl/stuff/schematic.png
This works all perfectly fine when I turn the internet connection off on one of these machines. However when I turn the internet connection on on both of these machines the Web server tries to obtain it's data through the internet connection, but I don't allow the SQL server to be seen over the internet.
Now I was wondering if it is possible to tell the Web server which connection to use, because I need both of these devices to have an independent internet access. So telling the Webserver to use connection 1 (internet) for just the internet connections, and use Connection 2 (link) solely to connect to the SQL server/Data Server
Both computers have their own static public WAN IP they are directly connected to the internet, they are also directly connected to each other, there is no router in-between them. So far i only managed to make it work when i made the SQL server visible to the internet which is not what I want.
Any help regarding this would be very much appreciated, thank you in advance.
ADD:
I have already tried various answers posted on the internet, I also tried and see if the SQL server is actually listening which it is, it just uses the wrong connection if both are connected independantly to the internet and to each other.

Make sure you use IP instead of Server Name in the connection string when using mentioned set up.
Thank you "Paige Cook" for refreshing my memory, and pretty much supplying me with my own answer!

Related

How to setup SQL Server Express on local network with wireless router

Guidance on how to connect to SQL Server 2012 needed.
I am on Windows 10 Home Edition
I have set up SQL Server Express to allow remote connections on my database machine to serve up data to three client machines.
Firewall has been set for ports - check
Allowed mixed mode logins - check
Setup IPs through SQL Configuration Manager - check
The server is something like 192.168.1.40,1433 and I can login successfully through SQL Server Express on my client machines. I had a long LAN cable running along the floor which is not optimal. So, I went to the store and bought a router so that I could connect wirelessly but have limited experience in networking.
After, installation of the router I can no longer connect to SQL Server. This makes sense since there is another piece of hardware in the chain.
After doing an IP config on the command line I see that the IPV4 address has changed. I assume I am not picking up the private IP address of the router rather than the modem that I was initially connected to.
Should I be port forwarding?
What are my options?
I explored what I thought may be reasonable leads to get this working.
First, I tried to create a virtual server (I also assume this is how to port forward on my particular router). I didn't really know what to put in five fields that were given other than server name and Protocol TCP or if I was on the right track at all.
The other three fields consist of:
External Port, Internal IP, and Internal Port
If this is a reasonable solution can you let me know what to put in these fields and any changes to the SQL Server configuration or firewall might be?
Should I VPN ?
After exploring this option on google I also notice people saying, "set up a VPN is the correct way to go." However, I don't really know how to do this. The only VPNs I know of are external VPN providers. It seems that I would be setting up a VPN server if I am not corrected(maybe on the server computer) and connecting via my client machines.
Any clarification or direction would be greatly appreciated. I am sure I have missed the mark on many things here but still would like to make ground.

Connect to my localhost from another computer NOT in the same network

I have a real IP. Or so I think, basically how I tested this is under windows in cmd I pinged my IP address and I got packages back, so that must mean it's real. However when I start my xampp and go to my IP address in the browser I get
Unable to connect
Firefox can't establish a connection to the server
I tried looking up other questions but they didn't help cause all answers I found were suggesting LAN connection. Can you please explain to me any extra steps I need to take or link an answer that does that. Thanks!
The only way to access your localhost from other computers is over a Local Area Network (LAN); whether wired or wireless, there has to be a physical connection between the computers.
Once the computers are connected, you can access your localhost from the browser with the name of the computer on other computers:
http ://your-computer/path/to/files/
It also works on the same computer, so you can test it there.
You can find the name of your computer by going to the "Network" section in Windows Explorer.
EDIT:
If you want to access a localhost from a computer that is on another network, you have to create a web server; more or less what you would be paying for from a hosting company. Here is how you would do it:
http://arstechnica.com/gadgets/2012/11/how-to-set-up-a-safe-and-secure-web-server/

How do I monitor network connections to see what address a certain program is contacting

I made a program many years ago, that connects to a SQL Server database (port 1433), and I no longer have the code for this application, but I need to know whether it is trying to connected to the domain name exampleDomain.com or if it is connecting directly to the IP address, xxx.xxx.xxx.xxx.
I need to find this out because I want to switch hosting providers, but cannot let this application stop working, so I'm not sure if changing the IP Address of the SQL server will affect the program.
Is there a way I can tell what this program is connecting to? The raw IP Address or the domain Name?
thanks.
Use wireshark. http://www.wireshark.org/
It's free, easy to use, and very powerful.
You can monitor all traffic coming out of your PC and you can filter the traffic by type. So first I would look for any DNS communication that has MyDoman.com and then look at TCP connections.

Passive connection protocols or tunnels, how do they work

I was wondering how tools like teamviewer work. I'm not using the words server and client because I am not quite sure who is who. So I will talk about local and remote.
I have a tool installed on a remote machine behind firewalls and NAT, so only port 80 is okay for outbound connections. Now the local machine wants to connect to the remote machine. The only way I can image connection to work, is if the remote polls the local machine to check if it wants to connect, and then the remote establishes a connection to the local machine.
Teamviewer uses the same mechanism only with one entity in the middle, so the remote doesn't have to know the local in advance? So the remote always polls the entity in the internet?
Is that the way this kind of connection works? It seems quite a wast, always having to poll the local or some dealer-webserver. Especially if the connection has to work quickly, the polls must happen every second?
Am I missing something?
If someone is to scared to answer, a simple yes or no does the trick :-)
The hole punshing approach, so it's a yes.

Identify machines behind a router uniquely based on ipaddress

Some background first. I have a .net client agent installed on each of the machines in the lan. They are interacting with my central server [website] also on the same lan.
It is important for my website to figure out which of the machines can talk to each other. For example, machines of one subnet cannot directly talk to machines of another subnet without configuring the routers and such. But machines in the same subnet should be able to talk to each other directly.
The problem I am facing is when the lan setup is like in Figure 1.
Because Comp1, Comp2 and Comp3 are behind a router, they have got the ipaddress 192.168.1.2 till 192.168.1.4. My client agent on these machines report the same ipaddress back to the server. However, machines Comp4, Comp5 also have the same ipaddresses.
Thus, as far as my server is concerned, there are 2 machines with the same ipaddress. Not just that, because the subnet mask is 255.255.255.0 for all machines, my server is fooled into thinking that Comp1 can directly talk to Comp5, which is not possible.
So, how do I solve this? What do I need to change in my client or in my server, so that I can support this scenario. These two are the only things in my control.
EDIT: Seems that the network diagram
is over simplified and there could be
multiple router/subnet levels. My
original answer will not handle this
scenario. Also, with the restriction
of modifying only the client app or server
app and not tampering with the
routers and firewalls makes
it more difficult.
EDIT2: Using 'arp -a' you can extract
the MAC address of the router. If the
client apps can manage to do this then
the puzzle is solved!
The client app knows the local machine address and passes it to the server app.
The server app knows the remote address when a connection comes in. This would be machine address or a router address.
From these two values you can work out what you ask.
For example:
Server app receives connection from 10.10.10.2 with client supplying 192.168.1.2
Server app receives connection from 10.10.10.3 with client supplying 192.168.1.3
The 'remote address' distinguishes the subnets.
So, all you need to figure out is how to extract the remote address of a client connection. If you are using any of the popular web technologies for your server app then this is very easy.
One approach is for the individual client machines to determine who they can see using a broadcast message. Have each client listen on some particular UDP port, and each client broadcast its presence to whatever the local broadcast domain is. When clients can see each other in this way, they can probably also make TCP connections to each other.
If the server needs to know which clients can talk to each other, just have the clients tell the server.
If the network diagram is complicated enough I think if would be very difficuilt to find what you need.
You should also take into account that Comp1 can establish direct connection to Comp6.
The solution I can suggest is probing. Client receives list of all other clients from server and tries to establish connection to each of them. I think that would be the only way to know which clients are REALLY accessible assuming any number of routers/firewalls/NATs in the network. Doesn'r scale much for a big number of computers of course.

Resources