*ブロードキャストパケットの受信とユニキャストパケット再送信 [#i4a9b23a] **背景 [#m8cd3143] ***システム導入 [#b30c11ae] BACnet/IPを使用して、電源設備監視 #ref(BACnet.gif,wrap) GCS (Global Control Server) -> HIS (Human Interface Station) への同報は、47808/UDPのブロードキャストパケット ~ ... VPNの仕様により、上の構成では他セグメントには伝播しない。 **ソリューション [#d4a36411] #ref(BACnet-Repeater.gif,wrap) ブロードキャストパケットをキャプチャし、ユニキャストパケットに変換して個々のHISに送りつける変換機を作成する。 ***Perlで実装 [#eb0acb53] -[[Net::RawIPを使う>http://kaw.ath.cx/cgi-bin/cvsweb/relay_udp_bcast/rawip/]] --内部的にpcap APIを仕様 --Berkeley packet filterのフィルタリングルールが適用可能。 -[[Socketを使う>http://kaw.ath.cx/cgi-bin/cvsweb/relay_udp_bcast/relay_udp_packet/]] --ソケットオプションで SO_BROADCASTを指定すると、自アドレス宛だけでなく自身の属しているネットワーク宛のブロードキャストパケットも受信できる。