Alexander GQ Gerasiov wrote:
> У меня в похожей ситуации в таблице mangle размечается весь трафик
> марками (локальный, в(из) городскую сеть, в(из) интернет) и дальше во
> всех остальных таблицах эти марки используются.
> Размечается примерно так:
>
> Chain PREROUTING (policy ACCEPT 54M packets, 43G bytes)
>  pkts bytes target     prot opt in     out     source               
> destination
>    84 20357 MARK       all  --  br0    *       0.0.0.0/0            <мой ip>  
>                MARK set 0x3
>   13M   18G MARK       all  --  br0    *       0.0.0.0/0            
> <городская сеть>   MARK set 0x1
> 8562K 1658M MARK       all  --  ppp0   *       <городская сеть>     0.0.0.0/0 
>          MARK set 0x1
> 43298 6279K MARK       all  --  br0    *       0.0.0.0/0            
> 172.16.0.0/24      MARK set 0x3
>
> (+ еще размечается аналогично трафик самого маршрутизатора в цепочках 
> INPUT/OUTPUT)
>
> в итоге марка 0x0 (то что по-умолчанию) это интернет траффик
> марка 0x1 - городская сеть
> марка 0x3 - моя локалка
>
>   

Это я и имел ввиду под переносом условий в PREROUTING. Но тогда другая
проблема, если делать это в mangle, то это будет до nat, а
соответственно все проброски внутрь сети (DNAT) еще не отработали. То
есть условие "внутренности" адреса будет включать не только проверку на
то, что адрес попадает в 192.168.20.0/24 (и прочие внутренние сети), но
и проверку на то, что адрес назначения - не собственный "внешний" адрес
(которых довольно много). В FORWARD все проще - там тупо по интерфейсам
определяется. С другой стороны, если мой способ с iproute2 и будет
работать, то задокументировать его понятным образом будет затруднительно :)

-- 
WBR,
Ivan S. Dubrov

Attachment: signature.asc
Description: OpenPGP digital signature

Ответить