Нажмите интерфейсы и /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-адреса (за исключением физического адаптера) снова рандомизируются.