Здравствуйте!Для организации резервного канала в Интернет, требуется сделать NAT на одном физическом интерфейсе на Cisco1841 (flash:c1841-ipbasek9-mz.124-24.T2.bin) без использования VLAN. Второй физический интерфейс на 1841 уже занят под основной канал, а VLAN нельзя использовать, так как коммутатор офисной сети их не поддерживает.
Схема:
- Внутренняя сеть: 192.168.20.0/24 – там располагаются хосты пользователей
- Внутренняя промежуточная сеть 192.168.1.0/24, в которой подсеть 192.168.20.0/24 должна прятаться за каким-нибудь IP из 192.168.1.X-подсети .
- NAT-router (Cisco 1841)
- Интернет-шлюз с LAN=192.168.1.1/24 и выходом в Инет (может быть любой, сейчас MTS-Router c 3G-опцией)Делал на основе этого документа: http://www.cisco.com/en/US/tech/tk648/tk361/technologies_tec...
Сделал пример на старой Cisco 2507 – работает!
А подобный конфиг на 1841 почему-то нет.Пингую, например, с хоста 192.168.20.121 узел 8.8.8.8
Пакет натится и уходит в Инет. Обратный ответ возвращается на 1841 и всё. Не срабатывает route-map, пакет не натится и не доходит соответственно до хоста пользователя.=======
!
!
interface Loopback0
ip address 10.0.1.1 255.255.255.252
ip nat outside
ip virtual-reassembly
!
interface FastEthernet0/0
description LAN
ip address 192.168.1.100 255.255.255.0 secondary
ip address 192.168.20.100 255.255.255.0
ip nat inside
ip virtual-reassembly
ip policy route-map nat-loop
duplex auto
speed auto
!
interface FastEthernet0/1
description WAN
no ip address
ip virtual-reassembly
shutdown
duplex auto
speed auto
!
ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 192.168.1.1
!
no ip http server
ip http authentication local
no ip http secure-server
ip http timeout-policy idle 600 life 86400 requests 10000
!
ip nat pool EXTERNAL1 192.168.1.202 192.168.1.203 prefix-length 29
ip nat inside source list 10 pool EXTERNAL1 overload
!
logging trap debugging
logging facility local6
access-list 10 permit 192.168.20.0 0.0.0.255
access-list 102 permit ip 192.168.20.0 0.0.0.255 any
access-list 102 permit ip any 192.168.1.200 0.0.0.7
access-list 133 permit icmp any any
route-map nat-loop permit 10
match ip address 102
set ip next-hop 10.0.1.2
!===============
c1841s1#sh debugging
Generic IP:
IP packet debugging is on for access list 133
IP NAT debugging is onPolicy Routing:
Policy routing debugging is on============
*May 27 09:16:49.371: IP: s=192.168.20.121 (FastEthernet0/0), d=8.8.8.8, len 60, input feature, Stateful Inspection(4), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.371: IP: s=192.168.20.121 (FastEthernet0/0), d=8.8.8.8, len 60, input feature, Virtual Fragment Reassembly(21), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.371: IP: s=192.168.20.121 (FastEthernet0/0), d=8.8.8.8, len 60, input feature, Virtual Fragment Reassembly After IPSec Decryption(32), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.371: IP: s=192.168.20.121 (FastEthernet0/0), d=8.8.8.8, len 60, policy match
*May 27 09:16:49.371: IP: route map nat-loop, item 10, permit
*May 27 09:16:49.371: IP: s=192.168.20.121 (FastEthernet0/0), d=8.8.8.8 (Loopback0), len 60, policy routed
*May 27 09:16:49.371: IP: FastEthernet0/0 to Loopback0 10.0.1.2
*May 27 09:16:49.371: IP: s=192.168.20.121 (FastEthernet0/0), d=8.8.8.8 (Loopback0), len 60, input feature, Policy Routing(59), rtype 2, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.371: IP: s=192.168.20.121 (FastEthernet0/0), d=8.8.8.8 (Loopback0), len 60, input feature, MCI Check(64), rtype 2, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.371: IP: s=192.168.20.121 (FastEthernet0/0), d=8.8.8.8 (Loopback0), len 60, output feature, CCE Output Classification(5), rtype 2, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.371: NAT: s=192.168.20.121->192.168.1.202, d=8.8.8.8 [19928]
*May 27 09:16:49.375: IP: s=192.168.1.202 (FastEthernet0/0), d=8.8.8.8 (Loopback0), len 60, output feature, Post-routing NAT Outside(17), rtype 2, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.375: IP: s=192.168.1.202 (FastEthernet0/0), d=8.8.8.8 (Loopback0), len 60, output feature, Stateful Inspection(20), rtype 2, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.375: IP: s=192.168.1.202 (FastEthernet0/0), d=8.8.8.8 (Loopback0), g=10.0.1.2, len 60, forward
*May 27 09:16:49.375: IP: s=192.168.1.202 (FastEthernet0/0), d=8.8.8.8 (Loopback0), len 60, sending full packet
*May 27 09:16:49.375: IP: s=192.168.1.202 (Loopback0), d=8.8.8.8, len 60, input feature, Stateful Inspection(4), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.375: IP: s=192.168.1.202 (Loopback0), d=8.8.8.8, len 60, input feature, Virtual Fragment Reassembly(21), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.375: IP: s=192.168.1.202 (Loopback0), d=8.8.8.8, len 60, input feature, Virtual Fragment Reassembly After IPSec Decryption(32), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.375: IP: s=192.168.1.202 (Loopback0), d=8.8.8.8, len 60, input feature, NAT Outside(53), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.375: IP: s=192.168.1.202 (Loopback0), d=8.8.8.8, len 60, input feature, MCI Check(64), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.375: IP: tableid=0, s=192.168.1.202 (Loopback0), d=8.8.8.8 (FastEthernet0/0), routed via RIB
*May 27 09:16:49.375: IP: s=192.168.1.202 (Loopback0), d=8.8.8.8 (FastEthernet0/0), len 60, output feature, NAT Inside(7), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.375: IP: s=192.168.1.202 (Loopback0), d=8.8.8.8 (FastEthernet0/0), len 60, output feature, Stateful Inspection(20), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:49.375: IP: s=192.168.1.202 (Loopback0), d=8.8.8.8 (FastEthernet0/0), g=192.168.1.1, len 60, forward
*May 27 09:16:49.375: IP: s=192.168.1.202 (Loopback0), d=8.8.8.8 (FastEthernet0/0), len 60, sending full packet
*May 27 09:16:50.375: IP: s=8.8.8.8 (FastEthernet0/0), d=192.168.1.202, len 60, input feature, Stateful Inspection(4), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:50.375: IP: s=8.8.8.8 (FastEthernet0/0), d=192.168.1.202, len 60, input feature, Virtual Fragment Reassembly(21), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:50.379: IP: s=8.8.8.8 (FastEthernet0/0), d=192.168.1.202, len 60, input feature, Virtual Fragment Reassembly After IPSec Decryption(32), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:50.379: IP: s=8.8.8.8 (FastEthernet0/0), d=192.168.1.202, len 60, input feature, Policy Routing(59), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:50.379: IP: s=8.8.8.8 (FastEthernet0/0), d=192.168.1.202, len 60, input feature, MCI Check(64), rtype 0, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:50.379: IP: tableid=0, s=8.8.8.8 (FastEthernet0/0), d=192.168.1.202 (FastEthernet0/0), routed via RIB
*May 27 09:16:50.379: IP: s=8.8.8.8 (FastEthernet0/0), d=192.168.1.202 (FastEthernet0/0), len 60, output feature, NAT Inside(7), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:50.379: IP: s=8.8.8.8 (FastEthernet0/0), d=192.168.1.202 (FastEthernet0/0), len 60, output feature, Stateful Inspection(20), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*May 27 09:16:50.379: IP: s=8.8.8.8 (FastEthernet0/0), d=192.168.1.202 (FastEthernet0/0), len 60, rcvd 3
*May 27 09:16:50.379: IP: s=8.8.8.8 (FastEthernet0/0), d=192.168.1.202, len 60, stop process pak for forus packet
========
Как то у вас все построено через ...Если быть очень внимательным то у вас
ip nat inside и ip nat outside местами перепутаны :)
и уберите ip virtual-reassembly грузит процессор
> Как то у вас все построено через ...
> Если быть очень внимательным то у вас
> ip nat inside и ip nat outside местами перепутаны :)
> и уберите ip virtual-reassembly грузит процессорСпасибо Николай! Я уже и сам дошел до того, чтобы поменять местами ip nat inside и ip nat outside. Правда методом тыка. :) И ЗАРАБОТАЛО! А почему вы решили, что роли NAT-интерфейсов перепутаны? Там же работает PBR, и по логике, все равно где делать inside, а где outside. Или я не прав?
В примере №1 http://www.cisco.com/en/US/tech/tk648/tk361/technologies_tec... именно так все и прописано и вполне работоспособно (Ethernet-ip nat inside, loopback-ip nat outside).
Да и сделав подобное на Cisco 2507 у меня все работало нормально.А построено все через ж... Согласен! )) Сначала я хотел сделать все без NAT. Но этот MTS-router почему-то не работает корректно, если на стороне LAN-интерфейса обращение идет ещё с какой-нибудь подсети, например с подсети 192.168.20.0/24. Причем маршрут на MTS-router-е правильно прописан на подсеть 192.168.20.0 через шлюз 192.168.1.100. И даже пинги бегают. Но авторизация на MTS-router-е не проходит и в Интернет он на те узлы не пускает. Подозреваю, что какие-то "скрытые" настройки безопасности.
> Спасибо Николай! Я уже и сам дошел до того, чтобы поменять местами
> ip nat inside и ip nat outside. Правда методом тыка. :)
> И ЗАРАБОТАЛО! А почему вы решили, что роли NAT-интерфейсов перепутаны? Там
> же работает PBR, и по логике, все равно где делать inside,
> а где outside. Или я не прав?Включаем логику. приходит пакет на FastEthernet0/0 вместо того что бы уйти по дефаулту срабатывает роутмапа которая кидает его на интерфейс-петлю проходя через него срабатывает НАТ inside далее циска смотрит на пакет и находит ему подходящий маршрут (в вашем случае дефаул роут) тут срабатывает НАТ outside - срабатываеть правило НАТ пакет натиться и уходит в мир. Логичнее всего повесить inside/outside на одном интерфейсе :) но такой функционал (чуток по другому реализован) есть у Cisco ASA :)
IMHO,
А не проще докупить свич с DOT1Q за 30-100$ и не заниматься поисками workaround?
По корректнее решение будет....
> IMHO,
> А не проще докупить свич с DOT1Q за 30-100$ и не заниматься
> поисками workaround?
> По корректнее решение будет....Свитч конечно же проще будет купить, и в будущем обязательно купят, но из-за сложной бюрократической схемы на это потребуется значительный промежуток времени и согласований. Задача заключается в том, чтобы обеспечить резервирование по 3G уже сейчас, на переходный период. Речь идет не об одном, а о десятке удалённых филиалов.
>[оверквотинг удален]
>> И ЗАРАБОТАЛО! А почему вы решили, что роли NAT-интерфейсов перепутаны? Там
>> же работает PBR, и по логике, все равно где делать inside,
>> а где outside. Или я не прав?
> Включаем логику. приходит пакет на FastEthernet0/0 вместо того что бы уйти по
> дефаулту срабатывает роутмапа которая кидает его на интерфейс-петлю проходя через него
> срабатывает НАТ inside далее циска смотрит на пакет и находит ему
> подходящий маршрут (в вашем случае дефаул роут) тут срабатывает НАТ outside
> - срабатываеть правило НАТ пакет натиться и уходит в мир. Логичнее
> всего повесить inside/outside на одном интерфейсе :) но такой функционал (чуток
> по другому реализован) есть у Cisco ASA :)Николай, но также логично должно работать (и работает!) и следующая схема. Приходит пакет на FE0/0, натится по НАТ inside и редиректится на Loopback, где срабатывает NAT-outside и пакет по дефолтному маршруту уходит в Инет. Все это работает, о чём свидетельствует кусок лога, который я приложил. Проблема получается с обратным пакетом, когда тот возвращается "из мира". По идее здесь тоже должен сработать route-map и кинуть его на loopback, где он должен пронатится в обратном направлении и уйти через Fa0/0 обратно клиенту. Но, почему-то, этого не происходит. Забавно то, что та же конфигурация на Cisco2507 работает "на УРА", в точности подтверждая пример, приведённый в документе "NAT on a Stick" (смотри ссылку выше).
Видимо сказывается особенность реализации NATа для версий IOS 11.3 и 12.4 (или особенность реализации для разных платформ железа).