in effetti la tua precisazione
Premetto che ho serie lacune per quanto riguarda router e firewall
giustifica anche la seconda affermazione
Francamente faccio fatica a comprendere come sia possibile che riesca a pingare tutti gli indirizzi di lan2 dal router, tutti gli indirizzi delle nic del router dai client vpn compreso l'ip della nic di lan2 e non gli indirizzi attivi dell' intera rete lan2.
Il routing alla fine è abbastanza intuitivo ma sicuramente all 'inizio ci si puo' sbattere contro e rimanere perplessi.
Vediamo dunque alcuni punti:
Nella lan2 non c'e' gateway, quindi mi sa che un pacchetto proveniente da altra rete non sa dove andare credo se non c'e' un gateway. Il punto e' che preferirei restasse senza gateway
Esattamente e la spiegazione la trovi un poco piu sotto.
in effetti una macchina potrebbe avere anche sviariati gateway, nel qual caso nessuno di essi dovrebbe essere un DEFAULT GATEWAY ovvero il gateway da cui uscire come default verso la rotta 0.0.0.0 ( cioe tutto in mondo esterno). Il nic2 lo puoi tranquillamente lasciare senza gateway e dunque su quel nic scorazzaerai SOLO nella lan interna senza uscire su internet , ma di questo gia ti sei accorto da solo
Ora mi chiedo e vi chiedo se posso dire al router un qualche cosa affinche' ci pensi lui ad instradare correttamente i pacchetti
il router è basato su openwrt dunque puoi inserire a mano delle rotte e SOPRATTUTTO delle regole di masquerading e questo ti facilita le cose.
supponiamo ( sto inventando..) che il nic1 abbia ip sulla macchina 192.168.1.1 e che il nic2 abbia ip sulla macchina172.2.3.1 e che entrambe le subnet siano /24 ( 254 ip disponibili) per cui tutte le tue macchine A VALLE DEL NIC1 avranno un ip del tipo 192.168.1.xxx e quelle A VALLE DEL NIC2 avranno un ip del tipo 172.2.3.xxx.
Quando dal CLIENT VPN esterno ti colleghi alla macchina server VPN , il tuo ip sorgente sara qualcosa del tipo che so ( invento anche qui) 6.5.3.4:qualche strana porta (6.5.4.3:5555).
questo ip è un ip del MONDO ESTERNO, ovvero di quel famoso 0.0.0.0. Bene fin qui spero ci siamo !
Dall'esterno puoi pingare nell 'ordine:
ip della vpn ( risiede sulla macchina stessa)
ip del nic1 192.168.1.1 ( risiede sulla macchina stessa)
ip del nic 2 172.2.3.1 ( risiede sulla macchina stessa) MA NON LA SUA SUBNET MENTRE dalla macchina stessa puoi pingare OVVIAMENTE tutta la subnet 172.2.3.xxx perche è una lan... non hai bisogno di alcun gateway appunto.
Non dimentichiamo che per fare si che il pacchetto da un ip di lan 2 ( 172.2.3.xxx ) torni verso il mondo esterno (6.5.4.3:5555) , hai bisogno di un gateway verso 0.0.0.0 e tu... sul nick 2 NON LO HAI !
Per ottenere ch i pacchetti girino tra un nick e un altro innanzitutto devi avere ip_forward attivato:
cat /proc/sys/net/ipv4/ip_forward
ti dovrebbe restituire 1 . Se ti restituisce 0 zero momentaneamente lo puoi attivare a uno con
echo 1 > /proc/sys/net/ipv4/ip_forward
La sintassi che adesso scrivero' vale per linux, da un po di tempo non metto mani su openwrt , ma dovrebbe funzionare lo stesso.
da una shell puoi provare a dare
iptables -t nat -I POSTROUTING -o "NOME DEL NICK2" -j MASQUERADE
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
devi sostituire nome del nick2 SENZA virgolette col reale nome del nick 2 ottenuto dal comando
ifconfig
che so.. sara eth1 oppure enps qualcosa.. insomma mettilo li
con questo comando in pratica un pacchetto che arriva da 6.5.4.3:5555 destinato a 172.2.3.100 ip interno della lan 2 apparirà come se avesse sorgente 172.2.3.1 ed essendo sorgente un ip interno non avra' bisogno di un gateway verso 0.0.0.0 per uscire ( piccola bugia... il suo gateway sara 172.2.3..1 )
Ultimissima cosa:
con openwrt per "istruire" i client vpn che a valle del router esistessero delle subnet PRIVATE ci stava da dare uno statement "IROUTE ".
Non so wireguard come ragiona ma assicurati che i client vpn SAPPIANO che a valle del server vpn esistono due distinte subnets:
192.168.1.xxx
172.2.3.xxx
Spero di essere stato sufficientemente chiaro nella esposizione ma putroppo il routing ha bisogno di poco poco di dimestichezza altrimenti è una spina nel fianco