На лаптопе 172.28.0.2 через iodine, который на сервере 172.28.0.1. На сервере есть внешний айпи 1.1.1.1, поднят маскарадинг. Когда на лаптопе ip r a default via 172.28.0.1, через него ходит трафик до всех интернетов кроме самого 1.1.1.1. Что я сделал не так? Нат сделан как-то так:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Первый вопрос после настроки NAT: «А почему обратно не подключается?»
@l29ah Адреса в линуксе принадлежат всей системе сразу, пакет на 1.1.1.1 передаётся слушающему приложению независимо от того, на какой интерфейс он пришёл. Сервер видит, что адрес клиента в локалке и шлёт ответ с интерфейса в ней. Клиент ждал ответ с 1.1.1.1, а приходит ответ с 172.28.0.1, и он его отбрасывает.
Настройка NAT состоит не из одного всем известного действия, а из трёх:
— маскарадинг из частной сети в глобальную;
— правильная обработка пакетов из частной сети на внешний(-е) адрес(а) при обращении к сервисам внутри частной сети;
— правильная обработка пакетов из частной сети на внешний(-е) адрес(а) при обращении к сервисам самого маршрутизатора.
Точно помню, что в каком-то популярном мануале по iptables всё это пошагово рассматривалось, и, само собой, найти его не могу никак. В любом случае, ответ нагугливается легко: http://serverfault.com/questions/55611/loopback-to-forwarded-public-ip-address-from-local-network-hairpin-nat
@l29ah Не вижу никакой «второй сети».
@l29ah https://www.frozentux.net/iptables-tutorial/chunkyhtml/x4033.html — спрятано в описание DNAT, хрен найдёшь. В SNAT симметрично.