J'utilise Hetzner pour un petit VPS, pour ce blog, un git et quelques
bricoles.
Hetzner propose de sepasser d'IPV4 et d'avoir qu'une IPV6.
Il est possible d'avoir une IPV4, mais c'est plus cher de quelques
centimes. C'etait donc l'occasion de tester le full IPV6.
La réalité, c'est que tous ne sont pas prêt. Certains projets sont
incompatible avec les IP v6 et plus exactement avec les ::: que l'on
va retrouver. Bien souvent il existe des moyens de contournement
(enregistrement DNS par exemple), mais parfois, on va avoir besoins de
s'adresser à un service IPV4 only, et là, c'est la merde.
J'ai donc opté, par l'ajout d'une IPV4 à mon VPS.
Comment ça se passe sous Nixos ? Souvenez vous, j'avais utilisé
nix-infect pour passer mon VPS sous Nixos.
De quoi avons nous besoins ?
En terme de code, ça donne ça :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
{ lib, ... }: {
# This file was populated at runtime with the networking
# details gathered from the active system.
networking = {
nameservers = [ "2a01:4ff:ff00::add:2"
"2a01:4ff:ff00::add:1"
"185.12.64.1"
];
defaultGateway = {
address = "172.31.1.1";
interface = "eth0";
};
defaultGateway6 = {
address = "fe80::1";
interface = "eth0";
};
dhcpcd.enable = false;
usePredictableInterfaceNames = lib.mkForce false;
interfaces = {
eth0 = {
ipv4.addresses = [
{ address="65.108.157.54"; prefixLength=32; }
];
ipv6.addresses = [
{ address="2a01:4f9:c012:a658::1"; prefixLength=64; }
{ address="fe80::9400:4ff:fe26:7f9f"; prefixLength=64; }
];
ipv4.routes = [ { address = "172.31.1.1"; prefixLength = 32; } ];
ipv6.routes = [ { address = "fe80::1"; prefixLength = 128; } ];
};
};
};
services.udev.extraRules = ''
ATTR{address}=="96:00:04:26:7f:9f", NAME="eth0"
'';
}
|
Le diff du fichier :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
diff --git a/networking.nix b/networking.nix
index 6064061..bf1e12b 100644
--- a/networking.nix
+++ b/networking.nix
@@ -4,11 +4,12 @@
networking = {
nameservers = [ "2a01:4ff:ff00::add:2"
"2a01:4ff:ff00::add:1"
+ "185.12.64.1"
];
defaultGateway = {
- address = "fe80::1";
+ address = "172.31.1.1";
interface = "eth0";
- };
+ };
defaultGateway6 = {
address = "fe80::1";
interface = "eth0";
@@ -18,16 +19,15 @@
interfaces = {
eth0 = {
ipv4.addresses = [
- { address="100.66.241.88"; prefixLength=32; }
+ { address="65.108.157.54"; prefixLength=32; }
];
ipv6.addresses = [
{ address="2a01:4f9:c012:a658::1"; prefixLength=64; }
-{ address="fe80::9400:4ff:fe26:7f9f"; prefixLength=64; }
+ { address="fe80::9400:4ff:fe26:7f9f"; prefixLength=64; }
];
- ipv4.routes = [ { address = ""; prefixLength = 32; } ];
+ ipv4.routes = [ { address = "172.31.1.1"; prefixLength = 32; } ];
ipv6.routes = [ { address = "fe80::1"; prefixLength = 128; } ];
};
-
};
};
services.udev.extraRules = ''
|