NM передает conf-файл, чтобы dnsmasq не загружал файл конфигурации по умолчанию.
Однако обратите внимание:
--conf-dir=/etc/NetworkManager/dnsmasq.d
Вполне возможно замаскировать или SNAT устройство, чей IP-адрес не маршрутизируется во внешний мир. И нахождение в сетевом пространстве имён или нет не имеет значения.
Вы забыли сообщить нам, что именно вы пробовали, но имейте в виду, что SNAT и MASQUERADE работают только в таблице POSTROUTING (, а DNAT работает только в таблице PREROUTING ), факт, который хорошо задокументирован, и что вы не можете не упомянуть явно в командах iptable
.
Это означает, что SNAT будет выполняться как последний шаг перед тем, как пакет покинет интерфейс, а DNAT будет выполнен как очень ранний шаг для пакетов, входящих в интерфейс извне.
Таким образом, обычная установка заключается в том, что маршрутизатор (хост или пространство имен )транслирует IP-адреса, поступающие с одной стороны, ко всему, что находится на другой стороне:
+---------------+
| |
masq'ed IP --<--| eth0 eth1 |--<-- original IP
10.0.0.99 | | 10.0.0.1
+---------------+
Host or Namespace
и вам нужен соответствующий DNAT для входящих соединений, поэтому:
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.1/32 -j SNAT --to 10.0.0.99
iptables -t nat -A PREROUTING -i eth0 -d 10.0.0.99/32 -j DNAT --to 10.0.0.1
Вы не указали, какие именно IP-адреса вы хотите замаскировать под какие IP-адреса, но если ваше основное пространство имен действует как такой маршрутизатор, и вы хотите замаскировать «RouteableNS», то есть 10.5.1.2
, для внешнего мира, тогда это можно сделать, используя исходящий IF вашего основного пространства имен.