Сижу в локальной сети 192.168.0.0/24 на компьютере с ALTLinux Master 2.4 и IPTables 1.2.11-alt3, хочу через Интернет иметь полный доступ к чужой локальной сети с такими же адресом (один компьютер у них смотрит в Интернет, на нём запущен SSH-сервер).
Настраиваю VPN-соединение по документу VPN PPP-SSH Mini-Howto ( http://tldp.org/HOWTO/ppp-ssh/ ), у себя и на SSH-сервере запускаю "route add -net 192.168.100.0 netmask 255.255.255.0 dev ppp0", потом у себя пытаюсь сделать подмену адреса сети, чтобы каждая сеть считала, будто другая имеет адрес 192.168.100.0/24:
iptables -t nat -A POSTROUTING -o ppp0 -d 192.168.100.0/24 -j NETMAP --to 192.168.0.0/24
iptables -t nat -A PREROUTING -i ppp0 -d 192.168.100.0/24 -j NETMAP --to 192.168.0.0/24
На обе команды iptables отвечает:
iptables: No chain/target/match by that name
strace показывает следующее:
...
open("/lib/iptables/libipt_NETMAP.so", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\6\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=4732, ...}) = 0
mmap2(NULL, 7744, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x124000
mmap2(0x125000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0x125000
close(3) = 0
socket(PF_INET, SOCK_RAW, IPPROTO_RAW) = 3
getsockopt(3, SOL_IP, 0x40 /* IP_??? */, "nat\0\0\0\0\0@\3114\313\202\2\0\0\206\2\0\0\0\0\0\0\224"..., [84]) = 0
getsockopt(3, SOL_IP, 0x41 /* IP_??? */, "nat\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., [656]) = 0
setsockopt(3, SOL_IP, 0x40 /* IP_??? */, "nat\0$\314&\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 876) = -1 ENOENT (No such file or directory)
write(2, "iptables: No chain/target/match "..., 45iptables: No chain/target/match by that name
В чём ошибка?