Lorsque je travaillais sous Windows, je pouvais relier ma connexion wifi à une connexion Ethernet de mon ordinateur portable afin qu'une gamme de périphériques uniquement Ethernet ne puisse se raccorder à mon réseau wifi (Raspberry Pi, Xbox, etc.). J'essaie maintenant de faire la même chose dans Ubuntu, c'est-à-dire que la configuration serait la suivante:
Routeur sans fil ---> Wifi sur ordinateur portable ---> pont vers Ethernet ---> Périphérique nécessitant Internet branché sur le port Ethernet
Maintenant, j'essaie de faire fonctionner cela dans Ubuntu en utilisant brctl
J'ai utilisé la commande ci-dessous:
Sudo brctl addif br0 eth0 wlan0
Et obtenez l'erreur suivante:
can't add wlan0 to bridge br0: Operation not supported
J'espère que quelqu'un pourra m'aider car je refuse de croire que quelque chose que je peux faire très facilement dans Windows ne peut pas être fait sous Linux.
Si vous avez besoin de plus d'informations, faites le moi savoir. Merci
Cela ne peut pas être fait. Vous ne pouvez pas relier une connexion client WiFi. Si vous le pouviez, nous n'aurions pas besoin de WDS, nous ferions simplement un pont.
Le problème est très simple: un point d’accès est empêché par la spécification WiFi de diffuser du trafic sur le réseau WiFi à moins que quelque chose n’autorise cette transmission. C'est en grande partie une relique de l'époque où les réseaux Wi-Fi étaient très lents et mal sécurisés, voire inexistants.
Le pont ne dispose que d’une connexion client au point d’accès. Cela n'autorise que le point d'accès à transmettre le trafic à destination du pont. Les machines connectées au pont n'étant pas des clients du point d'accès, celui-ci n'a aucune raison d'envoyer le trafic qui leur est destiné via la liaison WiFi. Donc, il ne le fera pas.
Malheureusement, le WiFi est assez semblable à Ethernet pour qu’il soit facile de s’attendre à ce qu’il agisse comme Ethernet. Mais c'est juste assez différent pour te mordre.
La configuration WDS est une autorisation spécifique permettant à un point d’accès d’envoyer du trafic qui n’est lié à aucun de ses clients. Lorsque les deux extrémités prennent en charge WDS, elles incluent l'adresse du point de terminaison de pontage ainsi que l'adresse de la destination, autorisant le point d'accès à envoyer le trafic.
Vous devez utiliser quelque chose d'autre que le pontage pour le faire. Routage avec NAT, par exemple. Vous pouvez également utiliser le mode quatre adresses si les deux extrémités de la liaison WiFi le prennent en charge.
J'ai eu un problème similaire avec LXC, j'ai travaillé sur le problème de pontage dans les appareils wifi. Tout d'abord, vous avez besoin d'un périphérique Ethernet de rechange sur l'ordinateur. L'astuce consiste à créer une route du périphérique Ethernet au wifi.
Dans le fichier du serveur, modifiez/etc/network/interfaces, choisissez un réseau inutilisé pour vos hôtes virtuels, c’est-à-dire 10.0.0.0. Attribuez une adresse IP à votre interface ethernet de rechange, ici c'est eth0, établissant un pont comme ceci:
auto br0
iface br0 inet static
address 10.0.0.1
netmask 255.255.255.0
bridge_ports eth0
bridge_fd 0
bridge_maxwait 0
Une fois que cela est fait, vous pouvez suivre la méthode MASQUERADE, comme l'a déjà indiqué Kostyantyn. Ceux-ci doivent être dans rc.local ou dans un script que vous devez exécuter au démarrage ou avant de démarrer les domaines virtuels:
# iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
# echo "1" > /proc/sys/net/ipv4/ip_forward
Dans le serveur virtuel, configurez les adresses IP statiques dans/etc/network/interfaces. J'utilise le réseau 10.0.0.0, je commencerai à utiliser à partir de .2, lorsque vous créez plus d'hôtes virtuels, vous en utiliserez probablement 3, etc. Si vous en avez beaucoup, vous pouvez envisager d'installer un serveur DHCP pour ceux-ci. Le .1 est la passerelle, telle que configurée auparavant.
auto eth0
iface eth0 inet static
address 10.0.0.2
netmask 255.255.255.0
broadcast 10.0.0.255
gateway 10.0.0.1
Configurez également un serveur DNS, le mien était le routeur de réseau, dans /etc/resolv.conf:
nameserver 192.168.1.1
J'espère que cela t'aides
Je pense que ce dont vous avez vraiment besoin n’est pas un pont mais soit:
ou
1) créer forwarding_enable_file.sh
avec le contenu suivant:
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
2) Exécutez le fichier:
Sudo ./forwarding_enable_file.sh
3) sur le reste de l'hôte, spécifiez votre boîte Ubuntu en tant que passerelle. REMARQUE: si certaines boîtes exécutent également Linux, vous pouvez le faire à l'aide de la commande suivante:
Sudo ip route add default via ubuntu-ip
où ubuntu-ip doit être remplacé par votre adresse IP ubuntu-box c'est-à-dire 192.168.1.10
4) essayez de faire un ping sur une adresse IP, c’est-à-dire 8.8.8.8 depuis d’autres hôtes:
ping 8.8.8.8
5) vérifiez vos paramètres DNS en envoyant une requête ping à un domaine, c.-à-d.
ping slivkoed.ru
6) Si l'étape 4) fonctionne et 5) pas, vous avez des problèmes avec vos paramètres DNS. dans ce cas, exécutez avec les privilèges root:
# echo "nameserver 8.8.8.8" > /etc/resolv.conf
Exécutez à nouveau l'étape 5).
Plus d'informations sur resolv.conf peuvent être trouvées ici .