WIP: feat(vault01/isp): moving to next network architecture #320
No reviewers
Labels
No labels
awaiting
awaiting-author
awaiting
awaiting-reviewer
bot
deployed
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: DGNum/infrastructure#320
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "vault01-isp"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
5520c3295a
to42b362ae76
42b362ae76
to9d7e0bd7bb
9d7e0bd7bb
to11a7950634
b261726891
to4862c4a19e
4862c4a19e
toe8629b18a0
e8629b18a0
to6f41f94175
6f41f94175
to402f5d090a
402f5d090a
to8082fb82f2
8082fb82f2
to4bf3af63d4
4bf3af63d4
to1ae130ddf9
1ae130ddf9
to8593e51544
8593e51544
to9c46d8cf3d
9c46d8cf3d
tode086c6217
de086c6217
to730977efeb
730977efeb
toa839d8aeea
a839d8aeea
to4873c93977
4873c93977
tocdca7bf5d7
WIP: feat(vault01/isp): moving to next network architectureto feat(vault01/isp): moving to next network architectureJe pense que c'est plutôt prêt now.
Le changement c'est le serveur DHCP (oui, seulement ça) : plutôt que d'avoir un serveur par user, on a un unique DHCP (kea) pour tout les user, qui distribue dans toute la range attribué pour les user sans contrainte de préfixe.
Ainsi chaque user à l'impression d'avoir toute la range du /16, même si ce n'est pas vraiment le cas, et ça permet d'avoir beaucoup plus de user, en partant du principe que l’immense majorité des users auront max 3 appareil connecté en simultané, et rare seront ceux qui en ont plus.
Pour éviter les problème de spoofing, le serveur DHCP créer la route vers l'IP attribué dans l'interface du vlan dynamiquement, et la del à la fin du lease.
Pour les traces légal : c'est un changement assez conséquents pour l'identification de la source du traffic, puisqu'on a plus l'information d'appartenance par le seul préfixe, une autre table est donc ajouté dans la db ulogd pour log les leases attribué par kea, et le script à été update en conséquence.
Pour la compatibilité des anciennes trace légal, j'ai fait un script qui peuplera cette table avec les actuel préfixe, en les faisant apparaître comme des leases qui ont duré jusqu'à cette migration. Pour assurer qu'on est pas de problème il faudra assurer que le kea ne se lance pas tant qu'on a pas migré, et que seul kea soit actif après migration.
Il faudrait faire plus de testing aussi, actuellement les tests que j'ai fait ne comportait pas 850 interfaces, et je suis preneur de relecture pour le script hook de kea
cdca7bf5d7
to56a923f5e7
56a923f5e7
to70a11fdaae
70a11fdaae
to8f52aef9b5
8f52aef9b5
to91bdaff17d
91bdaff17d
to7ffe44d9e9
7ffe44d9e9
tob8042886f4
b8042886f4
to84cec55d60
(testé avec des container dans https://git.dgnum.eu/lbailly/vxlan-organiser )
84cec55d60
tof1acf8b794
f1acf8b794
toc0e226472a
c0e226472a
toe9a1fc7693
e9a1fc7693
to80ad430938
80ad430938
to6fb5ac5c12
feat(vault01/isp): moving to next network architectureto WIP: feat(vault01/isp): moving to next network architecture6fb5ac5c12
toc6b09d7f18
@ -0,0 +208,4 @@
nixpkgs.overlays = [
(_: super: {
kea = super.kea.overrideAttrs (o: {
patches = o.patches ++ [ ./0001-fix-multiple-interface-with-same-IP.patch ];
Maybe un jour nixpkgs n'aura pas de patchs sur kea
@ -0,0 +262,4 @@
after = [ "sys-subsystem-net-devices-enp67s0f0np0.device" ];
bindsTo = [ "sys-subsystem-net-devices-enp67s0f0np0.device" ];
script = builtins.concatStringsSep "\n" (
builtins.map (name: "${lib.getExe pkgs.ethtool} -K enp67s0f0np0 ${name} off") [
@ -0,0 +311,4 @@
content = ''
chain postrouting {
type nat hook postrouting priority 100;
ip saddr 10.0.0.0/16 ip daddr != 10.0.0.0/16 snat ip to 129.199.195.130-129.199.195.157
Ce serait possible de faire une option
startRange
etendRange
(ou un autre nom) pour stocker129.199.195.130
et129.199.195.157
, comme ça quand on changera ça sera plus simple ?Ou alors on (tu) changera bcp de choses quand on aura des vraies adresses
@ -0,0 +485,4 @@
name = "netuserctl";
runtimeInputs = [ pkgs.systemd ];
text = concatStringsSep "\n" (
map ({ interfaceName, ... }: ''networkctl "$1" ${interfaceName}'') userVlans
c6b09d7f18
toec4b97e983
ec4b97e983
to23715a0de3
23715a0de3
to2f86b65d4f
2f86b65d4f
to4b968b472e
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.