Здравствуйте.
Есть сеть:
|-vlan3 (192.168.99.0/30) -- nat1 -- клиенты
dhcp inet --- vlan2 -nat0-+
|-eth0 (192.168.99.4/30) -- nat2 -- клиенты
Проблема возникает с nat0. На vlan2 периодически проскакивают пакеты:
tcpdump -i vlan2:
tcpdump: listening on vlan2, link-type EN10MB (Ethernet), capture size 1300 bytes
15:02:33.760882 00:e0:4d:47:8b:a1 > 00:1d:71:9b:c1:c0, ethertype IPv4 (0x0800), length 66: (tos 0x0, ttl 63, id 47171, offset 0, flags [DF], proto TCP (6), length 52) [b]192.168.99.6.40030[/b] > 74.125.39.189.443: F, cksum 0x05d2 (correct), 3522747505:3522747505(0) ack 1108280782 win 108 <nop,nop,timestamp 237777 234723170>
0x0000: 4500 0034 b843 4000 3f06 ed97 c0a8 6306
0x0010: 4a7d 27bd 9c5e 01bb d1f8 dc71 420f 05ce
0x0020: 8011 006c 05d2 0000 0101 080a 0003 a0d1
0x0030: 0dfd 9762
И на другие адреса тоже... Главное что с 192.168.99.6 (это железка wrt54g c прошивкой dd-wrt)
В результате чего, провайдер блокирует меня на порту коммутатора на некоторое время (так как увидел там не понятный для него адрес 192.168.99.6)
Не могу понять, почему так происходит... Видимио где-то косяк в настройках NAT, но где понять не могу... рагьше таких проблем не было.
----
cat /etc/network/interfaces
----
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.99.5
netmask 255.255.255.252
auto eth1
iface eth1 inet static
address 10.100.10.211
netmask 255.255.255.0
auto vlan2
iface vlan2 inet dhcp
vlan_raw_device eth1
dns-nameserver 127.0.0.1
auto vlan3
iface vlan3 inet static
address 192.168.99.1
network 192.168.99.0
broadcast 192.168.99.3
netmask 255.255.255.252
vlan_raw_device eth1
---
cat /etc/network/if-up.d/firewall
---
#!/bin/sh
PATH=/usr/sbin:/sbin:/bin:/usr/bin
INT=vlan3
EXT=vlan2
MAN=eth0
EXT_IP=11.22.33.44.55
SYN_IP=192.168.99.1
SYN_CLIENT=192.168.99.2
PAR_IP=192.168.99.5
PAR_CLIENT=192.168.99.6
SSH_PORT=31337
TRT_SPORTS="32769:65535"
TRT_DPORTS="33434:33523"
#
# Установить политику по умолчанию
#
echo "set default policy"
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
#
# удалить все действующие правила
#
echo "clear filter table"
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
echo "clear nat table"
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING
echo "clear mangle table"
iptables -t mangle -F PREROUTING
iptables -t mangle -F POSTROUTING
echo "drop down counters"
iptables -X
echo "delete loggin chains"
iptables -F undef_in
iptables -F undef_out
iptables -F undef_fw
iptables -X undef_in
iptables -X undef_out
iptables -X undef_fw
# Всегда принимать трафик на loopback-интерфейсе
iptables -A INPUT -i $INT -j ACCEPT
iptables -A INPUT -i $MAN -j ACCEPT
iptables -A FORWARD -i lo -o $INT -j ACCEPT
iptables -A FORWARD -i $INT -o lo -j ACCEPT
iptables -A FORWARD -i lo -o $MAN -j ACCEPT
iptables -A FORWARD -i $MAN -o lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Разрешить локальный исходящий трафик
iptables -A OUTPUT -o $INT -j ACCEPT
iptables -A OUTPUT -o $EXT -j ACCEPT
iptables -A OUTPUT -o $MAN -j ACCEPT
# Разрешить соединения, которые инициированы изнутри
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Разрешить traceroute
iptables -A INPUT -p udp --dport $TRT_DPORTS -j ACCEPT
# Разрешить входящие для torrent
iptables -A INPUT -p tcp --dport 46342 -j ACCEPT
iptables -A FORWARD -p tcp --dport 46342 -j ACCEPT
iptables -A FORWARD -p tcp --sport 46342 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 46342 -j ACCEPT
iptables -A INPUT -p udp --dport 46342 -j ACCEPT
iptables -A FORWARD -p udp --dport 46342 -j ACCEPT
iptables -A FORWARD -p udp --sport 46342 -j ACCEPT
iptables -A OUTPUT -p udp --sport 46342 -j ACCEPT
# Разрешить ssh на всех внутренних интерфейсах
iptables -A INPUT -p tcp --dport $SSH_PORT -j ACCEPT
# Разрешить dhcp
iptables -A INPUT -p udp --dport 67 -i $EXT -j ACCEPT
iptables -A INPUT -p udp --dport 68 -i $EXT -j ACCEPT
# Разрешить dns только на внутренних
iptables -A INPUT -p udp --dport 53 -i $INT -j ACCEPT
iptables -A INPUT -p udp --dport 53 -i $MAN -j ACCEPT
# Разрешить доступ из LAN-сети к внешним сетям
iptables -I FORWARD -s $PAR_CLIENT -j ACCEPT
iptables -I FORWARD -s $SYN_CLIENT -j ACCEPT
# nat
iptables -t nat -A POSTROUTING -o $EXT -j MASQUERADE
# Запретить forward извне во вне
iptables -A FORWARD -i $EXT -o $EXT -j DROP
# Включить прозрачный прокси
iptables -t nat -A PREROUTING -p tcp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081,3128 -s $SYN_CLIENT -d ! $PAR_IP -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -p udp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081,3128 -s $SYN_CLIENT -d ! $PAR_IP -j REDIRECT --to-port 3128
# Здесь делаем DNAT
iptables -t nat -A PREROUTING -i $EXT -p tcp --dport 46342 -j DNAT --to-destination 192.168.99.6:46342
iptables -t nat -A PREROUTING -i $EXT -p udp --dport 46342 -j DNAT --to-destination 192.168.99.6:46342
# Спрятать NAT
iptables -t mangle -A PREROUTING -j TTL --ttl-set 64
iptables -t mangle -A PREROUTING -j RETURN
# Все что не разрешено, но ломится отправим в цепочку undef
#iptables -N undef_in
#iptables -N undef_out
iptables -N undef_fw
#iptables -A INPUT -i vlan2 -j undef_in
#iptables -A OUTPUT -j undef_out
iptables -A FORWARD -j undef_fw
# Будем логировать все из undef (для дебага)
#iptables -A undef_in -j LOG --log-level info --log-prefix "--- IN --- DROP "
#iptables -A undef_in -j DROP
#iptables -A undef_out -j LOG --log-level info --log-prefix " --- OUT --- DROP "
#iptables -A undef_out -j DROP
iptables -A undef_fw -j LOG --log-level info --log-prefix "--- FW --- DROP "
iptables -A undef_fw -j DROP
# Включить forward
echo 1 > /proc/sys/net/ipv4/ip_forward
Заранее благодарен за помощь...