ip route show src field


12

J'ai lu la page de manuel de ipet ne comprends toujours pas ce que srcc'est et je n'ai pas trouvé beaucoup de documentation.

S'il vous plaît, si vous pouvez l'expliquer à fond ou pointer du doigt un lien, une bonne réponse.


3
Vous ne savez pas ce que "source" signifie dans le contexte de la communication IP? Vous n'avez pas besoin d'une panne de serveur - vous avez besoin du livre Stevens ...
voretaq7

Réponses:


17

Lors de l'ajout d'une route à un hôte multi-hôte, vous souhaiterez peut-être contrôler l'adresse IP source à partir de laquelle votre hôte envoie lors du démarrage des communications utilisant cette route. C'est à cela que sert le src .

Un petit exemple: vous avez un hôte avec deux interfaces et les adresses IP 192.168.1.123/24 et 10.45.22.12/24. Vous ajoutez un itinéraire vers 78.22.45.0/24 via 10.45.22.1 et vous voulez vous assurer que vous n'envoyez pas vers 78.22.45.0/24 en utilisant l'adresse 192.168.1.123 (peut-être parce que le réseau 78.22.45.0/24 n'a pas de route de retour à 192.168.1.0/24 ou parce que vous ne voulez pas que votre trafic emprunte cet itinéraire pour une raison ou une autre):

ip route add 78.22.45.0/24 via 10.45.22.1 src 10.45.22.12

Notez que le src que vous donnez n'affecterait que le trafic provenant de votre hôte. Si un paquet étranger est routé, il aurait évidemment déjà une adresse IP source, il serait donc transmis sans modification (sauf si vous utilisez NAT bien sûr, mais c'est une toute autre affaire). En outre, ce paramètre peut être remplacé par un processus qui choisit spécifiquement de se lier à une adresse spécifique au lieu d'utiliser les valeurs par défaut lors de l'établissement des connexions (plutôt rare).


9

L' srcattribut est un indice utilisé par l' algorithme de sélection d'adresse . Il est important lorsqu'un hôte possède plusieurs adresses IP, ce qui est généralement, mais pas toujours, lorsqu'il a plusieurs interfaces. Bien qu'il existe d'autres règles qui influencent la sélection des adresses et qu'une application réseau puisse également remplacer l'algorithme de sélection en utilisant des appels système comme bind(), l' srcattribut est un moyen d'utiliser une recherche de table de routage pour répondre à la question: «Si je veux lancer un connexion à l'hôte X, laquelle de mes adresses dois-je utiliser? "

Voici un exemple pour illustrer l'utilisation et l'effet de l' srcattribut. Pour faire valoir que cela est lié aux adresses et aux itinéraires, pas strictement aux interfaces, cet exemple d'hôte n'a qu'une seule interface réseau mais deux adresses. De plus, les deux adresses sont sur le même sous-réseau pour souligner le fait qu'il n'y a pas d'autre moyen évident de choisir celle à utiliser.

$ ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 10.1.0.2/24 brd 10.1.0.255 scope global eth0
    inet 10.1.0.16/24 scope global secondary eth0
$ ip route list dev eth0
10.1.0.32/27  scope link  src 10.1.0.16
10.1.0.0/24  proto kernel  scope link  src 10.1.0.2

Cet hôte peut communiquer avec l'une des 252 autres adresses de ce sous-réseau / 24 à partir de l'une ou l'autre adresse, mais par défaut, il utilisera 10.1.0.16 lors de l'établissement d'une connexion avec 10.1.0.32 à 10.1.0.63, et utilisera 10.1.0.2 pour tous les du repos.

Si l'hôte répond, plutôt que de lancer, il répondra à partir de l'adresse de destination de la demande. Par exemple, si un autre hôte à 10.1.0.32 se connecte à cet hôte à 10.1.0.2, la réponse proviendra de 10.1.0.2 même si cela ne correspond pas à l' srcattribut de la route de retour.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.