Como o Minecraft encontra servidores de rede local?

0

O cliente do Minecraft (quando você entra no modo "multiplayer") diz "Varredura da LAN para servidores locais ..."

O que isso está fazendo?

Aqui está o meu problema: se o computador A e o computador B estiverem conectados através do Switch1, o computador A poderá executar o minecraft client e encontrar um servidor de minecraft no computador B. Mas se o computador C estiver conectado Switch2, C não pode ver o servidor rodando em B. No entanto, C pode fazer ping em B, e C pode se conectar ao servidor em 10.1.10.143:64134 se este IP / porta for digitado diretamente.

Portanto, o mecanismo pelo qual os clientes localizam os servidores é de alguma forma bloqueado pelo Switch2. Isso é UPnP? Ou algo semelhante?

É uma enorme dor para acompanhar os endereços IP de mudança e os números de porta de deslocamento cada vez que você inicia um servidor de minecraft.

    
por Fixee 26.08.2016 / 02:54

1 resposta

3

Eu fiz um pouco de captura de pacotes no Wireshark e, pelo que sei, ele usa um pacote IGMPv2 enviado para um endereço multicast menos usado (224.0.2.60), pedindo para qualquer pessoa que esteja executando um servidor do Minecraft para reportar . Ele usa um "Relatório de associação" para fazer isso.

Para os nerds, aqui está a informação completa do dump de pacotes:

Frame 10: 46 bytes on wire (368 bits), 46 bytes captured (368 bits) on interface 0
    Interface id: 0 (\Device\NPF_{F0A28F43-6094-447F-A150-434AFC4BB19B})
    Encapsulation type: Ethernet (1)
    Arrival Time: Aug 25, 2016 22:25:55.171363000 US Mountain Standard Time
    [Time shift for this packet: 0.000000000 seconds]
    Epoch Time: 1472189155.171363000 seconds
    [Time delta from previous captured frame: 0.235431000 seconds]
    [Time delta from previous displayed frame: 0.235431000 seconds]
    [Time since reference or first frame: 1.234950000 seconds]
    Frame Number: 10
    Frame Length: 46 bytes (368 bits)
    Capture Length: 46 bytes (368 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: eth:ethertype:ip:igmp:igmp]
    [Coloring Rule Name: Routing]
    [Coloring Rule String: hsrp || eigrp || ospf || bgp || cdp || vrrp || carp || gvrp || igmp || ismp]
Ethernet II, Src: Giga-Byt_91:9c:dc (fc:aa:14:91:9c:dc), Dst: IPv4mcast_02:3c (01:00:5e:00:02:3c)
    Destination: IPv4mcast_02:3c (01:00:5e:00:02:3c)
        Address: IPv4mcast_02:3c (01:00:5e:00:02:3c)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)
    Source: Giga-Byt_91:9c:dc (fc:aa:14:91:9c:dc)
        Address: Giga-Byt_91:9c:dc (fc:aa:14:91:9c:dc)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
    Type: IPv4 (0x0800)
Internet Protocol Version 4, Src: 192.168.1.46, Dst: 224.0.2.60
    0100 .... = Version: 4
    .... 0110 = Header Length: 24 bytes
    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
    Total Length: 32
    Identification: 0x4347 (17223)
    Flags: 0x00
        0... .... = Reserved bit: Not set
        .0.. .... = Don't fragment: Not set
        ..0. .... = More fragments: Not set
    Fragment offset: 0
    Time to live: 1
    Protocol: IGMP (2)
    Header checksum: 0x0000 [validation disabled]
        [Good: False]
        [Bad: False]
    Source: 192.168.1.46
    Destination: 224.0.2.60
    [Source GeoIP: Unknown]
    [Destination GeoIP: Unknown]
    Options: (4 bytes), Router Alert
        Router Alert (4 bytes): Router shall examine packet (0)
            Type: 148
                1... .... = Copy on fragmentation: Yes
                .00. .... = Class: Control (0)
                ...1 0100 = Number: Router Alert (20)
            Length: 4
            Router Alert: Router shall examine packet (0)
Internet Group Management Protocol
    [IGMP Version: 2]
    Type: Membership Report (0x16)
    Max Resp Time: 0.0 sec (0x00)
    Header checksum: 0x07c3 [correct]
    Multicast Address: 224.0.2.60

Aqui está o despejo de pacote bruto:

0000   01 00 5e 00 02 3c fc aa 14 91 9c dc 08 00 46 00  ..^..<........F.
0010   00 20 43 47 00 00 01 02 00 00 c0 a8 01 2e e0 00  . CG............
0020   02 3c 94 04 00 00 16 00 07 c3 e0 00 02 3c        .<...........<

Para responder ao seu problema, você pode ter o multicast desativado no roteador ou o IGMP está desativado. Eu não estou completamente familiarizado com os sinalizadores, mas parece que pode haver algo no campo Opções / Alerta do roteador ... Provavelmente dizendo ao roteador para não encaminhar o multicast para fora da sub-rede, mas isso é apenas um palpite. / p>     

por 26.08.2016 / 07:38