LINUX.ORG.RU
ФорумAdmin

iptables - почему часть пакетов не попадает в nat PREROUTING

 ,


0

2

Добрый день, коллеги.

Есть старый сервер, ещё под Debian Wheezy, на который (в том числе) льётся специфический UDP-трафик - syslog, snmp-traps, netflow - с достаточно большого количества железок. Пришла пора заменить этот сервер на VM, но… как быть с этим трафиком, не переписывать же IP-адрес сервера в конфигурациях всех железок на новый? Лучше (подумал я) сделать так - перенаправить весь указанный выше трафик со старого сервета на новый, тем более, что этот трафик идёт только в одном направлении, т.е. достаточно будет сделать DNAT. Сказано - сделано, пробуем для начала на syslog. Перенёс конфигурацию rsyslogd на новый сервер, и начал мучить iptables.

Старый сервер имеет IP-адрес 10.10.1.254/18, новый пока 10.10.1.234/18, соответственно они живут в одном broadcast-домене.

Состояние таблички FORWARD по-умолчанию ACCEPT, делаю на старом сервере:

iptables -t nat -A PREROUTING -p udp -m udp --dport 514 -j DNAT --to-destination 10.10.1.234:514 --persistent

и - о чудо! - на новом сервере в syslog действительно начинают сыпаться сообщения. Но радость моя была недолгой, выяснилось, что сообщения туда сыплются не со всех железок. Например, с 10.10.0.5 сообщения пересылаются:

root@Volans:~# tcpdump -vni bond0.10 host 10.10.0.5 and udp port 514
tcpdump: listening on bond0.10, link-type EN10MB (Ethernet), capture size 262144 bytes
12:17:13.705702 IP (tos 0x0, ttl 255, id 24640, offset 0, flags [none], proto UDP (17), length 202)
    10.10.0.5.54132 > 10.10.1.254.514: SYSLOG, length: 174
	Facility local7 (23), Severity info (6)
	Msg: 8740930: Nov 12 12:17:12.689 Moscow: %FMANFP-6-IPACCESSLOGP: SIP0: fman_fp_image:  list servers-vlan4-out denied tcp 141.98.11.12(55893) -> 89.207.94.27(36976), 1 packet
12:17:13.705709 IP (tos 0x0, ttl 254, id 24640, offset 0, flags [none], proto UDP (17), length 202)
    10.10.0.5.54132 > 10.10.1.234.514: SYSLOG, length: 174
	Facility local7 (23), Severity info (6)
	Msg: 8740930: Nov 12 12:17:12.689 Moscow: %FMANFP-6-IPACCESSLOGP: SIP0: fman_fp_image:  list servers-vlan4-out denied tcp 141.98.11.12(55893) -> 89.207.94.27(36976), 1 packet
12:17:14.939700 IP (tos 0x0, ttl 255, id 24641, offset 0, flags [none], proto UDP (17), length 127)
    10.10.0.5.54132 > 10.10.1.254.514: SYSLOG, length: 99
	Facility local7 (23), Severity info (6)
	Msg: 8740931: Nov 12 12:17:13.924 Moscow: %SEC-6-IPACCESSLOGS: list 2 denied 115.49.3.104 1 packet 
12:17:14.939707 IP (tos 0x0, ttl 254, id 24641, offset 0, flags [none], proto UDP (17), length 127)
    10.10.0.5.54132 > 10.10.1.234.514: SYSLOG, length: 99
	Facility local7 (23), Severity info (6)
	Msg: 8740931: Nov 12 12:17:13.924 Moscow: %SEC-6-IPACCESSLOGS: list 2 denied 115.49.3.104 1 packet 

А с 10.10.0.4 или 10.10.0.1 - нет:

root@Volans:~# tcpdump -vni bond0.10 host 10.10.0.1 and udp port 514
tcpdump: listening on bond0.10, link-type EN10MB (Ethernet), capture size 262144 bytes
12:29:37.446323 IP (tos 0x0, ttl 255, id 29662, offset 0, flags [none], proto UDP (17), length 170)
    10.10.0.1.54111 > 10.10.1.254.514: SYSLOG, length: 142
	Facility local7 (23), Severity info (6)
	Msg: 61371359: Nov 12 12:29:36.450 Moscow: %SEC-6-IPACCESSLOGP: list cittel-mgmt-in denied udp 10.10.8.48(54608) -> 85.21.78.91(123), 1 packet
12:29:38.498276 IP (tos 0x0, ttl 255, id 29663, offset 0, flags [none], proto UDP (17), length 172)
    10.10.0.1.54111 > 10.10.1.254.514: SYSLOG, length: 144
	Facility local7 (23), Severity info (6)
	Msg: 61371360: Nov 12 12:29:37.502 Moscow: %SEC-6-IPACCESSLOGP: list cittel-mgmt-in denied udp 10.10.8.85(50519) -> 94.247.111.10(123), 1 packet
12:29:39.630300 IP (tos 0x0, ttl 255, id 29664, offset 0, flags [none], proto UDP (17), length 169)
    10.10.0.1.54111 > 10.10.1.254.514: SYSLOG, length: 141
	Facility local7 (23), Severity info (6)
	Msg: 61371361: Nov 12 12:29:38.634 Moscow: %SEC-6-IPACCESSLOGP: list cittel-mgmt-in denied udp 10.10.2.67(45600) -> 192.168.1.1(53), 1 packet
12:29:40.794167 IP (tos 0x0, ttl 255, id 29665, offset 0, flags [none], proto UDP (17), length 174)
    10.10.0.1.54111 > 10.10.1.254.514: SYSLOG, length: 146
	Facility local7 (23), Severity info (6)
	Msg: 61371362: Nov 12 12:29:39.798 Moscow: %SEC-6-IPACCESSLOGP: list cittel-mgmt-out denied udp 89.207.95.120(61009) -> 10.10.0.152(161), 1 packet

И даже если добавить в iptables команды

iptables -t nat -I PREROUTING 1 -s 10.10.0.1/32 -i bond0.10 -p udp -m udp --dport 514 -j DNAT --to-destination 10.10.1.234:514 --persistent
iptables -I INPUT 1 -s 10.10.0.1/32 -i bond0.10 -p udp -m udp --dport 514 -j LOG --log-prefix "Saturn Syslog: "

то в табличке filter INPUT счётчик у правила увеличивается, а в табличке nat PREROUTING - нет.

root@Volans:~# iptables -vnxL INPUT
Chain INPUT (policy ACCEPT 829028 packets, 236066307 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
    3502   610624 LOG        udp  --  bond0.10 *       10.10.0.1            0.0.0.0/0            udp dpt:514 LOG flags 0 level 4 prefix "Saturn Syslog: "
. . .
root@Volans:~# iptables -t nat -vnxL
Chain PREROUTING (policy ACCEPT 12357 packets, 835713 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
       0        0 DNAT       udp  --  bond0.10 *       10.10.0.1            0.0.0.0/0            udp dpt:514 to:10.10.1.234:514 persistent

Вопрос традиционный - WTF?

Старые соединения из conntrack удалял?

Кроме того, вряд ли это относится к проблеме, но зачем тебе --persistent?

unicorne
()
Последнее исправление: unicorne (всего исправлений: 1)
Ответ на: комментарий от unicorne

Разве для обычных входящих пакетов, которые идут прямо в какой-либо сервис, тоже что-то в conntrack пишется?

--persistent добавил в процессе метаний, сначала его не было, и он не помог.

MrMarmaduke
() автор топика

Заголовок не соответствует теме. У тебя не срабатывает правило в nat/PREROUTING

А ядро на старом сервере какое ?

Я бы убрал из «iptables -t nat -I PREROUTING 1 -s 10.10.0.1/32 -i bond0.10 -p udp -m udp --dport 514 -j DNAT ...» часть "-i bond0.10"

B еще посмотри через «tcpdump -nvei bond0.10 udp and port 514»

МАС-адреса назначения одинаковые ?

vel ★★★★★
()

Всё не читай, сразу отвечай.

Вопрос традиционный - WTF?

Ответ «традиционный» conntrack. Только первый пакет, дальше ничего не будет.

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

О, гран мерси. Действительно, почистил таблицу и пакеты побежали. Буду причёсывать.

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