В общем, ситуация такая. Есть провайдер со своей локальной сеткой. Доступ в интернет в основном происходит через NAT, но есть возможность арендовать статический внешний адрес, что я и сделал. Дома стоит системник, выполняющий функцию NAT для домашней сети. Решил я в локальную сеть выходить без NAT, и попросил провайдера выделить подсеть локальных адресов и смаршрутизировать её на внешний интерфейс системника. Дома адреса назначил из выделенного диапазона, NAT прописал в iptables чтобы работало только для внешних адресов. А вот внутри локалки трафик не маршрутизируется. Точно проблема у меня, так как пробовал трассировку по одному из выделенных адресов от друга, подключённого к этому же провайдеру - они приходят на внешний интерфейс - а дальше не проходят. Что я сделал не так? Вот правила таблицы NAT iptables:
root@anime:~# iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-N locals
-A POSTROUTING -o eth0 -j locals
-A locals -d 10.0.0.0/8 -o eth0 -j RETURN
-A locals -d 172.16.0.0/12 -o eth0 -j RETURN
-A locals -d 192.168.0.0/16 -o eth0 -j RETURN
-A locals -o eth0 -j SNAT --to-source <внешний_IP_адрес>
Таблица маршрутизации:
root@anime:~# netstat -rn
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 <IP_шлюза_провайдера> 0.0.0.0 UG 0 0 0 eth0
<адрес_подсети_белых_адресов> 0.0.0.0 255.255.255.252 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
192.168.115.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Выданная мне подсеть локальных адресов - 192.168.115.0/24