PDA

Показать полную графическую версию : FreeBSD (domU) + pf + nat


Smoke2k
07-11-2012, 04:52
Имеется сервер с Debian Squeeze на котором установлен XEN.
Внутри стоит FreeBSD 9.0 один интерфейс смотрит в мир (проброшен как bridge) второй во внутрь Xen-a. В фря настроен pf в качестве NAT и ipfw, оба скампелированны внутрь ядра...
За основу взят стандартный конфиг для XEN
device pf
device pflog
device pfsync

options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_PRIQ
options ALTQ_NOPCC

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=5
options IPFIREWALL_FORWARD

options SCHED_ULE # ULE scheduler
options PREEMPTION # Enable kernel thread preemption
#options SCHED_4BSD

options INET # InterNETworking

# Я отключил только эти 3 модуля
#options INET6 # IPv6 communications protocols
#options WITNESS # Enable checks to detect deadlocks and cycles
#options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed


пока в качестве проверки все правила в pf отключены и есть только правило нат
nat on $внешний интерфейс from ip_внутренней_сети to any -> ($Внешний_интерфейс)

, и ipfw прописано пропускать всё
00100 48183 9002508 allow ip from any to any via xn0
00200 1402 120130 allow ip from any to any via xn1

С самой фря все пингуется и подключается, но вот что-то непонятное происходит с трафиком с других машин для которых фря стоит как gateway: пинги проходят без проблем, а вот при попытке подклюиться куда-то или даже резольвить имя пакеты не возвращаются... может я что-то не так делаю, я даже не знаю у меня в двух местах стоит такая же фря (правда на физическом оборудовании и с точно такими же настройками NAT и всё работает).

в качестве эксперемента (предположил что pf не позволяет возвртившимся пакетам проходить во внуторь) сделал простой конфиг для NAT но не помогло...
icmp_types="{ echoreq unreach }"
set block-policy return
set skip on lo0
set skip on $int_if
scrub in all

nat on $ext_if from $lan to any -> ($ext_if)

pass out on $ext_if from $ext_if to any keep state
pass out on $ext_if from $lan to any keep state
pass inet proto icmp all icmp-type $icmp_types


Xen настроен в качестве bridge, сам мост настроен с помощью bridge-utils из Дебиана:


(vif-script 'vif-bridge netdev=br0')

пробывал так же во всевозможных комбинациях (думал что это из-за моста)
(network-script network-dummy)
(network-script network-bridge)
(vif-script vif-bridge)
(vif-script 'vif-bridge netdev=br0')

все таблицы iptables в dom0 чистые

что я забыл/упустил?
что ещё может блокировать возвращающиеся пакеты?




© OSzone.net 2001-2012