настроить беспроводной маршрутизатор с использованием файлов systemd-networkd * .network

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

Устройство цикла - это устройство перевода, оно переводит вызовы блочных файлов в обычные вызовы файловой системы к определенному файлу. Вы можете использовать losetup для создания полноценных устройств обратной петли, поддерживаемых файлом (будет отображаться как / dev / loopX , а затем обрабатывать их как обычные блочные устройства или передать -o loop для монтирования, чтобы сообщить ему о прозрачном создании блочного устройства. Вы также можете использовать losetup для проверки устройств обратной петли и того, что они поддерживают.

Обратите внимание, что при современном монтировании он попытается обнаружить обычный файл и автоматически создаст для вас устройство обратной связи.Таким образом, вам не нужно , чтобы передавал ему параметр loop .

Кроме того, технически bind mount - это место, где вы перемонтируете каталог в новое место (поэтому он монтируется дважды). Это можно сделать с помощью флага - bind для монтирования. Я понимаю, что вы имеете в виду, но это может сбить с толку, поскольку термин bind имеет особое значение с точки зрения монтажа.

Редактировать: Ваша ментальная модель, по сути, верна, но вы можете думать о петлевых устройствах как об уровне абстракции, это позволяет монтированию взаимодействовать с любым файлом, как если бы это было блочное устройство, без необходимости понимать различия между чтение / запись в файловую систему или на необработанное блочное устройство - все это обрабатывает ядро. Все, что нужно знать команде mount, - это как попросить ядро ​​настроить устройство цикла, а затем рассматривать его как блочное устройство; это упрощает код низкого уровня и позволяет всему, что может взаимодействовать с блочным устройством, вместо этого разговаривать с файлом без изменения.

3
23.06.2016, 14:05
1 ответ

В приведенных выше сетевых файлах я обнаружил, что маскировка отсутствует. Следующие исправления:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Оказалось, что моя версия systemd была собрана без поддержки iptables. Повторная сборка с опцией 'libiptc'исправляет это. Мне нужно было добавить

IPForward=yes
IPMasquerade=yes

также в файл wireless.network.

0
27.01.2020, 21:48

Теги

Похожие вопросы