64 lines
No EOL
1.7 KiB
YAML
64 lines
No EOL
1.7 KiB
YAML
---
|
|
# Fix UDP GRO configuration for Tailscale on bridge interfaces
|
|
# See https://tailscale.com/s/ethtool-config-udp-gro
|
|
|
|
- name: Check if ethtool is installed
|
|
package:
|
|
name: ethtool
|
|
state: present
|
|
tags:
|
|
- network
|
|
- tailscale
|
|
|
|
- name: Get list of bridge interfaces
|
|
shell: "ip link show type bridge | grep -E '^[0-9]+:' | cut -d: -f2 | tr -d ' '"
|
|
register: bridge_interfaces
|
|
changed_when: false
|
|
failed_when: false
|
|
tags:
|
|
- network
|
|
- tailscale
|
|
|
|
- name: Disable UDP GRO on bridge interfaces
|
|
command: "ethtool -K {{ item }} rx-udp-gro-forwarding off rx-gro-list off"
|
|
loop: "{{ bridge_interfaces.stdout_lines }}"
|
|
when: bridge_interfaces.stdout_lines is defined and bridge_interfaces.stdout_lines | length > 0
|
|
failed_when: false
|
|
changed_when: true
|
|
tags:
|
|
- network
|
|
- tailscale
|
|
|
|
- name: Create systemd service to persist UDP GRO settings
|
|
copy:
|
|
dest: /etc/systemd/system/disable-udp-gro@.service
|
|
content: |
|
|
[Unit]
|
|
Description=Disable UDP GRO on %i for Tailscale
|
|
After=network-online.target
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=/usr/sbin/ethtool -K %i rx-udp-gro-forwarding off rx-gro-list off
|
|
RemainAfterExit=yes
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
tags:
|
|
- network
|
|
- tailscale
|
|
|
|
- name: Enable systemd service for each bridge interface
|
|
systemd:
|
|
name: "disable-udp-gro@{{ item }}.service"
|
|
enabled: yes
|
|
daemon_reload: yes
|
|
state: started
|
|
loop: "{{ bridge_interfaces.stdout_lines }}"
|
|
when: bridge_interfaces.stdout_lines is defined and bridge_interfaces.stdout_lines | length > 0
|
|
tags:
|
|
- network
|
|
- tailscale |