全く知らなかったNATのタイプ(NAT,NAPT等の種別ではない)
全く知らなかったことだが、NATにタイプがある。静的NAT,動的NAT,NAPTという種類ではなく、full cone,symmetric等のNAT変換する際のポート番号、逆変換の対象に関連するタイプ分けがある。実際これは知らない人がほとんどだと思う。何せ、RFCを読まなければほとんどWebでは見かけない情報だから・・・^^;ただ、実際はBBRに実装されているNATタイプにより様々な問題が引き起こされていると予想できる。では、簡単にこのNATタイプについて説明しようと思う。NATタイプは4種類あり、Full cone NAT,Address-Restricted cone NAT,Port-Restricted cone NAT,Symmetric NATの4種類となる。/ Full cone NAT・LAN側のIPアドレス:Port番号とNAT変換されるWAN側のIPアドレス:Port番号が1対1に対応する。・一度NATの変換され、対応エントリが存在する場合には、一度も送信したことのないWAN側の端末からのパケットもエントリが存在するIPアドレス:Port番号宛てにパケットが届いた場合はLAN側に転送する。/Address-Restricted cone NAT・LAN側のIPアドレス:Port番号とNAT変換されるWAN側のIPアドレス:Port番号が1対1に対応する。・一度送信したことのある端末からのパケット(送信元IPアドレスが一度送信したことある端末のも)であるならば、WAN側からのエントリが存在するIPアドレス:Port番号宛てにパケットが届いた場合はLAN側に転送する。/Port-Restricted cone NAT・LAN側のIPアドレス:Port番号とNAT変換されるWAN側のIPアドレス:Port番号が1対1に対応する。・一度送信したことのある端末からのパケット(送信元IPアドレス:Port番号が一度送信したことある端末のも)であるならば、WAN側からのエントリが存在するIPアドレス:Port番号宛てにパケットが届いた場合はLAN側に転送する。*つまり、WAN側からきたパケットの送信元IPとportが一回送信したことのあるやつじゃないと通さないってことですね。/Symmetric NAT・LAN側のIPアドレス:Port番号とNAT変換されるWAN側のIPアドレス:Port番号が1対1に対応し、WAN側の宛先毎に変換されるport番号が変わる。*LAN側の端末A(192.168.1.1,port1000)がWAN側の端末B(10.10.10.1,port80)に対してパケットを送信する際にはNAT変換されたIPアドレスとPort番号は(仮10.10.10.100,port1000)となるが、LAN側の端末A(192.168.1.1,port1000)がWAN側の端末C(10.10.10.2,port80)に対してパケットを送信する際にはNAT変換されたIPアドレスとPort番号は(仮10.10.10.100,port1001)となる。より具体的には宛先Bのport80とport20に対してパケットを送信した場合にも同様に変換される歳のポート番号が変わることになる。以上のNATのタイプがある訳だが、下のNATタイプ程セキュリティレベルが高いことが分かる。一方、下のNATタイプ程様々な場面で問題が発生してくる。このようにNATタイプはセキュリティレベルと汎用性のトレードオフを考慮して、選択されている。一般的に家庭用のBBRのNATタイプは変更できないと思う。これに関しては、これからももう少し調査していこうと思うが、基本的に家庭用の物は素人が扱う物のため、難しい機能の変更は行う必要がないと考えられるため、BBRのコマンド操作ができなかったり、制限されていたりすると言う事だ。