La condivisione Internet da WiFi a Ethernet non funziona su Mountain Lion

4

Dopo l'upgrade da Lion a Mountain Lion, sembra che la condivisione su Internet non funzioni più.

Con le impostazioni:

  • Condividi rete da: WiFi
  • Ai computer che utilizzano: Ethernet

Quando la Condivisione Internet è abilitata, l'host non può accedere a Internet e nessuno dei due client può connettersi. Ai client viene assegnato un indirizzo IP tramite DHCP e il percorso corretto è configurato, ma il gioco è fatto.

Sembra che l'host non possa accedere a Internet perché il dispositivo bridge0 è impostato come percorso predefinito:

# Before enabling internet sharing
$ route -n get default
   route to: default
destination: default
       mask: default
    gateway: 192.168.1.1
  interface: en1
      flags: 
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0 
$ ping 4.2.2.1
PING 4.2.2.1 (4.2.2.1): 56 data bytes
64 bytes from 4.2.2.1: icmp_seq=0 ttl=54 time=33.418 ms
…

# And after enabling internet sharing
$ route -n get default
   route to: default
destination: default
       mask: default
  interface: bridge0
      flags: 
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500        -1 
$ ping 4.2.2.1
PING 4.2.2.1 (4.2.2.1): 56 data bytes
ping: sendto: Host is down
Request timeout for icmp_seq 0
…

Inoltre, la disattivazione della Condivisione Internet lascia la tabella di routing interrotta. Devo aggiungere manualmente il percorso predefinito prima che le cose riprendano a funzionare:

# After disabling internet sharing
$ route -n get default
route: writing to routing socket: not in table
$ ping 4.2.2.1
PING 4.2.2.1 (4.2.2.1): 56 data bytes
ping: sendto: Host is down
Request timeout for icmp_seq 0
…
$ route -n add default 192.168.1.1
$ ping 4.2.2.1
PING 4.2.2.1 (4.2.2.1): 56 data bytes
64 bytes from 4.2.2.1: icmp_seq=0 ttl=54 time=33.418 ms
…

Infine, controllando l'output di pfctl prima e dopo aver abilitato la condivisione su Internet non vengono mostrate modifiche (significative). Dovrebbe esserci?

E varie informazioni:

  • Questo è con OS X 10.8.2
  • Output di ifconfig quando la condivisione è abilitata (con gli adattatori irrilevanti p2p0 , fw0 , gif0 e stf0 rimossi):
lo0: flags=8049 mtu 16384
    options=3
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
    inet 127.0.0.1 netmask 0xff000000 
    inet6 ::1 prefixlen 128 
en1: flags=8863 mtu 1500
    ether 60:c5:47:93:47:66 
    inet6 fe80::62c5:47ff:fe93:4766%en1 prefixlen 64 scopeid 0x5 
    inet 192.168.1.118 netmask 0xffffff00 broadcast 192.168.1.255
    media: autoselect
    status: active
en0: flags=8963 mtu 1500
    options=2b
    ether 3c:07:54:1a:83:89 
    media: autoselect (none)
    status: inactive
bridge0: flags=8863 mtu 1500
    ether ac:de:48:11:fa:4e 
    inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
    Configuration:
        priority 0 hellotime 0 fwddelay 0 maxage 0
        ipfilter disabled flags 0x2
    member: en0 flags=3
             port 7 priority 0 path cost 0
    
posta David Wolever 01.12.2012 - 22:33
fonte

2 risposte

4

Questo è davvero abbastanza rotto in Mountain Lion. Una volta che hai risolto il percorso predefinito come descritto nella domanda, ti rimane il problema che Mountain Lion sta dando il suo indirizzo di interfaccia bridge ai client sia come indirizzo del router (che è corretto) sia come server DNS indirizzo (che non è).

Verifica che questo sia il problema inserendo un indirizzo IP del server HTTP nella barra degli indirizzi di un browser Web client quando ci si collega tramite il Mac dopo aver risolto i percorsi predefiniti, e dovrebbe essere caricato correttamente.

La mia soluzione a questo problema è quella di sistemare il percorso mentre descrivi - che potrebbe essere automatizzato, ovviamente - e di mantenere BIND (alias / usr / sbin / named) in esecuzione in background sul mio Mac in un configurazione di solo inoltro, inoltro di tutte le query ai server DNS pubblici di Google. Questo non risolve il problema di fondo di Mountain Lion, ma fa sì che le cose inizino a funzionare per i clienti.

Un paio di risorse utili:

link (come attivare BIND su OS X)

link (come configurare BIND per operazioni di solo inoltro - ovviamente non vuoi rendere BIND solo ascoltare su 127.0.0.1)

Sarebbe di gran lunga preferibile che Apple rendesse questa funzione del proprio sistema operativo come pubblicizzata, ma nel frattempo ho trovato che questa è una soluzione praticabile.

    
risposta data 13.12.2012 - 01:58
fonte
3

In realtà, è stato avviato un processo di bind dopo l'attivazione della condivisione in Internet:

22.12.12 09:21:01,687 named[23072]: starting BIND 9.8.3-P1 -c /etc/com.apple.named.proxy.conf -f

La configurazione in /etc/com.apple.named.proxy.conf inoltra richieste DNS a server DNS ragionevoli.

Il problema è che il daemon named non rimane attivo. Ci sono volte in cui è rimasto in vita, e tutto funziona bene, ma almeno ogni secondo giorno non lo fa.

    
risposta data 22.12.2012 - 10:48
fonte

Leggi altre domande sui tag