ドメインへのIPルーティング


0

特定のポートを介してIPアドレスにデータを送信するリモートデバイスがあります。解決したい問題は、ドメインにデータを送信する必要があるが、デバイスはIPアドレスの設定のみを許可することです。

特定のドメインへのIPルーティングを行うために、Linuxをどのように構成できますか。

それは可能ですか?

ドメインのIPをアドレス指定するようにデバイスを設定できますが、このIPアドレスは動的です。私が持っているドメインはnoip.comのドメインです。

回答:


1

2部構成のソリューション:

  1. IPTABLESを使用すると、いくつかの事前設定を行ってabcd(リモートサーバー)へのすべてのトラフィックをキャプチャし、そのトラフィックをマスクしてefgh(noip.com IP)にリダイレクトできます。

  2. IPが変更された場合、N分ごとに実行するcronスクリプトを使用して、IPTABLESルールを削除し、新しいIPでそれらを再挿入します。

私はそれをテストしていませんが、これは私が始める方法です:

iptables -t nat -I PREROUTING -s [localwanip] -d [remoteip] -p -m tcp --dport [port] --to-destination [newremoteip]

...また、スクリプトが必要で、ここでも校正が必要です(結果はバージョンやシステムのフレーバーによって異なる場合があります):

#!/bin/bash

NOIPNAME=yourname.noip.com
# Your IP on your WAN interface
LOCALIP=1.2.3.4
# The IP the software is _mistakenly_ trying to talk to
REMOTEIP=4.3.2.1
# The TCP port the software is using to connect to the remote IP
PORT=1234
# Just a file to keep track of what the last IP was...
REMEMBERFILE=/var/run/oldip.txt

# and now the magic, if it works...

HOSTLINE=$(host $NOIPNAME ns1.no-ip.com | grep 'has address')
HOSTLEN=$(echo $HOSTLINE | wc -m)

# Make sure the return string is > 8 characters (1.2.3.4\n)
if [ $HOSTLEN -lt 8 ]; then
  # Host resolve failure
  echo "Bad host"
  exit 1
fi

# Extract the IP from the return string.
DYNIP=$(echo $HOSTLINE | sed -rn 's/^.* ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*/\1/p')

OLDIP=$(cat $REMEMBERFILE)

if [ "x$DYNIP" = "x$OLDIP" ]; then
    # Nothing to do.
    exit 0
else
    echo $DYNIP > $REMEMBERFILE
fi

# Flush
iptables -t nat -F
# and re-write
iptables -t nat -I PREROUTING -s $LOCALIP -d $REMOTEIP -p -m tcp --dport $PORT --to-destination $DYNIP

exit 0

最後に、cronに追加します。以下は10分ごとに実行されます(この部分では* / 10)。

echo "*/10    *  *  *   *   root /your/path/to/script" >> /etc/crontab

警告:これでIPTABLESは、私が与えたコマンドが機能しない場合(おそらくそうではない-それは単なる推測でした)トリッキーになります-例えば、グーグルで掘ってください:

http://ribbalicious.com/rewrite-destination-ip-address-using-iptables/

幸運を。


0

デバイスにLinuxシステムのIPアドレスを設定する必要があります。このLinuxはNATを実行します(iptablesを参照DNAT)。また、DNS更新を定期的にチェックし、それに応じてDNAT構成を更新します。もちろん、IPの変更により一部のデータが失われる可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.