MASQUE

QUIC MASQUE 標準に基づくプロキシプロトコルで、usque ツールと組み合わせて特定の通信事業者ネットワークに接続する際によく使われます。quic/h2/h3-l4proxy の3種類のネットワークモードに対応しています。

設定例

config.yaml YAML
proxies:
  - name: "masque"
    type: masque
    server: server.com
    port: 443
    private-key: BASE64_ENCODED_PRIVATE_KEY
    public-key: BASE64_ENCODED_PUBLIC_KEY
    ip: 172.16.0.2/32
    ipv6: fd00::2/128
    mtu: 1280
    udp: true
    # congestion-controller: bbr

設定ファイルに必要な鍵ペアは、コミュニティツール usque で生成できます。

フィールドの説明

private-key / public-key必須

base64 エンコードされた ECDSA 秘密鍵/公開鍵(公開鍵はサーバー側のものです)。PEM のヘッダー・フッター(-----BEGIN PUBLIC KEY----- など)と改行文字は取り除く必要があります。

ip / ipv6オプション

ローカル仮想ネットワークカードの IPv4/IPv6 アドレス。CIDR 形式で指定します。

mtuデフォルト 1280

TUN デバイスの MTU サイズ。

networkデフォルト quic

3種類のモード:デフォルトはネイティブの quich2 に設定すると masque-h2 に対応。h3-l4proxy に設定すると h3-l4proxy モード(このモードは現時点で UDP 未対応)になります。

remote-dns-resolve / dnsオプション

有効にすると MASQUE トンネル経由でのリモート DNS 解決が強制されます。dns フィールドで解決に使用するサーバー一覧を指定します。

congestion-controller / handshake-timeoutオプション

congestion-controller はデフォルトで無効。bbr を選択可能。handshake-timeout はハンドシェイクのタイムアウト時間(秒)で、デフォルト 0 は外側の接続タイムアウトのみを使用することを意味します。