Раздача интернет-трафика без squid и iptables

Есть компьютер с двумя сетевыми интерфейсами - eth0, eth1.
На eth0 прямое подключение провайдера.
На eth1 домашняя сеть.
Возможно ли с помощью sysctl -w net.ipv4.ip_forward=1 и route add пробрасывать все пакеты из домашней сети в интернет и обратно без установки squid и iptabes, nftables?

Из домашней сети пингуется внешний интерфейс eth0. То есть, пакеты из домашней сети форвардятся через компьютер на интерфейс, где подключение провайдера. Дальше не идут. Как пробросить их дальше?
Помогите, кто знаком с ситуацией!!!

https://habr.com/post/108690/

это читали? может быть то что вам надо?

Читал. Там не то, что мне надо. Впрочем, я разобрался. Без маскарадинга никак. На шлюзе должен быть посредник, который подменяет адрес отправителя и получателя в пакете. Иначе в интернет летит пакет с адресом локальной сети. В качестве посредника и выступает iptables или squid. В связи с этим интересно, а на маршрутизаторах провайдеров какой сервис осуществляет подмену адреса из интранет в интернет и обратно? Там же тоже linux используется. Но по понятным причинам не может использоваться сервис типа iptables ввиду низкой производительности.

Маршрутизация не занимается подменой адреса – там все сети уникальны. Просто передача пакетов, используя таблицу маршрутизации – по наиболее короткому пути.

А вот домашние сети используют зарезервинованные для этих целей адреса, чаще всего 10.* и 192.168.

Вот для трансляции внутренних адресов на 1 внешний и нужны маскарадинг или просто NAT.
Если у Вас внешний адрес динамический, то надо MASQUERADE, если статический, SNAT --to-source внешний.ip.адрес (а если внутренний порт будете прокидывать внутрь, то и DNAТ), второй быстрее и менее ресурсоёмкий.

1 Like