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

не отрабатывается SNAT в POSTROUTING...


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

Почему не отрабатывается действие SNAT в POSTROUTING.

Ситуация:

eth0: ip_addr 10.0.1.2/24

eth1: ip_addr 10.0.0.2/24

# iptables -A POSTROUTING -t nat -o eth1 -j SNAT --to-source 10.0.0.2

# iptables -L -t nat

Chain PREROUTING (policy ACCEPT)

target prot opt source destination

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

SNAT all -- anywhere anywhere to:10.0.0.2

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

# tcpdump ip proto \\udp -i eth1 -n | grep domain | grep 10.0.1.2

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes

13:04:09.112904 IP 10.0.1.2.domain > xxx.xxx.xxx.xxx.domain: 49944 [1au] A? xxx.xxx. (42)

13:04:17.920696 IP 10.0.1.2.domain > xxx.xxx.xxx.xxx.domain: 47423 [1au] A? xxx.xxx. (42)

1813 packets captured

3632 packets received by filter

0 packets dropped by kernel

У кого-нибудь такое было?

Кстати, все записи одного характера:

10.0.1.2.domain -> another_ip_addr.domain

В обоих случаях domain->domain, записей типа ip_addr.UNPIVILEGED_PORT -> xxx.xxx.xxx.xxx.domain нет, т.к. они реально отрабатываются SNAT'ом.

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

SignFinder писал(а) Fri, 09 November 2007 16:14

к нату еще надо форвард открыть и еще в ядре или через sysctl разрешить форвард.

приведите iptables -nL

А ещё iptables -nvL -t nat, чтобы знать, попадают ли вообще пакеты в цепочку.

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

Пожалуйста!!!

# iptables -L -n -v -t nat

Chain PREROUTING (policy ACCEPT 2974K packets, 187M bytes)

pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 26607 packets, 2758K bytes)

pkts bytes target prot opt in out source destination

736K 56M SNAT all -- * eth1 0.0.0.0/0 0.0.0.0/0 to:10.0.0.2

Chain OUTPUT (policy ACCEPT 763K packets, 59M bytes)

pkts bytes target prot opt in out source destination

-o eth0 я убрать не могу, т.к. мне надо чтобы только через eth1 SNAT делался... Иначе хренова туча сервисов работать не будут.

# cat /proc/sys/net/ipv4/ip_forward

1

Картина та же..))) tcpdump'ом я вижу траф от 10.0.1.2.domain -> x.x.x.x.domain

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

fluxy писал(а) Mon, 12 November 2007 10:22

Chain POSTROUTING (policy ACCEPT 26607 packets, 2758K bytes)

pkts bytes target prot opt in out source destination

736K 56M SNAT all -- * eth1 0.0.0.0/0 0.0.0.0/0 to:10.0.0.2

Смотрите выделенное. Пакеты сквозь правило проходят. Правило работает. Проблема где-то в другом.

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

Цитата:

-o eth0 я убрать не могу, т.к. мне надо чтобы только через eth1 SNAT делался...

хм и как это связано между собой?

вы всетаки попробуйте. Лучше забить ключ -s.

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

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

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

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

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

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

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

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

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

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