Bases de la réseautique
Qu’est-ce qu’une adresse IP ?
Une adresse IP est une série unique de nombres, séparés par des points qui identifie chaque périphérique sur un réseau. Chaque adresse IP est divisée en 4 sections (octets) allant de 0 à 255.
Comme indiqué ci-dessus, cela signifie que chaque adresse IP est une adresse de 32 bits ce qui signifie qu’il y a 232 adresses, ou près de 4.300.000.000 adresses possibles. Cependant, la plupart d’entre elles sont utilisées publiquement dans des applications telles que les serveurs Web.
Cela soulève notre premier élément clé de l’adressage IP: Chaque appareille sur le réseau doit avoir une adresse IP unique. Il n’est pas possible pour deux appareils d’avoir la même adresse IP, sinon des collisions se produiront.
Since there are only 4 billion addresses, and there are more than 4 billion computers connected to the internet, we need to be as efficient as possible with giving out IP addresses. This brings us to public vs. private addresses.
Adresses IP publiques vs privées
Pour être efficace avec l’utilisation des adresses IP, l’idée de « plages d’adresses IP réservées » a été implémentée. En bref, cela signifie qu’il existe des plages d’adresses IP qui ne seront jamais attribuées à des serveurs Web, et ne seront utilisées que pour les réseaux locaux, tels que ceux de votre maison.
Key point #2: Unless you are directly connecting to your internet provider’s basic modem (no router function), your device will have an IP Address in one of these ranges. This means that at any local network, such as: your school, work office, home, etc., your device will 99% of the time have an IP address in a range listed below:
Class |
Bits |
Start Address |
End Address |
Number of Addresses |
---|---|---|---|---|
A |
24 |
10.0.0.0 |
10.255.255.255 |
16,777,216 |
B |
20 |
172.16.0.0 |
172.31.255.255 |
1,048,576 |
C |
16 |
192.168.0.0 |
192.168.255.255 |
65,536 |
Ces plages réservées nous permettent d’attribuer une « adresse IP sans réserve » à une maison entière, puis d’utiliser plusieurs adresses dans une plage réservée pour connecter plus d’un ordinateur à Internet. Un processus sur le routeur Internet de la maison connu sous le nom de NAT (Traduction d’adresses réseau), gère le processus de suivi de l’IP privée qui demande des données, en utilisant l’IP publique pour demander ces données à partir d’Internet, puis en transmettant les données retournées à l’IP privée qui les a demandés. Ce qui nous permet d’utiliser les mêmes adresses IP réservées pour de nombreux réseaux locaux, sans provoquer de conflits. Une image de ce processus est présentée ci-dessous.
Note
For the FRC® networks, we will use the 10.0.0.0
range. This range allows us to use the 10.TE.AM.xx
format for IP addresses, whereas using the Class B or C networks would only allow a subset of teams to follow the format (TE.AM IP Notation).
Comment ces adresses sont-elles attribuées ?
We’ve covered the basics of what IP addresses are, and which IP addresses we will use for the FRC competition, so now we need to discuss how these addresses will get assigned to the devices on our network. We already stated above that we can’t have two devices on the same network with the same IP Address, so we need a way to be sure that every device receives an address without overlapping. This can be done Dynamically (automatic), or Statically (manual).
Dynamiquement
L’attribution dynamique d’adresses IP signifie que nous laissons un périphérique sur le réseau gérer les attributions d’adresses IP. Cela se fait par l’intermédiaire du protocole de configuration dynamique des hôtes (DHCP). DHCP contient de nombreux composants, mais pour la portée de ce document, nous allons le considérer comme un service qui gère automatiquement le réseau. Chaque fois que vous branchez un nouvel appareil au réseau, le service DHCP voit le nouvel appareil, puis lui fournit une adresse IP disponible ainsi que les autres paramètres réseau requis pour que l’appareil communique. Cela peut signifier qu’il y a des moments où nous ne connaissons pas l’adresse IP exacte de chaque appareil.
Qu’est-ce qu’un serveur DHCP ?
A DHCP server is a device that runs the DHCP service to monitor the network for new devices to configure. In larger businesses, this could be a dedicated computer running the DHCP service and that computer would be the DHCP server. For home networks, FRC networks, and other smaller networks, the DHCP service is usually running on the router; in this case, the router is the DHCP server.
Cela signifie que si jamais vous vous retrouvez dans une situation où vous devez avoir un serveur DHCP assignant des adresses IP à vos périphériques réseau, il est aussi simple que de trouver le routeur domestique le plus proche, et de le brancher.
Statiquement
L’attribution statique d’adresses IP signifie que nous disons manuellement à chaque appareil du réseau quelle adresse IP nous voulons qu’il ait. Cette configuration se produit à travers un paramètre sur chaque appareil. En désactivant DHCP sur le réseau et en assignant les adresses manuellement, nous avons l’avantage de connaître l’adresse IP exacte de chaque appareil sur le réseau, mais parce que nous avons attribué chacune manuellement et il n’y a pas de service de suivi des adresses IP utilisées, nous devons nous-mêmes garder une trace de cette information . Tout en définissant statiquement les adresses IP, nous devons faire attention à ne pas attribuer d’adresses en double, et nous devons être sûrs que nous configurons correctement les autres paramètres du réseau (tels que le masque de sous-réseau et la passerelle par défaut) sur chaque appareil.
Qu’est-ce qu’un lien-local?
Si un périphérique n’a pas d’adresse IP, il ne peut pas communiquer sur un réseau. Cela peut devenir un problème si nous avons un périphérique qui est configuré pour acquérir dynamiquement son adresse à partir d’un serveur DHCP, mais qu’il n’y a pas de serveur DHCP sur le réseau. Par exemple, lorsque vous avez un ordinateur portable directement connecté à un roboRIO et les deux sont configurés pour acquérir dynamiquement une adresse IP. Aucun des deux appareils n’est un serveur DHCP, et comme ils sont les deux seuls appareils sur le réseau, des adresses IP ne leur seront donc pas attribuées automatiquement.
Les adresses de type lien-local nous donnent un ensemble standard d’adresses auxquelles nous pouvons « nous replier » si un périphérique configuré pour acquérir dynamiquement n’est pas en mesure d’acquérir une adresse. Si cela se produit, l’appareil s’attribuera une adresse IP dans la plage d’adresses 169.254.xx.yy
; il s’agit d’une adresse lien-local. Dans notre roboRIO et l’exemple d’ordinateur ci-dessus, les deux appareils se rendront compte qu’il ne leur a pas été affecté d’adresse IP et s’assigneront eux-mêmes une adresse lien-local. Une fois que leur auront été attribuées deux adresses dans la plage 169.254.xx.yy
, ils seront dans le même réseau et seront en mesure de communiquer, même s’ils ont été réglés sur dynamique et qu’un serveur DHCP n’a pas attribué d’adresses.
Adressage IP pour FRC
Voir IP Networking Article pour plus d’informations.
Mélange de configurations dynamique et statique
Sur le terrain, l’équipe ne doit pas déceler de problèmes avec le fait que les périphériques soient réglés statiquement dans la plage 10.TE.AM.xx
et de voir le terrain assigner des adresses DHCP tant qu’il n’y a pas de conflits d’adresses IP comme mentionné dans la section ci-dessus.
Dans les puits, une équipe peut rencontrer des problèmes avec le mélange des appareils Statique et DHCP pour la raison suivante. Comme mentionné ci-dessus, les périphériques DHCP se rabattront sur une adresse lien-local (169.254.xx.yy
) si un serveur n’est pas présent. Pour les périphériques statiques, l’adresse IP sera toujours la même. Si le serveur DHCP n’est pas présent et que le roboRIO, la station de pilotage et l’ordinateur portable se rabattent sur des adresses de type lien-local, les périphériques réglés statiquement dans la plage 10.TE.AM.xx seront dans un réseau différent et non visibles pour ceux qui ont des adresses de type lien-local. Une description visuelle de ceci est fournie ci-dessous :
Avertissement
Lorsqu’il est connecté via USB au roboRIO, une configuration Transfert de port est nécessaire pour accéder aux appareils connectés à la radio OpenMesh (sur le réseau vert indiqué ci-dessus).
Ports réseau disponibles
Please see R704 of the 2024 Game Manual for information regarding available network ports.
mDNS
mDNS, ou multicast Domain Name System est un protocole qui nous permet de bénéficier des fonctionnalités de DNS, sans avoir un serveur DNS sur le réseau. Pour que cela soit plus clair, prenons un peu de recul et parlons de ce qu’est le DNS.
DNS: qu’est-ce que c’est ?
DNS (Domain Name System) can become a complex topic, but for the scope of this paper, we are going to just look at the high-level overview of DNS. In the most basic explanation, DNS is what allows us to relate human-friendly names for network devices to IP Addresses, and keep track of those IP addresses if they change.
Example 1: Let’s look at the site www.google.com
. The IP address for this site is 172.217.164.132
, however that is not very user-friendly to remember!
Whenever a user types www.google.com
into their computer, the computer contacts the DNS server (a setting provided by DHCP!) and asks what is the IP address on file for www.google.com
. The DNS server returns the IP address and then the computer is able to use that to connect to the Google website.
Exemple 2 : Sur votre réseau domestique, vous disposez d’un serveur nommé MYCOMPUTER
auquel vous souhaitez vous connecter à partir de votre ordinateur portable. Votre réseau utilise DHCP de sorte que vous ne connaissez pas l’adresse IP de MYCOMPUTER
, cependant le DNS vous permet de vous connecter uniquement en utilisant le nom MYCOMPUTER
. De plus, à chaque fois que les attributions DHCP s’actualisent, MYCOMPUTER
peut se retrouver avec une adresse différente, mais parce que vous vous connectez en utilisant le nom MYCOMPUTER
au lieu d’une adresse IP spécifique, l’enregistrement DNS est mis à jour et vous êtes toujours en mesure de vous connecter.
This is the second benefit to DNS and the most relevant for FRC. With DNS, if we reference devices by their friendly name instead of IP Address, we don’t have to change anything in our program if the IP Address changes. DNS will keep track of the changes and return the new address if it ever changes.
DNS pour FRC
On the field and in the pits, there is no DNS server that allows us to perform the lookups like we do for the Google website, but we’d still like to have the benefits of not remembering every IP Address, and not having to guess at every device’s address if DHCP assigns a different address than we expect. This is where mDNS comes into the picture.
Le mDNS nous offre les mêmes avantages que le DNS traditionnel, mais est juste implémenté d’une manière qui ne nécessite pas un serveur. Chaque fois qu’un utilisateur demande à se connecter à un appareil à l’aide d’un nom convivial, le mDNS envoie un message demandant à l’appareil portant ce nom de s’identifier. L’appareil portant ce nom envoie alors un message de retour, y compris son adresse IP afin que tous les appareils du réseau puissent mettre à jour leurs informations. Le mDNS est ce qui nous permet de nous référer à notre roboRIO comme roboRIO-TEAM-FRC.local
et de le faire connecter sur un réseau DHCP.
Note
Si un périphérique utilisé pour la FRC ne prend pas en charge le mDNS, il lui sera attribué une adresse IP dans la plage 10.TE.AM.20 - 10.TE.AM.255, mais nous ne saurons pas l’adresse IP exacte pour nous connecter et nous ne serons pas, non plus, en mesure d’utiliser un nom convivial comme auparavant. Dans ce cas, ce périphérique devrait disposer d’une adresse IP statique.
mDNS - Principes
Multicast Domain Name System (mDNS) is a system which allows for resolution of hostnames to IP addresses on small networks with no dedicated name server. To resolve a hostname a device sends out a multicast message to the network querying for the device. The device then responds with a multicast message containing its IP. Devices on the network can store this information in a cache so subsequent requests for this address can be resolved from the cache without repeating the network query.
mDNS - Fournisseurs
Pour utiliser mDNS, une implémentation mDNS doit être installée sur votre PC. Voici quelques implémentations mDNS courantes pour chaque importante plate-forme:
Windows:
NI mDNS Responder: Installé avec NI FRC Game Tools
Apple Bonjour: Installé avec iTunes
OSX:
Apple Bonjour: Installé par défaut
Linux:
nss-mDNS/Avahi/Zeroconf: Installé et activé par défaut sur certaines variantes Linux (comme Ubuntu ou Mint). Peut avoir besoin d’être installé ou activé sur d’autres (comme Arch)
mDNS - Pare-feu
Note
Selon la configuration de votre PC, aucun changement ne peut être nécessaire, cette section est fournie pour vous aider dans la résolution des problèmes.
Pour fonctionner correctement, mDNS doit être autorisé à passer à travers votre pare-feu. Étant donné que le trafic réseau provient de l’implémentation mDNS et non directement de la Drive Station ou de l’IDE, l’autorisation de ces seules applications à passer à travers votre pare-feu pourrait ne pas suffire. Il existe deux façons principales de résoudre les problèmes de pare-feu mDNS :
Ajouter une exception d’application/service pour l’implémentation du mDNS (NI mDNS Responder est
C:\Program Files\National Instruments\Shared\mDNS Responder\nimdnsResponder.exe
)Ajoutez une exception de port pour le trafic vers/à partir de UDP 5353. Plages IP :
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
169.254.0.0 - 169.254.255.255
224.0.0.251
mDNS - Prise en charge des navigateurs
La plupart des navigateurs Web devraient être en mesure d’utiliser l’adresse mDNS pour accéder au serveur web du roboRIO tant qu’un fournisseur mDNS est installé. Ces navigateurs incluent Microsoft Edge, Firefox et Google Chrome.
USB
If using the USB interface, no network setup is required, but you do need the FRC Game Tools installed to provide the roboRIO USB Driver. The roboRIO driver will automatically configure the IP address of the host (your computer) and roboRIO and the software listed above should be able to locate and utilize your roboRIO.
Ethernet/Sans fil
The Programmation de votre Radio will enable the DHCP server on the OpenMesh radio in the home use case (AP mode), if you are putting the OpenMesh in bridge mode and using a router, you can enable DHCP addressing on the router. The bridge is set to the same team-based IP address as before (10.TE.AM.1
) and will hand out DHCP address from 10.TE.AM.20
to 10.TE.AM.199
. When connected to the field, FMS will also hand out addresses in the same IP range.
Résumé
IP Addresses are what allow us to communicate with devices on a network. For FRC, these addresses are going to be in the 10.TE.AM.xx range if we are connected to a DHCP server or if they are assigned statically, or in the link-local 169.254.xx.yy
range if the devices are set to DHCP, but there is no server present. For more information on how IP Addresses work, see this article by Microsoft.
Si tous les appareils du réseau prennent en charge le mDNS, tous les appareils peuvent être configurés sur DHCP et invoqués à l’aide de leurs appellations conviviales (ex. roboRIO-TEAM-FRC.local
). Si certains périphériques ne prennent pas en charge le mDNS, ils devront être configurés pour utiliser des adresses IP statiques.
Si tous les périphériques sont configurés pour utiliser des attributions d’adresses IP DHCP ou statiques (avec des paramètres statiques corrects), la communication doit fonctionner à la fois dans le puits et sur le terrain sans que des modifications ne soient nécessaires. S’il existe un mélange de certains périphériques Statique et DHCP, les périphériques statiques se connecteront sur le terrain, mais ne se connecteront pas dans le puis. Cette situation peut être résolue soit en définissant tous les périphériques sur des paramètres statiques, soit en laissant les paramètres actuels et en fournissant un serveur DHCP dans le puits.