Comment transférer des paquets entre deux interfaces?

Mon ordinateur portable (l'utilisation de Ubuntu 13.10) est connecté à Internet en utilisant une connexion filaire à eth0 avec ip 192.168.42.13 et il agit également comme un wifi hotspot à wlan0 avec l'ip 192.168.1.1 (j'ai utilisé airbase-ng pour configurer l'ap) . Maintenant, j'ai un périphérique Android qui doit être connecté à ce wifi. Je vois que mon Android peut se connecter au hotspot et recevoir les paramètres réseau suivants à partir du serveur dhcp j'ai configuré. (J'ai utilisé un appel d'outil Net Info II de PlayStore pour voir les détails ci-dessous sur mon Android).

 # My android network settings (connected to the wlan0 of my laptop): ip address: 192.168.1.10 subnetmask: 255.255.255.0 gateway : 192.168.1.254 ap-mac : xx:xx:xx:xx:xx:xx # My pc's eth0 configuration ip address: 192.168.42.13 submetmask: 255.255.255.0 gateway : 192.168.42.129 iface mac : yy:yy:yy:yy:yy:yy # My pc's wlan0 (hotspot interface) configuration ip address: 192.168.1.1 subnetmask: 255.255.255.0 gateway : 192.168.1.1 iface mac : zz:zz:zz:zz:zz:zz 

Ce sujet ici parle d'un problème similaire. Je vois que j'ai besoin de transférer des paquets entre eth0 et wlan0 network pour connecter les périphériques de mon sans-fil à Internet. Maintenant, comment puis-je transférer les paquets que je reçois de wlan0 to eth0 et eth0 to wlan0 pour que mon appareil soit connecté à Internet?

Vous devez d'abord autoriser le renvoi IP sur votre système. Pour le faire une fois, utilisez

 sysctl -w net.ipv4.ip_forward=1 

ou

 echo 1 > /proc/sys/net/ipv4/ip_forward 

En tant que root. Si vous voulez le rendre permanent, éditez

 /etc/sysctl.conf 

Et ajouter une ligne contenant

 net.ipv4.ip_forward = 1 

Cela sera appliqué lors du redémarrage ou lorsque vous exécutez

 sysctl -p /etc/sysctl.conf 

Une fois que cela est fait, vous devez probablement avoir des connexions NAT, car il est peu probable que votre routeur sache que le réseau 192.168.1.0/24 est accessible via 192.168.42.13. Si 192.168.42.13 est statique, vous pouvez utiliser

 iptables -t nat -A POSTROUTING -i wlan0 -s 192.168.1.0/24 -j SNAT --to-source 192.168.42.13 

Utiliser autrement

 iptables -t nat -A POSTROUTING -i wlan0 -s 192.168.1.0/24 -j MASQUERADE 

Vérifiez Ubuntu IptablesHowTo pour savoir comment sauvegarder ces règles lors du redémarrage.