1 votes

Acheminer uniquement le trafic intranet spécifique via eth0 ; tout le reste via wlan0

Je suis relativement nouveau dans le domaine des réseaux, alors soyez indulgent avec moi si vous le voulez bien. J'utilise Ubuntu 16.04 sur un ordinateur portable. NVIDIA Jetson TX2 . J'ai un Lidar de Velodyne VLP-16 Lite Je suis connecté directement au port Ethernet et je suis connecté à Internet via wlan0. Lorsque je me connecte à eth0 (alias le Lidar) alors que je suis toujours connecté à wlan0, je ne peux pas faire un ping à google. Si je me déconnecte de eth0, l'accès à internet revient comme si j'étais toujours connecté à wlan0.

Première solution Je suis allé dans le gestionnaire de réseau et j'ai modifié les paramètres eth0 pour avoir une ip de 192.168.2.227 et un masque net de 255.255.255.0. J'ai également modifié les routes IPv4 pour inclure l'adresse : 192.168.2.1 et le masque de réseau 255.255.255.0 et cliqué sur le bouton radio "utiliser cette connexion uniquement pour les ressources de son réseau".

Cela m'a permis de me connecter à la fois à l'internet via wlan0 et de communiquer avec le périphérique LIDAR directement via son hôte IP 192.168.2.201 (que j'ai défini).

Alors quel est le problème ? Je crois que je perds des paquets, peut-être de façon aléatoire.

Alors quelle est la question ? Comment puis-je acheminer tout ce qui vient ou va vers une adresse spécifique vers une interface spécifique et faire en sorte que tout le reste aille vers l'autre interface ?

C'est-à-dire : Comment faire en sorte que tout le trafic envoyé à l'adresse IP 192.168.2.201 (moi => le LIDAR) passe par eth0, et que tout le trafic vers l'adresse IP 192.168.2.202 (Lidar => moi) passe par eth0 ? Tout en faisant en sorte que tout le reste passe par wlan0 ?

Actuellement, mon système ressemble à ceci :

ubuntu@VPro-test2:~$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0
192.168.2.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

ubuntu@VPro-test2:~$ ip route
default via 192.168.1.1 dev wlan0  proto static  metric 600 
169.254.0.0/16 dev eth0  scope link  metric 1000 
192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.45  metric 600 
192.168.2.0/24 dev eth0  proto kernel  scope link  src 192.168.2.202  metric 100

ubuntu@VPro-test2:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:04:4b:8c:c1:0c  
          inet addr:192.168.2.202  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::1a8f:c89c:e32c:8de0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:131110 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1494 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:72618144 (72.6 MB)  TX bytes:824212 (824.2 KB)
          Interrupt:42 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:43 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:2467 (2.4 KB)  TX bytes:2467 (2.4 KB)

wlan0     Link encap:Ethernet  HWaddr 00:04:4b:8c:c1:0a  
          inet addr:192.168.1.45  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::9679:8dae:defd:aafa/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6277 errors:0 dropped:0 overruns:0 frame:0
          TX packets:382 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:783723 (783.7 KB)  TX bytes:49404 (49.4 KB)

Je cherche explicitement la configuration pour activer ceci, que ce soit en ligne de commande ou en interface graphique. Merci.

0voto

AlexOnLinux Points 870

Je ne suis pas un expert, juste un autodidacte. J'espère que cela va vous aider d'une manière ou d'une autre, puisque personne ne vous a donné de réponse en fait.

Vous pensez que vous perdez des paquets, peut-être de façon aléatoire - comment en êtes-vous arrivé à cette conclusion ?


Comment puis-je acheminer tout ce qui vient ou va vers une adresse spécifique vers une interface spécifique et faire en sorte que tout le reste aille vers l'autre interface ?

En configurant les routes comme vous l'avez déjà fait en utilisant l'interface.

Cela devrait fonctionner comme ceci à partir de la ligne de commande :

Périphérique Ethernet connecté au LIDAR

sudo ip route add ip-of-a-specific-server-or-device-or-of-whole-subnet via standardgateway1

  • En supposant que votre LIDAR a l'ip 192.168.2.202
  • et le routeur ou la passerelle standard sur ce réseau a l'adresse IP 192.168.2.1.

la commande pourrait ressembler à ceci

sudo ip route add 192.168.2.202 via 192.168.2.1

ou si vous voulez acheminer tout le trafic vers n'importe quel appareil à l'intérieur de ce sous-réseau :

sudo ip route add 192.168.2.0/24 via 192.168.2.1

/24 est un masque de sous-réseau de 255.255.255.0, soit 8 bits + 8 bits + 8 bits + 0 bit = 24 bits.

Périphérique Ethernet connecté à l'Internet

sudo ip route add all-the-rest-to-the-internet via standardgateway2

  • Le reste/Internet a l'ip par défaut de 0.0.0.0
  • Votre routeur ou modem a peut-être l'adresse IP 192.168.1.1.

La commande devrait ressembler à ceci :

sudo ip route add 0.0.0.0 via 192.168.1.1

Les problèmes qui peuvent parfois survenir lors du routage :

Vous envoyez des paquets ip avec un mauvais l'ip source. Par exemple, il peut arriver que vous envoyiez une adresse IP source de 192.168.1.x à un appareil situé à 192.168.2.x. Pour le vérifier, vous pouvez utiliser la commande suivante tcpdump -i interface -vvv et vérifiez ce qui est indiqué comme étant votre adresse IP sortante. Pour réparer cela, vous devez utiliser iptables et MASQUERADEz votre trafic par exemple avec sudo iptables -A POSTROUTING -t nat -o specific-interface-for-example-eth0 -j MASQUERADE

Pour surveiller votre trafic, je vous suggère d'utiliser bmon car il vous montrera également les collisions / erreurs par dispositif.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X