As I heard something about IPv6 making it possible to directly connect to a machine behind a NAT without forwarding
Oh, so much unnecessary confusion. I'm sorry.
IPv6 essentially works the same as IPv4. Obviously there are some differences, like IPv6 using more bits per address.
For a while, DHCPv6 was not as developed as DHCP/IPv4. People were encouraged to use the Router Solicitation/Router Advertisements protocol instead. (I've seen this referred to as both RS and RA.) RS/RA never had much popularity on IPv4, perhaps primarily because DHCP/IPv4 was already pretty popular. With IPv6, a process called SLAAC uses RS and RA.
If you use SLAAC, some implementations require that you use /64 subnet sizes. This is a notable change from DHCP/IPv4 where numerous subnet sizes were supported, and different subnet sizes were used rather commonly.
With IPv6, an early standard specified that ISPs should give out at least /48 blocks. (Each /48 block had 2^16 /64 subnets, a.k.a. 16,384 /64 subnets.) This let people subnet. This basically eliminated the need to use NAT to help with minimizing the use of addresses, because people were getting so many addresses. This caused many people to proclaim that NAT wasn't needed.
The way to "get around the requirement to use NAT" was to set up IPv6 subnetting. However, "getting around the NAT requirement" is significantly different than "getting around NAT". It is possible to use NAT with IPv6, and have it technologically work in the exact same way that NAT with IPv4 works, with obvious differences like commonly having larger subnet sizes. The principles, though, will work the same.
this makes me suspicious that the IPv6 address I am seeing is not the IP of the router (which it normally would be in a IPv4 world), but the IPv6 address of the computer on the local network.
Yeah, that's possible. With IPv4, you can assign public IP addresses to your internal machines. This is commonly not done due to a lack of available public IPv4 addresses, but it can be set up. With IPv6, the common scenario is commonly to not have a lack of available public addresses, so this type of setup is more common with IPv6.
Still, your internal machine will have a default gateway, which is likely the router. Log into that router, and you can see routing tables.
You are using public IPv6 addresses. Private-use IPv6 addresses start with "fd" (just as private-use IPv4 addresses start with "192.168." or "172.16." through "172.31." or "10.") Addresses starting with "fe80:" are "link-local" addresses, similar to IPv4's "169.254." addresses but with some differences. (In IPv6, Seeing "fe80:" is a requirement; not seeing it is a problem. In contrast, seeing IPv4 "169.254." is often a problem.)
You might be able to find your server's address with NDP. e.g., in Microsoft Windows:
netsh interface ipv6 show neighbor
Other operating systems may use commands like ndp
or ip -6
for showing IPv6 neighbors.
1Ask your provider for support. They should have a specific answer. It is more guesswork here. Besides that they do need to feel the pain they are causing. Cutting off home users from running server applications is often done deliberately to sell more expensive business plans. Not something they should get away with w/o an outcry. – eckes – 2017-05-18T05:15:19.477