"ssh -D" can make a socks port at local machine, which pass the traffic to the remote, then to other places.
"ssh -L port:host:hostport", listen port at local machine, pass the traffic to "host:hostport" from the point of view of the remote machine.
"SSH -R port:host:hostport" is the counterpart of "ssh -L", which listen port at remote machine, and pass the traffic to "host:hostport" from the point of view of the local machine.
But what is the counterpart of "ssh -D", i.e., how to open a socks port at remote machine, which will pass the traffic to the local, then to other places?