Když si z VLAN10 zkusíš pingnout na něco v LAN, tak na tom zařízení uvidíš příchozí ICMP echo-request. Uvidíš tam i odchozí ICMP echo-reply - JENŽE TY JSOU TÍM TVÝM PRAVIDLEM ZAHOZENY.
/ip firewall filter
add action=drop chain=forward in-interface=LAN out-interface=VLAN10
Kdysi byl vymyšlen stavový firewall. Tedy firewall, který nevidí jen a pouze pakety co běhají sem a tam, ale pamatuje si i spojení - je schopen si dát dohromady oba směry komunikace. Bez toho ten tvůj problém prostě nevyřešíš.
To je to established, related. Je to takový příznak spojení dostupný u každého paketu. Ještě existují new, invalid a untracked.
První paket co přijde na router a on ho v tabulce spojení (říká se tomu conntrack) nenajde je ve stavu NEW. Tedy ignoruje accept established,related a pokračuje na další řádky.
Je-li ten paket z VLAN10, je akceptován a firewall končí zpracování. Pro přesnost: může ještě projít jinými tabulkami (raw, mangle, nat), ale na to teď kašli.
Paket dorazí na nějakou stanici, ta pravděpodobně odpoví. Takový paket tedy přijde z LAN a cíl bude mít ve VLAN10. Ale router už viděl ten předchozí, co vytvořil spojení. Takže bude ve stavu established ... a povolí se hned prvním pravidlem. To samé se stane zase s další odpovědí co v této konexi vznikne na VLAN10. A takto si budou povídat, dokud to neskončí. Pro TCP buď opravdovým koncem komunikace, pro ostatní protokoly timeoutem.
Případ, kdy spojení budeš vyvolávat z LAN, tak už to neprojde. První paket je NEW. Další test je, zda pochází z VLAN10 - nepochází, pravidlo nevyhovuje. Na řadu přijde třetí řádek - tam máš zákaz všeho, co přijde z LAN. Paket se zahodí, spojení končí.
komentoval jsem tohle:
/ip firewall filter
add action=accept chain=forward connection-state=established,related
add action=accept chain=forward in-interface=VLAN10
add action=drop chain=forward in-interface=LAN
add action=drop chain=forward