Dockerの環境で通信が通らない

SoftEther VPN に関するご質問はこのフォーラムにお気軽にご投稿ください。
Post Reply
chikage
Posts: 6
Joined: Wed Nov 02, 2022 4:20 pm

Dockerの環境で通信が通らない

Post by chikage » Mon Sep 11, 2023 2:30 pm

現在Dockerコンテナ上でSoftether VPNを構築中なのですが、どうやっても通信が通りません。
状況としましては、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"]
docker-compose.yml

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"

cedar
Site Admin
Posts: 2055
Joined: Sat Mar 09, 2013 5:37 am

Re: Dockerの環境で通信が通らない

Post by cedar » Wed Sep 13, 2023 10:16 am

SoftEther VPN Server のログは、バイナリファイルのディレクトリ以下に保存されています。(server_logなど)
インストール時のログに「ln -s /mnt/server_log server_log」とあるので、そちらに転送されているのではないかと思います。

Docker で試したことはないのですは、フォーラム内で検索した限りでは、Docker 環境ではプロミスキャスモードが有効にならずローカルブリッジ機能は動作しないようです。

Veulio
Posts: 1
Joined: Wed Sep 13, 2023 11:57 am

Re: Dockerの環境で通信が通らない

Post by Veulio » Wed Sep 13, 2023 12:00 pm

Notre logiciel est conçu pour évoluer avec vous, vous fournissant des outils précieux pour développer et soutenir votre entreprise au fur et à mesure de sa croissance.
N'attendez plus, explorez la flexibilité et la personnalisation que notre solution SAAS vous offre dès aujourd'hui !

chikage
Posts: 6
Joined: Wed Nov 02, 2022 4:20 pm

Re: Dockerの環境で通信が通らない

Post by chikage » Wed Sep 13, 2023 12:10 pm

なるほど、プロミスキャスモードのせいでしたか……
それはどうにもならなさそうなので諦めることにします。ありがとうございました!

Post Reply