RRASを使用してAzureSite-to-Site VPNを稼働させようとしていますが、NATを許可しながら、NATを使用せずにVPNポートとプロトコルをRRASサーバーにブリッジするようにルーターのiptablesを構成するための支援が必要です。 ]他のすべてのトラフィックに使用されます。
AzureとVMを正しく構成することができ、リンクを介して流れるデータを使用して接続を稼働させることができます(そして、Azureポータルに双方向に接続されたデータとして表示されます)。ただし、セットアップされた接続は使用できません。pingを実行できないか、AzureVMとローカルマシン間で何らかの形式の接続を確立していないようです。
これは、Azureのサイト間VPNで、ローカルVPNゲートウェイがNATファイアウォール(自宅のブロードバンドであるため使用する必要があるため、1つしかない)を経由せずにインターネットに直接接続する必要があるためだと思います。 IP)したがって、接続を確立できますが、ルーターのNATは、RRASサーバーに到達するとパケットを正しくルーティングできないようにパケットを変更します。
代替のサイト間VPNソリューション(OpenVPN、SoftEther、RRAS自体)を試しましたが、どれも正しく機能せず、2つのVMのホスティングVPN接続がすべてに接続でき、ホームネットワークサーバーが正しく接続できるという同じ問題が発生します。 Azure側に接続するようにルーティングされましたが、Azure VMの制限(単一のネットワークアダプターのみでプロミスキャスモードを有効にする機能がない)またはAzure仮想ネットワーク自体が原因で、他のAzure VMが接続できないことを意味すると思いますVPNサーバーを経由する静的ルートを追加したり、追加のゲートウェイとして追加したりしても、ホームネットワークに接続します。
最新のMerlinビルドを実行しているAsusRT-AC68Uルーターを使用しているので、次の方法でiptablesルールとネットワーク構成を変更することでAzure Site-to-SiteVPNを使用できることを望んでいます。
現在、ネットワークは次のようになっています。
Azure VM-192.168.1.0/25、パブリックIPで動的ルーティングを使用するVPNゲートウェイ。
ホームネットワーク192.168.0.0/24:
VDSLモデム<-PPPOEブリッジで、ルーターにパブリックIPがあります-> Asusルーター<-NAT-> 192.168.0.0.24
これが私が到達しようとしていることであり、RRASはVPNの目的でのみパブリックIPを持っています。
より簡単な解決策がある場合は、サイト間VPNを機能させるための他の提案を受け入れます。
[更新1]
現在、次のことを考えています。RRASHyper-VVMに追加のネットワークアダプターを割り当て、VLAN 635に割り当てました。何らかの理由で変更したい場合は、無差別モードが有効になります。 Macアドレス。次に、2つのLink-Layer TopologyDiscoveryアイテムとIPv4以外のすべての接続アイテムを無効にしました。
IPv4設定に、パブリックIPアドレス、255.255.255.255のサブネットマスク、およびルーターのppp0アダプターと同じゲートウェイであるゲートウェイを割り当てました。
ルーターで次のコマンドを実行して、Azure VPNゲートウェイと通信しようとしているトラフィックをVLANに転送しようとしました。これにより、NATを使用せずにルーティングできるようになります。
/usr/sbin/ip link add link br0 name br0.635 type vlan id 635
/usr/sbin/ip link set dev br0.635 up
/usr/sbin/iptables -I INPUT -i br0.635 -j ACCEPT
/usr/sbin/iptables -I FORWARD -i ppp0 -o br0.635 -s <Azure gateway IP> -j ACCEPT
/usr/sbin/iptables -I FORWARD -i br0.635 -o ppp0 -d <Azure gateway IP> -j ACCEPT
/usr/sbin/iptables -I FORWARD -i ppp0 -o br0.635 -s <ppp0's gateway> -j ACCEPT
/usr/sbin/iptables -I FORWARD -i br0.635 -o ppp0 -d <ppp0's gateway> -j ACCEPT
残念ながら、これは機能せず、RRASで接続しようとすると、リモートサーバーが応答していないと表示されます。
それで、私は多くのことを調べた後、これを理解することができました。ホームネットワークの背後にあるLinuxボックス(Raspberry Pi/Arch Linux)で実行されるOpenSwanでネイティブのAzure Site-to-SiteVPN機能を使用できます。 NATルーター。
ネットワークトポロジー:
まず、Azureを次のようにセットアップします。
ホームネットワークのルーターで、Openswan(192.168.0.2)を実行しているLinuxゲートウェイに以下を転送しました。
私のipsec.confは次のようになります。
version 2.0
config setup
nat_traversal=yes
virtual_private=%4:192.168.0.0/24
protostack=auto
interfaces="ipsec0=eth0"
conn Azure
authby=secret
auto=start
type=tunnel
left=192.168.0.2
leftsubnet=192.168.0.0/24
leftnexthop=192.168.0.1
right=<Azure's VPN gateway IP>
rightsubnet=192.168.1.0/24
ike=3des-sha1-modp1024,aes128-sha1-modp1024
esp=3des-sha1,aes128-sha1
pfs=no
ipsec.secrets:
192.168.0.2 <Azure vpn gateway> : PSK "Azure's PSK"
これでリンクが稼働し、サイト間のルーティングが可能になりました(多くのフラストレーションの後の双方向)。
/etc/sysctl.conf:
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.icmp_ignore_bogus_error_responses = 1
'ipsec verify'を幸せに保つためにブート時に実行されるbashスクリプト:
#!/bin/bash
for vpn in /proc/sys/net/ipv4/conf/*; do
echo 0 > $vpn/accept_redirects;
echo 0 > $vpn/send_redirects;
done
sysctl -p
最後に、最も多くのいじりを要した私のiptablesルール:
フィルタテーブル。これにより、ホームネットワークがAzureに接続し、接続を確立できるようになりますが、AzureVMはまだホームネットワークサーバーに接続できません。
-A FORWARD -s 192.168.1.0/24 -m policy --dir in --pol ipsec -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -m policy --dir out --pol ipsec -j ACCEPT
-A INPUT -p udp -m udp --dport 500 -j ACCEPT
-A INPUT -p udp -m udp --dport 4500 -j ACCEPT
-A INPUT -m policy --dir in --pol ipsec -j ACCEPT
-A INPUT -p esp -j ACCEPT
natテーブル。これにより、AzureVMがホームネットワーク上の任意のマシンに接続できるようになります。
-A PREROUTING -i eth0 -p udp -m udp --dport 4500 -j DNAT --to-destination <Azure public vpn ip>:4500
-A PREROUTING -i eth0 -p udp -m udp --dport 500 -j DNAT --to-destination <Azure public vpn ip>:500
-A POSTROUTING -o eth0 -j MASQUERADE
これにより、pingと双方向の通信が可能になり、すべてのAzure VMがホームネットワークを認識でき、すべてのホームネットワークマシンがAzureVMを認識できるようになります。
Azure側はそれ自体で正しくルーティングします。ホームネットワークでは、ルーターに静的ルートを設定して192.168.1.0/24を192.168.0.2に送信しましたが、マシンでテストするために静的ルートを作成しました。
route -p ADD 192.168.1.0 MASK 255.255.255.0 192.168.0.2 METRIC 100
少なくとも誰かがこれが役立つと思ってくれることを願っています。この設定には長い時間がかかり、部分的に機能するソリューションの組み合わせだけで十分な完全なガイドはありません。