동일한 장치 내의 이더넷에서 WiFi 네트워크로 rtsp 비디오 스트림 리디렉션

동일한 장치 내의 이더넷에서 WiFi 네트워크로 rtsp 비디오 스트림 리디렉션

최소한의 yocto 기반 Linux가 있고 GUI가 없는 임베디드 보드가 있습니다. 이더넷 및 WiFi 인터페이스가 실행 중입니다.

이제 내 이더넷 포트( )에 Axis F44(192.168.30.35) 카메라가 연결되어 있습니다 192.168.30.34. 내 WiFi 인터페이스에는 uap0AP 모드 고정 IP:가 있으며 192.168.42.1장치를 WiFi에 스테이션으로 연결하면 장치가 IP:를 수신합니다 192.168.42.25. 다음 그림은 네트워크 세부정보를 보여줍니다.

네트워크 세부정보

192.168.42.25이제 모바일 장치 애플리케이션에서 카메라의 RTSP 스트림을 재생하려면 모바일 장치( )가 카메라( 192.168.30.35)에 핑을 시작하고 그 반대의 경우도 가능하도록 보드에서 어떤 네트워크 변경을 수행해야 할지 잘 모르겠습니다 .

누구든지 목표를 달성하는 방법을 제안할 수 있습니까? 아니면 어떤 네트워크 구성(브리징 또는 IP 전달)이 필요합니까?

장치의 인터페이스:

eth0      Link encap:Ethernet  HWaddr E2:5D:60:CB:29:99  
          inet addr:192.168.30.34  Bcast:192.168.30.255  Mask:255.255.255.0
          inet6 addr: fe80::e05d:60ff:fecb:2999%lo/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:24 errors:0 dropped:0 overruns:0 frame:0
          TX packets:209 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2030 (1.9 KiB)  TX bytes:17571 (17.1 KiB)


uap0      Link encap:Ethernet  HWaddr D4:CA:6E:5E:4E:01  
          inet addr:192.168.42.1  Bcast:192.168.42.255  Mask:255.255.255.0
          inet6 addr: fe80::d6ca:6eff:fe5e:4e01%lo/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2617 errors:0 dropped:0 overruns:0 frame:0
          TX packets:78 errors:18 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:180796 (176.5 KiB)  TX bytes:4590 (4.4 KiB)

답변1

다음은 Yocto 시스템을 구성하는 방법에 대한 몇 가지 제안입니다. 각 주제를 더 철저하게 조사해야 합니다. 모두 장단점이 있지만 마지막 NAT(NAT)를 사용하는 것이 좋습니다.

  • 브리지로 설정

    Linux 시스템은 AP이므로 이더넷 인터페이스와 Wi-Fi 인터페이스를 함께 연결하는 것이 완전히 가능합니다. 특정 방법에는 구성이 필요합니다.주인브리지를 올바르게 사용하십시오. 몇 가지 팁여기그리고거기.

    이번에는 192.168.42.1을 사용하도록 카메라를 구성(빌드 시 수동으로 또는 DHCP를 사용하여)해야 할 수도 있지만, Yocto 시스템은 여전히 ​​DHCP가 필요하므로 192.168.42.0/24에 (다른) IP 주소를 가져야 합니다. 섬기는 사람.

    그래서 여전히 보드의 이중적 성격을 드러냅니다. Yocto 시스템을 완전히 투명하게 만들고 여전히 DHCP(192.168.42.1 기준)를 제공하는 방법이 있을 수 있지만 이는 복잡할 수 있습니다.

  • 라우터로 설정

    IP 전달을 활성화해야 합니다.

    • 카메라 시스템 표시

      즉, DHCP를 사용하여 카메라에 대한 경로를 알려야 하지만 기본 경로로는 사용할 수 없습니다. 새로운 기본 경로로 인해 최종 사용자는 카메라를 사용하기 위해 인터넷이 끊어지지 않습니다. DHCP를 사용하여 특정 경로를 알리려면 다음 두 기능이 모두 필요합니다.

      구성은 시스템에서 사용되는 DHCP 서버에 따라 다릅니다. 그것은아마도 치아, 어느기본 지원 없음이러한 옵션의 경우 임의의 옵션을 처리할 수 있습니다.거기에 설명된(이를 위해서는 RFC의 옵션을 잘 이해해야 합니다.)

      그리고 192.168.30.34를 통해 카메라의 기본 경로를 구성하는 것을 잊지 마십시오(수동 또는 DHCP, 위 옵션은 필요하지 않음).

      하지만 그렇게 하는 것은 다음과 같은 이유로 재미가 없을 수도 있습니다.

      • 복잡한 DHCP 옵션과 두 번째 네트워크를 사용하면 이 네트워크가 사용자 자신의 네트워크 설정과 충돌할 수 있습니다.
      • 여전히 이사회 이중체제의 존재가 드러났다.
    • 아니면 NAT 뒤에 카메라가 숨겨져 있는 경우도 있습니다.

      다음과 같이 사용하여ALGnf_nat_rtsp프로젝트에서 제공하는 외부(예: 비주류) Linux 커널 모듈rtsp-리눅스(예를 들어 Debian에서는 다음과 같이 패키지되었습니다.nat-rtsp-dkms) 다음과 유사한 적절한 NAT 규칙과 함께:

      iptables -t nat -A PREROUTING -i uap0 -d 192.168.42.1 -p tcp --dport 554 -j DNAT --to-destination 192.168.30.35
      iptables -t nat -A PREROUTING -i uap0 -d 192.168.42.1 -p udp --dport 554 -j DNAT --to-destination 192.168.30.35
      

      그리고 이 블로그에 설명된 대로 적절한 보조 모듈 구성:iptables 및 연결 추적 도우미의 안전한 사용, 또는 보안 고려사항을 고려한 후 "안전하지 않은" 방법을 다시 활성화하십시오.

      sysctl -w net.netfilter.nf_conntrack_helper=1
      

      요약:

      • 복잡한 DHCP 구성을 피하고 보드에 두 번째 시스템이 노출되지 않도록 하세요(사실)

      • 이중 NAT가 완료되면 카메라에는 기본 경로도 필요하지 않습니다.

        iptables -t nat -A POSTROUTING -o eth0 -s 192.168.42.0/24 -j MASQUERADE
        
      • 커널 모듈이 필요하므로 이전에 임베디드 시스템에서 활성화되지 않은 경우 커널 모듈을 지원해야 합니다.

      • RTSP 호환성을 위해 모듈을 검증해야 합니다.

답변2

단일 보드 컴퓨터에서 IP 전달을 활성화하는 것이 좋습니다. 놓다:

net.ipv4.ip_forward=1

그리고 /etc/sysctl.conf실행하십시오 sudo sysctl -p. 이것이 yocto에서 어떻게 작동하는지 잘 모르겠습니다.

그런 다음 트래픽이 yocto 컴퓨터를 통해 컴퓨터에서 카메라로 라우팅되는지 확인해야 합니다. 이는 컴퓨터의 다른 네트워크 인터페이스가 어떻게 구성되어 있는지에 따라 다릅니다. 일반적으로 다음과 같아야 합니다.

ip route add 192.168.30.0/24 via 192.168.42.1 dev wlp2s0

저는 RTSP에 대해 잘 알지 못하지만 이 정도면 충분하다고 생각합니다.

관련 정보