Этого нельзя достичь, если оба компьютера не находятся в одной подсети.
Если это так, тогда вы сначала настроите сервер A в качестве "шлюза по умолчанию" для B - и аналогично, для реального шлюза необходим обратный маршрут к B через A:
- на сервере B:
to 0.0.0.0/0 via <A's IP>
- на реальном шлюзе:
to <B's IP>/32 via <A's IP>
Но если они вообще находятся в разных сетях (как вы сказали, "размещены у другого провайдера"), единственный способ использовать A в качестве шлюза - это настроить виртуальную сеть уровня 2 - что да, VPN.
(Это исключает IP "маршрутизацию источника", которая была удалена с огнем из большинства современных сетевых стеков из-за проблем безопасности.)
Если вас беспокоит конфиденциальность (трафик "протекает"), настройте сервер B таким образом, чтобы единственный маршрут по умолчанию, который он имеет, проходил через VPN - если он общается только с сервером A, тогда ему нужен только определенный "маршрут хоста" (a /32 или /128) к А. Например:
to ::/0 via <A's internal IP>
to <A's external IP>/128 via <real default gateway>