+------+ +-------+ +-----+ +-----+
| ADSL |--L1 DIR | | PC1 | | PC2 |
+------+ | 300 L2--E1 E0---| |
| | | BR0 | | |
| | |PPPOE| | |
+-------+ +-----+ +-----+
имеем такую вот конструкцию, где -
- ADSL - adsl модем
- DIR300 - d-link dir300 точка доступа перепрошитая dd-wrt
- PC1 типа сервер
- PC2 домашний комп
в lan порты dir300 воткунты шнурки от адсл и от PC1.
На PC1 имеется 2 сетевых карты E1 (eth1) - подключена к dir300, и E0 (eth0) подключена к PC2. Эти две сетевые карты объеденины в бридж (br0). PC1 поднимает PPPoE соединение используя в качестве интерфейса br0. соединение нормально устанавливается и на PC1 интернет работает без проблем. Но (sic!) интернет не работает на PC2. С роутингом проблем нет, изучение трафика на разных интерфейсах (eth0, eth1, br0, ppp0) показывает следующие
- при пинге с PC1 видим ip пакет на ppp0, видим pppoe пакет на br0 и такой же pppoe пакет на eth1
- при пинге с PC2 видим ip пакет на et0, видим его же на ppp0, видим pppoe пакет на br0, но не видим его на eth1.
Решило проблему, запись нуля в /proc/sys/net/bridge/bridge-nf-filter-pppoe-tagged. Но само явление избирательного прохождения пакетов осталось не понятным. Гугление bridge-nf-filter-pppoe-tagged просветления не принесло. Может кто нибудь на LOR объяснит такое чудо?