Как сохранить IP адрес клиента в локальной сети при запросе через внешний интерфейс?
Как я понимаю, сделать это можно, только если отправлять запрос на HTTP сервер, минуя внешний интерфейс.Правильно понимаете.

как это сделать без внутреннего DNS сервера?Используйте файл HOSTS вашего роутера, или компьютера.
Добавьте туда запись вида  vash_domain.com 192.168.1.200  и ходите по имени.
Клиент с адресом 192.168.1.200, находясь в одной локальной сети с этим сервером, делает запрос через внешний интерфейс
Это кривота - клиенты из локальной сети не должны ходить к локальным ресурсам по внешнему адресу.

В целом - для проброса IP-адреса за НАТ используют специальные заголовки а-ля X-Real-IP.