В основном SNAT
и MASQUERADE
делают один и тот же NAT источника в таблице nat в цепочке POSTROUTING.
Различия
MASQUERADE
не требует --to-source
, так как он был создан для работы с динамически назначаемыми IP
SNAT
работает только со статическими IP, поэтому он имеет --to-source
MASQUERADE
имеет дополнительные накладные расходы и медленнее, чем SNAT
, потому что каждый раз, когда цель MASQUERADE
получает пакет, он должен проверить IP-адрес для использования.
NOTE: Типичный случай использования MASQUERADE
: Экземпляр AWS EC2 в VPC, у него есть частный IP в пределах VPC CIDR (например, 10.10.1.0/24) - 10.10.1.100, например, у него также есть публичный IP для связи с Интернетом (предположим, он находится в публичной подсети), через который частный IP 1:1 NAT. Публичный IP может измениться после перезагрузки экземпляра (если это НЕ EIP), MASQUERADE
является лучшим вариантом в этом случае.
Важно: все еще можно использовать MASQUERADE
со статическим IP, просто помните о дополнительных накладных расходах.
Ссылки
Ваша модель неверна. Файлы dev предоставляютсяudev
(или в старых версиях Linux devfs
). Теперь udev
является частью systemd
. Ничего из этого не требуется вообще, можно использовать драйверы с прямым вызовом API (как в Windows ). На самом деле, некоторые системы с ним не строятся.
Создать файл в /dev
— это просто функция того, что создано dev
. Кассаmount | grep ' /dev '
udev on /dev type devtmpfs (rw,nosuid,relatime,size=8087376k,nr_inodes=2021844,mode=755)
^ See the udev. That's what created the abstraction.
Драйвер существует в ядре. Уровни абстракции предоставляются, поэтому у вас есть файл/io на устройстве. Это соответствует методологии Unix, согласно которой все вещи являются файлами, но это не обязательно.