Сколько правил сопоставления NAT (то есть сопоставлений между внутренним, частным IP: PORT и внешним IP: PORT) может поддерживать общий блок NAT?
Есть ли ограничение на такое количество (то есть сколько правил могут быть «активными» одновременно)?
Два фактора влияют на максимально возможное количество сопоставлений NAT для одного устройства: тип NAT и объем памяти, доступной для таблицы NAT:
Что касается типа NAT, давайте рассмотрим NAT с полным конусом, чтобы увидеть, как это влияет на количество возможных сопоставлений: каждое внутреннее ip:port
пара сопоставляется с внешним ip:port
пара. Теперь предположим, что у NAT есть только один доступный внешний IP-адрес, максимальное количество возможных сопоставлений ограничено возможным количеством внешних портов, которое составляет 2 ^ 16.
Что касается объема памяти, доступного для таблицы NAT, мы должны разделить два различных класса NAT: «аппаратный» и «программный» NAT. Я считаю, что специализированные устройства, такие как домашние маршрутизаторы или профессиональное сетевое оборудование, являются аппаратными NAT, тогда как стандартные ПК, работающие под управлением ОС общего назначения вместе с некоторым программным обеспечением NAT, создают программный NAT.
В то время как программные NAT явно ограничены объемом памяти хост-машины, аппаратные NAT имеют встроенную память для сопоставлений NAT, которая обычно не расширяется, если вы не имеете дело с оборудованием операторского уровня. Размер этой фиксированной памяти формирует ограничение на количество одновременных отображений NAT. Для типичных домашних маршрутизаторов размеры таблицы NAT находятся в диапазоне от 2 ^ 10 до 2 ^ 14 записей.
Я думаю, это должно дать вам довольно хорошее представление о размерах, ограничивающих сопоставление NAT на практике. Очевидно, что в этом измерении есть и другие факторы, такие как ограничения размера процесса для программных NAT в пространстве пользователя или политики, ограничивающие максимальное количество отображений на один хост и т. Д.
NAT - это всего лишь механизм, он не определяет никаких ограничений, и любой из них будет полностью зависеть от реализации. Я сомневаюсь, что кто-то может дать приблизительное среднее значение, поскольку существует так много реализаций NAT. Этот вопрос действительно не имеет смысла.
На данный момент лучший ответ находится на этой веб-странице: http://www.informit.com/articles/article.aspx?p=25273&seqNum=5 :
Теоретически не существует ограничений на количество отображений, которые может содержать таблица NAT. Фактически, память и ЦП или границы доступных адресов или портов накладывают ограничение на количество записей. Каждое отображение NAT использует примерно 160 байт памяти. В редком случае, когда записи должны быть ограничены по соображениям производительности или политики, вы можете использовать команду ip nat translation max-entries.