Normally, if 2.2.2.2:43424 goes to 5.5.5.5:80 then 5.5.5.5:80 sends information back to 2.2.2.2:43424 once the session is established. but what if
2.2.2.2:43424 wants to talk to 5.5.5.5: 62001 where 62001 is closed. My understanding about hole punching is that 2.2.2.2:43424 can contact a third party with an open port, 6.6.6.6:80 and then 6.6.6.6:80 can reply to both 2.2.2.2:43424 and 5.5.5.5: 62001 with a VERB_RENDEZVOUS instruction as described in the 15th paragraph here:
https://www.zerotier.com/blog/?p=226
But how does telling a router to do VERB_RENDEZVOUS fix anything? Why wouldnt routers do VERB_RENDEZVOUS by default when encountering any closed port? That would eliminate the need for third party servers (reducing traffic).
Or am i missing something? I thought the third party server had to spoof a reply to each. So in my example, 6.6.6.6:80 would send a 'reply' to 2.2.2.2:4342 with a spoofed source of 5.5.5.5: 62001 and also a 'reply' to 5.5.5.5: 62001 with a spoofed source of 2.2.2.2:43424.
Still, even in this scenario of hole punching, 5.5.5.5: 62001 would say, 'WTF, who is 2.2.2.2:43424? I never contacted you. Get lost' and it would drop the packet.
So, can anyone un-befuddle me?
2.2.2.2:43424 wants to talk to 5.5.5.5: 62001 where 62001 is closed. My understanding about hole punching is that 2.2.2.2:43424 can contact a third party with an open port, 6.6.6.6:80 and then 6.6.6.6:80 can reply to both 2.2.2.2:43424 and 5.5.5.5: 62001 with a VERB_RENDEZVOUS instruction as described in the 15th paragraph here:
https://www.zerotier.com/blog/?p=226
But how does telling a router to do VERB_RENDEZVOUS fix anything? Why wouldnt routers do VERB_RENDEZVOUS by default when encountering any closed port? That would eliminate the need for third party servers (reducing traffic).
Or am i missing something? I thought the third party server had to spoof a reply to each. So in my example, 6.6.6.6:80 would send a 'reply' to 2.2.2.2:4342 with a spoofed source of 5.5.5.5: 62001 and also a 'reply' to 5.5.5.5: 62001 with a spoofed source of 2.2.2.2:43424.
Still, even in this scenario of hole punching, 5.5.5.5: 62001 would say, 'WTF, who is 2.2.2.2:43424? I never contacted you. Get lost' and it would drop the packet.
So, can anyone un-befuddle me?