ルータを作ったと言っても、ハードを作ったのではなく、プログラムでルータを実現してみた、という話です。久々にプログラマー社長らしく、プログラミングネタです。 ルータの役割としては、異なるセグメントのネットワークをつなぐということになります。一般的にはインターネットルータとしてISPとの間でPPPoEなどで接続を確立したり、あるいはグローバルアドレスを使い回すためにNATやIPマスカレードをする機能が目立ちますが、本来は異なるセグメントをつなぐのがルータの役目です。 同一セグメント内の通信は、IPアドレスに対応するMACアドレスを調べて、MACアドレス宛にパケットのやりとりをして実現しています。IPアドレスからMACアドレスを調べるためには、ARPという仕組みが使われます(IPv4の場合)。あるIPアドレスに対応するMACアドレスを調べる際には、「このIPアドレスは誰?」とセグメント全体に対し