Page tree
Skip to end of metadata
Go to start of metadata

  1. 목적
    1. VPN Hub는 다른 VPN Server에 multi link로 연결을 해 놓는다
    2. 접속하는 사용자에 따라서 각 link로 데이터를 분기 시켜 준다
    1. 동일한 VPN서버로 접속을 하는데 A사용자는 미국 IP로 통신을 하고, 
      B사용자는 네덜란드 IP로 통신을 한다
  2. 설정방법
    1. 데이터를 라우팅할 때 table을 각 서버farm의 숫자만큼 만들어서
      Source IP 기분으로 GW를 바꾸어준다
  3. 설정내용
    1. l2tp, ipsec 설정도 복잡하기 때문에 vpn 서버는 docker 이용
      1. https://hub.docker.com/r/fcojean/l2tp-ipsec-vpn-server/
      2. docker run    --name l2tp-ipsec-vpn-server  --env-file ./vpn.env     -p 500:500/udp     -p 4500:4500/udp -p 8000:8000/udp    -v /lib/modules:/lib/modules:ro -d --privileged     fcojean/l2tp-ipsec-vpn-server
    2. apt-get install pptp-linux : pptp client 설치

    3. rt_tables 변경

      root@5e88a7db16b0:/opt/src# cat /etc/iproute2/rt_tables
      #
      # reserved values
      #
      255     local
      254     main
      253     default
      0       unspec
      #
      # local
      #
      #1      inr.ruhep
      1 us_table
      2 kr_table
      3 nl_table
    4. Dynamic하게 GW설정하도록 스크립트 추가
      1. /etc/ppp/ipup.d 에 추가
      2. 0001route

        ip route add default via $4 table $6
      3. 0002route

        USIP="192.168.42.16/28"
        NLIP="192.168.42.32/28"
        KRIP="192.168.42.48/28"
        if [ !  -e "/tmp/tableadded" ]
        then
                ip rule add from $USIP table us_table
                ip rule add from $NLIP table nl_table
                ip rule add from $KRIP table kr_table
                iptables -t nat -A POSTROUTING -d 192.168.0.0/24 -o eth0 -j MASQUERADE
                touch "/tmp/tableadded"
        fi
        case "$6" in
          us_table)
                ip route add $USIP via $4 table us_table
                ip route add 192.168.0.0/24 via 192.168.0.1 table us_table
                iptables -t nat -A POSTROUTING -o $1 -s $USIP -j MASQUERADE
                ;;
          nl_table)
                ip route add $NLIP via $4 table nl_table
                ip route add 192.168.0.0/24 via 192.168.0.1 table nl_table
                iptables -t nat -A POSTROUTING -o $1 -s $NLIP -j MASQUERADE
                ;;
          kr_table)
                ip route add $KRIP via $4 table kr_table
                ip route add 192.168.0.0/24 via 192.168.0.1 table kr_table
                iptables -t nat -A POSTROUTING -o $1 -s $KRIP -j MASQUERADE
                ;;
        esac

    5. 부팅시 ppp 접속하도록 설정: /run.sh에 추가

      pon nlvpn updetach persist &>/dev/null
      pon krvpn updetach persist &>/dev/null
      pon usvpn updetach persist &>/dev/null
    6. 이제 각 client에서 접속을 하면 접속 ID에 따라 US 또는 NL의 GW로 접속 및 인터넷 서핑 가능


    7. 경우에 따라 sudo modprobe nf_conntrack_pptp nf_conntrack_proto_gre 실행 필요




Write a comment…