Влияет ли это правило iptable на весь входящий трафик?

Влияет ли это правило iptable на весь входящий трафик?

Вопрос

Если я использую следующие условия в правиле iptable, какой эффект? Это то же самое, что указать любое соединение, нацеленное на меня?

! -d 127.0.0.0/8 -p tcp -m addrtype --dst-type LOCAL

Фон

В частности, я использую его для перенаправления портов на моем хосте (с публичным IP, скажем, 150.200.30.40) на один из моих контейнеров LXC (с IP 10.0.3.202). Мне кажется, что эти правила эквивалентны для трафика, адресованного на публичный IP-адрес моего хоста.

## IPTABLE RULE FOR INCOMING CONNECTIONS??
iptables -t nat -A PREROUTING ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -p tcp --dport 2222 -j DNAT --to-destination 10.0.3.202:22

## EQUIVALENT RULE?? (for connections directed at 150.200.30.40)
iptables -t nat -A PREROUTING -d 150.200.30.40 -p tcp --dport 2222  -j DNAT --to-destination 10.0.3.202:22

решение1

Бывают случаи, когда эти два значения не идентичны. Вот почему (я не обсуждаю здесь другие соответствия, такие как протокол и порт):

  1. Первое правило срабатывает, когда пакет направляется на локальный адрес (не включая диапазон 127.0.0.0).
  2. Второе правило срабатывает, когда пакет направляется на определенный IP-адрес (назначенный этому компьютеру, как вы упомянули).

Они будут идентичны, если этой машине назначен только один адрес, который равен 150.200.30.40. Оба будут соответствовать пакету, предназначенному для локального адреса, не соответствующего диапазону 127.0.0.0.

Они будут отличаться, если хотя бы один адрес назначен любому интерфейсу, отличному от указанного публичного IP-адреса (и, конечно, за исключением специального частного диапазона 127.0.0.0).

Если указанный публичный IP-адрес не назначен этому компьютеру, то они наверняка разные.

Связанный контент