RTX830　通信によってpppoeとipoe通信を分ける

# 〇さらにさらに追記
ipoeとpppoeで通信を分けるために必要なfilter型ルーティングの設定についてわからなかったことが解決した。
ヤマハサポートに聞いた。最初から聞けばよかったけど保守契約入ってないから答えてくれると思ってなかった。無料で回答してくれるとかありがたすぎる。
お問い合わせ窓口 インターネットでのお問合せから↓
https://network.yamaha.com/support/contact

〇ipoeとpppoeで通信を分けるために必要なfilter型ルーティングの設定について
ip filter 500011 pass * * udp 500 *
ip filter 500012 pass * * udp 4500 *
ip filter 500014 pass * * esp
ip route default gateway tunnel 1 gateway pp 1 filter 500011 500012 500014
これは必要なかった↓
【※ip filter 500013 pass * * udp 1701 *】
ipoeとpppoeのフィルター番号のバッティングは避ける必要ある、


〇実動作で通信がわかれているのか確認する方法
pp 1に振り分けた通信がtunnel 1を通過しているかsyslogから確認。設定できていればログは残らない。これ設定したらネット接続できなくなった、、なぜ。。。
※フィルターの番号がバッティングしていた。
ip filter 500011 pass-log * * udp 500 * (改行)
　ip filter 500012 pass-log * * udp 4500 * (改行)
　ip filter 500013 pass-log * * udp 1701 * (改行)
　ip filter 500014 pass-log * * esp (改行)
　ip filter 3000 pass * * (改行)
　tunnel select 1 (改行)
　ip tunnel secure filter out 500011 500012 500013 500014 3000 (改行)
　syslog notice on (改行)



〇フィルたーの仕様
なにかしらのfilterに合致しないと通信は破棄される。
https://www.rtpro.yamaha.co.jp/RT/manual/rt-common/ip/ip_interface_secure_filter.html
のフィルターにマッチしないパケットは破棄される。
最後に以下のフィルターを追加しないとフィルターに合致しない通信は破棄される
ip filter xxxx[数字] pass * * (改行)


〇IPSECの暗号化はどこで複合される？
インターネットに外に出ていくまでには複合されているらしい。暗号化した機器で複合を実施する


〇1つの通信でポートとプロトコルは複数使う場合がある
IPSECもそうで、FTPも該当する。



〇ipoe接続でv4の固定IP使える契約すればこんなめんどうなことしなくていい。
会社だったら金払ってこの煩雑さを回避するだろうな。


====================================
〇参考　回線を1つしか使ってないところ以外は以下の記事と同様の設定）
https://note.com/ks_ronronchi/n/nbf649ac2a8ea

・NW環境
光回線インターネット　とくとくBB光
https://gmobb.jp/service/gmohikari/?pid=ovt507&utm_source=yahoo&utm_medium=cpc&utm_campaign=gmohikari&utm_content=ovt_200102_221101&yclid=YSS.1000014304.EAIaIQobChMI0aXH0JK1hQMVVOEWBR2fHgl1EAAYASAAEgI8ivD_BwE
PPPoE接続とIPoE接続ができたから契約回線はひとつ。
GUIは便利だけど少し変わったことすると対応王できなくなるよなと実感。NATディスクリプターの番号とip filterの番号はLAN間接続でも注意が必要。

https://note.com/ks_ronronchi/n/nbf649ac2a8ea
---------------------------------引用---------------------------------
管理＞保守＞コマンドの実行　から、以下のコマンドを追加します。

ip filter 500011 pass * * udp 500 *
ip filter 500012 pass * * udp 4500 *
ip filter 500013 pass * * udp 1701 *
ip filter 500014 pass * * esp

copy
上記番号のフィルターがVPN接続に必要と捉えてください。
さらに追加で、500011から500014の接続はPPPoEへと
指示するコマンドを追加します。

no ip route default gateway tunnel 1
ip route default gateway tunnel 1 gateway pp 1 filter 500011 500012 500013 500014
---------------------------------引用---------------------------------
l2tp/ipsecで使うプロトコルはここから拾ってきたのかな？
送信元に暗号化で使うプロトコル指定している。
https://network.yamaha.com/setting/router_firewall/vpn/vpn_client/vpn-smartphone-setup_rtx1200


ip filter仕様
https://www.rtpro.yamaha.co.jp/RT/manual/rt-common/ip/ip_filter.html
引用先の例
ip filter 500011 pass * * udp 500 *
ip filter [被らない適当な番号(1〜21474836)GUIで設定するなら被らない番号にする] [passは続くフィルター設定と一致すれば通信を通す。他にも設定値あり] [始点ip。※は全部のip通す。] [終点ip。※は全部のip通す。] [フィルタリングするパケットのニーモック(省略語みたいなやつ)か番号でプロトコル指定] [送信元ポート指定。*はなんでも通す。省略は*と同じ] [送信先(宛先)のポート番号。*はなんでも。省略は*と同じ]


その他
○フィルタ型ルーティング
同一経路を複数のゲートウェイへ振り分けする。
フィルタ型ルーティングは、IPアドレス・プロトコル・ポート番号によって同一経路を複数のゲートウェイへ振り分けることができる機能。
https://www.rtpro.yamaha.co.jp/RT/docs/filter-routing/filter-routing.html
引用先の例
noコマンドでデフォルトゲートウェイのコマンドを削除
no ip route default gateway tunnel 1
作成したフィルターに該当する通信は通す
ip route default gateway tunnel 1 gateway pp 1 filter 500011 500012 500013 500014
https://www.rtpro.yamaha.co.jp/RT/manual/rt-common/ip/ip_route.html
仕様
ip route network gateway gateway1 [parameter] [gateway gateway2 [parameter]...]
ip route [defult(デフォルト経路)かip指定]gateway [ipやppインターフェース指定]
 [parameterオプションでフィルタ型経路などメトリックを指定。引用先の方はtunnel 1で作成したトンネル1を指定している。※tunnel select 1〜tunnel enable 1でtunnelを作って有効にしている] [※gateway gateway2で他のルートの指定が可能。※ストリームとはtcp通信を指す？]
※フィルタ型経路について。(※ルーターが通信データの振り分けをするためにルーティングテーブルを見る時は、まだ通信は暗号化されてるってことだよな？そうしないとデフォゲのの振り分けできないよな。※仕様あり)
スタティックルートはない場合、
l2tp/ipsecでvpnした時のインターネットへの通信経路:ルーターが設定コマンドでフィルタ型経路があるか確認→該当するフィルターあり→pp1からインターネットへ
lanからインターネットの通信経路:ルーターが設定コマンドでフィルタ型経路があるか確認→該当するフィルターかし→tunnel1からインターネットへ
ヤマハサイトの静的経路の説明
IP の静的経路を設定する。
gateway のパラメータとしてフィルタ型経路を指定した場合には、記述されている順にフィルタを適用していき、適合したゲートウェイが選択される。
適合するゲートウェイが存在しない場合や、フィルタ型経路が指定されているゲートウェイが一つも記述されていない場合には、フィルタ型経路が指定されていないゲートウェイが選択される。
フィルタ型経路が指定されていないゲートウェイも存在しない場合には、その経路は存在しないものとして処理が継続される。
フィルタ型経路が指定されていないゲートウェイが複数記述された場合の経路の選択は、それらの経路を使用する時点でラウンドロビンにより決定される。
※tunnelコマンド　
https://www.rtpro.yamaha.co.jp/RT/manual/rt-common/operation/tunnel_select.html

○パケットフィルターの仕様※
パケットがルータへ到着→ルーティング→フィルター　ルーティング後にフィルター情報を見ている？
1.6. 処理の位置づけ↓
http://www.rtpro.yamaha.co.jp/RT/docs/nat-descriptor/nat-abstruct.html
l2tp/ipsec vpn接続
ソースポートをvpnで使っているプロトコルを指定すると何故ppインターフェースに転送されるのか？どうやってルーターはvpn接続してパケットだと認識しているのか？
フィルターがvpnのパケットだと認識するのであれば、vpn接続した段階ではパケットは暗号化されているのか？
l2tp/ipsecで暗号化するときにtcpかudpがヘッダのパケットについているからそれを目印にしてるのかな？l2tp/ipsecしたら端末のパケットにはipsecの情報がずっとついてんのか？そうじゃないと送信元(送信ポート)からl2tp/ipsecの通信だと判断できないよな。
l2tp/ipsecの通信の向き→
[スマホ]---{[tunnel1] l2tp/ipsec tunnel1]}--[pp if 2]-----[rtx830]-----[qq if 1]-----[インターネット
if=インターフェース




○l2tp/ipsecとは
https://www.rtpro.yamaha.co.jp/RT/docs/l2tp_ipsec/index.html

○pppoeとipoeの併用
https://note.com/ks_ronronchi/n/nbf649ac2a8ea
https://qiita.com/hxbdy625/items/d9765e517e4322f0552e

○ゲートウェイ指定コマンド
https://www.rtpro.yamaha.co.jp/RT/manual/rt-common/ip/ip_route.html

○MAP-Eとは
https://nttdocomo-ssw.com/nssw/dhkr/ouchinetpress/communication/article039/

○BASとは
BAS ：Broad band Access Server
https://www.ciaj.or.jp/hats/japanese/guideline/lan/HATS-L-101-V1.0.pdf

○RTX830
4.35 TELNET サーバーへアクセスできるホストの設定
https://www.rtpro.yamaha.co.jp/RT/manual/rt-common/setup/telnetd_host.html

○4.21 コンソールの表示文字数の設定
https://www.rtpro.yamaha.co.jp/RT/manual/rt-common/setup/console_columns.html

○pppoe接続
https://network.yamaha.com/setting/router_firewall/internet/internet_connect/opticalfiber_connection

○ipoe接続
https://network.yamaha.com/setting/router_firewall/ipv6/v6plus#non-contract


○結果
ip filterで指定したプロトコルは何故4つを指定したのかわからなかった。どこにl2tp/ipsecで使うプロトコロって書いてあったのかな
デフォゲの振り分けの実現方法はわかったけどl2tp/ipsec接続で暗号化されたパケットがいつまで暗号化されているのかわからなかった。
そもそもこれどこ見てんの
https://www.rtpro.yamaha.co.jp/RT/manual/rt-common/ip/ip_filter.html
src_port_list : protocol に、TCP(tcp/tcpsyn/tcpfin/tcprst/established/tcpflag)、UDP(udp) のいずれかが含まれる場合は、TCP/UDP のソースポート番号。protocol が ICMP(icmp) 単独の場合には、ICMP タイプ。


○追記
プロトコルでipフィルターかける方法はわかったけど、 vpnの
https://www.rtpro.yamaha.co.jp/RT/docs/filter-routing/filter-routing.html
例2.プロトコルによって接続先を変える場合（IPv4）
ip filter 1 pass * * tcp * smtp,pop3
ip filter 2 pass * * tcp * www
ip route default gateway pp 1 filter 1 gateway pp 2 filter 2 gateway pp 3
dns server select 1 pp 1 mx .
dns server select 2 pp 1 a mail-server.
dns server select 3 pp 1 a pop-server.
dns server select 4 pp 2 a www.server
dns server pp 3
[解説]
TCPのSMTPとPOP3宛のパケットはPP1へ、TCPのWWW宛のパケットはPP2へ、それ以外のパケットはPP3へ送信する。
[注意事項]
発呼の原因になるパケットはDNS問い合わせであると予想できるので、DNS問い合わせを適切な相手先に振る必要がある。

ソースポートについて
例えば、HTTPでWebクライアントとWebサーバが通信する場合、デフォルトではWebサーバ側はTCPの80番ポートを、クライアント側は用途の決まっていないエフェメラルポートから空いているものを適当に一つ選んで使用する。クライアントからサーバへのパケットにはポートが「送信元49152番、宛先80番」などと記載され、サーバからクライアントへはこれとは逆に「送信元80番、宛先49152番」となる。
https://e-words.jp/w/ソースポート.html

1701はl2tpで使う待受ポート
400と4500はipsecで使うポート
espは暗号化でつかうあれやこれやするやつ
l2tp/ipsecでつかうipなんでしょうかね。firewall超える時も設定しそう。
ひとつの通信の送信元ポートは1つだろぅ？なんでipフィルターで複数のポート指定してるのか？
もしくは、udpでカプセル化するからひとつのパケットに送信元ポートの情報が何個かついているのか？
わからないなぁ。
https://network.yamaha.com/setting/router_firewall/vpn/vpn_client/vpn-smartphone-setup_rtx1200
※プロバイダー接続用のPPインターフェースにフィルターを設定している場合には、以下のフィルター設定を追加する必要があります。
環境に応じて適切な設定を追加してください。
pp select 1
ip pp secure filter in ... 200080 200081 200082 200083 ...
ip filter 200080 pass * 192.168.100.1 esp * *
ip filter 200081 pass * 192.168.100.1 udp * 500
ip filter 200082 pass * 192.168.100.1 udp * 4500
ip filter 200083 pass * 192.168.100.1 udp * 1701
https://www.infraexpert.com/study/ipsec15.html

○さらに追記
natトラバーサルって機能がl2tp/ipsecでは使われている。ipマスカレードするときに送信元ポートが変えれない問題を解決する。
https://www.rtpro.yamaha.co.jp/RT/docs/ipsec/nat-traversal.html
そもそもl2tp/ipsecの設定コンフィグのコマンドの仕様がわかっていないからfilterの設定がわからないのか。web guiで入力されるコマンドをひとつひとつ見直してみることにする。
https://network.yamaha.com/setting/router_firewall/vpn/vpn_client/vpn-smartphone-setup_rtx1200