setup_ga_network.sh 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/bin/sh
  2. BRIDGE=mg_bridge0
  3. BRIDGE_BROADCAST=192.168.32.255
  4. BRIDGE_IP=192.168.32.1
  5. BRIDGE_IP_MASK=192.168.32.0/24
  6. BRIDGE_MASK=255.255.255.0
  7. PHY=eth0
  8. TAP=tap0
  9. # see our network configuration
  10. echo "Network configuration:"
  11. timeout 1s ifconfig
  12. timeout 1s sudo route -n # see our gateway
  13. timeout 1s bridge link
  14. timeout 1s bridge fdb
  15. echo
  16. # Package installation
  17. echo "Package installation"
  18. sudo apt-get -y install isc-dhcp-server net-tools
  19. # sudo apt-get -y install build-essential sshpassecho "Network configuration script: Bridge"
  20. echo
  21. echo "Network configuration script: TAP"
  22. sudo ip link add $BRIDGE type bridge # Create brige
  23. sudo ifconfig $BRIDGE $BRIDGE_IP netmask $BRIDGE_MASK up
  24. echo
  25. echo "Create $TAP attached to $BRIDGE"
  26. sudo ip tuntap add dev $TAP mode tap # Create tuntap
  27. sudo ip link set $TAP master $BRIDGE # Link tap-bridge
  28. sudo ip link set $TAP up
  29. echo
  30. echo "Network configuration script: NAT"
  31. sudo iptables -A FORWARD -d $BRIDGE_IP_MASK -o $BRIDGE -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  32. sudo iptables -A FORWARD -s $BRIDGE_IP_MASK -i $BRIDGE -j ACCEPT
  33. sudo iptables -A FORWARD -i $BRIDGE -o $BRIDGE -j ACCEPT
  34. sudo iptables -A FORWARD -o $BRIDGE -j REJECT --reject-with icmp-port-unreachable
  35. sudo iptables -A FORWARD -i $BRIDGE -j REJECT --reject-with icmp-port-unreachable
  36. sudo iptables -t nat -A POSTROUTING -s $BRIDGE_IP_MASK -d 224.0.0.0/24 -j RETURN
  37. sudo iptables -t nat -A POSTROUTING -s $BRIDGE_IP_MASK -d 255.255.255.255/32 -j RETURN
  38. sudo iptables -t nat -A POSTROUTING -s $BRIDGE_IP_MASK ! -d $BRIDGE_IP_MASK -p tcp -j MASQUERADE --to-ports 1024-65535
  39. sudo iptables -t nat -A POSTROUTING -s $BRIDGE_IP_MASK ! -d $BRIDGE_IP_MASK -p udp -j MASQUERADE --to-ports 1024-65535
  40. sudo iptables -t nat -A POSTROUTING -s $BRIDGE_IP_MASK ! -d $BRIDGE_IP_MASK -j MASQUERADE
  41. echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
  42. echo
  43. # Setup DHCP server
  44. echo "Network configuration script: DHCP server"
  45. echo "Serving from $BRIDGE_IP"
  46. echo "dhcpd.conf:"
  47. cat test/dhcpd.conf
  48. echo
  49. sudo cp test/dhcpd.conf /etc/dhcp/dhcpd.conf
  50. sudo chmod a+w /var/lib/dhcp/*
  51. sudo dhcpd mg_bridge0 &
  52. echo
  53. # Do we have connectivity ?
  54. echo "Check connectivity:"
  55. wget https://cesanta.com/robots.txt
  56. echo robots.txt:
  57. cat robots.txt
  58. rm robots.txt
  59. echo
  60. # Confirm OK
  61. echo "Done:"
  62. timeout 1s ifconfig
  63. timeout 1s sudo route -n
  64. timeout 1s bridge fdb
  65. timeout 1s bridge link