unfraget Posted July 5, 2016 (edited) Доброго вечера! Коллеги, имеется следующая схема: 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 July 5, 2016 by unfraget Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ShyLion Posted July 6, 2016 (edited) Убрать 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 July 6, 2016 by ShyLion Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
unfraget Posted July 6, 2016 Убрать 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 не работает Нет работает, даже если сделать статическую трансляцию :( Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ShyLion Posted July 6, 2016 Убрать 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 не работает Нет работает, даже если сделать статическую трансляцию :( А лупбек-то убирал, когда пул был? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
unfraget Posted July 6, 2016 (edited) Убрать 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 July 6, 2016 by unfraget Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ShyLion Posted July 6, 2016 Не будет работать, если адреса/сеть указанная в пуле не connected Да с какого перепугу-то не будет? Всю жизнь так циски настраиваю, все работает, а ты уперся. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
unfraget Posted July 6, 2016 Не будет работать, если адреса/сеть указанная в пуле не connected Да с какого перепугу-то не будет? Всю жизнь так циски настраиваю, все работает, а ты уперся. Соберите ради интереса в стенд, проверьте, сделайте pool из адресов которые не где не назначены Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted July 6, 2016 unfraget И будет отлично работать. Лишь бы сверху приходил трафик и был маршрут наверх. Для неизвестного трафика будет L3-петля, поэтому нужно нулроутить этот пул Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
unfraget Posted July 6, 2016 unfraget поэтому нужно нулроутить этот пул А про null я забыл :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ShyLion Posted July 6, 2016 Не будет работать, если адреса/сеть указанная в пуле не 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
unfraget Posted July 6, 2016 (edited) Продолжил ломать голову. С: на 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 July 6, 2016 by unfraget Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ShyLion Posted July 7, 2016 Loopback20 ... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
unfraget Posted July 7, 2016 (edited) Loopback20 ... ? Oo Проверил с pool'ом, результат 0 ShyLion Вы поймите, тут не важно как вы NATите, тут проблема с IPSec каналом, и почему он не поднимается при смене железа понять достаточно проблематично :) Edited July 7, 2016 by unfraget Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ShyLion Posted July 7, 2016 Давай полный конфиг, все строки. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
unfraget Posted July 7, 2016 Давай полный конфиг, все строки. Так там остальное настройки для других партнеров, а так же протоколов динамической маршрутизации, 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ShyLion Posted July 7, 2016 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, то и вовсе перестанет работать. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
unfraget Posted July 7, 2016 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, то и вовсе перестанет работать. Ну да, это не очень хорошо. ну какое наследство досталось)) сча надо запустить всё, позже буду приводить к нормальному виду. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
unfraget Posted July 7, 2016 (edited) Самое интересное, что подобная ошибка 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 July 7, 2016 by unfraget Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
unfraget Posted July 12, 2016 (edited) 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 July 12, 2016 by unfraget Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
unfraget Posted July 12, 2016 (edited) Решилось прописыванием маршруте до сети партнера через default Edited July 12, 2016 by unfraget Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ShyLion Posted July 13, 2016 Кстати да, есть такой косяк, когда удаленный пир за натом, а до его приватного IP маршрут не через тот-же интерфейс что и его внешний адрес, вот такая хрень вылазит. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...