diff --git a/tasks/FreeBSD.yml b/tasks/FreeBSD.yml
index 6f1feaf59e8f33d3f05bebb6ac88a6b85c3f9fa5..a960219b63bc84271f11988f7169954be407c7f4 100644
--- a/tasks/FreeBSD.yml
+++ b/tasks/FreeBSD.yml
@@ -62,6 +62,31 @@
   loop: '{{ firewall_rule | dict2items }}'
   delegate_to: localhost
 
+- name: install netaddr on controller
+  pip:
+    name: netaddr
+  delegate_to: localhost
+
+- set_fact:
+    interfaces: "{{ ansible_interfaces | select('match', '^(vtnet)[2-9]+') | list }}"
+
+- set_fact:
+    interface_configs: |-
+      [
+      {%- for interface in interfaces -%}
+        { if: {{ interface }}, settings: [{key: if, value: {{ interface }}},{key: ipaddr,value: {{ ansible_facts[interface]['ipv4'][0]['address'] }}},{key: subnet,value: {{ ('127.0.0.1/' ~ ansible_facts[interface]['ipv4'][0]['netmask']) | ipaddr('prefix') }}},{key: mtu,value: 1442},{key: enable,value: 1}]},
+      {%- endfor -%}
+      ]
+
+- name: set static addressing on user defined networks
+  xml:
+    path: '{{ kypo_interface_opnsense_local_config_file }}'
+    xpath: '/opnsense/interfaces/{{ item.0.if }}/{{ item.1.key }}'
+    value: '{{ item.1.value }}'
+    pretty_print: yes
+  loop: "{{ interface_configs | from_yaml | subelements('settings') }}"
+  delegate_to: localhost
+
 - name: copy the modified configuration to machine
   copy:
     src: '{{ kypo_interface_opnsense_local_config_file }}'