Describe the bug
I have a Netgate SG2100 router and have been trying to use pfsensible.core to configure it.
The router sits behind a cable modem, so the WAN interface gets its IPv4 address via DHCP and the IPv6 address via either DHCP6 or SLAAC (both work).
I was able set up the the WAN interface successfully with IPv6 config. type SLAAC. (Thanks! :slightly_smiling_face: :+1:)
Now I want to configure the LAN interface. Specifically, I want the LAN interface's IPv6 address to track that of the WAN interface, since that might change and there is no NATting and no private subnets in IPv6 (or at least not in the way we're used to from IPv4). So I cannot use IPv6 Configuration Type "static" and set a static IPv6 address and prefix length.
I can do this manually, but not with pfsensbile.core, because pfsense_interface's ipv6_type field only supports the values none, static and slaac, while pfSense additionally supports:
DHCP6
6rd Tunnel
6t4 Tunnel
Track Interface
Each of these options comes with additional sub-options, except for "6t4 Tunnel".
Expected behavior
pfsense_interface should probably support all the IPv6 Configuration Types that pfSense offers.
Playbook
Please paste a minimal playbook to reproduce the issue:
---
- name: Interfaces
hosts: "netgate-sg2100.lan"
tasks:
- name: LAN interface
pfsensible.core.pfsense_interface:
descr: LAN
enable: true
ipv4_address: 192.168.1.1
ipv4_type: static
ipv6_type: track_interface
ipv6_interface: WAN
ipv6_prefix_id: 0
interface: mvneta1
Output
Please paste the ansible output run with -vv:
ansible-playbook [core 2.16.4]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/gabe/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.11/site-packages/ansible
ansible collection location = /home/gabe/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible-playbook
python version = 3.11.8 (main, Feb 08 2024, 08:03:16) [GCC] (/usr/bin/python3.11)
jinja version = 3.1.3
libyaml = True
Using /etc/ansible/ansible.cfg as config file
Skipping callback 'default', as we already have a stdout callback.
Skipping callback 'minimal', as we already have a stdout callback.
Skipping callback 'oneline', as we already have a stdout callback.
PLAYBOOK: playbook.yml *************************************************************************************************************
4 plays in playbook.yml
[...]
TASK [LAN interface] ***************************************************************************************************************
task path: /home/gabe/git/iupiter/kenough/playbook.yml:25
fatal: [netgate-sg2100.lan]: FAILED! => {"changed": false, "msg": "value of ipv6_type must be one of: none, static, slaac, got: track_interface"}
Environment
What version of pfsensible.core?
Commit 5ada6e4 (latest commit on master, as of this writing)
What version of ansible?
2.16.4
What version of pfSense?
22.05-RELEASE (arm64)
Additional context
Personally, I only need "Track Interface" ~but I think DHCP6 is common enough~ EDIT: and DHCP6 (my setup has changed). And I think that pfsense_interface should probably support ~it~ both to be anywhere near feature complete.
I speak Python and I'd be willing to help out with implementation, but I don't know the codebase of pfsensible.core and I've never implemented anything for Ansible, so it might take me forever...
I'm definitely available for testing and review, though!
Describe the bug I have a Netgate SG2100 router and have been trying to use pfsensible.core to configure it.
The router sits behind a cable modem, so the WAN interface gets its IPv4 address via DHCP and the IPv6 address via either DHCP6 or SLAAC (both work).
I was able set up the the WAN interface successfully with IPv6 config. type SLAAC. (Thanks! :slightly_smiling_face: :+1:)
Now I want to configure the LAN interface. Specifically, I want the LAN interface's IPv6 address to track that of the WAN interface, since that might change and there is no NATting and no private subnets in IPv6 (or at least not in the way we're used to from IPv4). So I cannot use IPv6 Configuration Type "static" and set a static IPv6 address and prefix length.
I can do this manually, but not with pfsensbile.core, because
pfsense_interface
'sipv6_type
field only supports the valuesnone
,static
andslaac
, while pfSense additionally supports:Each of these options comes with additional sub-options, except for "6t4 Tunnel".
Expected behavior
pfsense_interface
should probably support all the IPv6 Configuration Types that pfSense offers.Playbook Please paste a minimal playbook to reproduce the issue:
Output Please paste the ansible output run with
-vv
:Environment
master
, as of this writing)Additional context Personally, I only need "Track Interface" ~but I think DHCP6 is common enough~ EDIT: and DHCP6 (my setup has changed). And I think that
pfsense_interface
should probably support ~it~ both to be anywhere near feature complete.I speak Python and I'd be willing to help out with implementation, but I don't know the codebase of pfsensible.core and I've never implemented anything for Ansible, so it might take me forever...
I'm definitely available for testing and review, though!