IPv4 to IPv6 UDP Holepunching
So I'm writing a P2P multiplayer game. Server establishes connections (UDP) to each player and then gets the players to connect with each other directly (using the UDP Holepunching technique).
Then I tested at my parents house and wham - stopped working.
The reason is because my parents router is not IPv6 compatible.
Question
Is it possible to do UDP Holepunching between users that have different ip protocols?
Aka
User A:
Behind router that has IPv4 address (can't send UDP messages to IPv6).
User B:
Has IPv6 address. Can send UDP messages to both IPv4 and IPv6 addresses.
Or is this sort of setup doomed to fail?
udp ipv6 p2p ipv4
|
show 2 more comments
So I'm writing a P2P multiplayer game. Server establishes connections (UDP) to each player and then gets the players to connect with each other directly (using the UDP Holepunching technique).
Then I tested at my parents house and wham - stopped working.
The reason is because my parents router is not IPv6 compatible.
Question
Is it possible to do UDP Holepunching between users that have different ip protocols?
Aka
User A:
Behind router that has IPv4 address (can't send UDP messages to IPv6).
User B:
Has IPv6 address. Can send UDP messages to both IPv4 and IPv6 addresses.
Or is this sort of setup doomed to fail?
udp ipv6 p2p ipv4
IPv4 and IPv6 are completely separate, incompatible protocols. Hosts can run dual-stack (both IPv4 and IPv6), but IPv4 and IPv6 cannot directly communicate.
– Ron Maupin
Nov 14 '18 at 1:48
@RonMaupin - Right, I understand that. My cell phone seems to have both an IPv4 address and IPv6 address (as the server can accept connections from either protocol). But my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses.
– Leif
Nov 14 '18 at 2:00
"my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses." That would be correct. You would need something else (a kludge) that can translate, but IPv4-only devices cannot directly communicate with IPv6-only devices, and vice versa. We are near the end of 2018, and devices should be dual-stacked to use either protocol.
– Ron Maupin
Nov 14 '18 at 2:04
@RonMaupin - thanks for the feedback. The lack of information on IPv4/IPv6 UDP Holepunching on the internet is not a good sign. I've yet to find any good resources yet.
– Leif
Nov 14 '18 at 2:35
@RonMaupin - I've isolated the root of the problem. My cell phone (game client) has both an IPv6 and IPv4 address (supplied by the cell provider). When I send a udp packet to an IPv4 address, the cell provider acts as a router and gives me a port. However, unlike normal routers, it randomly changes the port anytime I send a udp packet to a different IPv4 address. I discovered this by running 2 servers and connecting to both of them, the IPv4 address is the same, but the port changes (even though my local udp port is the same for both messages). Need to slop together a work around now.
– Leif
Nov 14 '18 at 4:53
|
show 2 more comments
So I'm writing a P2P multiplayer game. Server establishes connections (UDP) to each player and then gets the players to connect with each other directly (using the UDP Holepunching technique).
Then I tested at my parents house and wham - stopped working.
The reason is because my parents router is not IPv6 compatible.
Question
Is it possible to do UDP Holepunching between users that have different ip protocols?
Aka
User A:
Behind router that has IPv4 address (can't send UDP messages to IPv6).
User B:
Has IPv6 address. Can send UDP messages to both IPv4 and IPv6 addresses.
Or is this sort of setup doomed to fail?
udp ipv6 p2p ipv4
So I'm writing a P2P multiplayer game. Server establishes connections (UDP) to each player and then gets the players to connect with each other directly (using the UDP Holepunching technique).
Then I tested at my parents house and wham - stopped working.
The reason is because my parents router is not IPv6 compatible.
Question
Is it possible to do UDP Holepunching between users that have different ip protocols?
Aka
User A:
Behind router that has IPv4 address (can't send UDP messages to IPv6).
User B:
Has IPv6 address. Can send UDP messages to both IPv4 and IPv6 addresses.
Or is this sort of setup doomed to fail?
udp ipv6 p2p ipv4
udp ipv6 p2p ipv4
asked Nov 14 '18 at 1:43
LeifLeif
3716
3716
IPv4 and IPv6 are completely separate, incompatible protocols. Hosts can run dual-stack (both IPv4 and IPv6), but IPv4 and IPv6 cannot directly communicate.
– Ron Maupin
Nov 14 '18 at 1:48
@RonMaupin - Right, I understand that. My cell phone seems to have both an IPv4 address and IPv6 address (as the server can accept connections from either protocol). But my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses.
– Leif
Nov 14 '18 at 2:00
"my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses." That would be correct. You would need something else (a kludge) that can translate, but IPv4-only devices cannot directly communicate with IPv6-only devices, and vice versa. We are near the end of 2018, and devices should be dual-stacked to use either protocol.
– Ron Maupin
Nov 14 '18 at 2:04
@RonMaupin - thanks for the feedback. The lack of information on IPv4/IPv6 UDP Holepunching on the internet is not a good sign. I've yet to find any good resources yet.
– Leif
Nov 14 '18 at 2:35
@RonMaupin - I've isolated the root of the problem. My cell phone (game client) has both an IPv6 and IPv4 address (supplied by the cell provider). When I send a udp packet to an IPv4 address, the cell provider acts as a router and gives me a port. However, unlike normal routers, it randomly changes the port anytime I send a udp packet to a different IPv4 address. I discovered this by running 2 servers and connecting to both of them, the IPv4 address is the same, but the port changes (even though my local udp port is the same for both messages). Need to slop together a work around now.
– Leif
Nov 14 '18 at 4:53
|
show 2 more comments
IPv4 and IPv6 are completely separate, incompatible protocols. Hosts can run dual-stack (both IPv4 and IPv6), but IPv4 and IPv6 cannot directly communicate.
– Ron Maupin
Nov 14 '18 at 1:48
@RonMaupin - Right, I understand that. My cell phone seems to have both an IPv4 address and IPv6 address (as the server can accept connections from either protocol). But my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses.
– Leif
Nov 14 '18 at 2:00
"my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses." That would be correct. You would need something else (a kludge) that can translate, but IPv4-only devices cannot directly communicate with IPv6-only devices, and vice versa. We are near the end of 2018, and devices should be dual-stacked to use either protocol.
– Ron Maupin
Nov 14 '18 at 2:04
@RonMaupin - thanks for the feedback. The lack of information on IPv4/IPv6 UDP Holepunching on the internet is not a good sign. I've yet to find any good resources yet.
– Leif
Nov 14 '18 at 2:35
@RonMaupin - I've isolated the root of the problem. My cell phone (game client) has both an IPv6 and IPv4 address (supplied by the cell provider). When I send a udp packet to an IPv4 address, the cell provider acts as a router and gives me a port. However, unlike normal routers, it randomly changes the port anytime I send a udp packet to a different IPv4 address. I discovered this by running 2 servers and connecting to both of them, the IPv4 address is the same, but the port changes (even though my local udp port is the same for both messages). Need to slop together a work around now.
– Leif
Nov 14 '18 at 4:53
IPv4 and IPv6 are completely separate, incompatible protocols. Hosts can run dual-stack (both IPv4 and IPv6), but IPv4 and IPv6 cannot directly communicate.
– Ron Maupin
Nov 14 '18 at 1:48
IPv4 and IPv6 are completely separate, incompatible protocols. Hosts can run dual-stack (both IPv4 and IPv6), but IPv4 and IPv6 cannot directly communicate.
– Ron Maupin
Nov 14 '18 at 1:48
@RonMaupin - Right, I understand that. My cell phone seems to have both an IPv4 address and IPv6 address (as the server can accept connections from either protocol). But my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses.
– Leif
Nov 14 '18 at 2:00
@RonMaupin - Right, I understand that. My cell phone seems to have both an IPv4 address and IPv6 address (as the server can accept connections from either protocol). But my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses.
– Leif
Nov 14 '18 at 2:00
"my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses." That would be correct. You would need something else (a kludge) that can translate, but IPv4-only devices cannot directly communicate with IPv6-only devices, and vice versa. We are near the end of 2018, and devices should be dual-stacked to use either protocol.
– Ron Maupin
Nov 14 '18 at 2:04
"my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses." That would be correct. You would need something else (a kludge) that can translate, but IPv4-only devices cannot directly communicate with IPv6-only devices, and vice versa. We are near the end of 2018, and devices should be dual-stacked to use either protocol.
– Ron Maupin
Nov 14 '18 at 2:04
@RonMaupin - thanks for the feedback. The lack of information on IPv4/IPv6 UDP Holepunching on the internet is not a good sign. I've yet to find any good resources yet.
– Leif
Nov 14 '18 at 2:35
@RonMaupin - thanks for the feedback. The lack of information on IPv4/IPv6 UDP Holepunching on the internet is not a good sign. I've yet to find any good resources yet.
– Leif
Nov 14 '18 at 2:35
@RonMaupin - I've isolated the root of the problem. My cell phone (game client) has both an IPv6 and IPv4 address (supplied by the cell provider). When I send a udp packet to an IPv4 address, the cell provider acts as a router and gives me a port. However, unlike normal routers, it randomly changes the port anytime I send a udp packet to a different IPv4 address. I discovered this by running 2 servers and connecting to both of them, the IPv4 address is the same, but the port changes (even though my local udp port is the same for both messages). Need to slop together a work around now.
– Leif
Nov 14 '18 at 4:53
@RonMaupin - I've isolated the root of the problem. My cell phone (game client) has both an IPv6 and IPv4 address (supplied by the cell provider). When I send a udp packet to an IPv4 address, the cell provider acts as a router and gives me a port. However, unlike normal routers, it randomly changes the port anytime I send a udp packet to a different IPv4 address. I discovered this by running 2 servers and connecting to both of them, the IPv4 address is the same, but the port changes (even though my local udp port is the same for both messages). Need to slop together a work around now.
– Leif
Nov 14 '18 at 4:53
|
show 2 more comments
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53291993%2fipv4-to-ipv6-udp-holepunching%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53291993%2fipv4-to-ipv6-udp-holepunching%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
IPv4 and IPv6 are completely separate, incompatible protocols. Hosts can run dual-stack (both IPv4 and IPv6), but IPv4 and IPv6 cannot directly communicate.
– Ron Maupin
Nov 14 '18 at 1:48
@RonMaupin - Right, I understand that. My cell phone seems to have both an IPv4 address and IPv6 address (as the server can accept connections from either protocol). But my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses.
– Leif
Nov 14 '18 at 2:00
"my Mac only has an IPv4 address under this router, and can't send UDP datagrams to IPv6 addresses." That would be correct. You would need something else (a kludge) that can translate, but IPv4-only devices cannot directly communicate with IPv6-only devices, and vice versa. We are near the end of 2018, and devices should be dual-stacked to use either protocol.
– Ron Maupin
Nov 14 '18 at 2:04
@RonMaupin - thanks for the feedback. The lack of information on IPv4/IPv6 UDP Holepunching on the internet is not a good sign. I've yet to find any good resources yet.
– Leif
Nov 14 '18 at 2:35
@RonMaupin - I've isolated the root of the problem. My cell phone (game client) has both an IPv6 and IPv4 address (supplied by the cell provider). When I send a udp packet to an IPv4 address, the cell provider acts as a router and gives me a port. However, unlike normal routers, it randomly changes the port anytime I send a udp packet to a different IPv4 address. I discovered this by running 2 servers and connecting to both of them, the IPv4 address is the same, but the port changes (even though my local udp port is the same for both messages). Need to slop together a work around now.
– Leif
Nov 14 '18 at 4:53