スキップしてメイン コンテンツに移動

port forward vps's public ipv4 addr to private ipv4 addr via IPIP6 tunnel

NETMAPで IP アドレスを 1:1でNATしていたのが前回ですが、今回はもう少し進んでみて、Port forwardの設定をしてみました。構成は以下の通りです。

それでは早速設定です。前回と異なるところだけですが、まずはVPS側のvyosのnatの設定は以下の通りです。
set nat destination rule 10 destination address '10.10.10.1'
set nat destination rule 10 destination port '80'
set nat destination rule 10 inbound-interface 'eth0'
set nat destination rule 10 protocol 'tcp'
set nat destination rule 10 translation address '192.168.10.125'
set nat destination rule 10 translation port '80'

set nat destination rule 11 destination address '10.10.10.1'
set nat destination rule 11 destination port '443'
set nat destination rule 11 inbound-interface 'eth0'
set nat destination rule 11 protocol 'tcp'
set nat destination rule 11 translation address '192.168.10.125'
set nat destination rule 11 translation port '443'

set nat destination rule 12 destination address '10.10.10.1'
set nat destination rule 12 destination port '53'
set nat destination rule 12 inbound-interface 'eth0'
set nat destination rule 12 protocol 'tcp'
set nat destination rule 12 translation address '192.168.10.126'
set nat destination rule 12 translation port '53'

set nat destination rule 13 destination address '10.10.10.1'
set nat destination rule 13 destination port '53'
set nat destination rule 13 inbound-interface 'eth0'
set nat destination rule 13 protocol 'udp'
set nat destination rule 13 translation address '192.168.10.126'
set nat destination rule 13 translation port '53'

set nat source rule 10 outbound-interface 'eth0'
set nat source rule 10 protocol 'tcp'
set nat source rule 10 source address '192.168.10.125'
set nat source rule 10 source port '80'
set nat source rule 10 translation address '10.10.10.1'
set nat source rule 10 translation port '80'

set nat source rule 11 outbound-interface 'eth0'
set nat source rule 11 protocol 'tcp'
set nat source rule 11 source address '192.168.10.125'
set nat source rule 11 source port '443'
set nat source rule 11 translation address '10.10.10.1'
set nat source rule 11 translation port '443'

set nat source rule 12 outbound-interface 'eth0'
set nat source rule 12 protocol 'tcp'
set nat source rule 12 source address '192.168.10.126'
set nat source rule 12 source port '53'
set nat source rule 12 translation address '10.10.10.1'
set nat source rule 12 translation port '53'

set nat source rule 13 outbound-interface 'eth0'
set nat source rule 13 protocol 'udp'
set nat source rule 13 source address '192.168.10.126'
set nat source rule 13 source port '53'
set nat source rule 13 translation address '10.10.10.1'
set nat source rule 13 translation port '53'

set protocols static route 192.168.10.0/24 next-hop 172.16.2.2


VPS側のvyosのnatの設定は以上です。これでパブリックアドレスへの80,443,53のアクセスは、図の通りのポート・アドレスに転送されます。
なお、vps側のvyosのiptables(nat)の部分は以下のようになります。
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:VYATTA_PRE_DNAT_HOOK - [0:0]
:VYATTA_PRE_SNAT_HOOK - [0:0]
-A PREROUTING -j VYATTA_PRE_DNAT_HOOK
-A PREROUTING -d 10.10.10.1/32 -i eth0 -p tcp -m tcp --dport 80 -m comment --comment DST-NAT-10 -j DNAT --to-destination 192.168.10.125:80
-A PREROUTING -d 10.10.10.1/32 -i eth0 -p tcp -m tcp --dport 443 -m comment --comment DST-NAT-11 -j DNAT --to-destination 192.168.10.125:443
-A PREROUTING -d 10.10.10.1/32 -i eth0 -p tcp -m tcp --dport 53 -m comment --comment DST-NAT-12 -j DNAT --to-destination 192.168.10.126:53
-A PREROUTING -d 10.10.10.1/32 -i eth0 -p udp -m udp --dport 53 -m comment --comment DST-NAT-12 -j DNAT --to-destination 192.168.10.126:53

-A POSTROUTING -j VYATTA_PRE_SNAT_HOOK
-A POSTROUTING -s 192.168.10.125/32 -o eth0 -p tcp -m tcp --sport 80 -m comment --comment SRC-NAT-10 -j SNAT --to-source 10.10.10.1:80
-A POSTROUTING -s 192.168.10.125/32 -o eth0 -p tcp -m tcp --sport 443 -m comment --comment SRC-NAT-11 -j SNAT --to-source 10.10.10.1:443
-A POSTROUTING -s 192.168.10.126/32 -o eth0 -p tcp -m tcp --sport 53 -m comment --comment SRC-NAT-12 -j SNAT --to-source 10.10.10.1:53
-A POSTROUTING -s 192.168.10.126/32 -o eth0 -p udp -m udp --sport 53 -m comment --comment SRC-NAT-12 -j SNAT --to-source 10.10.10.1:53

-A VYATTA_PRE_DNAT_HOOK -j RETURN
-A VYATTA_PRE_SNAT_HOOK -j RETURN
COMMIT
# Completed on Wed Apr  1 05:21:35 2020

続いて、ローカル側のDebian routerで注意すべきなのは、太線を見ればわかるように、ローカル側のDebianルータのserver1, server2 に対するゲートウェイはInternet router側ではなく、VPS側トンネル先である172.16.2.1にすることです。そのほかのデフォルトルートはInternet Router(192.168.1.1)経由となります。具体的には以下のようになります。
#/etc/network/interfaces.d/eth0
auto eth0
iface eth0 inet static
  address 192.168.1.124
  netmask 255.255.255.0
  gateway 192.168.1.1
  nameservers 8.8.8.8 1.1.1.1
iface eth0 inet6 static
  address 2400:XXXX:YYYY:ZZZZ:AAAA:BBBB:CCCC:2
  netmask 56
  up ip -6 route add default via fe80::1 dev eth0

#/etc/network/interfaces.d/tun0
auto tun0
iface tun0 inet tunnel
  mode ipip6
  address 172.16.2.2
  netmask 255.255.255.0
  local    2400:XXXX:YYYY:ZZZZ:AAAA:BBBB:CCCC:2
  endpoint 2400:AAAA:BBBB:CCCC:XXXX:YYYY:ZZZZ:1
  up ip route add default via 172.16.2.1 dev tun0 tab 99
  up ip rule add from 192.168.10.125 sport 80  table 99 prio 99
  up ip rule add from 192.168.10.125 sport 443 table 99 prio 99
  up ip rule add from 192.168.10.126 sport 53  table 99 prio 99

前回のNETMAP設定もそうですが、トンネル経由のPort Forwardの設定もネットでは見かけなかったので、本稿をアップしてみました。今回は以上です。ではまた。

コメント

このブログの人気の投稿

wsdd を使ってSamba サーバをネットワークに表示

Windows 10のアップデートで、セキュリティー対応のため、smbv1がデフォルトではインストールされなくなり、Samba serverがエクスプローラーのネットワークに表示されなくなってしまいました。そこで、いくつか方法を調べたのですが、linuxでwsdの実装がないか探したところ、 https://github.com/christgau/wsdd が、見つかりましたので、さっそくインストールしてみました。まだパッケージにはないようですが、インストール自身は簡単です。wsdd自体は以下のように取得し、linkを張っておきます。 cd /usr/local/bin/ sudo wget https://raw.githubusercontent.com/christgau/wsdd/master/src/wsdd.py sudo chmod 755 wsdd.py sudo ln -sf wsdd.py wsdd こちらのsambaサーバはDebianなので、/etc/systemd/system/wsdd.serviceは以下のようにしました。 [Unit] Description=Web Services Dynamic Discovery host daemon Requires=network-online.target After=network.target network-online.target multi-user.target [Service] Type=simple ExecStart=/usr/local/bin/wsdd -d MYDOMAIN [Install] WantedBy=multi-user.target wsdd -d MYDOMAINのところを、環境にあわせて書き換えてください。 次に、systemdに登録・起動テストを行います。 systemctl enable wsdd systemctl start wsdd 起動に成功すると、エクスプローラーのネットワークに表示されます。  なおこのwsddはpython3が必要です。一度試してみてください。SMBv1/CIFSを停止していても、大丈夫です。 cで書かれたほかのwsddの実装もあるようなので、いずれパッケージになるかも...

Windows デバイス暗号化 のサポートで "許可されていない dma 対応バス/デバイスが検出されました"の対処

Windows でセキュリティー関係を見ているのですが、とあるPCでmsinfo32で確認すると"デバイス暗号化のサポート"で"許可されていない dma 対応バス/デバイスが検出されました"と出ていました。このPCの場合、それ以外はOK(なにも表示されない)だったのですが、ネットでしらべるとMSのドキュメントではハードウェアベンダーに問い合わせるなどと敷居が高く具体的にどこが引っかかっているかわかりません。そこでほかに方法はないかとしらべやってみたところ、"前提条件をみたしています"まで持って行けたので、本稿を挙げた次第です。 具体的には、以下のようにします。 1-a. 許可するDMA対応バス・デバイスを指定するレジストリの所有権と書き込み設定をおこなう。 以下のレジストリキーの所有者を自分自身(管理ユーザ)のものにし、フルコントロール権を付与する。 HKLM\SYSTEM\CurrentControlSet\Control\DmaSecurity\AllowedBuses もしくは 1-b. MicrosoftよりPsExecをダウンロードし、System権限でRegeditを立ち上げ編集する。 Microsoftより、https://docs.microsoft.com/en-us/sysinternals/downloads/psexec にある こちら をダウンロードし、解凍する。解凍すると、x64の場合、PsExec64.exeがあるので、管理者権限で以下を実行し、システム権限でregeditを立ち上げることが出来るようになる。 cd Downloads\PSTools .\PsExec64.exe -sid C:\Windows\regedit.exe 2-a. パワーシェルスクリプトを実行し、PnPデバイスのうちインスタンスがPCIで始まるものを"AllowedBuses"に追加する。 以下のパワーシェルスクリプトを作成する。たとえばDocuments\allow-dma-bus-device.ps1として作成する。( こちらの記事のものを使用させていただきました: Thank you! ) $tmpfile = "$($env:T...

フレッツ光クロス:MAP-E ROUTER by Debian Box (iptables)

フレッツ光クロスがようやく開通したので、Debianにてrouterを構成し接続してみました。なお、プロバイダーを選ぶにあたっては、IPoE方式がそれぞれ異なるため検討したところ、IPoEでは、MAP-Eでもv6plusとocnバーチャルコネクトがあり、前者がポート数240なのに対し、後者は約4倍のポート数が使えるようなネットの情報をみて、OCNバーチャルコネクトを選択しました。(プロバイダーとしてはぷららです。なおDS-LiteはCE側でのNATではないので今回は見送りました。)そこで、OCN バーチャルコネクトをDebian(iptables)で実現するとどうなるかと思い、ネットの情報を頼りにしつつ、設定した次第です。 実際に試した結果、とりあえず通信できていますが、MAP-Eは本来マッピングルールをマップサーバから取得するはずなので、今回のやり方が正解とはいえませんし、仕様変更されると通信できなくなる可能性があります。あくまでも参考程度ですが、本稿をUPしてみました。 2023/03/16追記: こちら にゲームコンソールNAT越え(Nintendo Switch ナットタイプ A判定)対応版を投稿しました。 2023/03/28追記:※1の記述および3行無効化によりNAT越え(Nintendo Switch ナットタイプ B判定)できるようになりました。 構成は以下の通りです。 ルーターがDebianで回線がOCNバーチャルコネクトであること以外はなにも特別なところはない構成です。 さて、いきなり設定ですが、まず、割り当てられたプレフィックスを確認します。 確認は、 dhclient -6 -d -P enp2s0 とします。出力の中に 前略 RCV: | | X-- IAPREFIX 2400:4050:5c71:af00::/56 後略 このようにプレフィックスが表示されるので、その確認したプレフィックスを書き留めておきます。これを こちらで 入力します。すると、 CE: 2400:4050:5c71:af00:99:f171:c600:2f00 IPv4 アドレス: 153.241.113.198 ポート番号:(1776-1791 2800-2815 3824-3839) 4848-4863 5872-5887 6896-...