ipfw: ответный пакет с другого интерфейса.

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
razdao
рядовой
Сообщения: 10
Зарегистрирован: 2012-05-21 10:15:55

ipfw: ответный пакет с другого интерфейса.

Непрочитанное сообщение razdao » 2014-07-15 14:09:40

Доброго времени суток.
Адреса и сети, как и у всех, изменены.

3 интерфейса:

Код: Выделить всё

#Внешний интерфейс
em0 = 1.1.1.1
#Внутренний интерфейс в мою локалку
em1 = 172.16.0.1/24
#Интерфейс в чужую локалку
re0 = 192.168.0.2/30
#туннель до чужой локалки
gif0 
tunnel 192.168.0.2 --> 192.168.0.1
inet 10.0.0.10 --> 10.0.0.9/24

Код: Выделить всё

sysctl one_pass = 0
ipfw.rules

Код: Выделить всё

#!/bin/sh

ipfw -f flush
cmd="/sbin/ipfw add"

LOOP_IFACE="lo0"
INET_IFACE="em0"
LAN_IFACE="em1"
FREND_IFACE="gif0"
TUN_FREND_IFACE="re0"

LAN_NET="172.16.0.0/20"
FREND_NET="10.0.0.0/24"
TUN_FREND_NET="192.168.0.1/30"

INET_ADDR="1.1.1.1"
LAN_ADDR="172.16.0.1"
LAN_FREND_ADDR="10.0.0.10"

# allow dynamic packet
${cmd} check-state
....
....
ipfw nat 1 config log ip ${INET_ADDR} reset same_ports deny_in 

########################################
### RESERVATION 900-999 FOR BLOCK VIA IFACE
########################################
#Тут стоят deny на серые сети. 
########################################
### RESERVATION 1000-09998 FOR OTHER
########################################

########################################
### RESERVATION 09999 FOR BRANCHING
########################################

${cmd} 09999 skipto 10000 all from any to any via ${LOOP_IFACE}
${cmd} 09999 skipto 11000 all from any to any via ${INET_IFACE}
${cmd} 09999 skipto 12000 all from any to any via ${LAN_IFACE}
${cmd} 09999 skipto 13000 all from any to any via ${FREND_IFACE}
${cmd} 09999 skipto 14000 all from any to any via ${TUN_FREND_IFACE}
${cmd} 09999 skipto 65000 all from any to any

########################################
### RESERVATION 10000-10999 FOR LOCAL_IFACE
########################################

${cmd} 10001 allow all from any to any via ${LOOP_IFACE}

#################################################
### outgoing traffic from localhost 10100-10499
#################################################

#################################################
### incoming traffic to localhost 10500-10999
#################################################

########################################
### RESERVATION 11000-11999 FOR INET_IFACE
########################################

#################################################
### traffic to me and our net 11100-11499
#################################################

# DNS to me
${cmd} 11105 allow all from any 53 to me via ${INET_IFACE}
# HTTP to me (squid)
${cmd} 11110 allow all from any 80 to me via ${INET_IFACE}
# SSL to me 
${cmd} 11115 allow all from any 443 to me via ${INET_IFACE}
# POP over SSL to me
${cmd} 11116 allow all from any 995 to me via ${INET_IFACE}
# all ICMP to me 
${cmd} 11120 allow icmp from any to me via ${INET_IFACE}

#################################################
### traffic from me and our net 11500-11999
#################################################
${cmd} 11490 allow all from ${LAN_NET} to me
# traffic from us to global will be forwarded to squid
${cmd} 11500 fwd ${LAN_ADDR},3129 all from ${LAN_NET} to not ${LAN_NET} 80 out xmit ${INET_IFACE}

[b]${cmd} 11501 allow all from ${LAN_ADDR} to ${LAN_NET} out xmit ${INET_IFACE}[/b]

${cmd} 11502 allow all from ${VOGU_NET} to ${LAN_NET} out xmit ${INET_IFACE}

${cmd} 11900 nat 1 all from ${LAN_NET} to any via ${INET_IFACE}
${cmd} 11901 allow all from me to any out xmit ${INET_IFACE}

${cmd} 11999 skipto 65000 all from any to any

########################################
### RESERVATION 12000-12999 FOR LAN_IFACE
########################################

${cmd} 12001 allow all from any to any via ${LAN_IFACE}

#################################################
### outgoing traffic from lan 12100-12499
#################################################

#################################################
### incoming traffic to lan 12500-12999
#################################################

${cmd} 12999 skipto 65000 all from any to any

########################################
### RESERVATION 13000-13999 FOR FREND
########################################

#################################################
### outgoing traffic to FREND 13100-13499
#################################################
${cmd} 13000 fwd ${LAN_ADDR},3129 all from ${LAN_NET} to ${FREND_NET} 80 via ${FREND_IFACE}

#################################################
### incoming traffic from FREND 13500-13999
#################################################
${cmd} 13990 allow all from any to any
${cmd} 13999 skipto 65000 all from any to any

${cmd} 14999 skipto 65000 all from any to any

#################################################
### LOGGING AND BLOCK
#################################################

${cmd} 65000 allow log all from any to any
Настройки докину, какие надо.

Собственно, непонятно следующее: я думал, что когда идет обмен траффиком с ресурсами в FREND_NET, единственный интерфейс, который будет участвовать в перенаправлении трафика - FREND_IFACE. По факту же, у меня ответные пакеты приходят на FRAND_IFACE, теряются в дебрях ipfw и выходят почему то из INET_IFACE с адресами из FREND_NET. Разве они должны каким то образом касаться INET_IFACE?

Прошу помощи - непонятное поведение. Где допустил ошибку? Не может же быть это обычным поведением.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

razdao
рядовой
Сообщения: 10
Зарегистрирован: 2012-05-21 10:15:55

Re: ipfw: ответный пакет с другого интерфейса.

Непрочитанное сообщение razdao » 2014-07-16 9:08:48

Как всегда, все дела в криворукости.
Снес все правила, сделал минимум - работает нормально. Накосячил где-то с nat'ом. А за одно выставил неверную подсеть для внутреннего интерфейса.

Спасибо за просмотры.