LINUX.ORG.RU
ФорумAdmin

маскарад без iptables


0

0

Доброго!
такая ситуация: есть старая машинка, к которой подключен ADSL-модем. назовем её роутер (Р). и есть, соответственно, клиентские машины (К).
подсетка 192.168.1.0, на Р подняты eth0 (модем) и eth1 (сеть).
при помощи iptables на Р легко делается маскарадинг такими вот командами

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

при этом на К прописываю нужный DNS и всё прекрасно бегает через Р.
а вот как такое же сделать (шлюз в интернет) без использования iptables?

★★★

зачем без iptables?

hizel ★★★★★
()

эффективней чем на iptables все равно не получится сделать. единственное замечание - если внешний айпишник роутера не меняецо от балды каждые три минуты - лучше маскарадинг заменить на -j SNAT --to-source $WAN_IP и написать скриптик, где $WAN_IP соответственно внешний интерфейс (Р). это повысит производительность "роутера"

Somewho ★★
()
Ответ на: комментарий от Somewho

спасибо, но всё же хочу узнать, можно ли иначе.
потому как собрано минимальное ядро без поддержки iptables.

sprutos ★★★
() автор топика
Ответ на: комментарий от sprutos

если линуксовый pppd поддерживает nat то можно :]

hizel ★★★★★
()
Ответ на: комментарий от sdio

>можно. http://lartc.org

уже копаю, спасибо. а пример использования для моего случая можете дать?

>если линуксовый pppd поддерживает nat то можно :]

мне не только pppoe надо расшаривать, но и локалку провайдера, которая поднимается без рррd.

sprutos ★★★
() автор топика
Ответ на: комментарий от chocholl

>попроси у провайдера пул адресов и выдай их клиентам.

это совершенно невозможно )))

уже смотрю на iproute2, от поддрежки в ядре до составления правил маршрутизации. на русском тоже есть http://www.opennet.ru/docs/RUS/LARTC/ и http://www0.opennet.ru/base/net/qos_netfilter.txt.html

sprutos ★★★
() автор топика
Ответ на: комментарий от Sylvia

>шлюз в инет без iptables называется squid )

хехе... squid это комбайн )))
мне надо по-проще

пока возился с опциями ядра, ещё кой-чего нашел. возможно, задачу можно разрешить без iproute2 ) как проверю, отпишусь

sprutos ★★★
() автор топика
Ответ на: комментарий от zgen

>можно nat без iptables - ipchains и ядро 2.2 :)

ipchains тот же iptables, только вид сбоку )

>а нафига собственно, чем iptables помешал?


ну не нужен он мне ))) зачем для такой простой фичи, как шлюз без всяких там правил и очередей, городить огород?

sprutos ★★★
() автор топика
Ответ на: комментарий от Sylvia

>спасибо, меня тоже этот вопрос с утра мучает по поводу разницы между MASQUERADE и SNAT

Забудь. В нормальных операционках есть только NAT и BI-NAT.

iZEN ★★★★★
()
Ответ на: комментарий от Sylvia

> шлюз в инет без iptables называется squid )

Вот до чего линуксячество доводит...

iZEN ★★★★★
()

выкинули нетфильтр из ядра линукс?
автор ссзб и сочуствия не вызывает.

af5 ★★★★★
()
Ответ на: комментарий от Sylvia

>шлюз в инет без iptables называется squid

шлюз в инет без iptables называется недошлюз.

af5 ★★★★★
()
Ответ на: комментарий от sprutos

Ты неправильно всю специфику понимаешь. Есть ядро, есть сетевые интерфейсы и есть netfilter. Вот как раз нетфильтер и выполняет всю работу над ип пакетами. Это код уровня ядра, весьма оптимизированный и производительный. iptables - юзерспейс утилита для конфигурирования нетфильтра (чтоб он знал, что ему делать). По сути тебе нужно иметь одно правило в iptables для маскарадинга, которое пропишется в нетфильтер и, т.к. нетфильтер это программа уровня ядра, оно создаст минимальную нагрузку на ядро (а чем ты её меньше создашь то, коль не специально предусмотренным для этого кодом?). Никто ж тебя не заставляет делать из роутера сетевой экран. Это опция. Все остальные решение - толстые и неуклюжие. Как тут уже озвучили - ССЗБ. Но мне тебя жаль, поэтому и потратил пару минут на эту писанину

azure ★★
()
Ответ на: комментарий от Sylvia

>спасибо, меня тоже этот вопрос с утра мучает по поводу разницы между
MASQUERADE и SNAT

Ключевых отличий два:
1. MASQUERADE автоматом внешний определяет айпишник,
2. SNAT не сбрасывает соединения сразу после опускания интерфейса. «Быстро поднятое не считается упавшим» ;) Если внешний адрес статический — это хорошо, если динамика — бессмысленно (после подъема адрес может быть уже другой).

В общем, мораль была совершенно справедливо сформулирована выше: SNAT для статики, MASQUERADE для динамики.

nnz ★★★★
()
Ответ на: комментарий от af5

>выкинули нетфильтр из ядра линукс?
>автор ссзб и сочуствия не вызывает.


+512

nnz ★★★★
()
Ответ на: комментарий от sprutos

маршрутизация и трансляция адресов - разные вещи. последним занимается netfilter/iptables.

af5 ★★★★★
()
Ответ на: комментарий от sprutos

> а опция advanced routing (CONFIG_IP_ADVANCED_ROUTER) в ядре для чего не объясните?

для того, чтоб были задействованы дополнительные возможности для роутинга. Стандартные возможности - это выбор маршрута в зависимости от адреса назанчения пакета. Для большинства этого вполне достаточно. Дополнительные - в зависимости от полей ToS, протокола, адреса отправителя пакета и т.п. Advanced Routing по-моему так же требуется для управления трафиком (traffic control, в базовом понимании - шейпинг, хотя понятие более широкое), хотя не уверен, что действительно требуется.

azure ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.