Unifi Docker JSON

mexx81

Benutzer
Mitglied seit
17. Dez 2013
Beiträge
597
Punkte für Reaktionen
0
Punkte
42
Hallo,

ich muss in meiner Unifi Umgebungmit zwei ISPs WAN Policies setzen, mit denen ich sicherstelle, dass zwei VLANs den zweiten ISP am Wan2 nehmen. Sie sehen so aus und funktionieren.

configure
set protocols static table 1 route 0.0.0.0/0 next-hop 192.168.188.1
set firewall modify LOAD_BALANCE rule 2950 action modify
set firewall modify LOAD_BALANCE rule 2950 modify table 1
set firewall modify LOAD_BALANCE rule 2950 source address 192.168.30.0/24
set firewall modify LOAD_BALANCE rule 2950 protocol all
set firewall modify LOAD_BALANCE rule 2951 action modify
set firewall modify LOAD_BALANCE rule 2951 modify table 1
set firewall modify LOAD_BALANCE rule 2951 source address 192.168.20.0/24
set firewall modify LOAD_BALANCE rule 2951 protocol all
commit
save


Die Regeln greifen. Nun werden sie aber beim Provisionieren via Unifi Controller WebGUI immer wieder überschrieben, also muss ich die JSON File anpassen. Das habe ich gemacht. Sie sieht wie folgt aus.

{
"firewall": {
"modify": {
"LOAD_BALANCE": {
"description": "LOAD_BALANCE",
"rule": {
"2950": {
"action": "modify",
"modify": {
"table": "1"
},
"protocol": "all",
"source": {
"address": "192.168.30.0/24"
}
},
"2951": {
"action": "modify",
"modify": {
"table": "1"
},
"protocol": "all",
"source": {
"address": "192.168.20.0/24"
}
}
}
}
},

},

"load-balance": {
"group": {
"wan_failover": {
"flush-on-active": "disable",
"interface": {
"eth2": {
"route-test": {
"initial-delay": "20",
"interval": "10"
}
},
"eth3": {
"failover-only": "''",
"route-test": {
"initial-delay": "20",
"interval": "10"
}
}
},
"lb-local": "enable",
"lb-local-metric-change": "enable",
"sticky": {
"dest-addr": "enable",
"dest-port": "enable",
"source-addr": "enable"
}
}
}
},

"protocols": {
"static": {
"table": {
"1": {
"route": {
"0.0.0.0/0": {
"next-hop": {
"192.168.188.1": "''"
}
}
}
}
}
}
},

"service": {
"nat": {
"rule": {
"5999": {
"exclude": "''",
"outbound-interface": "eth0",
"type": "masquerade"
}
}
}
}
}


Die Inhalte habe ich via CLI am Gateway gezogen: mca-ctrl -t dump-cfg
Und dann ausgedünnt, bis nur noch meine Configs übrig waren. Nun scheint es aber so, als ob die JSON nicht gezogen wird.

Ich verwenden den Dover Container 6.5.54 jacobalberty. Als Mountpoint verwende ich Docker/unifi zu /unifi/data.

Bildschirmfoto 2021-12-28 um 13.33.04.png

Es entstand auch eine Filestruktur. Aber die config.gateway.json wird in diesen Pfad wohl ignoriert. Ein paar Anleitungen verwiesen darauf die json in Site Pfad anzulegen. Also erzeugte ich unter /docker/unifi/sites/default die Datei, weil die Unifi Seite default heißt. Ohne Auswirkung. Die JSON wird nicht gezogen wenn ich provisioniere.

Was mache ich denn nur falsch?

Danke
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.208
Punkte für Reaktionen
63
Punkte
114
Bin zwar kein Profi was dieses json File und die Regeln angeht, aber:

- Hab ein Unifi USG3
- Lasse den Controller in Docker auf der Syno laufen
- und verwende auch eine entsprechende custom json.

Bei mir wird sie gezogen und ich hab sie wie du im unifi/data/sites/default Pfad.

Vielleicht ist die json nicht valide oder du hast zu viel entfernt.
Ich persönlich verwende die json jedenfalls nur für zusätzliche Dinge, also alles was in der GUI nicht möglich ist zu konfigurieren.

Hast du Teile drinnen die die GUI vielleicht selbst und schon anders setzt - deswegen vielleicht beim Provisionieren überschreibt?
 

mexx81

Benutzer
Mitglied seit
17. Dez 2013
Beiträge
597
Punkte für Reaktionen
0
Punkte
42
In der JSON waren wohl noch Fehler drin. Mit einen online json Prüfer habe ich die fehlerhaften Zeichen entnommen und dort abgelegt wo deine auch liegt. jetzt geht es.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.481
Punkte für Reaktionen
364
Punkte
103
@mexx81 magst Du die Lösung so beschreiben, dass wenn jemand mit demselben Problem diesen Thread findet auch weiß was getan werden muss um das Problem zu beheben?

Wenn Du Deinen original Post noch bearbeiten kannst, könntest Du das JSON in einen Code-Block "wickeln"? Es erhöht die Lesbarkeit deutlich.
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.208
Punkte für Reaktionen
63
Punkte
114
In der JSON waren wohl noch Fehler drin. Mit einen online json Prüfer habe ich die fehlerhaften Zeichen entnommen und dort abgelegt wo deine auch liegt. jetzt geht es.
Super, hatte ich also den richtigen Riecher!
Freut mich dass es nun klappt :)
 

simonsky

Benutzer
Mitglied seit
17. Nov 2015
Beiträge
9
Punkte für Reaktionen
2
Punkte
3
Hallo zusammen habe das gleiche Problem wie oben beschrieben,

könnte mir einer die richtige JSON Datei zukommen lassen.
habe leider keine Ahnung wo der Fehler sein sollte.
Kenne mich nicht mit JSON aus.
danke Gruß Simonsky
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.208
Punkte für Reaktionen
63
Punkte
114
Ist bei dir in der json wirklich alles so wie im ersten Post? 🤨
Denke es wäre gut wenn du deine json mal teilst...

EDIT:
Oben war in Zeile 29 nur ein Komma zuviel!
So passts


JSON:
{
    "firewall": {
        "modify": {
            "LOAD_BALANCE": {
                "description": "LOAD_BALANCE",
                "rule": {
                    "2950": {
                        "action": "modify",
                        "modify": {
                            "table": "1"
                        },
                        "protocol": "all",
                        "source": {
                            "address": "192.168.30.0/24"
                        }
                    },
                    "2951": {
                        "action": "modify",
                        "modify": {
                            "table": "1"
                        },
                        "protocol": "all",
                        "source": {
                            "address": "192.168.20.0/24"
                        }
                    }
                }
            }
        }
    },
    "load-balance": {
        "group": {
            "wan_failover": {
                "flush-on-active": "disable",
                "interface": {
                    "eth2": {
                        "route-test": {
                            "initial-delay": "20",
                            "interval": "10"
                        }
                    },
                    "eth3": {
                        "failover-only": "''",
                        "route-test": {
                            "initial-delay": "20",
                            "interval": "10"
                        }
                    }
                },
                "lb-local": "enable",
                "lb-local-metric-change": "enable",
                "sticky": {
                    "dest-addr": "enable",
                    "dest-port": "enable",
                    "source-addr": "enable"
                }
            }
        }
    },
    "protocols": {
        "static": {
            "table": {
                "1": {
                    "route": {
                        "0.0.0.0/0": {
                            "next-hop": {
                                "192.168.188.1": "''"
                            }
                        }
                    }
                }
            }
        }
    },
    "service": {
        "nat": {
            "rule": {
                "5999": {
                    "exclude": "''",
                    "outbound-interface": "eth0",
                    "type": "masquerade"
                }
            }
        }
    }
}
 

simonsky

Benutzer
Mitglied seit
17. Nov 2015
Beiträge
9
Punkte für Reaktionen
2
Punkte
3
So schaut die datei momentan aus und ich weis leider auch nicht ob die im Container greift.
Habe die Datei direkt in den unifi ordner geschoben






Screenshot 2024-03-27 091918.png

Code:
{
"firewall": {
"modify": {
"LOAD_BALANCE": {
"description": "LOAD_BALANCE",
"rule": {
"2950": {
"action": "modify",
"modify": {
"table": "1"
},
"protocol": "all",
"source": {
"address": "10.255.45.0/24"
}
},
"2951": {
"action": "modify",
"modify": {
"table": "1"
},
"protocol": "all",
"source": {
"address": "192.168.20.0/24"
}
}
}
}
},



"load-balance": {
"group": {
"wan_failover": {
"flush-on-active": "disable",
"interface": {
"eth2": {
"route-test": {
"initial-delay": "20",
"interval": "10"
}
},
"eth3": {
"failover-only": "''",
"route-test": {
"initial-delay": "20",
"interval": "10"
}
}
},
"lb-local": "enable",
"lb-local-metric-change": "enable",
"sticky": {
"dest-addr": "enable",
"dest-port": "enable",
"source-addr": "enable"
}
}
}
},

"protocols": {
"static": {
"table": {
"1": {
"route": {
"0.0.0.0/0": {
"next-hop": {
"192.168.178.1": "''"
}
}
}
}
}
}
},

"service": {
"nat": {
"rule": {
"5999": {
"exclude": "''",
"outbound-interface": "eth0",
"type": "masquerade"
}
}
}
}
}

}
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.208
Punkte für Reaktionen
63
Punkte
114
Valide ist deine json, kommt nur noch drauf an wo sie liegt...
 
  • Like
Reaktionen: simonsky

simonsky

Benutzer
Mitglied seit
17. Nov 2015
Beiträge
9
Punkte für Reaktionen
2
Punkte
3
so ist mein aufbau aktuell


kleines update: also solange ich nichts in dem Controller ändere kann ich das Gateway und auch den Container neu starten und alles bleibt.

Sobald ich aber Änderungen vornehme gehen die Einstellungen im Gateway verloren.

Also greift nicht die config Datei wohl nicht.
 

Anhänge

  • Screenshot 2024-03-27 092253.png
    Screenshot 2024-03-27 092253.png
    33,4 KB · Aufrufe: 3
  • Screenshot 2024-03-27 091918.png
    Screenshot 2024-03-27 091918.png
    30,9 KB · Aufrufe: 3
Zuletzt bearbeitet:

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.208
Punkte für Reaktionen
63
Punkte
114
Eigenlich sollte es hier in deinem docker/unifi Ordner auch noch einen Ordner sites geben, in welchem ein Ordner default liegt (zumindest wenn deine Seite im Controller default heißt)

Ich würde den einfach mal anlegen und in den Ordner default die json legen, dann Container neustarten!
 
Zuletzt bearbeitet:

simonsky

Benutzer
Mitglied seit
17. Nov 2015
Beiträge
9
Punkte für Reaktionen
2
Punkte
3
gemacht getan ;)

irgendwas blockiert aber jetzt mir die Einbindung des Gateways.
Also gehe ich davon aus das der Pfad jetzt richtig ist nur meine Einstellungen falsch.

Da muss ich wohl noch etwas rumprobieren trotzdem danke schon mal für die schnelle Hilfe
 
  • Like
Reaktionen: DKeppi

simonsky

Benutzer
Mitglied seit
17. Nov 2015
Beiträge
9
Punkte für Reaktionen
2
Punkte
3
Kleines update habe jetzt noch mal etwas rumgespielt jetzt tut es das was es soll
 
Zuletzt bearbeitet von einem Moderator:
  • Like
Reaktionen: DKeppi


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat