FreePascal писал(а):Код: Выделить всё
${FwCMD} add allow udp from ${IpOut} to any 27000-27020 out via ${LanOut}
${FwCMD} add allow udp from any 27000-27020 to ${NetIn}/${NetMask} in via ${LanOut}
setup не нужно для UDP ето специфика TCP
P.S. 5 балов тому кто скажет почему внутренние адреса нужно впускать через внешний инфейс????
Итак почему же?
Картинка с мана:
Код: Выделить всё
^ to upper layers V
| |
+----------->-----------+
^ V
[ip(6)_input] [ip(6)_output] net.inet.ip.fw.enable=1
| |
^ V
[ether_demux] [ether_output_frame] net.link.ether.ipfw=1
| |
+-->--[bdg_forward]-->--+ net.link.ether.bridge_ipfw=1
^ V
| to devices |
Левая и правая вертикальные линии представляют собой входящий и исходящий канал.
Представляем их двумя несвязанными трубами.
А теперь упростим взяв только входящий канал.
Код: Выделить всё
device
V
|
V
|
>-->----
| nat
<--<---
V
|
V
|
Итак, наш пакет на входе, там где device, содержит src_addr = "адрес машины в интернете, которая нам отвечает" и
dst_addr = "внешний IP нашего шлюза" и в таком виде попадает на NAT.
После NATa src_addr тот же, но вот dst_addr = "IP машины в нашей локальной сети".
Получается некий конфуз -- пакет находиться во входящей трубе внешнего интерфейса и с IP внутренней сети.
Пакет продолжает следовать по трубе и пока не попадет на разрешающее правило, не будет маршрутизирован и
не попадет в трубу исходящего канала внутреннего интерфейса.
Вот и разрешаем пакет вторым как-бы не правильным правилом.