コンテンツにスキップ
InstagramYouTubeFacebook

Remote Access

CGNAT 配下の MikroTik リモート管理

CGNAT とは何か、なぜ MikroTik ルーターへの着信アクセスを遮断するのか、そして送信トンネルでフリートをリモート管理する方法を学びます。

概要 CGNAT(Carrier-Grade NAT)は、ISP が 1 つのパブリック IPv4 アドレスを多数の加入者で共有できるようにするもので、希少なアドレスを節約しますが着信接続を壊します。そのため、その配下にある MikroTik ルーターへのポートフォワーディングは単純に機能しません。ルーターには到達可能なパブリックアドレスがないため、確実な解決策は方向を逆転させることです。つまり、ルーター自身に、あなたが管理するランデブーポイントへ発信させるのです。本ガイドでは、CGNAT とは何か、その検出方法、そして送信トンネルを使ってその配下の MikroTik ルーターを管理する方法を説明します。

CGNAT とは?

CGNAT は、ISP のネットワーク内部で実行されるネットワークアドレス変換の第 2 層であり、多数の顧客を共有パブリック IPv4 アドレスの小さなプールにマッピングします。通常は、本物のパブリック IP の代わりに、各加入者へキャリア範囲 100.64.0.0/10 のプライベートアドレスを割り当てます。これは、世界が何年も前に空き IPv4 ブロックを使い果たしたために存在します。ますます高価になるアドレスを購入する代わりに、ほとんどの固定無線、モバイル、ファイバー、衛星のプロバイダーは現在、加入者を共有ゲートウェイの背後に配置しています。あなたの MikroTik は依然としてインターネットアクセスを得られ、通常どおり送信接続を開始できますが、パブリックインターネットの観点からは、あなたのルーターは自身のアドレスを持っていません。(Carrier-grade NAT — Wikipedia)

CGNAT はどのように MikroTik への着信アクセスを壊すのか?

通常のポートフォワーディングは、WAN インターフェースがインターネットの他の部分から到達できるパブリック IP を保持していることを前提としています。CGNAT 下ではこの前提が二重に崩れます。第一に、あなたの WAN アドレスはプライベート(多くの場合 100.64.x.x)であるため、MikroTik 上で転送されたポートは、キャリア外の誰もルーティングできないアドレスを指します。第二に、本物のパブリック IP は ISP のマスター NAT デバイス上にあり、これは他の数十人の加入者と共有されており、任意の着信ポートをあなたに転送しません。あなたはそれを制御できません。(Open Port Checkers — なぜ CGNAT でポートフォワーディングが失敗するのか)

ルーターのフリートを運用する人にとっての実際的な結果は深刻です。オフィスから顧客の MikroTik へ Winbox、WebFig、SSH、API でアクセスできません。そこへの着信経路が存在しないからです。ダイナミック DNS ホスト名も役に立ちません。それは共有のキャリア IP に解決され、あなたのルーターには解決されないからです。これは Starlink ユーザーがぶつかるのと同じ壁であり、Starlink の IP 変更に関するケーススタディで詳しく取り上げています。

MikroTik が CGNAT 配下にあるかどうかを見分けるには?

WAN インターフェースのアドレスを確認し、接続が実際にインターネットへ示すパブリック IP と比較します。Winbox または WebFig のターミナルで:

/ip address print

WAN インターフェースが 100.64.0.0100.127.255.255(共有範囲 100.64.0.0/10)、10.0.0.0/8、またはその他の RFC1918 プライベート範囲内のアドレスを保持している場合、ほぼ確実に CGNAT 配下にあります。そのアドレスを外部の「what is my IP」サービスが報告するものと比較して確認してください。両者が異なる場合、キャリア NAT があなたとインターネットの間に存在します。最初のパブリックホップの前に 1 つ以上のプライベートホップを示す traceroute も、もう 1 つの強いシグナルです。(oneuptime — CGNAT 配下にいるかどうかを検出する方法)

CGNAT 配下の MikroTik ルーターを管理するには?

永続的な解決策は、内側へ接続しようとするのをやめ、代わりにルーターに、安定したパブリックアドレスを持つランデブーポイントへ外側へ接続させることです。送信接続は CGNAT の背後から開始されるため、キャリアの NAT はこれを喜んで許可します。ブラウザがあらゆる Web サイトに到達するのと同じ仕組みです。そのトンネルが確立されると、それを通じてルーターに到達できます。これを構築する一般的な方法は 4 つあり、それぞれが独自のガイドで文書化されています:

VPS への自己ホスト型 VPN は古典的なアプローチです。パブリック IP を持つ安価な Linux VPS が集合場所として機能し、各 MikroTik がダイヤルインします。WireGuard は現代的な既定の選択肢です。高速で、低 CPU で、CGNAT やダイナミック IP に伴うアドレス変更に寛容です。より広範な VPS ベースの管理ガイドは、他のトンネルタイプで同じ考え方を扱います。

マネージドメッシュ VPN は、手作業の配線のほとんどを取り除きます。TailscaleZeroTier はどちらも、NAT トラバーサルと鍵配布をあなたの代わりに処理するコントロールプレーンを提供するため、CGNAT 配下のルーターはデバイスごとの設定をほとんど必要とせずネットワークに参加します。

TR-069 / ACS プラットフォーム は、大規模に運用する際の通信事業者標準のオプションです。CPE は自動構成サーバーへの送信セッションを開き、サーバーはその後、構成とファームウェアをプッシュします。これはキャリア NAT の背後に存在する加入者デバイスを管理するために専用に作られています。

専用の管理クラウド は、送信トンネルの考え方を監視とアクセス制御と 1 か所で組み合わせたもので、これが MKController の NATCloud が使用するモデルです。

ヒント

  • IPv6 はしばしば CGNAT を完全に回避します。ISP がルーティング可能な IPv6 プレフィックスを割り当てている場合、IPv4 がキャリア NAT の背後に閉じ込められていても、IPv6 経由でルーターに到達できる可能性があります。ただし、管理経路上のすべてのホップにも IPv6 がある場合に限ります。
  • 送信トンネルには常にキープアライブを設定し(たとえば WireGuard では persistent-keepalive=25)、キャリアがアイドル状態の NAT マッピングを静かに破棄しないようにします。
  • 一部の ISP は、有料アドオンとして静的またはパブリック IPv4 アドレスを販売しています。単一の重要なサイトであれば、トンネルよりも簡単な場合があります。フリートではコスト面でスケールしません。
  • 「回避策」として Winbox、WebFig、SSH を直接インターネットに公開してはいけません。CGNAT 配下ではいずれにせよ機能せず、本物のパブリック IP 上では攻撃者への恒常的な招待状になります。

よくある質問

ダイナミック DNS サービスは CGNAT を解決しますか? いいえ。ダイナミック DNS は、あなたが持つ任意のパブリック IP を指すようにホスト名を更新するだけです。CGNAT 配下では、そのパブリック IP はキャリアのもので共有されているため、ホスト名はあなたのルーターに到達できません。

CGNAT は私自身のルーター上の NAT と同じですか? いいえ。あなたのルーターの NAT はプライベート LAN を WAN アドレスに変換し、あなたがそのポートフォワードルールを制御します。CGNAT は、あなたが制御しない ISP 内部に第 2 の NAT を追加するため、着信転送が壊れます。

ISP にオフにするよう頼むだけでよいですか? 場合によります。多くのプロバイダーは、有料または要求に応じてパブリックまたは静的 IPv4 アドレスを提供します。可用性と価格はキャリアと地域によって大きく異なります。

次のステップへ

1 台のルーターのために自分でトンネルを構築するのは簡単です。それを数十台、数百台の MikroTik 全体で行うこと—それぞれが異なる CGNAT キャリアの背後にあり、ローテーションすべき鍵と世話を要する VPS 構成を伴う—こそが運用コストが積み重なるところです。

MKController の NATCloud はまさにこのために作られています。各 MikroTik は、パブリック IP なし、ポートフォワーディングなし、デバイスごとの VPS 編集なしで、コントロールプレーンへの送信トンネルを通じてオンラインになります。すべてのルーター、たとえキャリア NAT の奥深くに埋もれているものであっても、集中監視と安全なリモートアクセスが得られます。

無料の MKController トライアルを開始する