Sorry that I might be wrong, yet I have some impressions from QEMU that SLIRP has the ability to do both ppp server and NAT stunt the same time.
The situation is, I'm under a very limited network environment, yet the organization which I work for provides a "jump server" which could reach out the Internet.
The sshd_config on that jump server prohibits tunneling, and thus the "ssh -D" socks server trick won't cut.
Currently, I have fired up a ssh connection and let pppd on my local machine to do its PPP tasks with the ssh-allocated pty :
sudo pppd nodetach noproxyarp noauth pty \ "ssh -t jump_server /path/to/slirp -P " \ netmask 255.255.255.0 connect-delay 5000
Then, I add a route rule to test the connection :
sudo ip route add <some_telnet_server> dev ppp0 telnet some_telnet_server
However, the telnet fails. After tearing down the connection, SLIRP log said it received some packets yet it barely transmitted packets. So I guess it's a configuration issue ?
Yet I'm struggling to understand how to configure SLIRP to NAT my connection. (It seems that QEMU modifies slirp very heavily ?)
Is there any cheat sheet for such purpose ? I have searched and read several articles, yet none of them mentions the details of NAT/routing configuration.