Нажмите интерфейсы и /dev/net/tun устройство, используя команду ip tuntap

Я использую ip tuntap создать интерфейс крана, как это:

$ sudo ip tuntap add mode tap tap0

После этого я настраиваю интерфейс и обращаюсь к нему с помощью общих IP-команд. Я вижу, что мой интерфейс и с простым ifconfig,

Теперь учитель сказал мне, что, создав интерфейс tap (в данном случае названный tap0), я найду /dev/net/tap0 узел, и что я мог бы написать в нем или прочитать его. Однако я не могу его найти. У меня "просто" есть /dev/net/tun,

Должен ли я иметь дело с этим узлом tun, или я действительно должен иметь узел tap0?

3 ответа

Прошло много времени с тех пор, как был задан вопрос, но я подумал, что было бы неплохо опубликовать фактический ответ для дальнейшего использования.

Интерфейсы Tap, так же как и интерфейсы tun, являются виртуальными интерфейсами, предоставляемыми драйвером устройства TUN/TAP в ядре. Единственный интерфейс, который этот драйвер предоставляет изначально, это символьное устройство /dev/net/tun упоминается в вопросе.

Выпуская:

$ sudo ip tuntap add mode tap tap0

мы инструктируем ip tuntap создать сетевой интерфейс с именем tap0что достигается с помощью правильного ioctl(2)вызывает на вышеупомянутый файл устройства/dev/net/tunговорить с базовым драйвером устройства TUN/TAP, как мы можем наблюдать в ip tuntap исходный код

Один из них ioctl(2) звонки (тот, с TUNSETIFF опция, которая вызывается первой) возвращает дескриптор файла, связанный с новым виртуальным интерфейсом, который был создан и может использоваться процессами.


Подводя итог:

Должен ли я иметь дело с этим узлом tun, или я действительно должен иметь узел tap0?

/dev/net/tun файл устройства используется только в качестве отправной точки для создания интерфейсов tap и tun такими пользовательскими утилитами, как iproute2, В контексте этого вопроса нет необходимости рассматривать его как ip tuntap делает эту работу для нас.

Любой дополнительный /dev/net/tap0 файлы устройств не нужны или не должны создаваться для процессов, чтобы использовать интерфейсы крана.

Вам нужно активировать эту ссылку с помощью команды

ip link set dev tap0 up

после этого вы можете использовать его.

Закомментировал все элементы в /lib/systemd/network/99-default.link и перезагрузился. Все mac-адреса (за исключением физического адаптера) снова рандомизируются.

Другие вопросы по тегам