Добрый день, коллеги.
Есть старый сервер, ещё под 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?