Jump to content
Калькуляторы

Проблема с NAT на ASR1002

Доброго вечера!

 

Коллеги, имеется следующая схема:

f756672bd6fc.png

PC1 (172.30.30.120) необходимо ходит до некоторых хостов на стороне партнера, например на 10.200.200.51.

Связь с партнером организованна по средствам IPsec (crypro map).

 

Между R1 и R2 поднят Gre tunnel.

R2 получает маршруты до хостов из сети 10.200.200.XX по ospf от R1, на R1 сделан static route в интерфейс GigabitEthernet0/0.1 на котором висит crypto map Partner, а так же redistribute static в ospf.

Там образом, трафик от PC1 идет на R2 потом на R1, на R2 кроме роутинга, ни каких действий не выполняется.

А вот на R1 необходимо выполнить NAT, а после отправить трафик у туннель.

 

Железо:

Chassis type: ASR1002

 

Slot Type State Insert time (ago)

--------- ------------------- --------------------- -----------------

0 ASR1002-SIP10 ok 1w5d

0/0 4XGE-BUILT-IN ok 1w5d

R0 ASR1002-RP1 ok, active 1w5d

F0 ASR1000-ESP10 ok, active 1w5d

P0 ASR1002-PWR-AC ok 1w5d

P1 ASR1002-PWR-AC ok 1w5d

 

Slot CPLD Version Firmware Version

--------- ------------------- ---------------------------------------

0 07120202 15.3(3r)S

R0 08011017 15.3(3r)S

F0 07051680 15.3(3r)S

 

Cisco IOS Software, ASR1000 Software (PPC_LINUX_IOSD-ADVENTERPRISEK9-M), Version 15.4(3)S1, RELEASE SOFTWARE (fc3)

 

Конфигурация R1 (некоторые настройки убраны дабы не засорять эфир):

crypto isakmp policy 10 
encr aes 256 
authentication pre-share 
group 10 
! 
crypto isakmp policy 20 
encr 3des 
authentication pre-share 
group 10 
! 
crypto isakmp policy 30 
encr 3des 
hash md5 
authentication pre-share 
group 10 

crypto isakmp key top-secret:) address IP-PARTNER 
crypto ipsec transform-set ESP_AES_SHA esp-aes esp-sha-hmac 

crypto map Partner 10 ipsec-isakmp 
description Partner 
set peer IP-PARTNER 
set transform-set EESP_AES_SHA 
set pfs group10 
match address ACL-Partner 

interface Loopback20 
description Partner private IP 
ip address 172.18.15.1 255.255.255.255 
ip nat outside 
ip virtual-reassembly 

interface Tunnel20 
description to R2 
ip address 10.0.255.14 255.255.255.252 
ip mtu 1400 
ip nat inside 
no ip virtual-reassembly 
ip tcp adjust-mss 1360 
ip ospf authentication message-digest 
ip ospf message-digest-key 1 md5 7 top-secret:) 
ip ospf cost 10 
ip ospf dead-interval minimal hello-multiplier 4 
load-interval 30 
tunnel source GigabitEthernet0/0.1 
tunnel destination xx.xx.xx.xx 

interface GigabitEthernet0/0.1 
description Intet_ 
ip address x.xx.xx.xx 255.255.255.252 
ip access-group internet-in in 
ip nat outside 
ip virtual-reassembly 
ntp disable 
crypto map Partner 

router ospf 20 
router-id 10.10.10.1 
log-adjacency-changes 
area 0 authentication message-digest 
timers throttle spf 10 100 1000 
timers throttle lsa 10 100 1000 
timers lsa arrival 50 
timers pacing flood 5 
timers pacing retransmission 60 
redistribute connected 
redistribute static subnets route-map redistribute_static 
passive-interface default 
no passive-interface GigabitEthernet0/1 
no passive-interface Tunnel10 
no passive-interface Tunnel20 
no passive-interface Tunnel25 
no passive-interface Tunnel30 

ip nat inside source list Partner-NAT-ACL interface Loopback20 overload 

ip route 10.200.200.51 255.255.255.255 GigabitEthernet0/0.1 
ip route 10.200.200.52 255.255.255.255 GigabitEthernet0/0.1 
ip route 10.200.200.56 255.255.255.255 GigabitEthernet0/0.1 
ip route 10.200.200.58 255.255.255.255 GigabitEthernet0/0.1 
ip route 10.200.200.71 255.255.255.255 GigabitEthernet0/0.1 

ip access-list extended ACL-Partner 
permit ip host 172.18.15.1 host 10.200.200.51 
permit ip host 172.18.15.1 host 10.200.200.52 
permit ip host 172.18.15.1 host 10.200.200.56 
permit ip host 172.18.15.1 host 10.200.200.58 
permit ip host 172.18.15.1 host 10.200.200.71 

ip access-list extended Partner-NAT-ACL 
permit ip host 172.30.30.120 host 10.200.200.51 
permit ip host 172.30.30.120 host 10.200.200.52 
permit ip host 172.30.30.120 host 10.200.200.56 
permit ip host 172.30.30.120 host 10.200.200.58 
permit ip host 172.30.30.120 host 10.200.200.71 

ip prefix-list static_route seq 50 permit 10.200.200.51/32 
ip prefix-list static_route seq 55 permit 10.200.200.52/32 
ip prefix-list static_route seq 60 permit 10.200.200.56/32 
ip prefix-list static_route seq 65 permit 10.200.200.58/32 
ip prefix-list static_route seq 70 permit 10.200.200.71/32 

route-map redistribute_static permit 10 
match ip address prefix-list static_route

 

И тут возникает проблема, трафик попадая на R1 должен попасть в обработку NAT, но этого по какой-то причине не происходит.

при выводе sh ip nat translations:

для 172.18.15.1 ничего нет

 

На сколько я понял, сначала происходит routing вместо NAT.

 

Каким образом можно первым выполнять NAT а после routing?

 

З.Ы

Самое интересно что на 7201 такая схема работает.

 

Что заметил, если на ASR1002 вместо crypto map использовать gre то всё работает, если через gre запущен EIGRP\OSPF, или просто static

через crypto map работает на 73х 72х.

на ASR, если например сделать telnet 10.200.200.51 443 /source-interface Loopback20, telnet проходит, tunnel поднимается трафик в него уходит, но NAT не работает ни в какую

Edited by unfraget

Share this post


Link to post
Share on other sites

Убрать

 

interface Loopback20 
description Partner private IP 
ip address 172.18.15.1 255.255.255.255 
ip nat outside 
ip virtual-reassembly 
!
ip nat inside source list Partner-NAT-ACL interface Loopback20 overload 

 

Добавить

 

ip nat pool IPSEC-NAT-POOL 172.18.15.1 172.18.15.1 prefix-length 24
ip nat inside source list Partner-NAT-ACL pool IPSEC-NAT-POOL overload

Edited by ShyLion

Share this post


Link to post
Share on other sites

Убрать

 

interface Loopback20 
description Partner private IP 
ip address 172.18.15.1 255.255.255.255 
ip nat outside 
ip virtual-reassembly 
!
ip nat inside source list Partner-NAT-ACL interface Loopback20 overload 

 

Добавить

 

ip nat pool IPSEC-NAT-POOL 172.18.15.1 172.18.15.1 prefix-length 24
ip nat inside source list Partner-NAT-ACL pool IPSEC-NAT-POOL overload

 

К сожалению pool не работает

Нет работает, даже если сделать статическую трансляцию :(

Share this post


Link to post
Share on other sites

Убрать

 

interface Loopback20 
description Partner private IP 
ip address 172.18.15.1 255.255.255.255 
ip nat outside 
ip virtual-reassembly 
!
ip nat inside source list Partner-NAT-ACL interface Loopback20 overload 

 

Добавить

 

ip nat pool IPSEC-NAT-POOL 172.18.15.1 172.18.15.1 prefix-length 24
ip nat inside source list Partner-NAT-ACL pool IPSEC-NAT-POOL overload

 

К сожалению pool не работает

Нет работает, даже если сделать статическую трансляцию :(

 

А лупбек-то убирал, когда пул был?

Share this post


Link to post
Share on other sites

Убрать

 

interface Loopback20 
description Partner private IP 
ip address 172.18.15.1 255.255.255.255 
ip nat outside 
ip virtual-reassembly 
!
ip nat inside source list Partner-NAT-ACL interface Loopback20 overload 

 

Добавить

 

ip nat pool IPSEC-NAT-POOL 172.18.15.1 172.18.15.1 prefix-length 24
ip nat inside source list Partner-NAT-ACL pool IPSEC-NAT-POOL overload

 

К сожалению pool не работает

Нет работает, даже если сделать статическую трансляцию :(

 

А лупбек-то убирал, когда пул был?

 

Не будет работать, если адреса/сеть указанная в пуле не connected

Edited by unfraget

Share this post


Link to post
Share on other sites

Не будет работать, если адреса/сеть указанная в пуле не connected

Да с какого перепугу-то не будет? Всю жизнь так циски настраиваю, все работает, а ты уперся.

Share this post


Link to post
Share on other sites

Не будет работать, если адреса/сеть указанная в пуле не connected

Да с какого перепугу-то не будет? Всю жизнь так циски настраиваю, все работает, а ты уперся.

Соберите ради интереса в стенд, проверьте, сделайте pool из адресов которые не где не назначены

Share this post


Link to post
Share on other sites

unfraget

И будет отлично работать. Лишь бы сверху приходил трафик и был маршрут наверх. Для неизвестного трафика будет L3-петля, поэтому нужно нулроутить этот пул

Share this post


Link to post
Share on other sites

Не будет работать, если адреса/сеть указанная в пуле не connected

Да с какого перепугу-то не будет? Всю жизнь так циски настраиваю, все работает, а ты уперся.

Соберите ради интереса в стенд, проверьте, сделайте pool из адресов которые не где не назначены

 

Чего мне его собирать? он у меня в продакшене, и не в одном месте.

 

interface TenGigabitEthernet0/1/0.9
encapsulation dot1Q 9
ip address 1xx.xx.196.5 255.255.255.254
!
ip nat pool nat_pool 1xx.xx.196.65 1xx.xx.196.191 netmask 255.255.255.0
!
ip nat inside source list nat pool nat_pool overload
!

Вот прямо с BRAS, ASR-1002X

Share this post


Link to post
Share on other sites

Продолжил ломать голову.

С:

на ASR, если например сделать telnet 10.200.200.51 443 /source-interface Loopback20, telnet проходит, tunnel поднимается трафик в него уходит, но NAT не работает ни в какую

я сильно погорячился, telnet'а тоже нет.

 

00395: Jul  6 16:22:39 MSK: IPSEC(ipsec_process_proposal): invalid local address yy.yy.yy.yy
000396: Jul  6 16:22:39 MSK: ISAKMP:(1004): IPSec policy invalidated proposal with error 8
000397: Jul  6 16:22:39 MSK: ISAKMP:(1004): phase 2 SA policy not acceptable! (local yy.yy.yy.yy remote xx.xx.xx.xx)

000403: Jul  6 16:22:39 MSK: %CRYPTO-5-IPSEC_SETUP_FAILURE: IPSEC SETUP FAILED for local:xx.xx.xx.xx local_id:xx.xx.xx.xx remote:yy.yy.yy.yy remote_id:yy.yy.yy.yy IKE profile:None fvrf:None fail_reason:IPSec Proposal failure fail_class_cnt:1
000404: Jul  6 16:22:39 MSK: ISAKMP:(1004):deleting node 2134625445 error TRUE reason "QM rejected"

 

Но почему это происходит понят пока не удалось

Edited by unfraget

Share this post


Link to post
Share on other sites

Loopback20

...

? Oo

Проверил с pool'ом, результат 0

ShyLion

Вы поймите, тут не важно как вы NATите, тут проблема с IPSec каналом, и почему он не поднимается при смене железа понять достаточно проблематично :)

Edited by unfraget

Share this post


Link to post
Share on other sites

Давай полный конфиг, все строки.

Так там остальное настройки для других партнеров, а так же протоколов динамической маршрутизации, NAT'ы, то что не влияет на прохождение трафика до данного партнера.

Все отличия в конфигурации это 7201 это:

 

service tcp-keepalives-in
service tcp-keepalives-out
service sequence-numbers
service unsupported-transceiver
no platform punt-keepalive disable-kernel-core

ip tcp selective-ack
ip tcp mss 1460
ip tcp window-size 65535
ip tcp synwait-time 5

ip nat settings pap
ip nat translation timeout 600
ip nat translation tcp-timeout 360
ip nat translation udp-timeout 60
ip nat translation syn-timeout 30
ip nat translation dns-timeout 5
ip nat translation icmp-timeout 5
ip nat translation max-entries 5000000
ip nat translation max-entries all-host 300
no ip nat service all-algs 

Share this post


Link to post
Share on other sites

ip route 10.200.200.51 255.255.255.255 GigabitEthernet0/0.1 
ip route 10.200.200.52 255.255.255.255 GigabitEthernet0/0.1 
ip route 10.200.200.56 255.255.255.255 GigabitEthernet0/0.1 
ip route 10.200.200.58 255.255.255.255 GigabitEthernet0/0.1 
ip route 10.200.200.71 255.255.255.255 GigabitEthernet0/0.1 

Так, кстати, не рекомендую делать, используется proxy-arp оператора, а на самом роутере, если так дефолт сделан, о***ард записей в таблице ARP и CEF.

А если оператор захочет выключить proxy-arp, то и вовсе перестанет работать.

Share this post


Link to post
Share on other sites

ip route 10.200.200.51 255.255.255.255 GigabitEthernet0/0.1 
ip route 10.200.200.52 255.255.255.255 GigabitEthernet0/0.1 
ip route 10.200.200.56 255.255.255.255 GigabitEthernet0/0.1 
ip route 10.200.200.58 255.255.255.255 GigabitEthernet0/0.1 
ip route 10.200.200.71 255.255.255.255 GigabitEthernet0/0.1 

Так, кстати, не рекомендую делать, используется proxy-arp оператора, а на самом роутере, если так дефолт сделан, о***ард записей в таблице ARP и CEF.

А если оператор захочет выключить proxy-arp, то и вовсе перестанет работать.

Ну да, это не очень хорошо. ну какое наследство досталось)) сча надо запустить всё, позже буду приводить к нормальному виду.

Share this post


Link to post
Share on other sites

Самое интересное, что подобная ошибка 2й фазы

IPSec policy invalidated proposal with error 8

Возникает если не совпадают ACL, но блин ACL с обеих стороны правильные.

 

ip access-list extended ACL-Partner 
permit ip host 172.18.15.1 host 10.200.200.51
permit ip host 172.18.15.1 host 10.200.200.52
permit ip host 172.18.15.1 host 10.200.200.56
permit ip host 172.18.15.1 host 10.200.200.58
permit ip host 172.18.15.1 host 10.200.200.71

access-list ACL-Customer extended permit ip host 10.200.200.51 host 172.18.15.1
access-list ACL-Customer extended permit ip host 10.200.200.52 host 172.18.15.1
access-list ACL-Customer extended permit ip host 10.200.200.56 host 172.18.15.1
access-list ACL-Customer extended permit ip host 10.200.200.58 host 172.18.15.1
access-list ACL-Customer extended permit ip host 10.200.200.71 host 172.18.15.1

Edited by unfraget

Share this post


Link to post
Share on other sites

500074: Jul 12 10:40:31 MSK: IPSEC(crypto_ipsec_create_ipsec_sas): Map found Partner, 10 
1500075: Jul 12 10:40:31 MSK:  ISAKMP: Failed to find peer index node to update peer_info_list 
1500076: Jul 12 10:40:31 MSK: ISAKMP:(1178):Received IPSec Install callback... proceeding with the negotiation 
1500077: Jul 12 10:40:31 MSK: ISAKMP:(1178):Successfully installed IPSEC SA (SPI:0x39C40FA7) on GigabitEthernet0/0/0 
1500078: Jul 12 10:40:31 MSK: IPSEC(crypto_ipsec_sa_find_ident_head): reconnecting with the same proxies and peer xx.xx.xx.xx 
1500079: Jul 12 10:40:31 MSK: %CRYPTO-5-SESSION_STATUS: Crypto tunnel is UP  .  Peer xx.xx.xx.xx:500       Id: xx.xx.xx.xx 
1500080: Jul 12 10:40:31 MSK: ISAKMP:(1178): sending packet to xx.xx.xx.xx my_port 500 peer_port 500 (R) QM_IDLE 
1500081: Jul 12 10:40:31 MSK: ISAKMP:(1178):Sending an IKE IPv4 Packet. 
1500082: Jul 12 10:40:31 MSK: ISAKMP:(1178):Node 2817755520, Input = IKE_MESG_FROM_IPSEC, IPSEC_INSTALL_DONE 
1500083: Jul 12 10:40:31 MSK: ISAKMP:(1178):Old State = IKE_QM_IPSEC_INSTALL_AWAIT  New State = IKE_QM_R_QM2 
1500084: Jul 12 10:40:31 MSK: IPSEC(create_sa): sa created, 
 (sa) sa_dest= yy.yy.yy.yy, sa_proto= 50, 
   sa_spi= 0xBC97CD6F(3164065135), 
   sa_trans= esp-aes esp-sha-hmac , sa_conn_id= 2323 
   sa_lifetime(k/sec)= (4608000/86400), 
 (identity) local= yy.yy.yy.yy:0, remote= xx.xx.xx.xx:0, 
   local_proxy= 172.18.15.1/255.255.255.255/256/0, 
   remote_proxy= 10.200.200.51/255.255.255.0/256/0 
1500085: Jul 12 10:40:31 MSK: IPSEC(create_sa): sa created, 
 (sa) sa_dest= xx.xx.xx.xx, sa_proto= 50, 
   sa_spi= 0x4E4A4F6C(1313492844), 
   sa_trans= esp-aes esp-sha-hmac , sa_conn_id= 2324 
   sa_lifetime(k/sec)= (4608000/86400), 
 (identity) local= yy.yy.yy.yy:0, remote= xx.xx.xx.xx:0, 
   local_proxy= 172.18.15.1/255.255.255.255/256/0, 
   remote_proxy= 10.200.200.51/255.255.255.0/256/0 
1500086: Jul 12 10:40:31 MSK:  ISAKMP: Failed to find peer index node to update peer_info_list 
1500087: Jul 12 10:40:31 MSK: ISAKMP:(1178):Received IPSec Install callback... proceeding with the negotiation 
1500088: Jul 12 10:40:31 MSK: ISAKMP:(1178):Successfully installed IPSEC SA (SPI:0xBC97CD6F) on GigabitEthernet0/0/0 
1500089: Jul 12 10:40:31 MSK: ISAKMP (1178): received packet from xx.xx.xx.xx dport 500 sport 500 Global (R) QM_IDLE 
1500090: Jul 12 10:40:31 MSK: ISAKMP:(1178):deleting node -1477211776 error FALSE reason "QM done (await)" 
1500091: Jul 12 10:40:31 MSK: ISAKMP:(1178):Node 2817755520, Input = IKE_MESG_FROM_PEER, IKE_QM_EXCH 
1500092: Jul 12 10:40:31 MSK: ISAKMP:(1178):Old State = IKE_QM_R_QM2  New State = IKE_QM_PHASE2_COMPLETE 
1500093: Jul 12 10:40:31 MSK: IPSEC(key_engine): got a queue event with 1 KMI message(s) 
1500094: Jul 12 10:40:31 MSK: IPSEC(ipsec_get_crypto_session_id):Invalid Payload Id 
1500095: Jul 12 10:40:31 MSK: IPSEC(key_engine_enable_outbound): rec'd enable notify from ISAKMP 
1500096: Jul 12 10:40:31 MSK: ISAKMP:(1178): sending packet to xx.xx.xx.xx my_port 500 peer_port 500 (R) QM_IDLE 
1500097: Jul 12 10:40:31 MSK: ISAKMP:(1178):Sending an IKE IPv4 Packet. 
1500098: Jul 12 10:40:31 MSK: ISAKMP:(1178):Node 310787381, Input = IKE_MESG_FROM_IPSEC, IPSEC_INSTALL_DONE 
1500099: Jul 12 10:40:31 MSK: ISAKMP:(1178):Old State = IKE_QM_IPSEC_INSTALL_AWAIT  New State = IKE_QM_R_QM2 
1500100: Jul 12 10:40:31 MSK: ISAKMP (1178): received packet from xx.xx.xx.xx dport 500 sport 500 Global (R) QM_IDLE 
1500101: Jul 12 10:40:31 MSK: ISAKMP:(1178):deleting node 310787381 error FALSE reason "QM done (await)" 
1500102: Jul 12 10:40:31 MSK: ISAKMP:(1178):Node 310787381, Input = IKE_MESG_FROM_PEER, IKE_QM_EXCH 
1500103: Jul 12 10:40:31 MSK: ISAKMP:(1178):Old State = IKE_QM_R_QM2  New State = IKE_QM_PHASE2_COMPLETE 
1500104: Jul 12 10:40:31 MSK: IPSEC(key_engine): got a queue event with 1 KMI message(s) 
1500105: Jul 12 10:40:31 MSK: IPSEC(ipsec_get_crypto_session_id):Invalid Payload Id 
1500106: Jul 12 10:40:31 MSK: IPSEC(key_engine_enable_outbound): rec'd enable notify from ISAKMP 
1500108: Jul 12 10:40:35 MSK: ISAKMP: set new node -1411138629 to QM_IDLE 
1500109: Jul 12 10:40:35 MSK: ISAKMP:(1154):Sending NOTIFY DPD/R_U_THERE protocol 1 
       spi 1045543968, message ID = 2883828667

 

IKE_QM_R_QM2 New State = IKE_QM_PHASE2_COMPLETE

 

Но трафик по прежнему в туннель не заворачивается.

Так же смущает сообщение;

ISAKMP: Failed to find peer index node to update peer_info_list

Edited by unfraget

Share this post


Link to post
Share on other sites

Кстати да, есть такой косяк, когда удаленный пир за натом, а до его приватного IP маршрут не через тот-же интерфейс что и его внешний адрес, вот такая хрень вылазит.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.