J'ai une composition avec 2 cartes Ehh, connectées au cordon de patch (câble DIRECT ETH. Du 1er à 2ème). P>
Le Linux est installé, je souhaite envoyer des données de la 1ère carte réseau à 2e. Et je veux forcer le paquet à passer par câble. Je peux configurer n'importe quelle adresse IP sur des cartes. P>
avec ping je reçois des compteurs sur des cartes constantes. p>
est-il possible avec des sockets TCP / IP? P>
ps. J'ai besoin d'écrire un programme. qui enverra des paquets via Eth, donc la question liée à Stackoverflow. Il peut y avoir une certaine manière dépendante du système d'exploitation, ils m'aideront trop p>
3 Réponses :
Vous devriez pouvoir écrire un programme qui utilise-le à l'aide de sockets de paquets (famille pf_packet code>), mais vous devrez gérer vous-même les en-têtes pour les couches IP et les plus hautes. P >
Donc, je ne peux pas forcer les paquets TCP ou IP Ne soyez pas en boucle?
Je ne le crois pas, mais vous pouvez essayer d'ajouter un itinéraire hôte pour chaque adresse IP à travers l'interface opposée.
Regardez dans Table de routage local fort>. Avec IProute2 Tools installés do Table de montage IP Local em>. Comme vous pouvez le constater, tous les paquets destinés à vos IP locaux ne vont jamais passer à Thru Nics car ils sont marqués comme Pour forcer les paquets GO Via Carte Ethernet Supprimer la route appropriée (I.E. IP IPL Delete 192.168.122.1 Dev Eth0 Table local em>). Pour restaurer cet itinéraire, définissez l'interface vers le bas et vers le haut: le noyau ferait le travail pour insérer ces itinéraires. P>
L'idée semble bonne. Bien sûr, il n'est pas plus possible de ping d'interface locale, mais il semble que cela ne soit possible que possible de ping sur le réseau (il semble que le noyau n'accepte plus les paquets pour cette adresse IP).
J'ai essayé le route IP ... Table locale em> méthode ci-dessus. Soit cela ne fonctionne pas ou je fais quelque chose de mal. L'astuce consiste à utiliser un ensemble d'adresses IP mannequin pour forcer le noyau à le rouler à travers le fil et à la modifier à l'adresse IP réelle. p> letth0 et eth1 être les deux cartes Ethernet; IP0 et IP1 Son adresse IP; Mac0 et Mac1 Son adresse MAC respectivement. Nous utiliserons deux adresses IP factimes: IP00 et IP11. P> arp -s IP00 MAC0
arp -s IP11 MAC1
ip route add IP00 dev eth1
ip route add IP11 dev eth0
iptables -t nat -A POSTROUTING -d IP11 -j SNAT --to-source IP00
iptables -t nat -A POSTROUTING -d IP00 -j SNAT --to-source IP11
iptables -t nat -A PREROUTING -d IP00 -j DNAT --to-destination IP0
iptables -t nat -A PREROUTING -d IP11 -j DNAT --to-destination IP1
Pour ceux d'entre nous avec IProTe2, l'équivalent pour les commandes arp -s code> est
vois voisin IP00 lladdr Mac0 dev etth.0 code> (
dev code> pourrait être ETH1 , pas certain).
Dupliqué possible de ServerFault .com / questions / 127636 / ...
Cela a été fermé comme étant hors sujet deux ans après la réponse de la question. Pourtant, les réponses décrivent des programmes et l'Asker dit qu'ils écrivent un programme. Oui, ceci est également sur la thème pour un autre site d'échange de pile. Je vais signaler cela pour être rouvert.
Dcking, la tâche peut être résolue avec uniquement des outils liés au système d'exploitation, sans créer de nouveaux programmes. La réponse de Z22 ressemble à ce qui est nécessaire. Et chez Serverfault ServerFault .Com / Questions / 127636 / ... Nous avons une solution correcte.
Ensuite, la principale raison est tout à fait trompeuse. Je ne pense pas que nous ayons une règle contre des doublons de questions autres que les questions, mais je n'aurais aucune objection si nous le faisions. "Outils logiciels couramment utilisés par les programmeurs" est l'un des 3 sujets de ce site et de l'IMHO lorsque la réponse met ces outils dans un script short shell, cela les rend encore plus sur le sujet.
J'ai eu le succès avec
IP Netns code> Exempled ici serverfault.com/a/861465/210994