openwrt と Wireguard を使用して、インターネット経由で 2 つのリモート ネットワーク セグメントを接続します

Openwrt ルーターで Wirdguard を使用して、インターネット経由で 2 つのリモート ネットワーク セグメントを接続します。 2 つのネットワーク セグメントは相互にアクセスできますが、インターネット トラフィックは相互に独立しています。

目的

異なる場所に 2 つの LAN があり、どちらもインターネットにアクセスできますが、相互には接続されていません。 2 つの LAN をインターネット経由で接続し、2 つの LAN 内のホストが 1 つの LAN と同じように相互にサービスにアクセスできるようにしたいと考えています。ただし、インターネット トラフィックは同じままで変化しません。

ネットワーク要件

  • 少なくとも一方の端には外部 IP アドレスがあります (固定 IP である必要はありません)。
  • 両方の LAN に openwrt システムがあり、Wireguard がインストールされています。 (Wireguard をインストールできる他のシステムも許容されますが、Openwrt は比較的安価です)

インストールと構成

秘密鍵と公開鍵を生成する

各インターフェースには秘密鍵と公開鍵が必要です。生成してペアリングする必要があるインターフェイスがいくつかあります。ここでは、2 つのインターフェイスで使用するために 2 つのペアを生成する必要があります。

1
2
wg genkey | tee privatekey1 | wg pubkey > publickey1
wg genkey | tee privatekey2 | wg pubkey > publickey2

openwrtインターフェース設定

ノード1の構成

节点1配置
节点1配置
节点1配置
节点1配置
节点1配置

ノード2の構成

节点2配置
节点2配置
节点2配置
节点2配置
节点2配置

動的IPのみの場合のスクリプト

動的 IP が 1 つしかない場合、番号をリダイヤルして IP が変わると、接続が切断されます。

  • パブリック ネットワークの IP エンドは切断を検出する必要がありません。
  • 次に、dnsmasq を再起動します (/etc/init.d/dnsmasq restart)。再起動後にのみ、新しい動的 IP を更新できます (動的ドメイン名をアクティブに更新するには、パブリック IP エンドが必要です)。
  • パブリック IP エンドがアクティブに接続を再確立することはありません

完全なスクリプトは次のとおりで、crontab に追加する必要があります。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#!/bin/sh
DATE=$(date +%Y-%m-%d" "%H:%M:%S)
CHECKHOSTNAME="192.168.8.1"
VPNINTERFACE="WG0"

ping -c3 $CHECKHOSTNAME

if [ $? -eq 0 ]; then
    echo "ok"
    logger $(echo "${DATE} - $0: OK - $VPNINTERFACE UP AND RUNNING")

else
    echo "RESTART $VPNINTERFACE Interface"
    logger $(echo "${DATE} - $0: NO VPN CONNECTION RESTART $VPNINTERFACE INTERFACE...")
    /etc/init.d/dnsmasq restart
    ifdown $VPNINTERFACE
    ifup $VPNINTERFACE
fi

CHECKHOSTNAME は、ノードを接続するルーターのアドレスです。

静的ルートを構成する

节点1配置
节点2配置

记录并分享
Hugo で構築されています。
テーマ StackJimmy によって設計されています。