2
0

EC2にDockerでOpenVPNを構築してVPN接続をする

Last updated at Posted at 2023-12-09

さいしょに

通常のVPN接続ではなくて、特定のタイミングでパケットロスを擬似的に発生させたり、ネットワーク遅延を意図的に起こすための環境を構築していきます。

最後の項目をやらなければ、普通のVPNです。

準備

なるべく簡単に構築したいので、ec2インスタンスにdockerの環境を構築しておきます。
ちなみに以下はAmazonLinux2なので、AmazonLinux2023だと少し導入が違うかも。

docker

$ sudo yum update
$ sudo amazon-linux-extras install docker
$ sudo service docker start
$ sudo systemctl enable docker
$ sudo usermod -a -G docker ec2-user

compose

$ sudo curl -L https://github.com/docker/compose/releases/download/v2.17.3/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/lib/docker/cli-plugins/docker-compose
$ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

起動

sudo docker run --rm -d --privileged -p 500:500/udp -p 4500:4500/udp -p 1701:1701/tcp \
  -e PSK='共有シークレットキー' \
  -e USERS='ユーザ名:パスワード' \
  siomiz/softethervpn

共有シークレットキーは適当な文字列にしてください。(pwgen 32 とか)

UDP 500
UDP 4500
TCP 1701

上記をFWで許可しておきます。

接続

Macの場合、L2TP over IPSecでec2インスタンスのパブリックIPへ上記共有シークレットキー・ユーザ名・パスワードで接続します。

擬似的なパケロスとネットワーク遅延

ec2で以下をインストール

$ sudo yum install dstat iproute-tc

3%パケットロス、100msの遅延をランダムに発生させる。

$ sudo tc qdisc add dev docker0 root netem delay 100ms 10ms loss 3%

遅延とパケロスを削除

$ sudo tc q

極稀にこういった環境が必要になるケースがありますが、参考までに。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0