Un routeur de succursale Huawei AR dont l'adresse publique est attribuée par DHCP, situé derrière un dispositif NAT, établissant un tunnel IPSec vers un routeur Cisco à adresse fixe au siège — mode agressif, traversée NAT, le modèle de carte dynamique côté Cisco, et les modes de défaillance qui n'apparaissent que lorsque le NAT et une adresse IP mouvante coexistent.
Par Yuwen Zhang (Atlas), fondateur d'AtlasCommTech — 13 ans de déploiements de réseaux opérateurs et d'entreprise · Mis à jour en juillet 2026
La note précédente Huawei-Cisco supposait que les deux extrémités avaient une adresse IP connue. Retirez cela et la conception change.
Une agence obtient rarement une IP publique fixe de son FAI, et se trouve généralement derrière un dispositif NAT quelconque — un CPE opérateur, un boîtier NAT dédié, ou du NAT tournant directement sur l'interface WAN du routeur AR. La négociation IKE en mode principal, qui identifie les pairs par adresse IP, tolère mal ces deux situations : une adresse dynamique signifie que le siège ne peut pas préconfigurer une adresse de pair fixe pour cette succursale, et le NAT réécrit précisément l'adresse source qu'IKE utiliserait autrement pour choisir la bonne clé pré-partagée.
Cette note détaille la configuration qui résout les deux problèmes à la fois — une passerelle de succursale Huawei AR avec une adresse WAN attribuée par DHCP, derrière un dispositif NAT séparé, négociant en mode agressif IKEv1 avec traversée NAT activée vers un routeur Cisco du siège qui accepte la succursale via un modèle de carte dynamique — plus ce qui change lorsque le routeur de la succursale fait lui-même le NAT au lieu d'utiliser un boîtier séparé, et ce qui change encore lorsque c'est le siège, et non la succursale, qui se trouve derrière le NAT.
Trois appareils cette fois, pas deux — le routeur de la succursale, un dispositif NAT, et le routeur Cisco du siège.
Les légendes du schéma restent en anglais pour la clarté technique.
Adressage — RouterA et RouterB
| Élément | RouterA — passerelle Huawei de la succursale | RouterB — passerelle Cisco du siège |
|---|---|---|
| Adresse publique (WAN) | Attribuée par DHCP, atteinte via NATer | 60.1.2.1 (static) |
| Sous-réseau privé | 10.1.1.0/24 | 10.1.2.0/24 |
| Identité IKE | local-name huawei | attend le nom de pair distant RouterB |
Dispositif NAT (NATer)
| Élément | Valeur (cet exemple) |
|---|---|
| Interface WAN (vers internet) | 60.1.1.1/24 — nat outbound |
| Interface LAN (vers RouterA) | 192.168.1.1/24 — dhcp select interface |
| Route statique | 0.0.0.0/0 via 60.1.1.2 |
Phase 1 — Paramètres de négociation IKE
| Paramètre | Valeur (cet exemple) |
|---|---|
| Version IKE | IKEv1 |
| Mode de négociation | Mode agressif |
| Méthode d'authentification | Clé pré-partagée |
| Clé pré-partagée (cet exemple) | YsHsjx_202206 — la clé de l'exemple source ; définissez toujours votre propre clé unique. |
| Algorithme de chiffrement | aes-cbc-128 |
| Algorithme d'authentification | sha2-256 |
| Groupe DH | group14 |
| Traversée NAT | Activée (nat traversal) |
| Identité du pair | Basée sur le nom (local-id-type name / remote-name) |
Phase 2 — Paramètres de négociation IPSec
| Paramètre | Valeur (cet exemple) |
|---|---|
| Protocole de sécurité | ESP |
| Mode d'encapsulation | Tunnel (par défaut) |
| Algorithme de chiffrement | aes-128 |
| Algorithme d'authentification | sha2-256 |
| Flux protégé (ACL 3000) | 10.1.1.0/24 ↔ 10.1.2.0/24 |
Le mode agressif et la traversée NAT remplacent les hypothèses d'IP fixe du mode principal.
#
sysname RouterA
#
ipsec authentication sha2 compatible enable
#
ike local-name huawei
#
acl number 3000
rule 5 permit ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
#
ipsec proposal prop1
esp authentication-algorithm sha2-256
esp encryption-algorithm aes-128
#
ike proposal 1
encryption-algorithm aes-cbc-128
dh group14
authentication-algorithm sha2-256
#
ike peer peer1 v1
exchange-mode aggressive
pre-shared-key cipher
ike-proposal 1
local-id-type name
remote-name RouterB
nat traversal
remote-address 60.1.2.1
#
ipsec policy policy1 10 isakmp
security acl 3000
ike-peer peer1
proposal prop1
#
interface GigabitEthernet0/0/1
ipsec policy policy1
ip address dhcp-alloc
#
interface GigabitEthernet0/0/2
ip address 10.1.1.1 255.255.255.0
#
return
Un boîtier dédié entre le routeur de la succursale et internet. Il n'a pas besoin de connaître le flux protégé par IPSec — il traduit simplement chaque paquet sortant et attribue au routeur de la succursale une adresse privée par DHCP.
#
sysname NATer
#
dhcp enable
#
acl number 3000
rule 5 permit ip
#
interface GigabitEthernet0/0/1
ip address 60.1.1.1 255.255.255.0
nat outbound 3000
#
interface GigabitEthernet0/0/2
ip address 192.168.1.1 255.255.255.0
dhcp select interface
#
ip route-static 0.0.0.0 0.0.0.0 60.1.1.2
#
return
Comme l'adresse de la succursale peut changer et que d'autres succursales pourraient devoir se connecter de la même façon, le côté Cisco accepte par identité plutôt que par adresse de pair fixe, via une crypto map dynamique.
!
hostname RouterB
!
crypto isakmp policy 1
encryption aes 128
hash sha256
authentication pre-share
group 14
crypto isakmp key YsHsjx_202206 hostname huawei
!
crypto isakmp identity hostname
!
crypto ipsec transform-set p1 esp-sha256-hmac esp-aes 128
!
crypto dynamic-map p1 1
set transform-set p1
match address 102
!
crypto map p1 1 ipsec-isakmp dynamic p1
!
interface GigabitEthernet0/0
ip address 60.1.2.1 255.255.255.0
duplex auto
speed auto
crypto map p1
!
interface GigabitEthernet0/1
ip address 10.1.2.1 255.255.255.0
duplex auto
speed auto
!
ip route 0.0.0.0 0.0.0.0 60.1.2.2
!
access-list 102 permit ip 10.1.2.0 0.0.0.255 10.1.1.0 0.0.0.255
!
end
La syntaxe côté Cisco de cette note a été vérifiée sur Cisco IOS Software, C3900e-UNIVERSALK9-M, version 15.2(4)M1 — IOS-XE et ASA utilisent une syntaxe proche mais non identique.
L'exemple ci-dessus fait initier par la succursale Huawei. Si le routeur Cisco doit initier le mode agressif vers une succursale derrière NAT, il a besoin d'un bloc spécifique au pair plutôt que de la carte dynamique.
crypto isakmp peer ip-address 60.1.1.1
set aggressive-mode client-endpoint fqdn huawei
set aggressive-mode password YsHsjx_202206
Certaines succursales n'ont pas de dispositif NAT séparé — le routeur AR fait lui-même le NAT sur la même interface qui porte le trafic protégé par IPSec. Dans ce cas, l'ordre de traitement compte : le NAT s'exécute avant le chiffrement IPSec, donc à moins que le flux protégé ne soit explicitement exclu de l'ACL du NAT, le NAT réécrit l'adresse source avant même que l'ACL propre d'IPSec ne la voie, et l'ACL de sécurité du tunnel cesse de correspondre. L'ACL utilisée pour le NAT doit refuser le flux protégé par IPSec et n'autoriser que tout le reste :
acl number 3001
rule 5 deny ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
rule 10 permit ip
#
interface GigabitEthernet0/0/1
ipsec policy policy1
nat outbound 3001
ip address dhcp-alloc
Ce sont les problèmes qui viennent spécifiquement du fait d'ajouter du NAT et une adresse IP mouvante à un tunnel Huawei-Cisco par ailleurs ordinaire.
SYMPTÔMELa négociation de phase 1 échoue ou choisit la mauvaise clé pré-partagée dès qu'un dispositif NAT se trouve entre la succursale et le siège — alors que les mêmes paramètres exacts fonctionnaient parfaitement sur une liaison IP publique directe.
CAUSELe mode principal sélectionne la clé pré-partagée en fonction de l'adresse IP du pair. Une fois que le NAT réécrit cette adresse en transit, l'extrémité distante ne recherche plus la clé selon l'adresse réellement configurée du côté proche.
SOLUTIONPassez en mode agressif et identifiez le pair par un nom plutôt que par une adresse IP — un nom survit à la traduction NAT, une adresse IP non.
[RouterA] ike peer peer1 v1
[RouterA-ike-peer-peer1] exchange-mode aggressive
[RouterA-ike-peer-peer1] local-id-type name
[RouterA-ike-peer-peer1] remote-name RouterB
SYMPTÔMELa commande nat traversal est rejetée sur un appareil, ou le NAT-T se comporte comme s'il n'avait jamais été configuré sur un autre, alors que les deux sont des routeurs Huawei AR.
CAUSESur V200R008, la traversée NAT est activée par défaut et la commande elle-même n'est pas prise en charge. Sur les versions postérieures à V200R008, elle doit être configurée explicitement avec la commande nat traversal sous le pair IKE.
SOLUTIONVérifiez la version logicielle avant de supposer l'état du NAT-T — ne copiez pas un bloc de pair IKE d'une branche de firmware AR vers une autre sans confirmer si la commande s'applique.
[RouterA-ike-peer-peer1] nat traversal
SYMPTÔMELa succursale fait elle-même le NAT (pas de boîtier NATer séparé), et le trafic censé être chiffré sort intact — ou le tunnel ne voit jamais le trafic qu'il est censé protéger.
CAUSELorsque IPSec et NAT sont configurés sur la même interface sortante, le routeur traite d'abord le NAT, puis le chiffrement IPSec. Si l'ACL du NAT n'exclut pas explicitement le flux protégé par IPSec, le NAT réécrit l'adresse source avant même que l'ACL de sécurité propre au tunnel n'ait la chance de la faire correspondre.
SOLUTIONRefusez d'abord le flux protégé par IPSec dans l'ACL du NAT, puis autorisez tout le reste — ainsi le NAT ne touche que le trafic qui n'est pas censé passer par le tunnel.
acl number 3001
rule 5 deny ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
rule 10 permit ip
SYMPTÔMELe tunnel fonctionne bien, puis cesse de faire passer le trafic après une période de faible activité — sans aucun changement de configuration d'aucun côté.
CAUSELes dispositifs NAT font expirer les liaisons UDP inactives. Si aucun des deux côtés ne sonde activement le pair, l'entrée de traduction du dispositif NAT pour la session IKE/IPSec peut expirer alors que la SA elle-même semble toujours « établie » — le prochain paquet du siège n'a plus de destination valide.
SOLUTIONActivez la détection périodique de pair mort sur le pair IKE afin que les deux côtés continuent de se sonder mutuellement et que la liaison NAT reste rafraîchie.
[RouterA-ike-peer-peer1] dpd type periodic
SYMPTÔMELa phase 1 ne se termine jamais, ou le routeur Cisco journalise une discordance d'identité, alors que la clé pré-partagée est correctement saisie des deux côtés.
CAUSEPar défaut, l'identité ISAKMP de Cisco est basée sur l'adresse. Si la succursale Huawei présente une identité basée sur un nom (comme l'exige ici le mode agressif), le routeur Cisco ne la fera pas correspondre à la bonne clé à moins qu'on ne lui dise d'attendre un nom d'hôte.
SOLUTIONRéglez l'identité ISAKMP sur hostname sur le routeur Cisco, et liez le secret pré-partagé à ce même nom d'hôte plutôt qu'à une adresse IP.
crypto isakmp key YsHsjx_202206 hostname huawei
crypto isakmp identity hostname
« Établi » dans la table SA est nécessaire mais pas suffisant derrière NAT — les ports NAT-T doivent aussi être réellement transmis.
[RouterA] display ike sa
Conn-ID Peer VPN Flag(s) Phase
---------------------------------------------------------
8 60.1.2.1 0 RD|ST 2
6 60.1.2.1 0 RD|ST 1
Flag Description:
RD--READY ST--STAYALIVE RL--REPLACED FD--FADING TO--TIMEOUT
HRT--HEARTBEAT LKG--LAST KNOWN GOOD SEQ NO. BCK--BACKED UP
Si le tunnel ne s'établit pas du tout derrière NAT, vérifiez que le dispositif NAT transmet réellement UDP 500 et UDP 4500 vers la succursale — NAT-T bascule généralement le trafic IKE vers le port 4500 une fois la traduction détectée, et un dispositif qui n'ouvre que le port 500 fera échouer silencieusement la négociation.
Cinq questions qui reviennent presque à chaque fois que cette combinaison exacte — IP dynamique, NAT, Huawei vers Cisco — est mise en place.
Si un dispositif NAT se trouve n'importe où sur le trajet, non — le mode principal sélectionne la clé pré-partagée selon l'adresse IP du pair, et le NAT réécrit cette adresse avant qu'elle n'atteigne l'extrémité distante. Le mode agressif identifie plutôt le pair par un nom, qui survit à la traduction NAT. S'il n'y a vraiment aucun NAT et que seule l'IP est dynamique, le mode principal avec une clé pré-partagée générique liée à n'importe quelle adresse peut encore fonctionner.
Les deux fonctionnent. Un dispositif NAT séparé, comme dans l'exemple principal de cette note, garde IPSec et NAT proprement séparés. Si le routeur AR fait lui-même le NAT sur la même interface, rappelez-vous que le NAT s'exécute avant IPSec — l'ACL du NAT doit explicitement refuser le flux protégé par IPSec, sinon le NAT le réécrit avant que le tunnel n'ait la chance de le protéger.
Alors le dispositif devant le siège a besoin de redirection de port statique plutôt que du NAT sortant utilisé pour la succursale : transférez UDP 500 et UDP 4500 vers l'adresse privée du routeur Cisco pour que le trafic IKE et NAT-T l'atteigne réellement, plus ICMP si les tests de connectivité doivent passer.
nat server protocol udp global current-interface 500 inside 192.168.1.2 500
nat server protocol udp global current-interface 4500 inside 192.168.1.2 4500
nat server protocol icmp global current-interface inside 192.168.1.2
Tel que configuré ici, la clé pré-partagée est liée au nom IKE de la succursale (crypto isakmp key ... hostname huawei), donc cette carte dynamique n'accepte en réalité que cette succursale identifiée. Pour que la même carte accepte n'importe quelle succursale, liez la clé à une adresse générique plutôt qu'à un nom d'hôte — le même modèle de carte dynamique combiné à une identité basée sur l'IP côté succursale acceptera n'importe quel pair présentant la bonne clé.
Cisco IOS Software, C3900e-UNIVERSALK9-M, version 15.2(4)M1. IOS-XE et ASA utilisent une syntaxe proche mais non identique. Le guide de configuration source signale également MD5, SHA-1, DES et 3DES comme des algorithmes présentant des faiblesses connues — évitez-les si l'extrémité distante peut négocier quelque chose de plus robuste.
Cette note s'appuie sur la combinaison mode agressif, traversée NAT, carte dynamique du guide de configuration source, ainsi que sur les variantes NAT côté succursale et NAT côté siège qu'il documente. Elle ne couvre pas l'IKEv2 derrière NAT, les chaînes de double NAT, le partage d'adresses du NAT de niveau opérateur (CGN), ni un dispositif NAT d'un fournisseur tiers dont le comportement de traduction ne correspond pas exactement à cette configuration de test Huawei-à-Huawei NATer.
Succursale derrière NAT, IP dynamique, une version Cisco IOS spécifique — envoyez-le sur WhatsApp et nous vous aiderons à aligner les paramètres des deux côtés.