Je m'interrogeais sur le fait de savoir s'il était possible de réaliser un programme
de NAT en Java.
La translation d'adresse fonctionne apparemment un peu à la manière d'un sniffer
(je récupère toutes les trames réseau et je modifie les adresses IP originales et
destinataires pour créer la NAT). Ce travail me semble difficile à faire en Java
qui apparemment ne prend pas en charge d'aussi "bas niveau" dans les réseaux. Me
trompe je?
Sébastien
--
Message monitoré par axinews : http://www.axinews.com/
Bien sur que c'est possible ! Seulement, tu n'as pas à "snifer" toutes ltrames du reso. puisqu'un NAT est une "passerelle". Pour être simple, le but est de faire une table de correspondance entre paquets inbound et paquets outbound, qui viennent sur ton serveur socket.
Analyse bien le principe d'un NAT et tu verras que tu as les outils à ta disposition.
Bon code, Ulrich.
"Sébastien X" a écrit dans le message de news: 3f84970b$0$27577$
bonjour,
Je m'interrogeais sur le fait de savoir s'il était possible de réaliser un programme
de NAT en Java.
La translation d'adresse fonctionne apparemment un peu à la manière d'un sniffer
(je récupère toutes les trames réseau et je modifie les adresses IP originales et
destinataires pour créer la NAT). Ce travail me semble difficile à faire en Java
qui apparemment ne prend pas en charge d'aussi "bas niveau" dans les réseaux. Me
trompe je?
Sébastien
-- Message monitoré par axinews : http://www.axinews.com/
Salut,
Bien sur que c'est possible ! Seulement, tu n'as pas à "snifer" toutes
ltrames du reso. puisqu'un NAT est une "passerelle". Pour être simple, le
but est de faire une table de correspondance entre paquets inbound et
paquets outbound, qui viennent sur ton serveur socket.
Analyse bien le principe d'un NAT et tu verras que tu as les outils à ta
disposition.
Bon code,
Ulrich.
"Sébastien X" <cvwebmaster@noos.fr.invalid> a écrit dans le message de news:
3f84970b$0$27577$626a54ce@news.free.fr...
bonjour,
Je m'interrogeais sur le fait de savoir s'il était possible de réaliser un
programme
de NAT en Java.
La translation d'adresse fonctionne apparemment un peu à la manière d'un
sniffer
(je récupère toutes les trames réseau et je modifie les adresses IP
originales et
destinataires pour créer la NAT). Ce travail me semble difficile à faire
en Java
qui apparemment ne prend pas en charge d'aussi "bas niveau" dans les
réseaux. Me
trompe je?
Sébastien
--
Message monitoré par axinews : http://www.axinews.com/
Bien sur que c'est possible ! Seulement, tu n'as pas à "snifer" toutes ltrames du reso. puisqu'un NAT est une "passerelle". Pour être simple, le but est de faire une table de correspondance entre paquets inbound et paquets outbound, qui viennent sur ton serveur socket.
Analyse bien le principe d'un NAT et tu verras que tu as les outils à ta disposition.
Bon code, Ulrich.
"Sébastien X" a écrit dans le message de news: 3f84970b$0$27577$
bonjour,
Je m'interrogeais sur le fait de savoir s'il était possible de réaliser un programme
de NAT en Java.
La translation d'adresse fonctionne apparemment un peu à la manière d'un sniffer
(je récupère toutes les trames réseau et je modifie les adresses IP originales et
destinataires pour créer la NAT). Ce travail me semble difficile à faire en Java
qui apparemment ne prend pas en charge d'aussi "bas niveau" dans les réseaux. Me
trompe je?
Sébastien
-- Message monitoré par axinews : http://www.axinews.com/
Seb X
Salut,
Bien sur que c'est possible ! Seulement, tu n'as pas à "snifer" toutes ltrames du reso. puisqu'un NAT est une "passerelle". Pour être simple, le but est de faire une table de correspondance entre paquets inbound et paquets outbound, qui viennent sur ton serveur socket.
J'ai étudié le principe de la NAT. Je sais comment faire des correspondances d'ip ou de port via des sockets et Inpustream en Java. La table de correspondance ne me semble pas le soucis majeur, mais plutôt le routage des paquets : les routeurs travaillant sur la couche réseau du modèle OSI (niveau plus bas que les sockets). Or il me semble que Java ne peut travailler sur un aussi bas niveau de la couche OSI, donc il me semble que Java ne peut créer de passerelle. Me trompe je?
Salut,
Bien sur que c'est possible ! Seulement, tu n'as pas à "snifer" toutes
ltrames du reso. puisqu'un NAT est une "passerelle". Pour être simple, le
but est de faire une table de correspondance entre paquets inbound et
paquets outbound, qui viennent sur ton serveur socket.
J'ai étudié le principe de la NAT. Je sais comment faire des correspondances
d'ip ou de port via des sockets et Inpustream en Java.
La table de correspondance ne me semble pas le soucis majeur, mais plutôt le
routage des paquets : les routeurs travaillant sur la couche réseau du
modèle OSI (niveau plus bas que les sockets).
Or il me semble que Java ne peut travailler sur un aussi bas niveau de la
couche OSI, donc il me semble que Java ne peut créer de passerelle. Me
trompe je?
Bien sur que c'est possible ! Seulement, tu n'as pas à "snifer" toutes ltrames du reso. puisqu'un NAT est une "passerelle". Pour être simple, le but est de faire une table de correspondance entre paquets inbound et paquets outbound, qui viennent sur ton serveur socket.
J'ai étudié le principe de la NAT. Je sais comment faire des correspondances d'ip ou de port via des sockets et Inpustream en Java. La table de correspondance ne me semble pas le soucis majeur, mais plutôt le routage des paquets : les routeurs travaillant sur la couche réseau du modèle OSI (niveau plus bas que les sockets). Or il me semble que Java ne peut travailler sur un aussi bas niveau de la couche OSI, donc il me semble que Java ne peut créer de passerelle. Me trompe je?
Nicolas Repiquet
"Seb X" a écrit dans le message news: 3f858101$0$28907$
J'ai étudié le principe de la NAT. Je sais comment faire des correspondances
d'ip ou de port via des sockets et Inpustream en Java. La table de correspondance ne me semble pas le soucis majeur, mais plutôt le
routage des paquets : les routeurs travaillant sur la couche réseau du modèle OSI (niveau plus bas que les sockets). Or il me semble que Java ne peut travailler sur un aussi bas niveau de la couche OSI, donc il me semble que Java ne peut créer de passerelle. Me trompe je?
Il faut que tu trouve une lib pour forger des paquets directement. Je suis pas sur que ça existe en java, il va peut-être faloir que tu fasse le binding avec JNI.
Bonne chance
-- Nicolas Repiquet
"Seb X" <seb_fromfrance@nospam-yahoo.fr> a écrit dans le message news:
3f858101$0$28907$626a54ce@news.free.fr...
J'ai étudié le principe de la NAT. Je sais comment faire des
correspondances
d'ip ou de port via des sockets et Inpustream en Java.
La table de correspondance ne me semble pas le soucis majeur, mais plutôt
le
routage des paquets : les routeurs travaillant sur la couche réseau du
modèle OSI (niveau plus bas que les sockets).
Or il me semble que Java ne peut travailler sur un aussi bas niveau de la
couche OSI, donc il me semble que Java ne peut créer de passerelle. Me
trompe je?
Il faut que tu trouve une lib pour forger des paquets directement. Je suis
pas sur que ça existe en java, il va peut-être faloir que tu fasse le
binding avec JNI.
"Seb X" a écrit dans le message news: 3f858101$0$28907$
J'ai étudié le principe de la NAT. Je sais comment faire des correspondances
d'ip ou de port via des sockets et Inpustream en Java. La table de correspondance ne me semble pas le soucis majeur, mais plutôt le
routage des paquets : les routeurs travaillant sur la couche réseau du modèle OSI (niveau plus bas que les sockets). Or il me semble que Java ne peut travailler sur un aussi bas niveau de la couche OSI, donc il me semble que Java ne peut créer de passerelle. Me trompe je?
Il faut que tu trouve une lib pour forger des paquets directement. Je suis pas sur que ça existe en java, il va peut-être faloir que tu fasse le binding avec JNI.
Bonne chance
-- Nicolas Repiquet
Seb X
Il faut que tu trouve une lib pour forger des paquets directement. Je suis pas sur que ça existe en java, il va peut-être faloir que tu fasse le binding avec JNI.
Il y a jpcap qui s'interface avec la librairie libpcap mais je ne suis pas sur que ca réponde bien aux besoins de la NAT.
En fait, je me demande pourquoi Sun n'a pas créer un package générique d'acces aux différentes couches OSI du protocole TCP/IP puisque le modèle TCP/IP est sensiblement le meme d'un OS à l'autre.
Bonne chance
-- Nicolas Repiquet
Il faut que tu trouve une lib pour forger des paquets directement. Je suis
pas sur que ça existe en java, il va peut-être faloir que tu fasse le
binding avec JNI.
Il y a jpcap qui s'interface avec la librairie libpcap mais je ne suis pas
sur que ca réponde bien aux besoins de la NAT.
En fait, je me demande pourquoi Sun n'a pas créer un package générique
d'acces aux différentes couches OSI du protocole TCP/IP puisque le modèle
TCP/IP est sensiblement le meme d'un OS à l'autre.
Il faut que tu trouve une lib pour forger des paquets directement. Je suis pas sur que ça existe en java, il va peut-être faloir que tu fasse le binding avec JNI.
Il y a jpcap qui s'interface avec la librairie libpcap mais je ne suis pas sur que ca réponde bien aux besoins de la NAT.
En fait, je me demande pourquoi Sun n'a pas créer un package générique d'acces aux différentes couches OSI du protocole TCP/IP puisque le modèle TCP/IP est sensiblement le meme d'un OS à l'autre.
Bonne chance
-- Nicolas Repiquet
Nicolas Repiquet
"Seb X" a écrit dans le message news: 3f859d37$0$28882$
Il y a jpcap qui s'interface avec la librairie libpcap mais je ne suis pas sur que ca réponde bien aux besoins de la NAT.
Tu va bien être obligé d'en passer par là je pense...
En fait, je me demande pourquoi Sun n'a pas créer un package générique d'acces aux différentes couches OSI du protocole TCP/IP puisque le modèle TCP/IP est sensiblement le meme d'un OS à l'autre.
Typiquement je pense pas que java soit fait pour ça. En plus, les couches en dessous de socket son pas mal dépendante de la plateforme.
-- Nicolas Repiquet
"Seb X" <seb_fromfrance@nospam-yahoo.fr> a écrit dans le message news:
3f859d37$0$28882$626a54ce@news.free.fr...
Il y a jpcap qui s'interface avec la librairie libpcap mais je ne suis pas
sur que ca réponde bien aux besoins de la NAT.
Tu va bien être obligé d'en passer par là je pense...
En fait, je me demande pourquoi Sun n'a pas créer un package générique
d'acces aux différentes couches OSI du protocole TCP/IP puisque le modèle
TCP/IP est sensiblement le meme d'un OS à l'autre.
Typiquement je pense pas que java soit fait pour ça. En plus, les couches en
dessous de socket son pas mal dépendante de la plateforme.
"Seb X" a écrit dans le message news: 3f859d37$0$28882$
Il y a jpcap qui s'interface avec la librairie libpcap mais je ne suis pas sur que ca réponde bien aux besoins de la NAT.
Tu va bien être obligé d'en passer par là je pense...
En fait, je me demande pourquoi Sun n'a pas créer un package générique d'acces aux différentes couches OSI du protocole TCP/IP puisque le modèle TCP/IP est sensiblement le meme d'un OS à l'autre.
Typiquement je pense pas que java soit fait pour ça. En plus, les couches en dessous de socket son pas mal dépendante de la plateforme.
-- Nicolas Repiquet
Cédric Chabanois
Il faut que tu trouve une lib pour forger des paquets directement. Je suis pas sur que ça existe en java, il va peut-être faloir que tu fasse le binding avec JNI.
Bonne chance
-- Nicolas Repiquet
Jpcap peut-être peut faire l'affaire ou au moins donner une idée de ce qu'il y a à faire.
http://jpcap.sourceforge.net/
En fait je ne suis pas sûr que Java soit le langage le plus adapté pour faire cela néanmoins ...
Cédric
Il faut que tu trouve une lib pour forger des paquets directement. Je suis
pas sur que ça existe en java, il va peut-être faloir que tu fasse le
binding avec JNI.
Bonne chance
-- Nicolas Repiquet
Jpcap peut-être peut faire l'affaire ou au moins donner une idée de ce
qu'il y a à faire.
http://jpcap.sourceforge.net/
En fait je ne suis pas sûr que Java soit le langage le plus adapté pour
faire cela néanmoins ...
Il faut que tu trouve une lib pour forger des paquets directement. Je suis pas sur que ça existe en java, il va peut-être faloir que tu fasse le binding avec JNI.
Bonne chance
-- Nicolas Repiquet
Jpcap peut-être peut faire l'affaire ou au moins donner une idée de ce qu'il y a à faire.
http://jpcap.sourceforge.net/
En fait je ne suis pas sûr que Java soit le langage le plus adapté pour faire cela néanmoins ...
Cédric
Cédric Chabanois
Ulrich Vachon wrote:
Salut,
Bien sur que c'est possible ! Seulement, tu n'as pas à "snifer" toutes ltrames du reso. puisqu'un NAT est une "passerelle". Pour être simple, le but est de faire une table de correspondance entre paquets inbound et paquets outbound, qui viennent sur ton serveur socket.
Analyse bien le principe d'un NAT et tu verras que tu as les outils à ta disposition.
Bon code, Ulrich.
J'ai l'impression que tu t'avances un peu quand même ...
Comment tu fais en java pure pour récupérer les packets qui passent ? Comment tu fais pour les reémettre ?
Ulrich Vachon wrote:
Salut,
Bien sur que c'est possible ! Seulement, tu n'as pas à "snifer" toutes
ltrames du reso. puisqu'un NAT est une "passerelle". Pour être simple, le
but est de faire une table de correspondance entre paquets inbound et
paquets outbound, qui viennent sur ton serveur socket.
Analyse bien le principe d'un NAT et tu verras que tu as les outils à ta
disposition.
Bon code,
Ulrich.
J'ai l'impression que tu t'avances un peu quand même ...
Comment tu fais en java pure pour récupérer les packets qui passent ?
Comment tu fais pour les reémettre ?
Bien sur que c'est possible ! Seulement, tu n'as pas à "snifer" toutes ltrames du reso. puisqu'un NAT est une "passerelle". Pour être simple, le but est de faire une table de correspondance entre paquets inbound et paquets outbound, qui viennent sur ton serveur socket.
Analyse bien le principe d'un NAT et tu verras que tu as les outils à ta disposition.
Bon code, Ulrich.
J'ai l'impression que tu t'avances un peu quand même ...
Comment tu fais en java pure pour récupérer les packets qui passent ? Comment tu fais pour les reémettre ?
Seb X
Il y a jpcap qui s'interface avec la librairie libpcap mais je ne suis pas
sur que ca réponde bien aux besoins de la NAT.
Tu va bien être obligé d'en passer par là je pense...
Apparemment, libpcap sert juste à capturer les packets et non à les forger....
La simple capture des packets est peut être suffisante pour réaliser une passerelle basique (puisque les "paquets outbound" sont crées avec de simples sockets) mais risque de poser problème pour certains protocole (Ping, https....)
Une autre iddée?
En fait, je me demande pourquoi Sun n'a pas créer un package générique d'acces aux différentes couches OSI du protocole TCP/IP puisque le modèle
TCP/IP est sensiblement le meme d'un OS à l'autre.
Typiquement je pense pas que java soit fait pour ça.
Pas encore :-) J'ai pourtant réussit à trouver un petit prog écrit en VB qui faisait ca en utilisant aucun driver particulier
En plus, les couches en dessous de socket son pas mal dépendante de la plateforme.
libpcap est pourtant indépendante des plateformes
Il y a jpcap qui s'interface avec la librairie libpcap mais je ne suis
pas
sur que ca réponde bien aux besoins de la NAT.
Tu va bien être obligé d'en passer par là je pense...
Apparemment, libpcap sert juste à capturer les packets et non à les
forger....
La simple capture des packets est peut être suffisante pour réaliser une
passerelle basique (puisque les "paquets outbound" sont crées avec de
simples sockets) mais risque de poser problème pour certains protocole
(Ping, https....)
Une autre iddée?
En fait, je me demande pourquoi Sun n'a pas créer un package générique
d'acces aux différentes couches OSI du protocole TCP/IP puisque le
modèle
TCP/IP est sensiblement le meme d'un OS à l'autre.
Typiquement je pense pas que java soit fait pour ça.
Pas encore :-)
J'ai pourtant réussit à trouver un petit prog écrit en VB qui faisait ca en
utilisant aucun driver particulier
En plus, les couches en
dessous de socket son pas mal dépendante de la plateforme.
Il y a jpcap qui s'interface avec la librairie libpcap mais je ne suis pas
sur que ca réponde bien aux besoins de la NAT.
Tu va bien être obligé d'en passer par là je pense...
Apparemment, libpcap sert juste à capturer les packets et non à les forger....
La simple capture des packets est peut être suffisante pour réaliser une passerelle basique (puisque les "paquets outbound" sont crées avec de simples sockets) mais risque de poser problème pour certains protocole (Ping, https....)
Une autre iddée?
En fait, je me demande pourquoi Sun n'a pas créer un package générique d'acces aux différentes couches OSI du protocole TCP/IP puisque le modèle
TCP/IP est sensiblement le meme d'un OS à l'autre.
Typiquement je pense pas que java soit fait pour ça.
Pas encore :-) J'ai pourtant réussit à trouver un petit prog écrit en VB qui faisait ca en utilisant aucun driver particulier
En plus, les couches en dessous de socket son pas mal dépendante de la plateforme.
libpcap est pourtant indépendante des plateformes
Cédric Chabanois
Il y a jpcap qui s'interface avec la librairie libpcap mais je ne suis
pas
sur que ca réponde bien aux besoins de la NAT.
Tu va bien être obligé d'en passer par là je pense...
Apparemment, libpcap sert juste à capturer les packets et non à les forger....
Je ne sais pas pour libpcap et Jpcap mais winpcap peut créer des paquets.
Il y a jpcap qui s'interface avec la librairie libpcap mais je ne suis
pas
sur que ca réponde bien aux besoins de la NAT.
Tu va bien être obligé d'en passer par là je pense...
Apparemment, libpcap sert juste à capturer les packets et non à les
forger....
Je ne sais pas pour libpcap et Jpcap mais winpcap peut créer des paquets.