Mikrotik Router OS、外部ネットワーク上のサーバーを探しています。 または大金を払わない方法
私たちは皆、私たちの国における中小企業と民間企業家精神の多大な支援について繰り返し聞いています。 あなたが個人である限り、問題はありません。 しかし、考えを集めて自分のビジネスを開くと決めるとすぐに、あなたはすぐにお金を手に入れます(銀行への馬の関心、税金、ロシア年金基金への控除、課税、罰金、インフレ、および他の綿)。 プロバイダーはこの点で特に際立っていました。単純なホームユーザーの要件が最小限であれば、民間の起業家や組織へのアプローチは特別です。 つまり、仕事用に非居住施設を借りた場合、これはあなたが換金牛であり、プロバイダーに多額のお金を支払わなければならないことを意味します。 はい。もちろん、プロバイダーに同意して個人の同意書を作成できた場合、またはWiFiを窓に入れることに同意した友人が近くに住んでいるとしましょう。 しかし、これらのオプションが機能しない場合、プロバイダーに多額のお金を支払わない別の方法があります。 :)
私たちの時代では、内部ローカルネットワーク10.0.0.0/255.0.0.0または192.168.0.0/255.255.0.0を持つプロバイダーを見つけて、その中に2つのポイントを整理することは難しくないということです(安価で無制限のインターネットを持つ個人がサーバーになります)(高価なメガバイトのインターネットを持つ組織がクライアントになります)VPNを上げます。
原則として、プロバイダーのグレーアドレスが静的であれば問題はありませんが、静的でない場合は、インターネットでDDNSサービスを使用する必要があります。 ローカルサービスがない場合があります。
フルサイズのピッチャ
インターネットには多くのDDNSサービスがありますが、Mikrotikはそれらと連携しないか、または私たちの目的に適していないため、それらのほとんどはバックグラウンドにフェードインしています。
バージョン2.X以降のサポートのため、changeip.com DDNSサービスを使用します。
グレーのIPアドレスを送信するスクリプトを開発する過程で、1つの重大な問題が発生しました。 サービスchangeip.comは、DNS名が更新されるたびに、メッセージで送信されたIPアドレスが最初のオクテット10および192.168。を持つネットワークに属していることを確認します この提携が行われると、メッセージのアドレスが白いipに置き換えられます。これはchangeip.comサービスによって自動的に決定されますが、残念ながらこのオプションは無効にできません:(
送信前にIPアドレスの最初のオクテットをマスクし、受信時に元に戻すことにしました。
サーバー部分、パラメーター:
:local interfacename ("eth1"); - .
:local replacement ("222"); - ip , , . 10. - 00-99, 192. 100-254.
:local dnsname ("my.server.ddns.info"); -DNS .
:local login ("login"); - changeip.com
:local password ("password"); - changeip.com
サーバー部分、コード:
##################################################
#Server Part
##################################################
#Settings
##################################################
:local interfacename ("eth1");
:local replacement ("222");
:local dnsname ("my.server.ddns.info");
:local login ("login");
:local password ("password");
##################################################
##################################################
:local CurrentDynDNSIP ([:resolve $dnsname]);
:local TMPDynDNSIP ([/ip address get [/ip address find interface=$interfacename] address]);
:local RealDynDNSIP ([:pick $TMPDynDNSIP 0 ([:len $TMPDynDNSIP]-3)]);
:local ShortIP ([:pick $RealDynDNSIP ([:len $replacement]) ([:len $RealDynDNSIP])]);
:local FakeIP ($replacement . $ShortIP);
:if ($CurrentDynDNSIP != $FakeIP) do={/tool dns-update name=$dnsname address=$FakeIP key-name=$login key=$password};
##################################################
#(C) Inlarion icq 429-587 mikrotik.axiom-pro.ru Copyright!
##################################################
説明:
サーバー側の動作原理は非常に簡単で、指定されたインターフェイスからIPアドレスが取得され、サブネットマスクが切断され、最初のオクテットがマスキングに置き換えられ、changeip.comに送信されます。
クライアント部分、パラメーター:
:local dnsname ("my.server.ddns.info"); -DNS ip .
:local replacement ("192"); - .
:local gateoctet ("1"); - :local internettype "ethernet" 192.168..1 .
:local internetname ("LAN"); - .
:local internettype ("ethernet"); - "ethernet" .
:local internetdns ("192.168.3.1"); DNS .
:local tunnelname ("ISP1"); - .
:local tunneltype ("pptp"); - , "pptp" "l2tp".
:local tunneldns ("192.168.90.1"); - DNS PPTP L2TP .
クライアント部分、コード:
####################################################
#Client part
####################################################
#Settings
####################################################
:local dnsname ("my.server.ddns.info");
:local replacement ("192");
:local gateoctet ("1");
:local internetname ("LAN");
:local internettype ("ethernet");
:local internetdns ("192.168.3.1");
:local tunnelname ("ISP1");
:local tunneltype ("pptp");
:local tunneldns ("192.168.90.1");
####################################################
:global internetgate (" ");
####################################################
:if ( $internettype != "ethernet" ) do={
:set internetgate ([/ip address get [/ip address find interface=$internetname] network]);
} else={
:set internetgate ([/ip address get [/ip address find interface=$internetname] network]);
:local ShortIP ([:pick $internetgate 0 ([:len $internetgate]-1)] );
:set internetgate ($ShortIP . $gateoctet);
};
####################################################
:if ($tunneltype = "pptp") do={
/interface pptp-client monitor [/interface pptp-client find name=$tunnelname] once do={
:if ($status != "connected") do={
:if ($internetdns != [/ip dns get servers]) do={ /ip dns set servers=$internetdns; };
} else={
:if ($tunneldns != [/ip dns get servers]) do={ /ip dns set servers=$tunneldns; };
};
};
};
:if ($tunneltype = "l2tp") do={
/interface l2tp-client monitor [/interface l2tp-client find name=$tunnelname] once do={
:if ($status != "connected") do={
:if ($internetdns != [/ip dns get servers]) do={ /ip dns set servers=$internetdns; };
} else={
:if ($tunneldns != [/ip dns get servers]) do={ /ip dns set servers=$tunneldns; };
};
};
};
####################################################
:local WWW ([:resolve changeip.com]);
:local NIC ([:resolve nic.changeip.com]);
:if ( [/ip route find comment="WWW_changeip.com"] = "" ) do={ /ip route add dst-address=$WWW gateway=$internetgate comment="WWW_changeip.com" };
:if ( [/ip route find comment="NIC_changeip.com"] = "") do={ /ip route add dst-address=$NIC gateway=$internetgate comment="NIC_changeip.com" };
:if ( [/ip route find comment="INTERNET_DNS"] = "") do={ /ip route add dst-address=$internetdns gateway=$internetgate comment="INTERNET_DNS" };
:if ( [/ip route get [/ip route find comment="WWW_changeip.com"] dst-address] != $WWW) do={ /ip route set [/ip route find comment="WWW_changeip.com"] dst-address=$WWW gateway=$internetgate };
:if ( [/ip route get [/ip route find comment="NIC_changeip.com"] dst-address] != $NIC) do={ /ip route set [/ip route find comment="NIC_changeip.com"] dst-address=$NIC gateway=$internetgate };
:if ( [/ip route get [/ip route find comment="INTERNET_DNS"] dst-address] != $internetdns) do={ /ip route set [/ip route find comment="INTERNET_DNS"] dst-address=$internetdns gateway=$internetgate };
####################################################
:if ($tunneltype = "pptp") do={
:local CurrentVHNIP ([:resolve $dnsname]);
:local TMPVHNIP ([/interface pptp-client get [/interface pptp-client find name=$tunnelname] connect-to]);
:local ShortIP ([:pick $CurrentVHNIP ([:len $replacement]) ([:len $CurrentVHNIP])]);
:local RealDNSIP ($replacement . $ShortIP);
:if ($RealDNSIP != $TMPVHNIP) do={/interface pptp-client set [/interface pptp-client find name=$tunnelname] connect-to=$RealDNSIP; };
};
:if ($tunneltype = "l2tp") do={
:local CurrentVHNIP ([:resolve $dnsname]);
:local TMPVHNIP ([/interface l2tp-client get [/interface l2tp-client find name=$tunnelname] connect-to]);
:local ShortIP ([:pick $CurrentVHNIP ([:len $replacement]) ([:len $CurrentVHNIP])]);
:local RealDNSIP ($replacement . $ShortIP);
:if ($RealDNSIP != $TMPVHNIP) do={/interface l2tp-client set [/interface l2tp-client find name=$tunnelname] connect-to=$RealDNSIP; };
};
####################################################
#(C) Inlarion icq 429-587 mikrotik.axiom-pro.ru Copyright!
####################################################
説明:
クライアント側の原則はもう少し複雑です。 まず、インターネットゲートウェイは、高価なプロバイダーによって識別されます。 2番目のステップは、VPNサーバーとの接続を確認することです。接続がない場合はプロバイダーのDNSが確立され、接続がある場合はVPNサーバーのDNSが確立されます。 3番目のステップでは、DNSおよびchangeip.comサーバーのメインプロバイダーを介してルートをインストール/更新します。 最後のステップは、イメージ変更オクテットでchangeip.comから受信したアドレスを使用して、接続プロパティのサーバーIPアドレスを確認することです。
結論として、プロバイダーとの契約がお客様に締結され、お客様が個人的に使用する場合、この方法は契約の条件に違反しないことに注意してください。
この方法には明らかな欠点があります。サーバーからクライアントまでの距離が長いため、トラフィックはプロバイダーのサブネットを通過します。ルーターに加えて、各サブネットにはQoSをサポートするスマートスイッチもあります。
パケット損失を回避し、QoSに大きく左右されないように、サーバーとクライアントを同じサブネットに配置するか、同じプロバイダーのサブスクライバーの2つの白いアドレス間で情報が転送される「有料対人トラフィック」サービスに注意することをお勧めします。 このサービスの費用は2〜15kop。/ Mbです。 また、インターネットトラフィックと同じ優先度を持ちます。