<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ansible-distro-configure.git/roles/network/meta, branch mac-nvidia-drivers</title>
<subtitle>Ansible Roles to configure different (linux) distros
</subtitle>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/'/>
<entry>
<title>Configure ipv6/prefer ipv4 switches for network (and all hosts)</title>
<updated>2026-07-13T23:23:12+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-13T15:40:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=5d62b0fc261f8315c6f9effe58a35347587b4762'/>
<id>5d62b0fc261f8315c6f9effe58a35347587b4762</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix linting and testing gateway with dummy interface</title>
<updated>2026-07-09T23:21:26+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-09T22:47:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=8219d3b262fb013489759ee8bfe508c933402dd4'/>
<id>8219d3b262fb013489759ee8bfe508c933402dd4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Route IPv6 through WireGuard VPN via radvd and static gateway</title>
<updated>2026-07-08T14:55:30+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-08T12:28:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=f31b1bc18245e1e063c6d32b475c4b59b0a64b7f'/>
<id>f31b1bc18245e1e063c6d32b475c4b59b0a64b7f</id>
<content type='text'>
Add radvd to gateway role to advertise Pi as high-preference IPv6
default router using the stable ULA prefix (fd1e:.../64). With
FritzBox also sending RAs, devices end up with ECMP between Pi and
FritzBox. To solve this, add network_ipv6_gateway (Pi's link-local)
as a static route with metric 100 to all managed hosts — beats RA
metric 425, ensuring all IPv6 default traffic goes through Pi.

Fix IPv6 MASQUERADE in gateway-apply-rules:
- Direct mode: add MASQUERADE on end0 (LAN devices use ULA source
  addresses not known to FritzBox, so Pi must NAT them)
- FORWARD rules: restrict to RELATED,ESTABLISHED only — previously
  the broad ACCEPT rule passed un-NAT'd packets alongside masqueraded
  copies, causing duplicate SYNs, conntrack corruption, and RSTs
- MASQUERADE/clear rules: match by interface not by source subnet
  (devices may use any source address, not just the ULA prefix)
- VPN mode return traffic: explicitly restrict to wg+→end0 direction

Add network_ipv6_gateway var (optional) to network role NM templates
(ethernet, wifi, bridge) — injects a static IPv6 default route at
metric 100 when set. Add rpi5 static route to FritzBox link-local so
Pi keeps IPv6 after FritzBox RA is disabled.

Force SSH to IPv4 for *.local hosts (AddressFamily inet) — prevents
Ansible from hanging on mDNS returning multiple IPv6 addresses.

Update gateway and pihole READMEs with two-step IPv6 setup process.

Co-Authored-By: Claude.ai
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add radvd to gateway role to advertise Pi as high-preference IPv6
default router using the stable ULA prefix (fd1e:.../64). With
FritzBox also sending RAs, devices end up with ECMP between Pi and
FritzBox. To solve this, add network_ipv6_gateway (Pi's link-local)
as a static route with metric 100 to all managed hosts — beats RA
metric 425, ensuring all IPv6 default traffic goes through Pi.

Fix IPv6 MASQUERADE in gateway-apply-rules:
- Direct mode: add MASQUERADE on end0 (LAN devices use ULA source
  addresses not known to FritzBox, so Pi must NAT them)
- FORWARD rules: restrict to RELATED,ESTABLISHED only — previously
  the broad ACCEPT rule passed un-NAT'd packets alongside masqueraded
  copies, causing duplicate SYNs, conntrack corruption, and RSTs
- MASQUERADE/clear rules: match by interface not by source subnet
  (devices may use any source address, not just the ULA prefix)
- VPN mode return traffic: explicitly restrict to wg+→end0 direction

Add network_ipv6_gateway var (optional) to network role NM templates
(ethernet, wifi, bridge) — injects a static IPv6 default route at
metric 100 when set. Add rpi5 static route to FritzBox link-local so
Pi keeps IPv6 after FritzBox RA is disabled.

Force SSH to IPv4 for *.local hosts (AddressFamily inet) — prevents
Ansible from hanging on mDNS returning multiple IPv6 addresses.

Update gateway and pihole READMEs with two-step IPv6 setup process.

Co-Authored-By: Claude.ai
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor network role</title>
<updated>2026-07-08T01:32:42+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-08T01:32:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=222cafd9672354da0347e28afaf004fa8cef96b8'/>
<id>222cafd9672354da0347e28afaf004fa8cef96b8</id>
<content type='text'>
Remove static IPv6 support from network role — all hosts use SLAAC
(method=auto). Simplifies NM templates, argument_specs, and resolved.conf.
gateway sysctl accept_ra=2 is now unconditional when gateway_enabled.

Co-authored-by: Claude.ai
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove static IPv6 support from network role — all hosts use SLAAC
(method=auto). Simplifies NM templates, argument_specs, and resolved.conf.
gateway sysctl accept_ra=2 is now unconditional when gateway_enabled.

Co-authored-by: Claude.ai
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix network setup on pve</title>
<updated>2026-07-06T15:17:50+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-06T15:17:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=6bf65ed100c7f9554025a133c7c52033f2545219'/>
<id>6bf65ed100c7f9554025a133c7c52033f2545219</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix pve network setup</title>
<updated>2026-07-05T23:49:45+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-07-05T23:49:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=653e674c1fe67a05005c92fc379dd25db9cdebe7'/>
<id>653e674c1fe67a05005c92fc379dd25db9cdebe7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove duplicate fields from argument_specs files</title>
<updated>2026-03-04T01:21:39+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-03-04T01:16:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=c83c582421f370266def6a87ecdd1058019d8432'/>
<id>c83c582421f370266def6a87ecdd1058019d8432</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix using od instead of xxd</title>
<updated>2026-02-26T20:53:23+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2026-02-26T20:53:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=c680d7fe797163f7fb20f59815a20e3a1cf8c734'/>
<id>c680d7fe797163f7fb20f59815a20e3a1cf8c734</id>
<content type='text'>
The od is available as part of coreutils which is shipping by default on
linux but added for completeness

Co-Authored-By: Claude.ai
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The od is available as part of coreutils which is shipping by default on
linux but added for completeness

Co-Authored-By: Claude.ai
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove company from the roles meta</title>
<updated>2025-12-16T15:43:30+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2025-12-16T15:43:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=3eab21abe31c41c22230bc7c2ccb76d58582eab3'/>
<id>3eab21abe31c41c22230bc7c2ccb76d58582eab3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add recommended argument_specs</title>
<updated>2025-09-10T17:08:56+00:00</updated>
<author>
<name>Ahmed AbdelHalim</name>
<email>pm@a14m.me</email>
</author>
<published>2025-09-10T17:08:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.a14m.dev/ansible-distro-configure.git/commit/?id=0e01d4fbcefd68ab748b5ec0cd42473f63d8235b'/>
<id>0e01d4fbcefd68ab748b5ec0cd42473f63d8235b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
