Предположим у нас есть внутренний WEB сервер, redirect_port даст нам возможность пробросить нужный порт. Из вне все работает. А вот если на этот же сервер обратиться из локальной сети, то ситуация будет следующая:
Пакет покидает компьютер в сети.
Поступает на шлюз.
Производится подстановка адреса назначения, однако адрес отправителя не подменяется, т.е. исходный адрес остается в пакете без изменения.
Пакет покидает брандмауэр и отправляется на HTTP сервер.
HTTP сервер, готовясь к отправке ответа, обнаруживает, что клиент находится в локальной сети (поскольку пакет запроса содержал оригинальный IP адрес, который теперь превратился в адрес назначения) и поэтому отправляет пакет непосредственно на компьютер в сети.
Пакет поступает на компьютер в сети. Клиент "путается", поскольку ответ пришел не с того узла, на который отправлялся запрос. Поэтому клиент "сбрасывает" пакет ответа и продолжает ждать "настоящий" ответ. Описание ситуации взято тут
вот что показывает tcpdump на шлюзе:
Код: Выделить всё
10:17:47.629282 IP 192.168.3.5.62693 > 1.2.3.4.80: Flags [S], seq 515027046, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
10:17:47.629298 IP 192.168.3.5.62693 > 192.168.1.100.80: Flags [S], seq 515027046, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
10:17:47.629360 IP 192.168.1.100.80 > 192.168.3.5.62693: Flags [S.], seq 2496991387, ack 515027047, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 8], length 0
10:17:47.629374 IP 192.168.1.100.80 > 192.168.3.5.62693: Flags [S.], seq 2496991387, ack 515027047, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 8], length 0
10:17:47.629384 IP 192.168.3.5.62694 > 1.2.3.4.80: Flags [S], seq 4035575244, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
10:17:47.629391 IP 192.168.3.5.62694 > 192.168.1.100.80: Flags [S], seq 4035575244, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
10:17:47.629441 IP 192.168.1.100.80 > 192.168.3.5.62694: Flags [S.], seq 1272958531, ack 4035575245, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 8], length 0
10:17:47.629453 IP 192.168.1.100.80 > 192.168.3.5.62694: Flags [S.], seq 1272958531, ack 4035575245, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 8], length 0
Код: Выделить всё
10:11:21.595965 IP 192.168.3.5.61106 > 192.168.1.100.80: Flags [S], seq 1994285038, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
10:11:21.596002 IP 192.168.1.100.80 > 192.168.3.5.61106: Flags [S.], seq 2602663054, ack 1994285039, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 8], length 0
10:11:21.596381 IP 192.168.3.5.61107 > 192.168.1.100.80: Flags [S], seq 3905203459, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
10:11:21.596397 IP 192.168.1.100.80 > 192.168.3.5.61107: Flags [S.], seq 2692432696, ack 3905203460, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 8], length 0