Currently I have two subnets in the 10.0.0.0/16, which are 10.40.20.0/24, let's say that's A and 10.32.80.0/24, B.
My PC is in the subnet A and what I'm going to do is use Steam Link, Oculus Air Link or something like that to access my PC from subnet B. Or in another word, make the remote PC in subnet A have a local ip address in subnet B.
I don't know how Steam Link works exactly, but I thought it has something to do with ARP. Before I'm here I have done some tries and research. I tried putting a RPI in subnet B and used iptables to forward all it's ports to my PC in A like below.
iptables -A INPUT -p tcp -m multiport --dports 1025:64000 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp -m tcp --dport 1025:50000 -j DNAT --to-destination 10.40.20.100:1025-64000
iptables -A FORWARD -d 10.40.20.100/32 -i br-lan -p tcp -m tcp --dport 1025:64000 -j ACCEPT
It turned out it doesn't work, Steam Link can't find my PC as expected.
My next try is using VPN like PPTP to make the VR headset have an IP in subnet A. However the VPN server could only work when the VPN clients' "virtual IP addresses" are diffetent from server's local subnet. For this case, the VPN clients must be in any subnet other than 10.40.20.0/24.
The topology in the subnet A and B could be changed freely, for example adding a new gateway on the top of the VR headset is OK, as long as it could work.
Thanks in advanced.