우분투에서 Wi-Fi를 이더넷으로 브리징


22

Windows를 실행할 때 랩톱 이더넷 연결을 통해 Wi-Fi 연결을 연결하여 다양한 이더넷 전용 장치가 Wi-Fi (Raspberry Pi, Xbox 등)를 피기 백 할 수있었습니다. 나는 우분투 내에서 똑같이하려고합니다. 즉 설정은 다음과 같습니다.

무선 라우터 ---> 노트북의 Wifi ---> 브리지-이더넷 ---> 인터넷을 이더넷 포트에 연결해야하는 장치

이제 brctl을 사용하여 우분투 에서이 작업을 시도했습니다.

아래 명령을 사용했습니다.

sudo brctl addif br0 eth0 wlan0

그리고 다음과 같은 오류가 발생합니다.

can't add wlan0 to bridge br0: Operation not supported

나는 리눅스에서 할 수없는 일을 아주 쉽게 할 수 있다고 믿지 않기 때문에 누군가 도울 수 있기를 바라고 있습니다.

더 많은 정보가 필요하면 알려주십시오. 감사


매우 유사한 문제 [취급 askubuntu.com/questions/155041/...
Legionair

답변:


10

이 작업을 수행 할 수 없습니다. WiFi 클라이언트 연결을 브리지 할 수 없습니다. 가능하다면 WDS가 필요하지 않으며 다리 만 연결하면됩니다.

문제는 매우 간단합니다. 무선 전송이 승인되지 않는 한 WiFi 사양을 통해 WiFi 네트워크를 통한 트래픽 브로드 캐스트로 인해 액세스 포인트가 금지됩니다. 이것은 WiFi 네트워크가 매우 느리고 보안이 좋지 않은 시절과 크게 관련이 있습니다.

브리지는 클라이언트와 액세스 포인트에만 연결되어 있습니다. 이렇게하면 액세스 포인트가 브리지로 향하는 트래픽을 전송할 수있는 권한 만 부여합니다. 브리지에 연결된 시스템은 액세스 포인트의 클라이언트가 아니기 때문에 액세스 포인트는 WiFi 링크를 통해 트래픽을 바인딩 할 이유가 없습니다. 따라서 그렇게하지 않습니다.

안타깝게도 WiFi는 이더넷처럼 작동하기 때문에 이더넷처럼 충분합니다. 그러나 당신을 물을만큼 충분히 다릅니다.

WDS 구성은 액세스 포인트가 클라이언트에 바인딩되지 않은 트래픽을 전송하기위한 특정 권한입니다. 양쪽 끝이 WDS를 지원하는 경우 브리지 끝점의 주소와 대상 주소가 포함되어 액세스 지점이 트래픽을 전송할 수 있도록 허용합니다.

이를 위해서는 브리징 이외의 다른 것을 사용해야합니다. 예를 들어 NAT를 사용한 라우팅 WiFi 링크의 양쪽 끝이 지원하는 경우 4 개의 주소 모드를 사용할 수도 있습니다.


3
Mac 주소를 ebtables
ccarton

나는 여기 한 사람이 당신이 우분투에서 할 수 있다고 말합니다. 그리고 나는 창문에서도 이와 같은 것을했습니다 .. 당신은 불가능하다고 말하지만 아마도 당신과 이것의 차이점이 무엇인지 설명 할 수 있습니다. Windows에서이 작업을 수행 할 때 youtube.com/watch?v=96Z1_6rX5qU WiFi가 인터넷에 연결되어 있습니다. 이더넷 커넥터에 케이블이 없습니다. 또는 이더넷 커넥터에 다른 컴포지트의 케이블이 없습니다. 그런 다음 WiFi 어댑터와 이더넷 어댑터를 선택하면 그것들을 연결하고 다른 컴퓨터가 케이블을 연결하고 인터넷 연결을 사용할 수 있습니다. 랩톱은 여전히 ​​WiFi 액세스라고 생각합니다 (액세스 포인트 아님)
barlop

1
@DavidSchwartz 인터넷에 연결할 수있는 무선 및 네트워크 스위치가없는 랩톱을 사용하는 사람이 있지만 다른 랩톱에는 무선 인터넷이 연결되어 있으며 여분의 무선 USB 스틱이 없습니다. 그런 다음 유일한 해결책은 브리징 가짜입니다. 두 랩탑 모두 작동하는 무선 네트워크 어댑터가 있다면 주 무선 액세스 포인트에 연결할 수 있고 추가 액세스 포인트와 WDS가 필요하지 않습니다. 한 랩탑이 무선을 사용할 수 없을 때 브리징 가짜를 사용했습니다.
barlop

1
잘못되었습니다. 우선 WDS는 다른 것과 달리 WiFi 연결입니다. 둘째, AP를 통해 연결되고 허브 등이 될 수있는 3-5 유선 잭을 투명하게 브리지하는 클라이언트 브리지 또는 미디어 브리지라고하는 귀염둥이 파이 장치가 있습니다. 확실히, 작동 방식 및 얼마나 많은 MAC을 연결할 수 있지만 결국에는 방법이 있습니다. iw 명령을 통해 장치에서 4addr을 모드로 설정하고 드라이버를 사용하면 Linux에서도 WDS 모드를 STA로 사용할 수 있습니다. 당신은 교량을 할 수 있습니다.
Svartalf

1
@DavidSchwartz : 라우팅? 진심이야? 힌트는 다음과 같습니다. 응용 프로그램은 네트워크에 500 개 이상의 노드를 가질 수 있습니다. 그런 식으로 라우팅을 정상적으로 작동시킬 수 있습니까? "진짜 WDS"? Cisco, Aruba, Ubiquiti 및 기타와 호환 될 수 있습니까? 그렇다면, 그렇습니다 ... 그렇지 않다면 ... 전제는 문제입니다. WDS-Station 모드로 시도하고있는 광기와 다소 잘 작동하지만 hostapd 또는 유사한 파생 Linux 장치 이외의 다른 장치에서도 작동합니까?
Svartalf

3

LXC와 비슷한 문제가 있었고 wifi 장치의 브리징 문제를 해결했습니다. 먼저 컴퓨터에 여분의 이더넷 장치가 필요합니다. 비결은 이더넷 장치에서 Wi-Fi로 연결되는 경로를 만드는 것입니다.

서버 파일에서 / etc / network / interfaces를 변경하고 가상 호스트에 사용되지 않는 네트워크 (예 : 10.0.0.0)를 선택하십시오. 여분의 이더넷 인터페이스에 하나의 IP를 할당하십시오. 여기서 eth0이며 다음과 같이 연결됩니다.

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

완료되면 Kostyantyn이 대답 한대로 MASQUERADE 방식으로 갈 수 있습니다. 이것들은 rc.local 또는 스크립트에서 시작하거나 가상 도메인을 시작하기 전에 실행해야합니다 :

# iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
# echo "1" > /proc/sys/net/ipv4/ip_forward

가상 서버에서 / etc / network / interfaces에 고정 IP를 구성하십시오. 나는 네트워크 10.0.0.0을 사용하고 있습니다. 나는 더 많은 가상 호스트를 만들 때 아마도 3을 사용할 것입니다. 많은 것이 있다면 그 서버를위한 dhcp 서버 설치를 고려할 수 있습니다. .1은 이전에 구성된 게이트웨이입니다.

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

/etc/resolv.conf에 네트워크 라우터 인 DNS 서버도 구성합니다.

nameserver 192.168.1.1

도움이 되었기를 바랍니다


이것은 계층 3 속임수이며 실제로 "브리징"이 아닙니다. iptables를 사용하는 순간, 라우팅 중입니다.
Svartalf

0

나는 당신이 정말로 필요한 것은 다리가 아니라 다음 중 하나라고 생각합니다.

또는

  • MASQUERADE (WLAN에 동적 IP가있는 경우, 즉 IP가 변경됨)

1) forwarding_enable_file.sh다음 내용으로 작성 하십시오.

#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

2) 파일을 실행하십시오.

sudo ./forwarding_enable_file.sh

3) 나머지 호스트에서 Ubuntu 상자를 게이트웨이로 지정하십시오. 참고 : 일부 상자가 Linux를 실행중인 경우이 명령으로 수행 할 수 있습니다.

sudo ip route add default via ubuntu-ip

여기서 ubuntu-ip 는 ubuntu-box IP 주소로 교체해야합니다 (예 : 192.168.1.10).

4) 다른 호스트에서 일부 IP, 즉 8.8.8.8을 핑 (ping) 해보십시오.

ping 8.8.8.8

5) 도메인을 핑하여 DNS 설정을 확인하십시오.

ping slivkoed.ru

6) 4) 단계가 작동하고 5) 그렇지 않으면 DNS 설정에 문제가있는 것입니다. 이 경우 루트 권한으로 실행하십시오.

# echo "nameserver 8.8.8.8" > /etc/resolv.conf

5) 단계를 다시 실행하십시오.

resolv.conf에 대한 자세한 내용은 여기를 참조하십시오 .


필요한 것에 따라 다릅니다. 투명 (파동 손)이 필요한 경우 아니요. 진심으로. Trendnet의 은퇴 한 TEW640-MB 미디어 브리지 (STA 모드 세션이 4 개의 이더넷 포트에 연결됨)와 같은 동작이 필요합니다. 이것은 WDS (4addr) 모드 작동 또는 ebtables MAC 마스커레이딩 (게시 한 내용과 혼동하지 않아야 함)에서만 발생할 수 있습니다.
Svartalf

-1

인터페이스를 연결하기 전에 인터페이스를 종료해야합니다.

ifconfig eth0 다운

ifconfig wlan0 다운


1
여전히 아래 두 인터페이스와 같은 오류를 얻을 수
자크 파월

@Zac Powell Network-Manager를 사용하고 있습니까? 방해가 될만한 과거 경험이있었습니다. 이 경우 서비스를 중지하고 나중에 다시
시작할 수 있습니다.

예, 좋습니다. 네트워크 관리자를 모두 중지하고 중지 한 다음 birdge를 수행 한 다음 모든 것을 다시 가져와야합니까?
Zac Powell

예,로 service network-manager stop시작한 다음 다시 시작하십시오service network-manager start
Legionair

여전히 작동하지 않습니다 : / 모든 것이 종료되었지만 여전히 같은 오류가 발생합니다
Zac Powell

-4
sudo iw dev wlan1 set 4addr on

이것이 OP의 문제를 어떻게 해결하는지 설명 할까?
Braiam

@Braiam 내 대답은 AP가 지원하는 경우 왜 이것이 작동하는지 설명합니다.
David Schwartz

안타깝게도 많은 AP에서 작동하지 않습니다. 대부분의 AP에서 올바르게 작동하면 문제를 해결할 수있는 방법은 인증 된 MAC 이상의 프레임을 릴레이하기 위해 각 802.11 프레임에 지정된 수에 추가 MAC을 추가하여 AP 기능을 제공한다는 것입니다.
Svartalf

다른 답변에서 : serverfault.com/a/554663/280693
jhutar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.