J'ai deux périphériques réseau à bord de mon macbook pro:
- WIFI (en1): utilisé pour le trafic général. Se connecte à une adresse IP de 192.168.19. * Via DHCP
- LAN (en0): utilisé pour un trafic spécifique. Se connecte à une adresse IP 192.168.2.10 en tant qu'IP statique. Ne se connecte pas à un routeur, seulement un commutateur pour une connexion de
routagedirecte .
J'ai 4 adresses IP auxquelles j'ai besoin d'accéder sur le LAN:
- 192.168.2.1
- 192.168.2.21
- 192.168.2.20
- 192.168.2.30
Le reste du trafic doit aller au WIFI. J'ai essayé de mettre en place une table de routage pour les adresses IP spécifiques, mais j'ai seulement réussi à gâcher mon réseau. Je ne m'aventure pas trop souvent dans le monde du réseautage, mais c'était la dernière commande que j'essayais:
sudo route add -host 192.168.2.30 -interface en0
Cette commande a tué ma capacité à utiliser ping. Il m'a dit que ping ne pouvait pas allouer de mémoire (est-ce même possible)? Cela a également tué mon accès wifi. La déconnexion et la reconnexion ont résolu le problème. Cela ne me dérange vraiment pas de rendre cette solution permanente, donc je suis d'accord avec un routage temporaire.
ÉDITER:
Si j'essaye actuellement:
sudo route flush
sudo route add default 192.168.19.1
Cela fait tout fonctionner pendant environ une minute. Mais après une telle minute, il "oublie" le routage vers le WiFi tout en conservant le routage du LAN (en0). Si je débranche et rebranche mon câble LAN (en0), le processus fonctionne pendant encore une minute.
EDIT 2:
Ce sont quelques-unes des commandes entrées en tant que demande par d34dh0r53.
$ netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.2.1 UGSc 4 0 en0
default 192.168.19.1 UGScI 0 0 en1
127 127.0.0.1 UCS 0 1 lo0
127.0.0.1 127.0.0.1 UH 5 1429023 lo0
169.254 link#4 UCS 0 0 en0
192.168.2 link#4 UCS 4 0 en0
192.168.2.1 0:27:22:2e:5f:1a UHLWIi 2 0 en0 1199
192.168.2.10 127.0.0.1 UHS 0 0 lo0
192.168.2.30 90:a2:da:0:f5:63 UHLWIi 1 1433 en0 1191
192.168.2.255 ff:ff:ff:ff:ff:ff UHLWbI 0 7 en0
192.168.19 link#5 UCS 2 0 en1
192.168.19.1 3e:d0:f8:aa:28:56 UHLWIi 0 2 en1 1192
192.168.19.3 127.0.0.1 UHS 1 0 lo0
192.168.19.255 ff:ff:ff:ff:ff:ff UHLWbI 0 5 en1
Internet6:
Destination Gateway Flags Netif Expire
::1 link#1 UHL lo0
fe80::%lo0/64 fe80::1%lo0 UcI lo0
fe80::1%lo0 link#1 UHLI lo0
fe80::%en0/64 link#4 UCI en0
fe80::226:4aff:fe00:b68a%en0 0:26:4a:0:b6:8a UHLI lo0
fe80::%en1/64 link#5 UCI en1
fe80::226:bbff:fe03:cbd%en1 0:26:bb:3:c:bd UHLI lo0
ff01::%lo0/32 fe80::1%lo0 UmCI lo0
ff01::%en0/32 link#4 UmCI en0
ff01::%en1/32 link#5 UmCI en1
ff02::%lo0/32 fe80::1%lo0 UmCI lo0
ff02::%en0/32 link#4 UmCI en0
ff02::%en1/32 link#5 UmCI en1
$ traceroute -n 192.168.2.1
traceroute to 192.168.2.1 (192.168.2.1), 64 hops max, 52 byte packets
1 192.168.2.1 2.499 ms 3.392 ms 3.829 ms
$ traceroute -n google.com
traceroute: unknown host google.com
la source
Réponses:
Vous ne devriez pas avoir besoin de créer à la main des règles de routage pour cette configuration, à condition que toutes les adresses 192.168.2.x avec lesquelles vous souhaitez communiquer soient en bas de l'interface avec l'adresse 192.168.2.x.
Une fois cela fait,
netstat -rn
devrait toujours montrer les routes pour les deux sous-réseaux, mais seulement une route "link # 4" à la place de la route par défaut via 192.168.2.1.Si vous ne voulez pas de route par défaut, laissez la case du routeur vide. La valeur dans la zone du routeur n'est utilisée que pour configurer une route par défaut via cette interface réseau, et elle n'est utilisée pour rien d'autre.
la source
192.168.2.1
dans le champ du routeur pour correspondre à un "routeur" du côté LAN. Je pensais que c'était nécessaire, mais je vois maintenant qu'il a repris l'itinéraire par défaut pour le trafic général.Le problème est que votre
en0
interface ajoute une route par défaut qui a priorité sur la route par défaut établie par l'interface 802.11. Je ne sais pas exactement pourquoi, mais c'est soit le fait que BSD préfère une interface filaire à une interface sans fil, soit il préfère une interface configurée statiquement à une interface configurée dynamiquement. Vous pouvez dire que laen0
route par défaut est utilisée par laRefs
colonne;Refs
est une métrique indiquant le nombre actuel d'utilisations actives de l'itinéraire, afin que nous puissions voir qu'il reçoit tout le trafic.La solution consiste à supprimer cette route, de préférence de façon permanente de la table de routage afin que le trafic destiné à des hôtes autres que ceux de vos réseaux locaux traverse la passerelle par défaut établie par DHCP on
en1
. La première chose que je vérifierais est dans le panneau de configuration pouren0
vous assurer que vous n'avez rien entré dans lerouter
champ. Les informations de ce champ sont ajoutées en tant que passerelle par défaut. Si cela ne fonctionne pas, nous devons supprimer manuellement l'itinéraire, la raison pour laquelle celaroute flush
ne fonctionne pas est que je pense qu'il indique à OS X de recharger ses informations de routage à partir des fichiers de configuration d'interface, annulant ainsi votre modification après un court laps de temps. La commande suivante doit supprimer la route par défaut pour leen0
jusqu'à ce que le réseau soit redémarré ou que le système soit IPLed:Si vous souhaitez rendre ce changement permanent, vous pouvez soit a) créer un service dans
/Library/StartupItems
lequel cela me semble trop de travail ou b) ajouter cette ligne à/etc/rc.local
une commande telle que:Vous devrez peut-être ajouter une
sleep <number_of_seconds>
commande avant cette ligne/etc/rc.local
pour éviter d'exécuter la commande avant que les interfaces ne soient complètement actives et que la table de routage ne soit établie.J'espère que ça t'aide et bonne chance!
la source
192.168.2.1
était le problème, mais @rakslice a constaté que j'avais fait une erreur lors de la saisie de mes informations de routage pour la connexion en0. J'ai mis l'adresse IP192.168.2.1
dans le champ du routeur en pensant qu'elle était requise. Après avoir supprimé l'IP du routeur par défaut, j'ai également supprimé la mauvaise route par défaut vers192.168.2.1
. Encore une fois, merci pour votre aide.Vous souhaitez définir votre IP Wifi comme passerelle par défaut et supprimer toute passerelle par défaut (ou route vers 0.0.0.0) connectée au LAN ou 192.168.2.0/24.
C'est bien sûr plus facile si vous pouvez régler votre en1 sur une IP fixe qui fonctionnera avec le wifi.
Vous devrez peut-être ajouter 192.168.2.10 comme route vers le réseau 192.168.2.0/24. Cependant, cela devrait être automatique car il peut indiquer que 192.168.2.0/24 est directement connecté par virtuel à ce que vous avez attribué à l'interface.
Ainsi, le trafic allant vers n'importe quel 192.168.2.X sortira de 192.168.2.10, et le trafic allant n'importe où ailleurs sortira de l'adresse IP de votre en1.
la source
remove any default gateway connected to the LAN
.sudo route del default 192.168.2.10
- être ?, je ne sais pas exactement comment le faire sur freebsd / mac osx mais cela devrait être similaire.sudo route delete default 192.168.2.10
. Ping est toujours actif. Cependant, il coupe l'accès au trafic wifi à l'exclusion de l'ip du routeur.