I wanted to create a Zero Configuration P2P VPN software like hamachi or tunngle. I went through a lot of websites and books and papers but It created more confusions in me. So here I am. :)
First of all, please give me some links which can tell me how to develop such a software and secondly plz tell me how this Zero Conf VPN works step by step.
Apart from that here is my doubt: I read somewhere something like this - N2N allows a person to create a VPN connection between two or more computers. For a computer to connect to another computer, an "edge" executable is required to be run on each computer. Any number of computers can be connected to each other, but for all the connections to take place, one computer needs to run the "supernode" executable. Now for the connections to take place, the computers running the "edge" first tries to connect to the computer running the "supernode", after which once the exchange of information between all the computers running the "edge" is completed through the "supernode", the "supernode" is no longer needed, and the connections between the computers running the "edge" is done directly from computer to computer without any involvement from the "supernode".
My question is how can connections be done directly between computers without any involvement from supernode? What it does basically is all edge nodes are assigned private ip address. Now 2 computers cannot communicate over internet if they have private ip addresses. Another thing if 2 nodes are behind 2 symmetrical NAT servers then how can they communicate if they are assigned private ip address?
Help me understand this VPN technique.