это:
# ip link add link eth0 name untagged type vlan id 0
, похоже, помогает.
tcpdump на родительском интерфейсе (eth0) показывает непомеченные пакеты, когда вы пингует -I untagged (some-ip).
(tcpdump на новом логическом интерфейсе должен отображать только нетегированный трафик, тогда как tcpdump на родительском интерфейсе должен отображать весь трафик, помеченный и немаркированный, с заголовками 802.1q для помеченного материала.)
вам может потребоваться отключить ARP на родительском интерфейсе, чтобы немаркированные ответы ARP не помещались в таблицу ARP относительно родительского интерфейса:
# ip link set eth0 arp off
# ip link set untagged arp on
я бы также отключил локальные адреса связи IPv6 на родительском интерфейсе и включил бы на немаркированном логическом интерфейсе навсегда мера.
вы можете повышать / понижать нетегированный интерфейс, не уничтожая весь родительский интерфейс (включая тегированный трафик) и т. Д.
В OpenBSD база данных locate по умолчанию перестраивается раз в неделю / etc / weekly
сценарий, вызывающий /usr/libexec/locate.updatedb
от имени пользователя nobody
.
Утилита locate.updatedb
представляет собой сценарий / bin / sh
( pdksh
в OpenBSD), который более или менее запускает find
в корневых файловых системах. Все, к чему никто
не может получить доступ, помещается в базу данных местоположения.
Мне трудно поверить, что find /
будет быстрее, чем locate
в системе, где locate
использует базу данных файлов, созданных с помощью найти /
.
Разница, конечно же, в том, что вы можете найти дополнительных файлов , запустив find
как пользователь, у которого есть дополнительные права доступа, чем у пользователя nobody
.
В Linux , по крайней мере, на машине Ubuntu, к которой у меня есть доступ на работе, база данных locate
, похоже, воссоздается ежедневно, согласно locate (8 )
руководство. Это делается с помощью утилиты updatedb
.
Эта утилита (символическая ссылка на / usr / bin / updatedb.mlocate
на этом компьютере) - это скомпилированный двоичный файл, принадлежащий пакету mlocate
.
Вы можете взглянуть на исходники mlocate
, если хотите, но в основном это программа на языке C, которая просматривает файловую систему. mlocate
также пытается избежать обхода битов файловой системы, которые не изменились между запусками.
Опять же, мне трудно поверить, что запрос к базе данных mlocate
будет медленнее (при любых обстоятельствах), чем выполнение find /
.
В конце концов, именно поэтому все инструменты locate
(о которых я знаю) работают с базой данных.