Почему будет работать DHCP-сервер
Я думаю, правильный ответ многих удивил, еще кто-то мог про него знать, считая это просто особенностью роутеров Mikrotik, но на самом деле все глубже.
Начнем с того, что с DHCP-трафиком хост должен уметь работать в несколько отличных от всего иного сетевого взаимодействия обстоятельством – при полном отсутствии каких-либо сетевых настроек.
А как работать с сетью, если сети еще нет? Понятно, что стандартные инструменты здесь подходят мало и было принято решение использовать Berkeley Packet Filter (BPF).
Berkeley Packet Filter (BPF) – это механизм в UNIX и Linux системой который позволяет работать с сырым трафиком (raw sockets) выполняя захват и фильтрацию.
Поэтому в системе на уровне ядра настроен отдельный BPF на захват DHCP-трафика и этот захват происходит раньше, чем трафик попадает в Netfilter – еще один компонент ядра, который осуществляет фильтрацию пакетов, т.е. является настоящим брандмауэом.
Это важно помнить, фильтрацией трафика в Linux занимается именно Netfilter, а iptables, nftables, ufw и т.д. и т.п. – это всего лишь высокоуровневые интерфейсы для управления им.
Таким образом DHCP-трафик выпадает из-под действия брандмауэра, так как захватывается через BPF раньше. Хотя позже эти пакеты все-таки придут в брандмауэр, но это не будет влиять ни на что, кроме счетчиков.
Постойте, скажет кто-нибудь, это же касается DHCP-клиента, а у нас сервер. Но на самом деле это касается любой системы, вне зависимости от ее роли. На уровне BPF система понятия не имеет о ролях и софте, она просто делает свою работу – захватывает DHCP-трафик.
Поэтому вне зависимости от того, клиент перед нами или сервер, DHCP-трафик в брандмауэр не попадает. А Router OS, являясь по происхождению Linux системой унаследовала это поведение.
Post #4820
2.96K