Redirection du port DHCP Android -- networking domaine et iptables domaine et dhcp domain android en relation problème

Android DHCP Port Redirection



2
vote

problème

français

Je travaille sur une implémentation de MirrorLink pour Google Pixel (Android 8.1.0). Je dois implémenter un serveur DHCP; Cependant, les applications Android ne peuvent pas écouter les ports réservés.

L'application Android est à l'écoute des émissions de découverte DHCP sur le port UDP 6700. Mon intention est de transférer le trafic DHCP à 6700 afin que mon application puisse gérer la demande DHCP.

Je ne trouve pas une combinaison de règles d'IPTABLES entraînant un trafic DHCP atteignant mon application. Si j'envoie une découverte DHCP directement au port 6700, je reçois le trafic.

# iptables -S -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -N bw_FORWARD -N bw_INPUT -N bw_OUTPUT -N bw_costly_rmnet_data0 -N bw_costly_shared -N bw_costly_tun0 -N bw_data_saver -N bw_happy_box -N bw_penalty_box -N fw_FORWARD -N fw_INPUT -N fw_OUTPUT -N fw_dozable -N fw_powersave -N fw_standby -N natctrl_FORWARD -N natctrl_tether_counters -N nm_mdmprxy_doze_mode_skip -N nm_mdmprxy_iface_pkt_fwder -N oem_fwd -N oem_out -N st_OUTPUT -N st_clear_caught -N st_clear_detect -N st_penalty_log -N st_penalty_reject # iptables -t nat -S -P PREROUTING ACCEPT -P INPUT ACCEPT -P OUTPUT ACCEPT -P POSTROUTING ACCEPT -N natctrl_nat_POSTROUTING -N oem_nat_pre

J'ai essayé diverses combinaisons des règles suivantes:

iptables -A INPUT -i ncm0 -p udp --dport 67 -J REDIRECT --to-port 6700 iptables -A FORWARD -i ncm0 -p udp --dport 6700 -j ACCEPT iptables -A INPUT -i ncm0 -p udp --dport 6700 -j ACCEPT iptables -A PREROUTING -t nat -i ncm0 -p udp --dport 67 -j REDIRECT --to-port 6700

Je soupçonne soit un malentendu erroné de la configuration d'IPTABLE (probablement), des considérations spéciales pour le trafic DHCP, ou des conflits d'Android / Device spécifiques.

J'apprécierais toute aide pour que cela fonctionne. C'est la dernière barrière à la réalisation de la mise en œuvre de MirrorLink.

J'ai accès root à l'appareil si cela n'était pas déjà clair.

Pour clarté absolue - L'appareil MirrorLink envoie une demande de découverte DHCP (Port UDP 67) à l'appareil Android sur une connexion Ethernet USB (CDC-NCM). Le pixel Google et probablement la plupart des appareils AOSP exposent cette interface sous la forme NCM0 . Les applications Android ne peuvent pas écouter les ports réservés bien connus IANA, d'où le besoin d'une redirection de port interne à la gamme 1024 - 49151. Le périphérique Android est répandu pour exploiter un serveur DHCP et renvoyer une offre DHCP au périphérique MirrorLink.

langue Anglaise

I am working on a MirrorLink implementation for the Google Pixel (Android 8.1.0). I must implement a DHCP server; however, Android applications cannot listen on reserved ports.

The Android application is listening for DHCP DISCOVERY broadcasts on UDP port 6700. My intent is to port forward the DHCP traffic to 6700 so my application can handle the DHCP request.

I cannot find a combination of iptables rules that result in DHCP traffic reaching my application. If I send a DHCP DISCOVERY directly to port 6700 I receive the traffic.

# iptables -S  -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -N bw_FORWARD -N bw_INPUT -N bw_OUTPUT -N bw_costly_rmnet_data0 -N bw_costly_shared -N bw_costly_tun0 -N bw_data_saver -N bw_happy_box -N bw_penalty_box -N fw_FORWARD -N fw_INPUT -N fw_OUTPUT -N fw_dozable -N fw_powersave -N fw_standby -N natctrl_FORWARD -N natctrl_tether_counters -N nm_mdmprxy_doze_mode_skip -N nm_mdmprxy_iface_pkt_fwder -N oem_fwd -N oem_out -N st_OUTPUT -N st_clear_caught -N st_clear_detect -N st_penalty_log -N st_penalty_reject  # iptables -t nat -S  -P PREROUTING ACCEPT -P INPUT ACCEPT -P OUTPUT ACCEPT -P POSTROUTING ACCEPT -N natctrl_nat_POSTROUTING -N oem_nat_pre 

I have tried various combinations of the following rules:

iptables -A INPUT -i ncm0 -p udp --dport 67 -J REDIRECT --to-port 6700 iptables -A FORWARD -i ncm0 -p udp --dport 6700 -j ACCEPT iptables -A INPUT -i ncm0 -p udp --dport 6700 -j ACCEPT iptables -A PREROUTING -t nat -i ncm0 -p udp --dport 67 -j REDIRECT --to-port 6700 

I suspect either a dire misunderstanding of iptables configuration (likely), special considerations for DHCP traffic, or Android/device specific conflicts.

I would appreciate any help getting this to work. It's the last barrier to achieving the MirrorLink implementation.

I have root access to the device if that wasn't clear already.

For absolute clarity - the MirrorLink device sends a DHCP DISCOVERY request (UDP port 67) to the Android device over a USB ethernet connection (CDC-NCM). The Google Pixel and probably most AOSP devices expose this interface as ncm0. Android applications can't listen on IANA well-known reserved ports, hence the need for internal port redirection to the 1024 - 49151 range. The Android device is reponsible for operating a DHCP server and returning a DHCP offer to the MirrorLink device.

        

Liste de réponses

0
 
vote
vote
Meilleure réponse
 

J'ai résolu ce problème à l'aide de la redirection DNAT au lieu de la redirection de port, en raison de limitations de redirection impliquant le trafic de diffusion.

iptables -I INPUT -p udp --dport 67 -j ACCEPT iptables -I INPUT -p udp --dport 6700 -j ACCEPT iptables -I PREROUTING -t nat -i ncm0 -p udp -src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6700
 

I solved this problem using DNAT redirection instead of port redirection, due to some limitations of REDIRECT involving broadcast traffic.

iptables -I INPUT -p udp --dport 67 -j ACCEPT iptables -I INPUT -p udp --dport 6700 -j ACCEPT iptables -I PREROUTING -t nat -i ncm0 -p udp -src 0.0.0.0 --dport 67 -j DNAT --to 0.0.0.0:6700 
 
 

Questions connexes

2  Problème accédant à Internet dans 4.0 ICS  ( Problem accessing internet in 4 0 ics ) 
Pour une raison étrange, ma tablette Android 4.0 ICS n'est plus en mesure d'accéder à Internet. Tout d'abord, via WiFi, il pourrait se connecter à deux réseau...

0  ne pas se connecter à des réseaux publics wifi avec cyanogenmod  ( Fail to connect to public wifi networks with cyanogenmod ) 
J'ai changé mon système d'exploitation pré-installé sur CyanogenMod 9 sur mon Xperia Neo V et depuis lors, je ne peux pas me connecter à un réseau public grat...

3  Samsung Galaxy S - Problème d'obtention de l'adresse IP. "NAK sur demande"  ( Samsung galaxy s problem obtaining ip address nak in request ) 
Je ne peux pas obtenir une adresse IP à mon smartphone Android de mon routeur WiFi. Observations: La connexion smartphone à d'autres routeurs ou à travers...

10  Comment changer de configuration DHCP?  ( How to change dhcp config ) 
J'essaie d'accéder à un noyau IMS du client IMS de mon appareil Android, mais je dois modifier le client DHCP pour ajouter la propriété intellectuelle du noya...

15  Identifier un appareil Android par son nom d'hôte  ( Identifying an android device by its hostname ) 
Chaque périphérique Android de notre réseau a le nom d'hôte 9988777661 . J'ai un appareil qui a demandé 10 adresses IP (différents Macs, mais toujours le mêm...

3  Changer DNS mais reste sur DHCP  ( Change dns but stay on dhcp ) 
J'ai une boîte de télévision Android "Minix Neo x8-H Plus", exécutant Android 4.4 (Kitkat). Je veux changer les serveurs DNS sur la connexion WiFi, mais pou...

3  Existe-t-il un moyen de définir la configuration IP sur une base de réseau?  ( Is there a way to set the ip configuration on a per network basis ) 
Je me connecte à plusieurs réseaux WiFi. Sur certains des réseaux, je dois utiliser une adresse IP statique. La plupart des configurations DHCP sont sans opti...

0  La connexion partagée USB Android utilise-t-elle un serveur DHCP?  ( Does android usb shared connection runs a dhcp server ) 
Je suis au courant de la connexion partagée USB d'Android et je l'utilise pour donner une connexion à mon ordinateur. Aussi j'ai un ancien routeur domestiqu...

61  Comment changer le nom de mon appareil Android?  ( How do i change the name of my android device ) 
Mon appareil Android est le Nexus One. Mais cela devrait s'appliquer à tous les appareils Android actuels. Comment puis-je changer le nom de mon appareil A...

7  Droidwall et attaches sans fil  ( Droidwall and wireless tethering ) 
J'ai un problème très simple: quand j'exécute Wifi Tether sur mon ordinateur Galaxy S3, l'ordinateur n'obtiendra pas l'adresse IP, sauf si je désactive Dro...




© 2022 www.demandez.top All Rights Reserved. Questions et réponses Accueil Tous les droits sont réservés