У мене є ПК (на базі Fedora 20), який використовується як "програмний перемикач" для управління мережевою підключеністю деяких зовнішніх пристроїв. Є вісім таких пристроїв; ПК має дві 4-портові Ethernet-карти на додаток до власного підключення Ethernet до зовнішнього світу. За замовчуванням вісім інтерфейсів пристрою передаються на зовнішній інтерфейс без фільтрації.
Бажана функціональність - це можливість блокувати весь трафік на певний пристрій і з нього. В даний час ми це робимо за допомогою bridge link set dev <device> state 0
, яка встановлює стан моста пристрою на "відключений". Однак, схоже, це також блокує трафік DHCP з пристрою. Сервер DHCP мережі доступний через зовнішній інтерфейс, тому здається, що міст блокує цей трафік, тобто, якщо пристрій намагається відновити IP-адресу, це не вдасться; це проблематично з точки зору тестів, які я намагаюся виконати на пристрої.
Що я хотів би зробити, це блокувати весь трафік, крім DHCP через міст, для даного пристрою. Здається, що bridge
команда не може цього зробити, тому, ймовірно, я б хотів залишити стан мосту назавжди "переадресацією". Провівши деякі дослідження, ebtables
мені здається, це інструмент, який мені потрібен, але для його налаштування, здається, потрібно більше знань DHCP та мереж, ніж у мене! Прочитавши кілька ebtables
навчальних посібників, я думаю, що мені потрібно дозволити трафік через порти 67 та 68 (я вважаю, що це єдині порти, які використовуються для DHCP?) Та блокувати весь інший трафік.
Тому мої запитання:
- Чи можна налаштувати
ebtables
робити те, що я хочу? - Є
ebtables
найкращим інструментом для роботи та / або є якісь шари абстрагування поверх нього, які полегшили б налаштування? (Я маю в видуferm
дляiptables
.) - Якщо припустити, що я рухаюсь у правильному напрямку, як я можу налаштувати
ebtables
блокувати весь трафік DHCP?
iptables
мабуть, не можна блокувати трафік DHCP, тому, можливо, моє рішення полягає в блокуванні "всього" (тобто всього бару DHCP) трафіку, використовуючи iptables
- я розберуся в цьому.
iptables
не може блокувати DHCP-сервер, сформований на тому ж хості , але якщо ви налаштували свій Linux-скриньку як маршрутизатор, він може блокувати пакети DHCP. Це означає, що оскільки ваш вікно Linux працює як пристрій рівня 2, ebtables
ваш друг. ( iptables
є для рівня 3 і вище).
iptables
є інтерфейсом netfilter Layer 3/4. ebtables
є інтерфейсом netfilter рівня 2.