Merge "Adds various conveniences for hosters."
[pharos-tools.git] / laas-fog / hostScripts / ipnat.sh
1 #!/bin/bash
2 #############################################################################
3 #Copyright 2017 Parker Berberian and others                                 #
4 #                                                                           #
5 #Licensed under the Apache License, Version 2.0 (the "License");            #
6 #you may not use this file except in compliance with the License.           #
7 #You may obtain a copy of the License at                                    #
8 #                                                                           #
9 #    http://www.apache.org/licenses/LICENSE-2.0                             #
10 #                                                                           #
11 #Unless required by applicable law or agreed to in writing, software        #
12 #distributed under the License is distributed on an "AS IS" BASIS,          #
13 #WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
14 #See the License for the specific language governing permissions and        #
15 #limitations under the License.                                             #
16 #############################################################################
17
18 MYIP=$1
19 DESTINATION=10.20.0.2
20 MYBRIDGE=10.20.0.1
21 DESTNETWORK=10.20.0.0/24
22 PORTS=(8000 8443)
23
24 for PORT in "${PORTS[@]}"; do
25
26     iptables -I INPUT 2 -d "$MYIP" -p tcp --dport "$PORT" -j ACCEPT
27     iptables -t nat -I INPUT 1 -d "$MYIP" -p tcp --dport "$PORT" -j ACCEPT
28     iptables -I FORWARD -p tcp --dport "$PORT" -j ACCEPT
29
30     iptables -t nat -I PREROUTING -p tcp -d "$MYIP" --dport "$PORT" -j DNAT --to-destination "$DESTINATION:$PORT"
31     iptables -t nat -I POSTROUTING -p tcp -s "$DESTINATION" ! -d "$DESTNETWORK" -j SNAT --to-source "$MYIP"
32
33     iptables -t nat -I POSTROUTING 2 -d "$DESTINATION" -j SNAT --to-source "$MYBRIDGE"
34 done