diff --git a/modules/routing_generator.py b/modules/routing_generator.py
index 1bc6892a3269dc571ed428ae6ecb8e2c4814ef57..5aa8d4eb63efc0d82b894d4b4526dfd50f57c5bb 100644
--- a/modules/routing_generator.py
+++ b/modules/routing_generator.py
@@ -92,9 +92,23 @@ def _add_default_route(default_gateway, target_interface_ip,
     target_routes_list.append(new_interface)
 
 
+def _configure_auto_on_ansible_interface(target_routes_list,
+                                         is_border_router=False):
+    """Call interfaces role on the main interface to set auto."""
+    new_interface = dict()
+    new_interface["interface_ip"] = "{{ ansible_default_ipv4.address  |" \
+                                    "default(ansible_all_ipv4_addresses[0]) }}"
+    if is_border_router:
+        new_interface["interface_default_gateway"] =\
+            "{{ ansible_default_ipv4.gateway }}"
+    target_routes_list.insert(0, new_interface)
+
+
 def _create_host_routing(target_host_name, input_definitions, flags):
     """Generate list of routes for the given host."""
     routes = []
+    if "border_router" in flags and flags["border_router"]:
+        _configure_auto_on_ansible_interface(routes)
     mapping = None
 
     for host_mapping in input_definitions["net_mappings"]:
@@ -127,6 +141,8 @@ def _create_host_routing(target_host_name, input_definitions, flags):
 def _create_router_routing(router_name, input_definitions, flags):
     """Generate list of routes for the given router."""
     routes = []
+    if "border_router" in flags and flags["border_router"]:
+        _configure_auto_on_ansible_interface(routes)
 
     if flags["border_router"]:
         interface_ip = _find_iface_ip_in_network(router_name,
@@ -140,6 +156,7 @@ def _create_router_routing(router_name, input_definitions, flags):
 def _create_border_router_routing(input_definitions):
     """Generate routes for the border router."""
     routes = []
+    _configure_auto_on_ansible_interface(routes, True)
 
     for network in input_definitions["networks"]:
         if network["name"] == BORDER_ROUTER_NETWORK_NAME:
diff --git a/templates/br b/templates/br
index e9201f91243ff6914466654cd5ac9531d9b9112f..5b26c4482607d9f3e6224060ace3d6d2e8e09dfb 100644
--- a/templates/br
+++ b/templates/br
@@ -10,8 +10,8 @@
     name: interface
   vars:
     interface_ip: "{{ interface.interface_ip }}"
-    interface_default_gateway: "{{ interface.interface_default_gateway }}"
-    interface_routes: "{{ interface.interface_routes }}"
+    interface_default_gateway: "{{ interface.interface_default_gateway | default('') }}"
+    interface_routes: "{{ interface.interface_routes | default([]) }}"
   loop: "{{ routes }}"
   loop_control:
     loop_var: interface
diff --git a/templates/interface/tasks/interface.yml b/templates/interface/tasks/interface.yml
index 9433f40620278c43323ba824462239d1a5a6b3d3..f51f0b29e9339a5c88885fa2715a3bbc914c9c1f 100644
--- a/templates/interface/tasks/interface.yml
+++ b/templates/interface/tasks/interface.yml
@@ -12,7 +12,7 @@
               netmask 24
               mtu {{ interface_mtu }}
               {% if interface_default_gateway -%}
-              up ip route del 0/0
+              gateway {{ interface_default_gateway }}
               up route add default gw {{ interface_default_gateway }}
               {% endif -%}
               {% if interface_routes -%}
diff --git a/templates/separate_devices b/templates/separate_devices
index 4181f0a3b19ef3e281d8b2e2cd28e54115991f93..940dace19275dc66624f373ecc06b0746fac9942 100644
--- a/templates/separate_devices
+++ b/templates/separate_devices
@@ -10,8 +10,8 @@
     name: interface
   vars:
     interface_ip: "{{ interface.interface_ip }}"
-    interface_default_gateway: "{{ interface.interface_default_gateway }}"
-    interface_routes: "{{ interface.interface_routes }}"
+    interface_default_gateway: "{{ interface.interface_default_gateway | default('') }}"
+    interface_routes: "{{ interface.interface_routes | default([])}}"
   loop: "{{ routes }}"
   loop_control:
     loop_var: interface