Cente IPv6

Cente IPv6

・Cente TCP/IPv4部バージョンアップ
詳細はCente TCP/IPv4(Ver.1.50)改変履歴を参照のこと。

・IPv6アドレス自動生成アルゴリズムの変更
IPアドレスの追跡を防ぐために、IPv6アドレス自動生成アルゴリズムを、RFC4291準拠(MACアドレスから生成)からRFC7217準拠(ランダムに生成)にした。

・不正なIPv6パケットを受信すると誤動作する可能性がある(Cente障害情報: 002-0023)
IPv6ヘッダやNDPパケットのオプション長が不正に短い場合、実際のパケットデータより後ろ側のメモリ参照を行う可能性があった。これを修正した。

・DHCPv6のトランザクションIDなどが予測可能である(Cente障害情報: 002-0024)
DHCPv6のトランザクションID、IPv6フラグメントヘッダのIDが予測可能であった。これを修正した。

Cente IPv6

・Cente TCP/IPv4部バージョンアップ
詳細はCente TCP/IPv4(Ver.1.41)改変履歴を参照のこと。

・ボードサポートパッケージの追加
ボードサポートパッケージにSTマイクロエレクトロニクス社 STM32756G-EVALを追加した。

・dhcpc6_request_info()が最新の結果を返さない場合がある(Cente障害情報: 002-0022)
dhcpc6_request_info()が最新の結果を返さない場合があった。これを修正した。

・その他改善
環境によってはwarningが発生するコードがあったので修正した。

Cente IPv6

・Cente TCP/IPv4部バージョンアップ

詳細はCente TCP/IPv4(Ver.1.36)改変履歴を参照のこと。

・ボードサポートパッケージの変更

ボードサポートパッケージを以下の3機種とした。
‐ コンピューテックス社 CKB-RZ/A1H
‐ ルネサスエレクトロニクス社 RSK+RX65N
‐ ルネサスエレクトロニクス社 RSK+RX71M

・マルチキャスト受信の設定が反映されないことがある(Cente障害情報:002-0018)

ルータにマルチキャスト受信を登録するMLDv2パケットのHop Limit値が誤っており、ルータに無視される可能性があった。これを修正した。

・不正なDHCPv6パケット受信時、パケットの処理が正しく動作しないことがある(Cente障害情報:002-0019)

DHCPv6パケットのパースで、パケット長のチェックが不十分だった。不正な長さのDHCPv6パケットを破棄するようにした。

・不正なIPv6パケット受信時、通信できなくなる可能性がある(Cente障害情報:002-0020)

IPv6パケットのパースで、パケット長のチェックが不十分だった。不正な長さのIPv6パケットを破棄するようにした。

・DHCPv6がIPv6アドレス更新に失敗したとき、古いIPv6アドレスが残る(Cente障害情報:002-0021)

更新(Renew/Rebind)リクエストに対して否定(Nak)を受信したとき、新たに割り当て要求を実行する。このとき更新に失敗した古いIPv6アドレスが残っていた。これを修正した。

・その他改善

環境によってはワーニングが発生するコードがあったので修正した。

Cente IPv6

・Cente TCP/IPv4部バージョンアップ
詳細はCente TCP/IPv4(Ver.1.35)改変履歴を参照のこと。
・DHCPv6で、Advertise優先度が0に設定されたサーバと通信できない(Cente障害情報:002-0017)
Advertiseを複数受信したときの優先度の扱いに誤りがあり、優先度が0のものを無視していた。これを修正した。
・受信パケット長のチェックを強化
不正な長さのパケットを受信したとき、不正と判断できた時点で直ちに破棄するようにした。
・その他改善
環境によってはワーニングが発生するコードがあったので修正した。

Cente IPv6

・Cente TCP/IPv4部バージョンアップ
詳細はCente TCP/IPv4(Ver.1.34)改変履歴を参照のこと。
・プリフィックスを手動で設定できる機能を追加
デフォルトルータを手動で設定する際、プリフィックスも手動で設定可能とした。
・複数リンク環境でのDHCPv6使用
複数リンク環境で、同時に複数のリンクでDHCPv6を使用できるようにした。
・IPv6アドレス重複検査試行回数の設定が反映されない場合がある
getParam_IP6dad()によってCente IPv6に重複検査試行回数(DAD)を設定した際、正しく内部に反映されない場合があった。これを修正した。(Cente障害情報:002-0009)
・DHCPv6サーバと通信できなくなった場合に、取得した自IPv6アドレスを使い続けてしまう
DHCPv6で一度IPv6アドレスを取得した後、DHCPv6サーバがダウンするなどそれ以降通信できなくなった場合、リース時間を超えてアドレスが有効な状態のままになっていた。これを修正した。(Cente障害情報:002-0010)
・DHCPv6で複数のDNSサーバが取得できない
DHCPv6では自IPv6アドレスの他に、DNSサーバアドレスなども取得することが可能。しかし、DHCPv6サーバが複数のDNSサーバアドレスを通知しても、APIからは最初のDNSサーバアドレスしか取り出すことができない状態だった。これを修正した。(Cente障害情報:002-0011)
・FTPdを起動させているとき、IPv6でFTPcを使用するとコマンド実行が失敗してしまう
FTPdが起動しているとTCPポート番号21は着信のために使用している。ここで、FTPcのデータポートで使用するポート番号も21固定となっていたため、FTPcのコマンドが失敗していた。これを修正した。(Cente障害情報:002-0012)
・近隣者要請 (Neighbor Solicitation)実行中にリンクダウンさせると、通信できなくなることがある
IPv6パケットの送信に先だって近隣者要請が送信されるが、その応答を受信する前にEthernetケーブルを抜くなどI/Fをリンクダウンさせると、それ以降リンクアップさせても通信できなくなる場合があった。これを修正した。(Cente障害情報:002-0013)
・複数リンク環境で、あるI/Fをリンクダウンさせると他のI/Fも通信できなくなる場合がある
同時に複数I/Fを使用するマルチIP環境で使用している場合、どれかのI/FでEthernetケーブルを抜くなどI/Fをリンクダウンさせると、リンクアップ状態の他のI/Fも通信ができなくなる場合があった。これを修正した。(Cente障害情報:002-0014)
・DHCPv4の割り当てが完了しないと、DHCPv6の割り当ても完了しない
DHCPv4を実行している間、UDPモジュールがDHCPv4のみを受信する実装となっており、DHCPv6サーバからの応答を全て破棄していた。DHCPv4実行中もDHCPv6パケットを受信・処理できるよう修正した。(Cente障害情報:002-0015)
・DHCPv4のrenew/rebindに失敗すると、自IPv6アドレスが使用できなくなる
DHCPv4のrenew/rebindに対してDHCPサーバからNAKを受信した場合、DHCPv4を再起動させているが、その際、自IPv6アドレスもすべてクリアしてしまい、以後IPv6通信もできない状態になっていた。これを修正した。(Cente障害情報:002-0016)
・OSのサービスコールを直接呼び出している
get_mpfなどOSのサービスコールを直接呼び出している部分が残っていたので、全てctkernel経由に変更した。
・その他改善
コード上の軽微な改善を行った。

Cente IPv6

・Cente TCP/IPv4部バージョンアップ

詳細はCente TCP/IPv4(Ver.1.33)改変履歴を参照のこと。
 
・受信したRouter Advertisement(RA)のMフラグ内容に従ってDHCPを起動する機能を追加
受信したRAのMフラグが1の場合、自動でアドレスを生成せず、DHCPによってIPアドレスを取得する機能を追加した。
 
・デフォルトルータを手動で設定できる機能を追加
通常、デフォルトルータ情報はルータから受信するRAから収集するが、RAを送信しない環境でも使用できるよう、デフォルトルータを手動設定できるようにした。
 
不具合修正
・MLDルータからの問い合わせに応答しない場合がある
応答を送信する間にランダムな時間だけ待つ機能があるが、この計算方法に誤りがあり、まれに「応答を送信しない」と判断されることがあったので修正した。(Cente障害情報:002-0006)
 
・DHCPv6でメモリ破壊の恐れがある
UDP受信コールバック関数から呼ばれるDHCPv6の関数において、ローカル変数が必要なサイズより遥かに大きいサイズになっていた。これを修正した。(Cente障害情報:002-0007)
 
・IPv6フラグメントパケット受信時に、NULLポインタアクセスが発生する可能性がある
IPv6パケットを受信した際、そのパケットに拡張オプションが付加されていて、更にその拡張オプションが期待した順でない場合、NULLポインタアクセスが発生していた。これを修正した。(Cente障害情報:002-0008)

Cente IPv6

MLDv2対応

MLDv2機能(ホストモード)に対応した。

Cente TCP/IPv4部バージョンアップ

詳細はCente TCP/IPv4改変履歴を参照のこと。

Site-Local Unicast Prefixの廃止

Site-Local Unicast Prefixを使用しないように修正した。

ICMPエラー送信頻度制限機能追加

ICMPエラーの送信頻度を制限する機能を追加した。

ICMPのリダイレクトメッセージに対してエラーを返してしまう

ICMPのリダイレクトメッセージに対しては、エラーを返さないように修正した。

Destination Unreachableエラーの送信可否設定機能追加

Destination Unreachableエラーの送信可否を設定できるように変更した。

Destination Unreachableエラーで使用するコードの追加

Destination Unreachableエラーで使用するコードとして、"beyond scope of source apress"、 "source apress failed ingress/egress policy"、"reject route to destination" に対応するものを追加した。

"NULL"を0に変更

"NULL"という定義を0に置き換えた。

外部から受信したループバックアドレス宛てのパケットを処理してしまう

外部から受信したループバックアドレス宛てのパケットを破棄するように修正した。

Cente IPv6

DHCPc対応

IPv6でのDHCPクライアント機能に対応した。

Cente TCP/IPv4部バージョンアップ

詳細はCente TCP/IPv4改変履歴を参照のこと。

type0 routing headerの扱いを変更

type0 routing headerの脆弱性回避のため、そのヘッダが含まれるパケットは破棄するようにした。

IPv6 ReadyLogo Phase1/2のSelfTest NG項目の修正

IPv6ReadyLogo ProgramのPhase1、Phase2(IPv6 Core Protocols)のSelfTestにおいてNG項目が発生していたので修正した。

IPv4がDHCPにてアドレス取得中にNDPパケットが送信できない

NDPの受信処理がIPv4のステートに依存していたので、しないように修正した。

RSの送信元アドレスが正しくないことがある

通常RSの送信元アドレスはリンクローカルアドレスだが、宛先によっては0::0になってしまうことがあった。これを修正した。

OSリソース生成失敗が検出できない

初期化関数を呼んだとき、OSリソース生成が失敗しても正常終了していた。エラーを返すよう変更した。

Cente IPv6

BSDソケットAPI対応

BSDソケットに準拠したAPIに対応した。

ジャンボフレーム対応

ジャンボフレームの送受信が可能になった。

CenteTCP/IPv4部バージョンアップ

詳細はCenteTCP/IPv4改変履歴を参照のこと。

ホップリミットが0のRA受信時の動作が不正

ホップリミットが0のRAを受信すると自分自身のホップリミットも0に変更してしまっていたので、変更しないよう修正した。

リンクダウン時にIPv6アドレスを解放していなかった

リンクアップ・ダウンを繰り返すと新たにIPv6アドレスをアサインできなくなっていたので修正した。

2回目のリンクアップ以降でtcpip6_wai_rdy()が使えない

tcpip6_wai_rdy()が2回目以降のリンクアップで使用できなかった(無条件に関数から返っていた)ので修正した。

環境によってはエラーやワーニングが出る

定義不足や型の違いでエラーやワーニングが出ていたので修正した。

Cente IPv6

IPv6ReadyLogo Phase 1対応

IPv6ReadyLogo ProgramのPhase 1を取得した。

Cente TCP/IPv4部バージョンアップ

詳細はCente TCP/IPv4改変履歴を参照のこと。

送信元を自動設定、接続先をIPv4アドレスにするとTCP接続ができない

設定されたIPv4アドレスを誤ってIPv6アドレスとして処理してしまっていた。正しくIPv4アドレスとして処理されるよう修正した

リトルエンディアン環境で正しく動作しない

Ver.1.11での変更点に不備があり、リトルエンディアン環境でパケットが受信できなくなっていた。これを修正した。

ルーティングテーブルのエイジングが正しく動作しない

インターバル値の扱いが間違っており、正常時の10倍の時間ルートが保持されていたので修正した。

Page 1 of 2