Comment Intel AMT (Active Management Technology) n'interfère-t-il pas avec la pile d'hôtes TCP / IP?

15

Le kit de développement Intel que j'utilise comprend une fonction de gestion à distance (voir également la page de manuel Ubuntu ici ) qui permet des redémarrages à distance en cas de blocage du système d'exploitation.

Il a la capacité d'écouter une poignée de ports (16992 et 16993, pour être spécifique) sur une adresse IP qu'elle partage avec le système d'exploitation. (soit en espionnant les requêtes DHCP ou en émettant les siennes; je ne suis pas sûr, mais dans les deux cas, il utilise une adresse MAC partagée dans ce mode)

Je l'exécute sur une adresse IP distincte, car je m'inquiète d'un cas d'utilisation potentiel: comment AMT empêche-t-il la pile du réseau hôte d'entrer en conflit avec elle?

En d'autres termes, le logiciel de gestion Intel écoute maintenant [au moins] deux ports TCP, hors bande et à l'insu du système d'exploitation. Supposons que j'initie une connexion TCP à un hôte distant et que la pile d'hôtes choisisse 16992 ou 16993 comme port local pour écouter [les paquets revenant à la boîte].

Les paquets qui reviennent de l'hôte distant ne seront-ils pas "blackholés" et n'atteindront jamais le système d'exploitation? Ou existe-t-il une mesure préventive, comme un pilote Intel dans le noyau Linux sachant que TCP devrait éviter le port 16992? (semble peu probable car il s'agit d'une fonctionnalité indépendante du système d'exploitation.) Ou peut-être que l'interface de gestion peut renvoyer le trafic envoyé vers le port 16992 qui n'appartient pas à une session de gestion connue vers la pile hôte?

Quoi qu'il en soit, je suis réticent à l'utiliser pour des charges gourmandes en réseau jusqu'à ce que je comprenne comment cela fonctionne. J'ai cherché dans la documentation Intel et je n'ai rien trouvé non plus.

Je suppose que cela pourrait être testé en établissant environ 30 000 connexions TCP et en vérifiant si la connectivité fonctionne même si le port se chevauche. Mais je n'ai pas encore eu l'occasion de le faire.

(Note: je me rends compte que cette question est similaire à Comment un ordinateur basé sur Intel vPro conserve-t-il la connectivité IP?, Mais cette question porte sur la connectivité en général, pas sur la connectivité aux ports TCP spécifiques qui chevauchent la pile d'hôte.)

mpontillo
la source
7
J'ai remarqué que quelqu'un avait voté pour fermer ce sujet hors sujet. Dans ce cas, je voudrais demander: en quoi cela n'est-il pas pertinent pour les administrateurs de serveurs professionnels? Si vous allez activer une technologie de gestion hors bande, ne voudriez-vous pas savoir si cela aura un effet sur vos communications réseau?
mpontillo
Je suppose qu'il examine tout le trafic sur ces ports, et si ce n'est pas quelque chose qu'il reconnaît, le transmet au système d'exploitation. Mais c'est entièrement de la spéculation.
Grant
1
Bonne question. Je pense qu'une mise en œuvre correcte d'une telle fonctionnalité devrait utiliser sa propre pile IP sur une adresse MAC différente pour éviter complètement les conflits possibles. Vous n'avez pas besoin de 30000 connexions TCP pour tester les conflits. Au lieu de cela, vous pouvez simplement essayer quelque chose comme nc -p 16992 example.com 22et voir ce qui se passe.
kasperd
@kasperd thanks; Je ne savais pas que tu pouvais facilement faire ça. Je suis allé de l'avant et j'ai effectué le test. Pas bon pour AMT ...
mpontillo

Réponses:

8

Après avoir configuré AMT pour écouter sur une adresse IP partagée, j'ai exécuté le test mentionné par kasperd dans les commentaires ci-dessus. (contre mon propre hôte distant avec un serveur SSH, pas vraiment example.com, bien sûr) Voici le résultat:

Cas de test positif (en utilisant un port non utilisé par AMT):

$ nc -p 16991 example.com 22
SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.4
^C
$

Cas de test négatif (en utilisant un port utilisé par AMT):

$ nc -p 16992 example.com 22
$

(Après quelques minutes, le scénario de test négatif a expiré et est revenu à l'invite du shell.)

Donc, comme vous pouvez le voir, les paquets revenant au port 16992 ont été abandonnés avant d'atteindre la pile TCP / IP de l'hôte.

Recommandation: si un réseau fiable est important pour vous, n'activez pas AMT sur la même adresse IP que votre pile TCP / IP hôte!

mpontillo
la source
2

Il existe un fil controversé sur le forum Intel Mappage entre l'IP hôte et l'IP du périphérique Intel AMT avec la suggestion que

il faut configurer différentes adresses IP pour AMT et hôte lors de l'utilisation avec des adresses IP statiques.

et une explication:

Lorsque vous configurez la machine vPro avec des adresses IP statiques, AMT utilisera l'adresse mac appelée mac gérabilité qui n'est disponible qu'en mode IP statique. L'adresse mac de gestion est différente de l'adresse mac présentée par l'hôte.

Je confirme que l'utilisation de DHCP avec AMT et Host entraîne des problèmes de routage. Par exemple, ping induit en erreur:

64 bytes from 192.168.1.11: icmp_seq=18 ttl=64 time=0.559 ms
64 bytes from 192.168.1.11: icmp_seq=18 ttl=255 time=0.614 ms (DUP!)
64 bytes from 192.168.1.11: icmp_seq=19 ttl=64 time=0.579 ms
64 bytes from 192.168.1.11: icmp_seq=19 ttl=255 time=0.630 ms (DUP!)
64 bytes from 192.168.1.11: icmp_seq=20 ttl=64 time=0.553 ms
64 bytes from 192.168.1.11: icmp_seq=20 ttl=255 time=0.602 ms (DUP!)
un barbecue
la source
1

Les paquets qui reviennent de l'hôte distant ne seront-ils pas "blackholés" et n'atteindront jamais le système d'exploitation?

Tous les paquets de l'hôte distant avec des "ports AMT" n'atteignent jamais aucun système d'exploitation. Ils sont interceptés par Intel ME / AMT. Par défaut, ce sont les ports 16992-16995, 5900 (AMT ver.6+), 623, 664.

Roman Sevko
la source
1

Ce qu'il faut noter, c'est que AMT est conçu comme une technologie client OOBM et non comme un serveur. Par conséquent, oui, il peut arriver que votre ordinateur décide d'utiliser des ports AMT, mais uniquement si vous l'avez spécifiquement configuré pour le faire. La plupart des systèmes d'exploitation sont livrés avec des ports éphémères préconfigurés compris entre 49152 et 65535, comme le suggèrent les spécifications IANA, certaines distributions Linux avec 32768 à 61000 et d'anciennes fenêtres avec 1025–5000.

Donc, de mon point de vue, il est préférable d'utiliser l'IP partagée pour AMT car ses ports ne sont pas à portée éphémère (sauf si vous savez ce que vous faites et modifiez ce paramètre particulier) et ne doivent pas être utilisés comme port d'écoute par n'importe quelle application.

Lukáš Kučera
la source
-2

Une solution pourrait être de définir les ports pour la pile TCP de Windows en utilisant netsh .

Par défaut, Windows utilise le port 49152 >> 65636 (ou quelle que soit la limite supérieure). Vous pouvez donc utiliser AMT en toute sécurité. Vous pouvez définir la plage de ports avecnetsh . Par exemple, j'utilise toujours environ 1000 ports pour les machines de périmètre.

De plus, Intel supprime les commandes AMT et transmet tout le trafic sur ces ports (16991-16995 en fait!) Au système d'exploitation (si un système d'exploitation est présent). Donc, si vous avez une application qui a ouvert un port dans la plage AMT, le trafic passera toujours par le système d'exploitation vers l'application, car comme je l'ai dit, Intel ne supprime que les commandes de gestion AMT. Il est peu probable que votre application envoie des commandes AMT.

marque
la source
4
Cette réponse suppose (1) que vous utilisez Windows et (2) que vous n'utilisez aucun logiciel qui pourrait essayer d'utiliser des ports se chevauchant AMT pour d'autres raisons. (vous pouvez avoir, par exemple, une application VoIP qui utilise des ports UDP aléatoires). Il fait également une réclamation sur la façon dont Intel "supprime" les commandes AMT, ce qui s'est clairement avéré faux dans ma réponse. Pouvez-vous fournir une référence pour appuyer votre réclamation? Je ne serais pas surpris si Intel considérait cela comme un bug et le corrigeait un jour, mais au moment où j'ai posté ma réponse, ils ne l'avaient clairement pas fait.
mpontillo