모바일 장치가 유선 서버와 통신할 수 있도록 802.11s 메시 네트워크를 설정하세요.

모바일 장치가 유선 서버와 통신할 수 있도록 802.11s 메시 네트워크를 설정하세요.

저는 Linux 기반 WiFi 메시 네트워크에 대한 장치 연결을 유지하고 주기적으로 메시 네트워크 어딘가에 있는 알려진 서버에 상태 정보(GPS, 배터리 수명 등)를 보내는 Android 애플리케이션을 개발 중입니다. 저는 일반적으로 *nix를 처음 접했기 때문에 이 프로젝트는 엄청난 학습 곡선이었으며 네트워킹에 관해서는 제 능력을 훨씬 넘어서는 것 같습니다. 업데이트 패킷 트래픽이 항상 서버로 돌아가는 길을 찾는 데 문제가 있으며 누군가가 올바른 방향을 알려줄 수 있기를 바랐습니다.

각 그리드 노드는 세 가지 네트워크 인터페이스를 갖춘 소형 Linux 컴퓨터입니다.

ap0
WiFi 액세스 포인트 인터페이스가 관리됩니다 hostapd. IP 주소는 192.168.0.1연결된 휴대폰에 자동으로 동일한 서브넷의 IP가 할당되도록 설정됩니다 dhcpd.

mesh0
WiFi 802.11s 메시 인터페이스는 메시 노드를 서로 연결합니다. 모든 사람은 네트워크의 구성원입니다 10.0.0.0.

eth0
표준 이더넷 포트, 할당된 IP 192.168.1.101. 단 하나의 그리드 노드만이 이 인터페이스를 사용하며 서버 시스템( )을 포함하는 네트워크에 연결됩니다 192.168.1.1.

명확성을 위해 다음은 네트워크 구조 모델입니다.

여기에 이미지 설명을 입력하세요.

지금까지 제가 달성할 수 있었던 것은 노드가 서로 ping하도록 하는 것뿐입니다. 무선 장치는 자체 네트워크(액세스 포인트 서브넷) 외부를 볼 수 없으며 이더넷에 연결된 노드를 제외한 다른 장치는 서버를 핑할 수 없습니다. 이 모든 것을 설정하는 스크립트는 다음과 같습니다(대부분 인터넷 검색을 통해 정리했습니다).

ifconfig wlan0 down
iw dev wlan0 del

iw phy phy0 interface add ap0 type managed
ip link set dev ap0 address 60:60:60:60:60:01 #this is different for each unit
ifconfig mesh0 up   
ifconfig mesh0 10.0.0.1
ifconfig ap0 192.168.0.1 up 

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o mesh0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i mesh0 -o eth0 -j ACCEPT

답변1

802.11s를 사용하면 유선 네트워크의 "메시"에 있는 모든 장치가 마치 물리적으로 동일한 네트워크 스위치에 연결되어 있는 것처럼 "레이어 2" 수준에서 서로를 볼 수 있습니다. 모두 동일한 IP 주소 범위 등을 사용하는 한 서로 "핑"할 수 있습니다.

현재 보유하고 있는 것은 서로 관련되지 않고 연결되지 않은 두 개의 네트워크입니다. 하나는 사용되고 10.x.x.x두 번째는 사용됩니다 192.168.x.x.

이러한 장치를 연결하려고 할 때 10.x"게이트웨이" 주소가 무엇인지 모든 장치에 알려야 합니다(예: 패킷을 보내는 곳이지만 실제 목적지를 알지 못함). 어떤 경우에는 장치가 원하는지 게이트웨이 이다 10.0.0.1. 그리고 이러한 패킷이 "나가야" 하는 네트워크 인터페이스를 알 수 있도록 "게이트웨이" 상자에 고정 경로가 필요합니다. 또한 다른 서브넷에도 다른 인터페이스의 "외부" 고정 경로가 필요하다는 것을 알 수 있습니다. MASQ와 RELATED를 모두 활성화했으므로 나가는 트래픽이 제대로 작동하면 "반환 트래픽"에 큰 문제가 없어야 합니다.

관련 정보