wlan0 인터페이스에 연결된 장치가 eth0 장치와 통신할 수 없는 이유는 무엇입니까?

wlan0 인터페이스에 연결된 장치가 eth0 장치와 통신할 수 없는 이유는 무엇입니까?

Raspbian Jessie를 실행하는 Raspberry Pi에서 다음 구성 설정을 사용하려고 합니다.

  • DHCP 서버(isc-dhcp-server)
  • WLAN 액세스 포인트(hostapd)
  • 애플리케이션 서버(포트 80의 HTTP 서버)

내 문제는 WLAN AP에 연결된 장치가 Pi에서 실행되는 웹 서버와 통신할 수 없다는 것입니다. 이더넷 포트에 연결된 장치는 문제 없이 웹 페이지를 표시할 수 있습니다.

내 노트북을 AP에 연결하고 Pi( 10.10.1.1)에 ping을 시도하면 다운되었다는 메시지가 나타납니다. 그래도 IP 주소(예 10.10.1.17: )를 얻습니다. 이더넷 케이블을 사용하여 Pi에 연결하면 IP 주소를 받고 Pi에 ping을 보낼 수 있으므로 10.10.1.1유선 연결을 사용하면 모든 것이 잘 됩니다.

이것은 내 구성 파일입니다.

/etc/dhcp/dhcp.conf

ddns-update-style none;
authoritative;
log-facility local7;

subnet 10.10.1.0 netmask 255.255.255.0 {
   range 10.10.1.10 10.10.1.100;
   option routers 10.10.1.1;
   default-lease-time 3600;
   max-lease-time 3600;
   option subnet-mask 255.255.255.0;
   option broadcast-address 10.10.1.255;
   option domain-name-servers 8.8.8.8;
   option domain-name "support.muffag.ch";
}

/etc/default/isc-dhcp-서버

INTERFACES="eth0 wlan0"

/etc/네트워크/인터페이스

source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

allow-hotplug eth0
auto eth0
iface eth0 inet static
       address 10.10.1.1
       netmask 255.255.255.0


allow-hotplug wlan0
auto wlan0
iface wlan0 inet static
        address 10.10.1.2
        netmask 255.255.255.0

/etc/hostapd/hostapd.conf

interface=wlan0
driver=rtl871xdrv
ssid=Test AP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Raspberry
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

/etc/default/hostapd

DAEMON_CONF="/etc/hostapd/hostapd.conf"

.

다른 사람들이 브릿지에 대해 이야기하는 것을 보지만 그런 것을 어떻게 사용하는지 잘 모르겠습니다. 액세스 포인트에 연결된 장치가 네트워크 서버에 액세스할 수 있는지 어떻게 확인합니까?

답변1

웹 서버가 10.10.1.1포트 80뿐만 아니라 모든 IP 주소를 수신하는 경우 연결된 인터페이스의 게이트웨이 주소를 사용할 수 있습니다.

하지만 이를 수행하기 전에 먼저 사용 중인 주소 범위를 수정해야 합니다. 현재 구성에 10.10.1.0-10.0.1.255다음 과 같은 내용이 나와 있습니다.eth0 그리고 wlan0. 이것은 좋지 않습니다. 두 인터페이스에 서로 다른 IP 주소 범위를 제공하거나 브리지된 네트워크를 사용해야 합니다. 장치가 동일한 네트워크에 있는 것처럼 쉽게 장치 wlan0와 통신하도록 하려면 브리지를 사용해야 합니다.eth0

다른 주소 범위를 사용하려면 파일이 /etc/network/interfaces다음과 같아야 합니다.

source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

allow-hotplug eth0
auto eth0
iface eth0 inet static
       address 10.10.1.1
       netmask 255.255.255.0


allow-hotplug wlan0
auto wlan0
iface wlan0 inet static
        address 10.10.2.1
        netmask 255.255.255.0

기본적으로 10.10.1.0-10.10.1.255에 할당되고 eth0, 10.10.2.0-10.10.2.255에 할당됩니다 wlan0. 다음 사항도 변경해야 합니다 /etc/dhcp/dhcp.conf.

ddns-update-style none;
authoritative;
log-facility local7;

subnet 10.10.1.0 netmask 255.255.255.0 {
   range 10.10.1.10 10.10.1.100;
   option routers 10.10.1.1;
   default-lease-time 3600;
   max-lease-time 3600;
   option subnet-mask 255.255.255.0;
   option broadcast-address 10.10.1.255;
   option domain-name-servers 8.8.8.8;
   option domain-name "support.muffag.ch";
}

subnet 10.10.2.0 netmask 255.255.255.0 {
   range 10.10.2.10 10.10.2.100;
   option routers 10.10.2.1;
   default-lease-time 3600;
   max-lease-time 3600;
   option subnet-mask 255.255.255.0;
   option broadcast-address 10.10.2.255;
   option domain-name-servers 8.8.8.8;
   option domain-name "support.muffag.ch";
}

10.10.2.0/24네트워크 섹션이 추가되었습니다.

이 시점에서 웹 서버에 연결할 수 있어야 합니다. 에 연결되어 있으면 eth0사용해야 하고 , 10.10.1.1이미 에 연결되어 있으면 wlan0사용해야 합니다 10.10.2.1.

답변2

인터페이스 간에 패킷을 전달할 수 있는 구성 단계를 놓친 것 같습니다.

sysctl -w net.ipv4.ip_forward=1

이것이 효과가 있음을 확인한 후에는 /etc/sysctl.conf자신의 파일을 편집하거나 추가하여 /etc/sysctl.d/변경 사항을 영구적으로 적용하십시오.

관련 정보