NAT — Network Address Translation, изменение сетевого адреса. NAT обычно используется на границе сети — между LAN и Интернет. NAT позволяет пользователю из локальной сети, который находится за маршрутизатором, использовать ресурсы в Интернете посредством подмены локального адреса глобальным и обратно. Без NAT пользователь не сможет выйти в Интернет.
Для настройки NAT, в первую очередь необходимо создать список доступа, в котором необходимо разрешить те адреса из локальной сети (сети в которой находятся оконечные устройства), которым вы хотите предоставить доступ в Интернет. Для этого создадим список доступа ip access-list extended 100, в нем укажем сеть, адреса которой мы будем транслировать permit 192.168.0.0 0.0.255.255 any.
Обратите внимание, при конфигурации списков доступа вместо маски подсети указывается шаблонная маска (Wildcard Mask).
Далее укажем границу NAT командой ip nat inside source list 100 interface fastethernet1/1 overload, где source list — список доступа; interface — интерфейс, на котором терминировано подключение к Интернет; overload — опция, которая включает PAT.
Осталось указать маршрутизатору, к какому интерфейсу подключена локальная сеть и к какому Интернет. Для этого, в режиме конфигурации интерфейса, к которому подключена локальная сеть, следует написать ip nat inside, а на том, к которому подключен Интернет — ip nat outside.
Пример:
telecombook(config)#ip access-list extended 100 telecombook(config-ext-nacl)#permit ip 192.168.0.0 0.0.255.255 any telecombook(config)#ip nat inside source list 100 interface fastethernet1/1 overload telecombook(config)#int fastethernet1/2 telecombook(config-if)#ip nat inside telecombook(config)#int fastethernet1/1 telecombook(config-if)#ip nat outside
Иногда может возникнуть ситуация, например, когда пользователю необходимо удаленно подключиться к своему рабочему столу или серверу, который находится за NATом. Для этого, как правило, используется порт 3389 RDP (Remote Desktop Protocol). Можно конечно настроить PPTP, L2TP или Easy VPN Server и полноценно использовать ресурсы внутреннией сети, но допустим, по каким-либо причинам данные технологии недоступны. Итак, для проброса порта RDP 3389, все что нужно знать это IP адрес хоста внутри сети, допустим это 192.168.1.10. В режиме глобальной конфигурации к предыдущей конфигурации добавляем строчку ip nat inside source static tcp 192.168.1.10 3389 interface fastethernet1/1 3389. Вместо номера интерфейса можно ввести внешний IP адрес, предоставленный провайдером, например, ip nat inside source static tcp 192.168.1.10 3389 201.25.114.45 3389.
Теперь на хосте с IP адресом 192.168.1.10 необходимо разрешить подключение к удаленному рабочему столу (Пуск — Мой компьютер(правый клик) — Свойства — Настройка удаленного доступа)*. На удаленной рабочей станции нужно создать ярлык подключения к удаленному рабочему столу (Пуск — Все программы — Стандартные — Подключение к удаленному рабочему столу)*, в свойствах которого указать адрес подключения, которым будет внешний IP адрес маршрутизатора 201.25.114.45. Остается дважды кликнуть по ярлыку будучи в любой точке земного шара, при условии наличия Интернет соединения, и вы окажетесь на рабочем столе хоста или сервера компании.
Пример:
telecombook(config)#ip access-list extended 100 telecombook(config-ext-nacl)#permit ip 192.168.0.0 0.0.255.255 any telecombook(config)#ip nat inside source list 100 interface fastethernet1/1 overload telecombook(config)#ip nat inside source static tcp 192.168.1.10 3389 interface fastethernet1/1 3389 ext telecombook(config)#int fastethernet1/2 telecombook(config-if)#ip nat inside telecombook(config)#int fastethernet1/1 telecombook(config-if)#ip nat outside
Альтернативная конфигурация позволит подключаться к нескольким серверам по RDP через один внешний IP адрес. Перед подключением к RDP на клиенте в настройках подключения укажите внешний IP адрес назначения и порт, например, 201.25.114.45:15001.
telecombook(config)#ip nat inside source static tcp 192.168.1.10 3389 201.25.114.45 15000 ext telecombook(config)#ip nat inside source static tcp 192.168.1.11 3389 201.25.114.45 15001 ext telecombook(config)#ip nat inside source static tcp 192.168.1.12 3389 201.25.114.45 15002 ext
Обновление от 16.08.2010
Далее будут представлены мои фантазии на то, как реализовать функционал представленной схемы:
Я называю это фантазиями, потому что придуманный мною конфиг при его применении на Cisco 800 серии по определенным обстоятельствам не давал мне закончить начатое удаленно, но я все же надеюсь, что он рабочий и когда-нибудь пригодится не только мне, но и моим читателям. Я не исключаю, что в нем есть ошибка, хотя вполне может быть, что ее вовсе нет:
ip access-list ext 192168101out 10 deny ip host 192.168.10.1 172.16.4.0 0.0.0.255 20 permit ip host 192.168.10.1 any exit route-map 192168101out permit 10 match ip address 192168101out exit ip nat pool NATpool101 87.230.156.101 87.230.156.101 prefix-length 28 ip nat inside source route-map 192168101out pool NATpool101 ----------------------------------------------------- ip access-list ext 192168102out 10 deny ip host 192.168.10.2 172.16.4.0 0.0.0.255 20 permit ip host 192.168.10.2 any exit route-map 192168102out permit 10 match ip address 192168102out exit ip nat pool NATpool102 87.230.156.102 87.230.156.102 prefix-length 28 ip nat inside source route-map 192168102out pool NATpool102 ----------------------------------------------------- ip access-list ext to1721640 10 permit ip 192.168.10.0 0.0.0.255 172.16.4.0 0.0.0.255 route-map to1721640 permit 10 match ip address to1721640 ip nat pool NATpool172x41 172.16.4.1 172.16.4.1 prefix-length 24 ip nat inside source route-map to1721640 pool NATpool172x41