何 Interfaceの2024年2月号で自作のIPv6専用ルータがc++で実装されており、これをgolangで再実装してみた。 事前学習 本編に入る前に、必要な前提知識を書いておく。 詳細はInterface2月号に丁寧な説明があるので(ぜひ購入してみてください)、ここではキーワードだけ記載する。 ネットワークの基礎知識 インターネットの階層構造 TCP/IPのパケットの構造 イーサネットフレーム ネットワークコマンドの基礎 ipコマンド関連 tcpdump IPv6 IPv4と比較 近隣探索(NA、NDパケット) ICMPv6 チェックサムと擬似ヘッダ NDテーブル パトリシアトライ木 linux関連 epoll ファイルディスクリプタ 本編 実装はgithubで公開している。 宛先のNDテーブルとフォワーディングテーブルが存在する場合のフローチャート。 NDテーブルを探索して見つから