diff --git a/ansible/roles/gsm-tester-network/README.md b/ansible/roles/gsm-tester-network/README.md index e3249294..689a127f 100644 --- a/ansible/roles/gsm-tester-network/README.md +++ b/ansible/roles/gsm-tester-network/README.md @@ -4,4 +4,5 @@ The network configuration is not set by default. # variables -- `bts_interface` (eth1): on which network interface the bts is configured. +- `bts_interface` (enp2s0): on which network interface the bts is configured. +- `gw_interface` (enp1s0): on which network interface the traffic is routed towards default gateway. diff --git a/ansible/roles/gsm-tester-network/defaults/main.yml b/ansible/roles/gsm-tester-network/defaults/main.yml index 3e506dac..5bfdf63e 100644 --- a/ansible/roles/gsm-tester-network/defaults/main.yml +++ b/ansible/roles/gsm-tester-network/defaults/main.yml @@ -1,3 +1,4 @@ --- -bts_interface: eth1 +bts_interface: enp2s0 +gw_interface: enp1s0 diff --git a/ansible/roles/gsm-tester-network/files/ogt-sysctl.conf b/ansible/roles/gsm-tester-network/files/ogt-sysctl.conf new file mode 100644 index 00000000..119d7308 --- /dev/null +++ b/ansible/roles/gsm-tester-network/files/ogt-sysctl.conf @@ -0,0 +1 @@ +net.ipv4.ip_forward=1 diff --git a/ansible/roles/gsm-tester-network/tasks/main.yml b/ansible/roles/gsm-tester-network/tasks/main.yml index 210bf1ed..b77fc0e0 100644 --- a/ansible/roles/gsm-tester-network/tasks/main.yml +++ b/ansible/roles/gsm-tester-network/tasks/main.yml @@ -9,3 +9,15 @@ - name: start all network interface command: ifup -a when: gsm_tester_network_interface is changed + +- name: allow ip forwarding and masquerading traffic from internal network (iptables) + template: + src: etc/iptables-ogt + dest: /etc/network/if-up.d/iptables-ogt + mode: 0755 + +- name: allow ip forwarding from internal network (sysctl) + copy: + src: ogt-sysctl.conf + dest: /etc/sysctl.d + notify: restart udev diff --git a/ansible/roles/gsm-tester-network/templates/etc/iptables-ogt b/ansible/roles/gsm-tester-network/templates/etc/iptables-ogt new file mode 100644 index 00000000..5a781c55 --- /dev/null +++ b/ansible/roles/gsm-tester-network/templates/etc/iptables-ogt @@ -0,0 +1,17 @@ +#!/bin/sh + +IPT="/sbin/iptables" + +if [ "$IFACE" = "{{ gw_interface }}" ]; then + # Apply masquerading if not yet applied: + if [ "x$($IPT -t nat -S | grep "\-A POSTROUTING -o {{ gw_interface }} -j MASQUERADE" -c)" = "x0" ]; then + $IPT -t nat -A POSTROUTING -o {{ gw_interface }} -j MASQUERADE + fi + + # Allow IP forwarding if not yet enabled: + if [ "x$($IPT -t filter -S | grep "\-A FORWARD -j ACCEPT" -c)" = "x0" ]; then + $IPT -t filter -A FORWARD -j ACCEPT + fi + + echo "osmo-gsm-tester iptables rules loaded." +fi