状況としましては、VPNサーバーへの接続、DHCPサーバーからのIPアドレスの取得まではできるのですが、その後実際に通信を行おうとするとパケットが帰ってきません。LAN内のアドレス宛でも帰ってきません。
パケットログやサーバーログは確認していますが、エラーは確認できていません。
ネットワークに問題があるとにらみ、ホストのポートにバインドする方法、ipvlanをl2モードで稼働させる方法、macvlanで稼働させる方法を試しましたが、いずれの方法でも症状は改善しませんでした。
全ての方法において、コンテナ内のeth0とローカルブリッジ接続しています。
現在仮想NATと仮想DHCPサーバーを有効にすることで通信できることを確認していますが、オンラインゲームのパケットを通すために2重NATを避けたいので、このままでの運用は厳しい状態です。
考えられる原因や切り分けの方法、もしくはSoftetherのエラーログの出力場所などを知りたいです。
参考として、Dockerfileとdocker-compose.ymlを添付させていただきます。
Dockerfile
Code: Select all
FROM alpine as builder
ARG GIT_TAG=v4.38-9760-rtm
RUN mkdir /usr/local/src && apk add binutils --no-cache\
build-base \
readline-dev \
openssl-dev \
ncurses-dev \
git \
cmake \
zlib-dev \
libsodium-dev \
gnu-libiconv \
wget
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so
WORKDIR /usr/local/src
RUN git clone -b ${GIT_TAG} https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git
ENV USE_MUSL=YES
RUN cd SoftEtherVPN_Stable &&\
git submodule init &&\
git submodule update &&\
./configure &&\
make
FROM alpine
RUN apk add --no-cache readline \
openssl \
libsodium \
gnu-libiconv\
iptables
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so
ENV LD_LIBRARY_PATH /root
WORKDIR /usr/local/bin
VOLUME /mnt
RUN ln -s /mnt/vpn_server.config vpn_server.config && \
mkdir /mnt/backup.vpn_server.config &&\
ln -s /mnt/backup.vpn_server.config backup.vpn_server.config &&\
ln -s /mnt/lang.config lang.config &&\
ln -s /mnt/adminip.txt adminip.txt &&\
ln -s /mnt/server_log server_log &&\
mkdir /mnt/server_log &&\
ln -s /mnt/security_log security_log &&\
mkdir /mnt/security_log &&\
ln -s /mnt/packet_log packet_log &&\
mkdir /mnt/packet_log
COPY --from=builder /usr/local/src/SoftEtherVPN_Stable/bin/vpnserver/vpnserver /usr/local/src/SoftEtherVPN_Stable/bin/vpncmd/vpncmd /usr/local/src/SoftEtherVPN_Stable/bin/vpnserver/hamcore.se2 ./
EXPOSE 443/tcp 992/tcp 1194/tcp 1194/udp 5555/tcp 500/udp 4500/udp
CMD ["/usr/local/bin/vpnserver", "execsvc"]
Code: Select all
version: '3'
networks:
vlan0:
name: vlan0
driver: ipvlan
driver_opts:
parent: eno1
ipvlan_mode: l2
ipam:
config:
- subnet: 192.168.0.0/24
gateway: 192.168.0.1
services:
softether:
build: .
cap_add:
- NET_ADMIN
restart: always
networks:
vlan0:
ipv4_address: 192.168.0.150
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "/etc/timezone:/etc/timezone:ro"
- "./softether_data:/mnt"