From 066c71e7863dbcf14322c36cbea649778601f7de Mon Sep 17 00:00:00 2001 From: Ahmed Abdelhalim Date: Fri, 10 Jul 2026 19:58:15 +0200 Subject: Configure preference of ip family (ipv4 > ipv6) --- host_vars/desktop.local.yml | Bin 892 -> 918 bytes host_vars/desktop.local.yml.example | 1 + host_vars/laptop.local.yml | Bin 937 -> 963 bytes host_vars/laptop.local.yml.example | 1 + host_vars/macbook.local.yml | Bin 1258 -> 1284 bytes host_vars/macbook.local.yml.example | 1 + host_vars/pve.local.yml | Bin 466 -> 492 bytes host_vars/pve.local.yml.example | 1 + host_vars/rpi5.local.yml | Bin 3602 -> 3629 bytes host_vars/rpi5.local.yml.example | 1 + roles/network/defaults/main.yml | 1 + roles/network/tasks/main.yml | 9 +++++++++ roles/network/templates/gai.conf.j2 | 10 ++++++++++ 13 files changed, 25 insertions(+) create mode 100644 roles/network/templates/gai.conf.j2 diff --git a/host_vars/desktop.local.yml b/host_vars/desktop.local.yml index 53939d8a..d0f802ae 100644 Binary files a/host_vars/desktop.local.yml and b/host_vars/desktop.local.yml differ diff --git a/host_vars/desktop.local.yml.example b/host_vars/desktop.local.yml.example index d24dcff2..c8dd0be1 100644 --- a/host_vars/desktop.local.yml.example +++ b/host_vars/desktop.local.yml.example @@ -3,6 +3,7 @@ network_ipv4_address: "10.0.0.201" network_ipv4_gateway: "10.0.0.254" network_ipv4_dns: "10.0.0.254" +network_prefer_ipv4: true # Discover network_ipv6_gateway with: ip -6 route show default | grep ra (run on any device before disabling router RA) # network_ipv6_gateway: "fe80::0000:1111:2222:3333" diff --git a/host_vars/laptop.local.yml b/host_vars/laptop.local.yml index 21e21e28..9c4c8798 100644 Binary files a/host_vars/laptop.local.yml and b/host_vars/laptop.local.yml differ diff --git a/host_vars/laptop.local.yml.example b/host_vars/laptop.local.yml.example index ba9536da..726fc4b1 100644 --- a/host_vars/laptop.local.yml.example +++ b/host_vars/laptop.local.yml.example @@ -3,6 +3,7 @@ network_ipv4_address: "10.0.0.202" network_ipv4_gateway: "10.0.0.1" network_ipv4_dns: "10.0.0.1" +network_prefer_ipv4: true # Discover network_ipv6_gateway with: ip -6 route show default | grep ra (run on any device before disabling router RA) # network_ipv6_gateway: "fe80::0000:1111:2222:3333" diff --git a/host_vars/macbook.local.yml b/host_vars/macbook.local.yml index b9a4e517..5ad4be8b 100644 Binary files a/host_vars/macbook.local.yml and b/host_vars/macbook.local.yml differ diff --git a/host_vars/macbook.local.yml.example b/host_vars/macbook.local.yml.example index c20ce1da..a4f87605 100644 --- a/host_vars/macbook.local.yml.example +++ b/host_vars/macbook.local.yml.example @@ -3,6 +3,7 @@ network_ipv4_address: "10.0.0.203" network_ipv4_gateway: "10.0.0.254" network_ipv4_dns: "10.0.0.254" +network_prefer_ipv4: true # Discover network_ipv6_gateway with: ip -6 route show default | grep ra (run on any device before disabling router RA) # network_ipv6_gateway: "fe80::0000:1111:2222:3333" diff --git a/host_vars/pve.local.yml b/host_vars/pve.local.yml index 8f2a6a54..90730264 100644 Binary files a/host_vars/pve.local.yml and b/host_vars/pve.local.yml differ diff --git a/host_vars/pve.local.yml.example b/host_vars/pve.local.yml.example index 60b6060c..07a002a3 100644 --- a/host_vars/pve.local.yml.example +++ b/host_vars/pve.local.yml.example @@ -5,6 +5,7 @@ network_wifi_pass: "" network_ipv4_address: "10.0.0.253" network_ipv4_gateway: "10.0.0.254" network_ipv4_dns: "10.0.0.254" +network_prefer_ipv4: true network_bridge_interface: "eth0" # Discover network_ipv6_gateway with: ip -6 route show default | grep ra (run on any device before disabling router RA) # network_ipv6_gateway: "fe80::0000:1111:2222:3333" diff --git a/host_vars/rpi5.local.yml b/host_vars/rpi5.local.yml index 27388c7d..83025ca6 100644 Binary files a/host_vars/rpi5.local.yml and b/host_vars/rpi5.local.yml differ diff --git a/host_vars/rpi5.local.yml.example b/host_vars/rpi5.local.yml.example index 281bc3a3..d528e4a5 100644 --- a/host_vars/rpi5.local.yml.example +++ b/host_vars/rpi5.local.yml.example @@ -2,6 +2,7 @@ network_interface: "eth0" network_ipv4_address: "10.0.0.254" network_ipv4_gateway: "10.0.0.1" +network_prefer_ipv4: false # Discover network_ipv6_gateway with: ip -6 route show default | grep ra (run on any device before disabling router RA) # network_ipv6_gateway: "fe80::0000:1111:2222:3333" diff --git a/roles/network/defaults/main.yml b/roles/network/defaults/main.yml index 5e1076a7..9497f83f 100644 --- a/roles/network/defaults/main.yml +++ b/roles/network/defaults/main.yml @@ -1,3 +1,4 @@ --- network_wifi_ssid: "" network_wifi_pass: "" +network_prefer_ipv4: false diff --git a/roles/network/tasks/main.yml b/roles/network/tasks/main.yml index 3bd85040..f8873379 100644 --- a/roles/network/tasks/main.yml +++ b/roles/network/tasks/main.yml @@ -59,6 +59,15 @@ changed_when: false when: network_wifi_ssid != "" +- name: "Configure address family preference" + become: true + ansible.builtin.template: + src: "gai.conf.j2" + dest: "/etc/gai.conf" + owner: "root" + group: "root" + mode: "0644" + - name: "Configure NetworkManager" become: true notify: diff --git a/roles/network/templates/gai.conf.j2 b/roles/network/templates/gai.conf.j2 new file mode 100644 index 00000000..21c17332 --- /dev/null +++ b/roles/network/templates/gai.conf.j2 @@ -0,0 +1,10 @@ +# Managed by Ansible — controls getaddrinfo address family preference +{% if network_prefer_ipv4 %} +precedence ::ffff:0:0/96 100 +{% else %} +precedence ::1/128 50 +precedence ::/0 40 +precedence 2002::/16 30 +precedence ::/96 20 +precedence ::ffff:0:0/96 10 +{% endif %} -- cgit v1.2.3