A most elegant TCP hole punching algorithm

(robertsdotpm.github.io)

30 points | by Uptrenda 3 hours ago ago

4 comments

  • EnigmaCurry an hour ago

    > Many home routers try to preserve the source port in external mappings. This is a property called “equal delta mapping” – it won’t work on all routers but for our algorithm we’re sacrificing coverage for simplicity.

    It is precisely this point that has flummoxed me when connecting my p2p wireguard config[1] with a friend that uses a pfsense router, no matter what we tried, pfsense always chooses a random source port.

    But in the simple case this blog outlines, if both ends use the same source port, this method punches through 2 firewalls effortlessly:

    [1] https://blog.rymcg.tech/blog/linux/wireguard_p2p/

    • jonathanlydall 22 minutes ago

      Does your friend setting up port forwarding on their pfSense not help your scenario?

      • EnigmaCurry 2 minutes ago

        Yes, that solves it completely. But the exercise we were trying to do was to do it without that.

  • jcalvinowens an hour ago

    If you're asking "where is the listener", you don't need one: https://datatracker.ietf.org/doc/html/rfc9293#simul_connect