Ciao a tutti!
Sto sperimentando con Wireguard, ma essendo praticamente alle prime armi sto avendo qualche difficoltà.
Mi ritrovo in questa situazione:

Ho creato una sorta di Site-to-Site tra il Sito A e il Sito B: funziona tutto correttamente, dal Sito B riesco a raggiungere i device sulla subnet LAN di Sito A e viceversa.

Ora vorrei collegarmi mediante il mio smartphone/notebook in 4G a Sito A.
Ho aggiunto un nuovo peer su Sito A e sullo smartphone a cui ho assegnato l'IP tunnel 172.20.10.10, raggiungo senza problemi la subnet 192.168.10.0/24 di Sito A.
Ma se io volessi poter vedere anche la subnet 192.168.20.0/24, cosa dovrei fare?
Dovrei aggiungere lo smartphone come peer anche a Sito B e instaurare due differenti tunnel?
Se invece volessi usare Sito A come "centro stella" per potermi collegare al resto dei Siti, sarebbe fattibile?

Lato Sito A ho un Mikrotik hAP AC2 con RouterOS 7.x, mentre lato Sito B ho dovuto configurare il tunnel su un access point con OpenWRT poiché non ho modo di configurare Wireguard sul router dell'ISP, ho chiaramente effettuato il port forwarding della porta necessaria per instaurare il tunnel.

Grazie in anticipo 🙂

    • [cancellato]

    nxdrd Ma se io volessi poter vedere anche la subnet 192.168.20.0/24, cosa dovrei fare?

    Devi aggiungerla tra gli allowed IPs per il client, se vuoi usare il Site A come hub.
    Se invece vuoi passare diretto al Site B sì, devi aggiungere una seconda connessione al router relativo (usando una subnet diversa per il link WG, non credo si possa riciclare la stessa interfaccia con un peer connesso a due endpoint, ma non ho mai provato).

      nxdrd

      Ciao, di Mikrotik non so nulla, ma se si comporta in maniera abbastanza standard dovrebbe essere semplice:

      siteA.conf

      [Interface]
      Address = 172.20.10.1/24
      PrivateKey = *******
      
      # Verso siteB
      [Peer]
      PublicKey = *******
      Endpoint = sitebendpoint:port # OK se IP statico; se DDNS servono altre accortezze
      AllowedIPs = 172.20.10.2/32, 192.168.20.0/24
      
      # Verso smartphone
      PublicKey = *******
      AllowedIPs = 172.20.10.10/32

      siteB.conf

      [Interface]
      Address = 172.20.10.2/24
      PrivateKey = *******
      
      # Verso siteA
      [Peer]
      PublicKey = *******
      Endpoint = siteaendpoint:port # OK se IP statico; se DDNS servono altre accortezze
      AllowedIPs = 172.20.10.0/24, 192.168.10.0/24 # aver messo tutta la subnet 172.20.10.x (/24) permette di raggiungere anche lo smartphone

      smartphone.conf

      [Interface]
      Address = 172.20.10.10/24
      PrivateKey = *******
      
      # Verso siteA
      [Peer]
      PublicKey = *******
      Endpoint = sitebendpoint:port
      AllowedIPs = 172.20.10.0/24, 192.168.10.0/24, 192.168.20.0/24

      Con wg-quick o network-manager o la GUI WG di Windows dovrebbe funzionare e il routing viene gestito "automagicamente".

      Personalmente pero preferisco gestirlo manualmente, quindi per uno scenario analogo userei due config wireguard separate su siteA su due porte diverse, una per la site2site e una per gli eventuali client foglia. Inoltre metterei l'opzione Table = off in [Interface] per disattivere la gestione automatica del routing e lo configurerei a livello di routing tables (es, con ip route su Linux).

      [cancellato] (usando una subnet diversa per il link WG, non credo si possa riciclare la stessa interfaccia con un peer connesso a due endpoint, ma non ho mai provato).

      In teoria dovrebbe funzionare assegnando indirizzi /32 della stessa subnet a ogni interfaccia del tunnel, almeno su linux wg-quick tiene traccia di quale singolo IP è raggiungibile attraverso quale peer

        [cancellato] Si non avevo specificato, ma avevo aggiunto ambo le subnet negli allowed IPs del client.
        Raggiungo correttamente i devices della subnet 192.168.10.0/24 (Sito A, a cui mi collego), ma non riesco in alcun modo a raggiungere i device della subnet 192.168.20.0/24 (Sito B).

        lore20 Grazie mille, l'ho confrontata con la mia e pare essere molto simile. Ho modificato gli AllowedIPs di SitoB e dello smartphone mettendo l'intera /24 anziché la /32 come avevo fatto io precedentemente.
        Purtroppo continua a non raggiungere la subnet 192.168.20.0/24 del Sito B, magari devo definirgli io la rotta? Ho cercato un po' online ma non sono riuscito a fare chiarezza (sarà che questa funzionalità su RouterOS è relativamente recente).
        Entrambi i siti hanno IP statico pubblico.

        Forse mi semplificherei la vita usando una VPS con Debian a cui far puntare sia i due siti, sia i vari client foglia?
        Avrei preferito mantenere il Mikrotik del Sito A come centro stella, ma se non è possibile fare altrimenti mi adeguerò.

          • [cancellato]

          nxdrd ma non riesco in alcun modo a raggiungere i device della subnet 192.168.20.0/24 (Sito B).

          Attento al routing, potrebbe essere che in realtà il pacchetto ci arrivi ma non riesca a tornare indietro.

          • nxdrd ha risposto a questo messaggio
          • nxdrd ha messo mi piace.

            [cancellato] Ah è una casistica che non avevo valutato, nella mia ignoranza.
            Servirebbe una rotta statica sul router di Sito B?

              nxdrd Mikrotik non mette in automatico le rotte in base agli Allowed IPs (policy routing).

              Io ho messo "0.0.0.0, ::/0" in Allowed IPs sia lato Mikrotik che lato OpenWRT, lato OpenWRT anche l'equivalente di Table = Off e messo rotte statiche da entrambe le parti.

              Funziona tutto senza problemi, ricordati di configurare le zone lato OpenWRT.

                • [cancellato]

                nxdrd Dipende da dove si perde... Visto che hai i router Mikrotik attiva la torch sulle varie interfacce e verifica che i pacchetti transitino... Attento anche alle regole di NAT, che non ti cambino la sorgente del pacchetto e quindi poi la risposta segue giri inaspettati.

                Edit: ecco, vale anche la risposta di edofullo, dai un'occhiata anche alle tabelle di routing. 😉

                • nxdrd ha risposto a questo messaggio
                • nxdrd ha messo mi piace.

                  edofullo Ho un po' di confusione sul da farsi dovuta al fatto che lato Sito B il dispositivo con OpenWRT sul quale gira Wireguard funge solamente da AP. La PPPoE, il DHCP e quant'altro vengono gestiti dal router del WISP (il router di Sito B è una CPE Mikrotik con ROS 6.x che non posso aggiornare): le rotte non dovrei configurarle su quest'ultimo?

                  [cancellato] Ho attivato la torch sul Mikrotik di Sito A selezionando l'interfaccia di Wireguard.
                  Dopodiché ho aperto il tunnel sullo smartphone (172.20.10.100) e ho provato a raggiungere un device con IP 192.168.10.30, senza problemi di sorta:

                  MAC-PROTOCOL  SRC-ADDRESS    DST-ADDRESS    TX        RX        TX-PACKETS  RX-PACKETS
                  ip            172.20.10.100  192.168.10.30  32.7kbps  25.6kbps          16          16
                                                              32.7kbps  25.6kbps          16          16

                  Ho poi provato a raggiungere l'access point di Sito B (con IP 192.168.20.3), senza successo:

                  MAC-PROTOCOL  SRC-ADDRESS    DST-ADDRESS    TX      RX      TX-PACKETS  RX-PACKETS
                  ip            172.20.10.100  192.168.20.3   0bps    960bps           0           2
                  ip            192.168.20.3   172.20.10.100  960bps  0bps             2           0
                                                              960bps  960bps           2           2

                  Abbiate pazienza ma sto cercando di imparare, non riesco a interpretare il secondo flow, pare come se tornasse indietro, possibile?

                  Queste sono le rotte configurate sul Mikrotik di Sito A (xxx.xxx.xxx.xxx sarebbe il mio IP, ho preferito censurarlo essendo pubblico e statico):

                  #      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
                   0 ADS  0.0.0.0/0                          pppoe-out1                1
                   1 ADC  10.50.0.152/32     xxx.xxx.xxx.xxx   pppoe-out1                0
                   2 A S  192.168.10.0/24                    192.168.20.3              1
                   3 ADC  192.168.20.0/24    192.168.20.1    ether1                    0

                  La rotta 2 è quella che mi permette di raggiungere la subnet 192.168.20.0/24 di Sito B.

                  Entrando in SSH sull'AP OpenWRT di Sito B sul quale ho configurato Wireguard e dando un ip route ottengo il seguente output:

                  default via 192.168.20.1 dev br-lan src 192.168.20.3
                  172.20.10.0/24 dev wg_s2s scope link src 172.20.10.2
                  172.20.10.1 dev wg_s2s scope link
                  192.168.10.0/24 dev wg_s2s scope link
                  192.168.20.0/24 dev br-lan scope link src 192.168.20.3
                  xxx.xxx.xxx.xxx via 192.168.20.1 dev br-lan

                  Perdonate la domanda stupida, ma quindi posso stabilire delle rotte anche sull'AP?

                    • [cancellato]

                    nxdrd La rotta 2 è quella che mi permette di raggiungere la subnet 192.168.20.0/24 di Sito B.

                    Son mica convinto, mi sa che nel tuo grafico al primo messaggio hai invertito le locazioni delle subnet... o comunque qualcosa non torna, chi è 192.168.20.3 che ti fa da gateway per la 192.168.10.0/24 (che nel tuo disegno è direttamente connessa)?

                    nxdrd posso stabilire delle rotte anche sull'AP?

                    Potresti se questo è un hop layer3 attraversato dal traffico, ma dallo schema (incompleto) che hai disegnato non lo è. Devi allora andare a definire delle rotte statiche per la 172.20.10.0/24 e la 192.168.10.0/24 via 192.168.20.x che è l'indirizzo del tuo AP OpenWRT. Ad ora i pacchetti passano per wireguard, arrivano al dispositivo che vuoi contattare, e poi (tentano di) tornare indietro via default gateway della rete di sito B.
                    Tutto questo, supponendo che l'AP OpenWRT non faccia NAT di quel che gli arriva da WG con il suo IP di LAN.

                    In sostanza, se vuoi sperimentare su cose che non hai mai conosciuto, ti sei beccato l'esempio con tutta una serie di complessità che ti distraggono dalla diagnosi vera e propria di ciò che accade.

                    Ricorda: PCAP or it never happened. 😉

                    nxdrd il dispositivo con OpenWRT sul quale gira Wireguard funge solamente da AP

                    Pessima idea, il router non sarebbe più il default gateway per la rete e dovrebbe avere almeno una route statica verso il dispositivo OpenWRT.
                    Oppure tutti i client dovrebbero avere una route verso l'AP per raggiungere le reti dietro Wireguard.

                    Oppure fai doppio NAT e buona notte.

                    Meglio di tutto, butta via il router del WISP e mettine uno tuo se non ti danno l'accesso 😇

                    Informativa privacy - Informativa cookie - Termini e condizioni - Regolamento - Disclaimer - 🏳️‍🌈
                    P.I. IT16712091004 - info@fibraclick.it

                    ♻️ Il server di questo sito è alimentato al 100% con energia rinnovabile