Есть маршрутизатор Cisco 2621, на нём два интерфейса:
fa0/1 включенный во внешнюю сетку, описанный как:
===
interface FastEthernet0/1
ip address 172.26.255.20 255.255.255.0
ip nat outside
end
===
и fa0/0, включенный в локалку
===
interface FastEthernet0/0
ip address 172.22.82.21 255.255.255.0 secondary
ip address 172.26.20.254 255.255.255.0
ip nat inside
end
====
На внутреннем интерфейсе (fa0/0) сидит (через простой свитч) хост, на котором НЕ ПРОПИСАНО НИКАКИХ ШЛЮЗОВ, то есть он работает только в локалке, адрес его 172.22.82.20, мало того, даже пинг с самой циски на него идёт только если явно указать адрес источника из его подсетки, вот так:
ping 172.22.82.20 source 172.22.82.21
Надо сделать так, чтобы пакеты, прилетевшие снаружи на интерфейс fa0/1 с адресом назначения 172.22.82.20, на внутреннем интерфейсе маскарадились адресом источника 172.22.82.21. Может даже чтобы ВООБЩЕ все пакеты идущие на 172.22.82.20 маскарадились исходником 172.22.82.21.
На линуксе я знаю как:
iptables -t nat -I POSTROUTING -d 172.22.82.20 -j SNAT --to-source 172.22.82.21
На циске такое ощущение, что не поменяв местами inside и outside такого не сделать, но этого делать нельзя - есть несколько NATов которые в работе и их прерывать нельзя.Пните меня в нужную сторону, плиз....
Заранее благодарен
Делал когда-то давно так:
ip nat inside source static tcp 192.168.0.1 25 interface FastEthernet0/0 25т.е. пакет, пришедший на внешний интерфейс на 25 порт, пробрасывается внутрь на 192.168.0.1:25
Оно?
Адаптируйте под себя
>Делал когда-то давно так:
>ip nat inside source static tcp 192.168.0.1 25 interface FastEthernet0/0 25
>
>т.е. пакет, пришедший на внешний интерфейс на 25 порт, пробрасывается внутрь на
>192.168.0.1:25
>
>Оно?
>Адаптируйте под себяНемного не то. Тут подразумевается что на хосте 192.168.0.1 прописан маршрут по умолчанию все неизвестные отправлять на внутренний адрес циски.
В моём случае никаких шлюзов на внутреннем хосте не прописано.
К тому же через port forwarding не прокинуть icmp
Возможно (т.е. может быть, я не знаю точно, но может быть) тебе подойдёт вариант "ip nat outside source static", почитай http://www.cisco.com/en/US/docs/ios/12_3/ipaddr/command/refe... и http://www.cisco.com/en/US/tech/tk648/tk361/technologies_con...Менять местами outside & inside приведёт лишь к изменению порядка обработки пакета - либо он маршрутизируется и натится, либо натится и маршрутизируется.
>На внутреннем интерфейсе (fa0/0) сидит (через простой свитч) хост, на котором НЕ
>ПРОПИСАНО НИКАКИХ ШЛЮЗОВ, то есть он работает только в локалке, адрес
>его 172.22.82.20, мало того, даже пинг с самой циски на него
>идёт только если явно указать адрес источника из его подсетки, вот
>так:
>ping 172.22.82.20 source 172.22.82.21это более чем странно. Насколько мне известно (а ошибаюсь я чуть чаще чем всегда), кошка выбирает в качестве source адрес исходящего интерфейса, должно бы работать и без указания источника :( В общем - странно.
>>идёт только если явно указать адрес источника из его подсетки, вот
>>так:
>>ping 172.22.82.20 source 172.22.82.21
>
>это более чем странно. Насколько мне известно (а ошибаюсь я чуть чаще
>чем всегда), кошка выбирает в качестве source адрес исходящего интерфейса, должно
>бы работать и без указания источника :( В общем - странно.
>Видимо вы просто не сталкивались. Cisco IOS в отличие от всех прочих систем при отправке пакета с интерфейса на адрес сетки, которая прописана на этом же интерфейсе как secondary (alias для unix'ов), в качестве исходного адреса пакета ВСЕГДА подставляет ОСНОВНОЙ адрес интерфейса.
Проблему вроде бы решил вот таким образом (172.26.11.22 - это адрес с которого надо достукиваться до внутреннего хоста):
ip nat inside source static 172.22.82.20 172.26.20.82
ip nat outside source static 172.26.11.22 172.22.82.22
ip route 172.22.82.22 255.255.255.255 172.26.255.11
последний пришлось вставить из-за ещё одной особенности IOS описанной здесь: http://www.lissyara.su/articles/cisco/double_nat/
Вот только происходит странная штука: теперь нужный хост пингую как по 172.22.82.20 так и по 172.26.20.82, но после первого же пакета на адрес 172.22.82.20 адрес НАТ 172.26.20.82 становится недоступен, пока не сделаешь на циске "clear ip nat translation".
Беда невеликая - использовать один из них, но все равно занятно.
И насколько проще это делается с iptables :-)