added more to the draft for escaping NAT using reverse proxy servers
This commit is contained in:
@@ -17,7 +17,7 @@ The future plan would be to use a WebRTC approach to where we
|
||||
use a middle server to intansiate a direct p2p connection
|
||||
using UDP sockets with nodes behind NAT.
|
||||
|
||||
## Archtecture plan
|
||||
## Architecture plan
|
||||
The server behind NAT would use a reverse proxy server with an IPV4 address
|
||||
to be a possible way to communicate with the outside world.
|
||||
|
||||
@@ -39,6 +39,73 @@ could have certain ports already taken.
|
||||
|
||||
We are introducting a new concept of detecting reverse proxies over P2PRC.
|
||||
We call this ``` reverse_proxy_server.json ``` and ``` reverse_proxy_mapping.json```.
|
||||
The ```reverse_proxy_server.json``` file is incharge of detecting all reverse
|
||||
proxy servers and the ```reverse_proxy_mapping.json``` is incharge of logging
|
||||
all the reverse proxy server mappings talking place.
|
||||
|
||||
#### reverse_proxy_server.json
|
||||
```
|
||||
{
|
||||
"reverse_proxy_servers": [
|
||||
{
|
||||
"Server_name": <server name>,
|
||||
"Address": <remote address>,
|
||||
"Latency": <latency>
|
||||
}, ... n
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
#### reverse_proxy_mapping.json
|
||||
```
|
||||
{
|
||||
"reverse_proxy_mappings": [
|
||||
{
|
||||
"Server_name": <server name>,
|
||||
"Address": <remote address>,
|
||||
"Type": <TCP or UDP>,
|
||||
"blind_port": <port no>
|
||||
}, ... n
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Port allocation
|
||||
The function for port allocation would need certain
|
||||
modifications need to ensure that the port is not only free
|
||||
on the server but also on the on reverse proxy server.
|
||||
We are debate on this would occur as it requires
|
||||
further reading on the inner depths of [frp](https://github.com/fatedier/frp).
|
||||
The idea scenario would be that the odds a 5 or 6 digit
|
||||
taken is a low probability.
|
||||
|
||||
### How would the ip tables would look
|
||||
There would not be much change when a client looks
|
||||
at it. This only difference is that the client
|
||||
see's the address of the proxy server.
|
||||
|
||||
Ex:
|
||||
```
|
||||
{
|
||||
"ip_address": [
|
||||
{
|
||||
"ipv4": "<reverse proxy address>",
|
||||
"ipv6": "",
|
||||
"latency": 0,
|
||||
"download": 0,
|
||||
"upload": 0,
|
||||
"serverport": "<server port no>"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
If the server is using a reverse proxy then the server
|
||||
port no should be decided by P2PRC to ensure that there
|
||||
is no scenario where the port is already taken.
|
||||
|
||||
More to be written :)
|
||||
|
||||
More information email me: me AT akilan.io
|
||||
|
||||
|
||||
This draft is still underway :)
|
||||
if you are interested to contribute email me: me AT akilan.io
|
||||
|
||||
Reference in New Issue
Block a user