NURO 光がやってきたので RTX1210 でポリシーベースルーティングを実装する

Pocket

野口です。
夏休みももう終わりですね。
宿題は終わりましたか?

ことのあらまし

弊社には既存の固定 IP の ISP 契約がありますが、社内からネットが遅いという意見をもらっていたので、 NURO 光にしました。
まあ諸説ありますがどうもフレッツ光ネクスト(NGN)の PPPoE サーバで混み合ってスループットが出ないようなのです。
加えて今契約している ISP のダウンロードが遅い。特に海外の経路は信じられないぐらい遅い。
コンテンツが置いてあるロケーションが国内であればいいですが、海外に ISO イメージが置いてあったり、 GitHub からのソースの clone はやばいぐらい遅いです。
DS-Lite やらキャリアグレードNAT(CGN) 等方法あるようですが、どうもそれらを試す前にいったん話題に上がっている NURO 光を試すことにしました。

てくろぐ: DS-LiteでIPv4してみませんか?

NURO 光がうちにもやってきた

今話題の NURO 光は NTT のダークファイバーを使った Sony 系列の So-net の提供するサービスです。
固定 IP もほしかったので NURO Biz にしたかったところですが、本社のある日立市は提供範囲外でした。
2 回の工事を経てようやく開通の運びとなりました。

パフォーマンス計測

まずはONU兼ルーターへPCを有線接続してパフォーマンス測定。
ダウンロード、アップロード共に速さは圧倒的です。
IPv4 以外にグローバル IPv6 プレフィックスも普通に降ってくるので今は IPv6 デュアルスタックインターネット接続環境が当たり前なのかなあと思いました。

Speedtest by Ookla – The Global Broadband Speed Test
Speedtest by Ookla – The Global Broadband Speed Test

課題: どうやって既存のネットワークに組み込むか?

さて、これからどうやって既存のネットワークに引き込むかが課題でした。
今のインフラで運用している社内ネットワーク以外に VLAN 切って複数のサブネットを運用しています。
既存の固定 IP 環境もすぐには切り捨てられない。

ここは簡単です。送信元アドレスが社内ネットワークからのものであれば NURO の ONU に接続したインターフェースに流すようにポリシーベースルーティング(PBR, Policy-Based Routing)を設定すれば良いのです。
YAMAHA ではフィルタ型ルーティングと呼ばれています。
これはフロー要素、つまり送信元IPアドレスやプロトコルによってルーティング先を変えることができる機能です。

フィルタ型ルーティング

理想としているのは ONU にはその名の通り光終端だけさせてイーサネットから先のルーティングは既存の RTX1210 にやらせたかった。
しかしうちに届いた ZXHN F660A という ONU はできることがあんまりなくて、 必ずルーターとしての機能もついてきてしまうようでした。
しかし静的ルートも追加できないので、このサブネット宛のパケットはこのルーターに流すみたいな設定ができない。
つまり RTX1210 での NAT が必須。

  • NAPT: PAT, IPマスカレード。ポート番号ベースで一つの IP アドレスに変換します。
  • NAT: 1対1のアドレス変換を行います。なので IP アドレスの節約にはなりません。

失敗: PBR + NAPT-NAPT 構成

設定は以下のようになります。
とりあえずインターネットブラウジングそのものはできるようになりましたが、Skype でのミーティングで音声届かない、聞こえないという問題が出たのでやめました。
なぜなら NAPT して NAPT すると(つまり 2 重の NAPT) IP 電話や Skype を始めとする P2P アプリケーションの通信が辛いことになるんです。
PBR 自体はひとまずできています。

# ONU 側インターフェースに IP アドレスを割り当てる
ip lan3 address 192.168.1.254/24

# NAT 
nat descriptor type 200 masquerade
nat descriptor address outer 200 192.168.1.254
nat descriptor address inner 200 172.16.10.1-172.16.10.254

ip filter 210010 pass 172.16.10.0/24 * * * *
ip lan3 nat descriptor 200

PBR の設定

ip filter で定義したフローにマッチしたパケットは 192.168.1.1 に流され、それ以外はゲートウェイに流します。

ip route default gateway 172.16.1.1
↓
ip route default gateway 192.168.1.1 filter 210010 gateway 172.16.1.1
# その他必要なルーティング
# イントラのサーバー等にアクセスしたい場合は別途ルートを追加する必要がある

失敗: PBR + ゲートウェイルーティング-NAPT 構成

NURO の ONU と接続する側のインターフェースを LAN3 としています。

そもそもこの構成は静的ルートが ONU に追加できない時点で失敗作です。
自身のサブネット内にあるので自分でアドレス解決できるはずとネクストホップへの ARP を試みずに、ONU 兼ルーターが直接宛先 IP アドレスを ARP しようとして、結果だれも返答しません。
よって通信が成立しません。
すぐにアカンってなって廃案になりました。

ip lan3 address 192.168.1.254/24
ip lan3 nat descriptor 200
ip route default gateway 192.168.1.1 filter 210010 gateway 172.16.1.1

↓次のように変える
NAT ディスクリプタの適用を外します。

ip lan3 address 172.16.11.253/23
no ip lan3 nat descriptor 200
ip route default gateway 172.16.11.254 filter 210010 gateway 172.16.1.1

成功?: PBR + NAT-NAPT 構成

NATディスクリプター機能 概要

RTX1210 では NAPT ではなく NAT 構成として 1 対 1 のアドレス変換をおこない、ポートアドレス変換 NAPT は NURO の ONU でやることにしました。
これなら NAPT は 1 回で済みます。
プライベートアドレスなのでいくら消費しても痛くも痒くもないです。

Skype の Echo / Sound Test Service と、実際に社内のスタッフと Skype 通話してみましたけど大丈夫だったのでこれで様子を見てみたいと思います。
だめでした。
すぐぶつ切れする問題はなくなりましたが時間が立つと接続が切れてしまいます。
動的 NAT の対応付けが時間が立つと変わってしまうんでしょうね。
NAT 越えは STUN サーバとやりとりしたり、とても根深いテーマです。
というかブリッジしたいという思いがつよい。

ip lan3 address 172.16.15.253/23
ip route default gateway 172.16.15.254 filter 210010 gateway 172.16.1.1
ip lan3 nat descriptor 300

# NAPT ではなく NAT を使う
nat descriptor type 300 nat
# 動的 NAT の IP アドレス対応付けをおこなう
nat descriptor address outer 300 172.16.14.1-172.16.14.254
nat descriptor address inner 300 172.16.10.1-172.16.10.254

最終的なトポロジを以下に示します。

まとめ

余裕が出てきたら小型 ONU とかにして NVR700W とかに差して動かしてみたいですね。
その他 SFP ポートとかに挿すとか。
ちなみにポリシーベースルーティングの話は CCNP R&S の ROUTE の科目で出てきます。

この間の勉強会のスライド

投稿者紹介

Wataru Noguchi
* Bio: Software Engineer, Network and Server Engineer
* Certification:
IPA: FE, AP, Network Specialist
Cisco: CCNA R&S, CCNP R&S
LPI: LPIC Level1, Level2, LPIC-3 Specialty LPI-304 Virtualization &High Availability

2件のコメント

  1. 参考になるポストありがとうございます!
    まったく同じ状況で非常に参考になりました。

    最後のNAT変換後のSkype回線が不安定というのが気になったのですが、これはその後いかがだったでしょうか?
    最新の状況等あれば教授いただけると幸いです!

    1. こんにちは、コメントありがとうございます!
      少しでもご参考にいただけてとてもうれしく思います。

      >最後のNAT変換後のSkype回線が不安定というのが気になったのですが、これはその後いかがだったでしょうか?
      こちらはいろいろ様子を見ながら調整を行っていましたが、どうにも Skype の調子が悪いのは改善しませんでした。
      これは 2 重 NAT(2重ルーター)状態になっているのがいけないのかと思い、 NURO の ONU 兼ルーターを同じサブネットに所属させて、デフォルトゲートウェイを RTX1210 にして、RTX1210 が特定のフィルタに合致する宛先でなければ ONU 側にパケットを転送するようにルートを追加して対応いたしました。
      2 重 NAT 問題を解消しても音声が頻繁に聞こえなくなってしまったりするので、 やっぱり家庭用の ONU に 20~30 台近くの端末の NAPT 処理をさせるのに無理があったのかなと考えています。
      NURO Biz のダークファイバーサービスの提供範囲になってでブリッジできる ONU にできて RTX1210 に NAPT 処理をさせるのが一番最良の解決策なんだけどなあと思っています。

      ちなみに Skype とは別の Skype for Business (旧 Lync) もひどい状況だったのですが、こちらは Office 365 や通信相手のオンプレの Skype for Business サーバの IP アドレス範囲が予めわかっているので、そのフィルタを追加して NURO を通らないようにしたら劇的に改善しました。
      こちらもプロバイダの問題というよりはルーターの NAPT の性能問題に起因しているもののように思われます。

      Office 365 URL および IP アドレス範囲 – Office 365
      https://support.office.com/ja-jp/article/office-365-url-%e3%81%8a%e3%82%88%e3%81%b3-ip-%e3%82%a2%e3%83%89%e3%83%ac%e3%82%b9%e7%af%84%e5%9b%b2-8548a211-3fe7-47cb-abb1-355ea5aa88a2?ui=ja-JP&rs=ja-JP&ad=JP#bkmk_sfb_ip
      展開して Skype for Business Online の IP アドレスを表示する)

      こんなフィルタを追加しましたw

      ip filter 12345 pass * 13.67.180.128/32,13.70.151.216/32,13.71.127.197/32,13.75.126.169/32,13.72.245.115/32,13.73.1.120/32,13.76.241.210/32,13.78.94.7/32,13.79.153.60/32,13.89.240.113/32,13.91.252.242/32,13.95.234.10/32,13.107.3.0/24,13.107.8.0/24,13.107.64.0/18,23.97.78.16/32,23.99.101.118/32,23.99.112.73/32,23.99.113.163/32,23.99.121.38/32,23.101.61.176/32,23.101.112.170/32,23.101.151.89/32,23.103.176.128/26,23.103.176.192/27,23.103.178.128/26,23.103.178.192/27,40.69.45.108/32,40.74.62.125/32,40.78.146.128/32,40.83.17.24/32,40.83.124.144/32,40.84.28.125/32,40.115.1.44/32,40.117.145.132/32,40.122.44.96/32,40.123.43.195/32,40.127.129.109/32,40.127.169.165/32,51.140.62.120/32,51.140.79.167/32,51.140.126.38/32,51.140.143.149/32,51.140.155.234/32,51.141.28.50/32,51.141.42.151/32,51.141.49.0/32,51.141.51.76/32,52.112.0.0/14,52.163.60.30/32,52.163.126.215/32,52.163.225.1/32,52.165.150.215/32,52.165.238.202/32,52.166.61.83/32,52.170.21.67/32,52.172.185.18/32,52.175.37.105/32,52.177.200.188/32,52.178.94.2/32,52.178.161.139/32,52.178.198.107/32,52.187.79.90/32,52.228.25.96/32,52.231.36.175/32,52.231.207.185/32,52.238.119.141/32,52.242.23.189/32,52.244.160.207/32,104.41.208.54/32,104.44.195.0/24,104.44.200.0/23,104.45.18.178/32,104.46.62.41/32,104.47.151.128/32,104.208.28.54/32,104.209.188.207/32,104.210.9.95/32,104.215.11.144/32,104.215.62.195/32,137.116.66.252/32,137.116.248.105/32,137.117.128.25/32,138.91.237.237/32,168.61.145.101/32,168.63.245.120/32 * * *

gitanes へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください