Как пробросить порт в CISCO в подменой адреса отправления?
Имеется маршрутизатор cisco 2801 с двумя интерфейсами, ip внешний 87.1.1.1, ip внутренний 192.168.0.1, внутренний сервер 192.168.0.200, порт 80.
Как сделать так, чтобы пакет из интернета после прохождения маршрутизатора получал адрес назначения 192.168.0.200 порт 80 и адрес отправления 192.168.0.1 и при этом появлялась запись в таблице трансляций для возвращения его обратно, в обычной трансляции ip адрес отправления не меняется. Нужно для доступа к серверу из резервного канала без перенастройки маршрута по умолчанию.
Насколько я понял, вы хотите, чтобы внутренний сервер видел в качестве источника пакета сам маршрутизатор?
Но тогда маршрутизатор в любом случае будет отправлять пакет на реального отправителя согласно таблице маршрутизации, а не таблице трансляции.
Вам надо делать Policy Based Routing.
ip nat inside source static tcp 192.168.0.200 80 87.1.1.1 80 extendable
в данном случае пакет приходит на хост с source ip реальным, так как приходит со стороны outside интерфейса и вернется на шлюз по умолчанию, заданный на хосте.
Но если вы обращаетесь со статического IP можно на хосте добавить route в сторону резервного канала и соотвественно пакет вернется туда откуда пришел.
В Windows например команда
netsh interface portproxy add v4tov4 listenport=3389 listenaddress=x.x.x.x connectport=3389 connectaddress=y.y.y.y
именно так и делает.
То есть в пакете внутри сети обратным адресом значится внутренний адрес Windows шлюза, а не адрес клиента в интернете.