setup-ip 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/bin/sh
  2. ip=`/usr/bin/qubesdb-read /qubes-ip 2> /dev/null`
  3. if [ x$ip != x ]; then
  4. netmask=`/usr/bin/qubesdb-read /qubes-netmask`
  5. gateway=`/usr/bin/qubesdb-read /qubes-gateway`
  6. secondary_dns=`/usr/bin/qubesdb-read /qubes-secondary-dns`
  7. /sbin/ifconfig $INTERFACE $ip netmask 255.255.255.255
  8. /sbin/ifconfig $INTERFACE up
  9. /sbin/route add -host $gateway dev $INTERFACE
  10. if [ -f /var/run/qubes-service/set-default-route ]; then
  11. /sbin/route add default gw $gateway
  12. fi
  13. /sbin/ethtool -K $INTERFACE sg off
  14. /sbin/ethtool -K $INTERFACE tx off
  15. echo > /etc/resolv.conf
  16. if [ -f /var/run/qubes-service/set-dns-server ]; then
  17. echo "nameserver $gateway" > /etc/resolv.conf
  18. echo "nameserver $secondary_dns" >> /etc/resolv.conf
  19. fi
  20. if [ -f /var/run/qubes-service/network-manager ]; then
  21. nm_config=/etc/NetworkManager/system-connections/qubes-uplink-$INTERFACE
  22. cat > $nm_config <<__EOF__
  23. [802-3-ethernet]
  24. duplex=full
  25. [ethernet]
  26. mac-address=`ip l show dev $INTERFACE |grep link|awk '{print $2}'`
  27. [connection]
  28. id=VM uplink $INTERFACE
  29. uuid=de85f79b-8c3d-405f-a652-cb4c10b4f9ef
  30. type=802-3-ethernet
  31. [ipv6]
  32. method=ignore
  33. [ipv4]
  34. method=manual
  35. may-fail=false
  36. __EOF__
  37. if [ -f /var/run/qubes-service/set-dns-server ]; then
  38. echo "dns=$gateway;$secondary_dns" >> $nm_config
  39. fi
  40. if [ -f /var/run/qubes-service/set-default-route ]; then
  41. echo "address1=$ip/32,$gateway" >> $nm_config
  42. else
  43. echo "address1=$ip/32" >> $nm_config
  44. fi
  45. chmod 600 $nm_config
  46. fi
  47. network=$(qubesdb-read /qubes-netvm-network 2>/dev/null)
  48. if [ "x$network" != "x" ] && [ -f /var/run/qubes-service/set-dns-server ]; then
  49. gateway=$(qubesdb-read /qubes-netvm-gateway)
  50. netmask=$(qubesdb-read /qubes-netvm-netmask)
  51. secondary_dns=$(qubesdb-read /qubes-netvm-secondary-dns)
  52. echo "NS1=$gateway" > /var/run/qubes/qubes-ns
  53. echo "NS2=$secondary_dns" >> /var/run/qubes/qubes-ns
  54. /usr/lib/qubes/qubes-setup-dnat-to-ns
  55. fi
  56. if [ "x$network" != "x" ]; then
  57. [ -x /rw/config/qubes-ip-change-hook ] && /rw/config/qubes-ip-change-hook
  58. # XXX: Backward compatibility
  59. [ -x /rw/config/qubes_ip_change_hook ] && /rw/config/qubes_ip_change_hook
  60. fi
  61. fi