Перейти к содержанию

IpTables - странное поведение


Dimnet

Рекомендуемые сообщения

Надо было поднять НАТ на машине. Сконфигурировал ядро всё как надо, собрал iptables, пишу правила:

iptables -I FORWARD -i eth0 -d 192.168.0.9 -j REJECT

iptables -A FORWARD -i eth0 -s 192.168.0.9 -j ACCEPT

iptables -A FORWARD -i wlan0 -d 192.168.0.9 -j ACCEPT

iptables -t nat -A POSTROUTING -o wlan0 -j SNAT --to-source 10.0.0.1

echo 1 > /proc/sys/net/ipv4/ip_forward

Где eth0 смотрит во внутреннюю сеть которую нужно "маскировать".

Иду в ребут...

Пакеты начинают проходить, вроде всё работает.

Удаляю правило

iptables -t nat -D POSTROUTING -o wlan0 -j SNAT --to-source 10.0.0.1

пакеты не проходят

опять добавляю тоже правило:

iptables -t nat -A POSTROUTING -o wlan0 -j SNAT --to-source 10.0.0.1

Пакеты не идут. Если перегрузиться то всё заработает.

Это вообще нормально? Я всё правильно делаю?

пробовал на 3-х разных ядрах (2.6.18-20) всё также. Как то он странно сам по себе работает.

Иногда делаю iptables -t nat -F; iptables -F а пакеты продолжают проходить.

Где ошибка? И чё то вообще делать?

Gentoo 2006.1

Ссылка на комментарий
Поделиться на другие сайты

прописать правило

iptables -A OUTPUT -p ALL -j LOG --log-level 5 --log-tcp-option --log-ip-option --log-prefix "IPTABLES "

iptables -A FORWARD -p ALL -j LOG --log-level 5 --log-tcp-option --log-ip-option --log-prefix "IPTABLES "

iptables -t nat -A POSTROUTING -p ALL -j LOG --log-level 5 --log-tcp-option --log-ip-option --log-prefix "IPTABLES "

и смотреть чего пишет в /var/log/messages

Ссылка на комментарий
Поделиться на другие сайты

Такая закономерность:

Пингую из под винды - всё работает;

Удаляю правило - не проходят пакеты;

Добавляю правило - не проходят;

Меняю адрес пинга и всё работает, через пару минут пингуется и старый адрес.

Кто неть оъяснит чё к чему?

Ссылка на комментарий
Поделиться на другие сайты

Dimnet писал(а) Fri, 23 February 2007 13:44

Такая закономерность:

Пингую из под винды - всё работает;

Удаляю правило - не проходят пакеты;

Добавляю правило - не проходят;

Меняю адрес пинга и всё работает, через пару минут пингуется и старый адрес.

Кто неть оъяснит чё к чему?

Читайте хауту и man iptables, в них много полезных вещей. Например, там сказано, что в таблицу nat попадает только первый пакет из потока. Поскольку icmp - протокол без поддержки сессий, то однозначно определить, тот ли это поток или нет, невозможно. Поэтому используются таймауты. Соотв. новое правило вступит в действие только тогда, когда истечет таймаут для существующего потока. А пинг на новый адрес - соотв. новый поток, поэтому работает сразу.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...