raw

Autres langues

Langue: ja

Version: 1998-10-02 (openSuse - 09/10/07)

Autres sections - même nom

Section: 7 (Divers)

̾Á°

raw, SOCK_RAW - Linux ¤Î IPv4 raw ¥½¥±¥Ã¥È

½ñ¼°

#include <sys/socket.h>
#include <netinet/in.h>
raw_socket = socket(PF_INET, SOCK_RAW, int protocol);

ÀâÌÀ

raw ¥½¥±¥Ã¥È¤ò»È¤¦¤È¡¢¿·¤·¤¤ IPv4 ¥×¥í¥È¥³¥ë¤ò¥æ¡¼¥¶¶õ´Ö¤Ç ¼ÂÁõ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£ raw ¥½¥±¥Ã¥È¤Ï¡¢¥ê¥ó¥¯¥ì¥Ù¥ë¥Ø¥Ã¥À¤ò ´Þ¤Þ¤Ê¤¤ raw ¥Ç¡¼¥¿¥°¥é¥à¤ÎÁ÷¼õ¿®¤¬¤Ç¤­¤ë¡£

IPv4 ¥ì¥¤¥ä¤Ï¡¢°·¤Ã¤Æ¤¤¤ë¥½¥±¥Ã¥È¤Ç IP_HDRINCL ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ ¥Ñ¥±¥Ã¥È¤òÁ÷¿®¤¹¤ë¤È¤­¤Ë IP ¥Ø¥Ã¥À¤òÀ¸À®¤¹¤ë¡£ IP_HDRINCL ¥ª¥×¥·¥ç¥ó¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¤­¤Ï¡¢¥Ñ¥±¥Ã¥È¤Ë¤Ï IP ¥Ø¥Ã¥À¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¼õ¿®»þ¤Ë¤Ï¡¢ IP ¥Ø¥Ã¥À¤Ï¾ï¤Ë¥Ñ¥±¥Ã¥È¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¡£

¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢ CAP_NET_RAW ¸¢¸Â¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤¬ raw ¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

¤³¤Î raw ¥½¥±¥Ã¥È¤Ë»ØÄꤵ¤ì¤¿ protocol ÈÖ¹æ¤Ë¥Þ¥Ã¥Á¤¹¤ëÁ´¤Æ¤Î¥Ñ¥±¥Ã¥È¤È¥¨¥é¡¼¤È¤¬¡¢¤³¤Î¥½¥±¥Ã¥È¤ËÅϤµ¤ì¤ë¡£ µö²Ä¤µ¤ì¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤Î¥ê¥¹¥È¤Ï RFC 1700 ¤Î³ä¤êÅö¤ÆÈÖ¹æ¤È getprotobyname(3) ¤ò¸«¤è¡£

IPPROTO_RAW ¤Î¥×¥í¥È¥³¥ë¤Ï°ÅÌۤΤ¦¤Á¤Ë IP_HDRINCL ¤òÍ­¸ú¤Ë¤¹¤ë¤Î¤Ç¡¢ ÅϤµ¤ì¤¿¥Ø¥Ã¥À¤Ç»ØÄꤵ¤ì¤¿¡¢¤¢¤é¤æ¤ë IP ¥×¥í¥È¥³¥ë¤òÁ÷¿®¤Ç¤­¤ë¡£ IPPROTO_RAW ·Ðͳ¤Ç¤Î¤¢¤é¤æ¤ë IP ¥×¥í¥È¥³¥ë¤Î¼õ¿®¤Ï¡¢ raw ¥½¥±¥Ã¥È¤òÍѤ¤¤Æ¤Ï¹Ô¤¨¤Ê¤¤¡£

IP ¥Ø¥Ã¥À¥Õ¥£¡¼¥ë¥É¡£ IP_HDRINCL ¤Ë¤è¤Ã¤ÆÁ÷¿®»þ¤ËÊѹ¹¤µ¤ì¤ë¡£
IP ¥Á¥§¥Ã¥¯¥µ¥à ¾ï¤ËÊѹ¹¤µ¤ì¤ë¡£
¥½¡¼¥¹¥¢¥É¥ì¥¹ ¸µ¤ÎÃͤ¬ 0 ¤Î»þ¤ËÊѹ¹¤µ¤ì¤ë¡£
¥Ñ¥±¥Ã¥È ID ¸µ¤ÎÃͤ¬ 0 ¤Î»þ¤ËÊѹ¹¤µ¤ì¤ë¡£
Á´ÂΤÎŤµ ¾ï¤ËËä¤á¤é¤ì¤ë¡£

IP_HERINCL ¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢ IP ¥Ø¥Ã¥À¤Ë 0 ¤Ç¤Ê¤¤Á÷¿®À襢¥É¥ì¥¹¤¬µ­Æþ¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ï¡¢ ¤½¤ÎÁ÷¿®À襢¥É¥ì¥¹¤¬¥Ñ¥±¥Ã¥È¤Î·ÐÏ©¤ò·è¤á¤ë¤Î¤ËÍѤ¤¤é¤ì¤ë¡£ MSG_DONTROUTE ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë»þ¤Ë¤Ï¡¢ Á÷¿®À襢¥É¥ì¥¹¤Ï¥í¡¼¥«¥ë¤Ê¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»²¾È¤¹¤ë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¤µ¤â¤Ê¤¤¤È¡¢¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤Î»²¾È¤Ï¤¤¤º¤ì¤Ë¤»¤è¹Ô¤ï¤ì¤ë¤¬¡¢ ¥²¡¼¥È¥¦¥§¥¤¤¬É¬ÍפʷÐÏ©¤Ï̵»ë¤µ¤ì¤ë¡£

IP_HDRINCL ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ raw ¥½¥±¥Ã¥È¤Î IP ¥Ø¥Ã¥À¥ª¥×¥·¥ç¥ó¤ò setsockopt(2) ¤òÍѤ¤¤ÆÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¾ÜºÙ¤Ê¾ðÊó¤Ï ip(7) ¤ò¸«¤è¡£

Linux 2.2 ¤Ç¤Ï¡¢ IP ¥Ø¥Ã¥À¤ÎÁ´¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤È¥ª¥×¥·¥ç¥ó¤È¤ò IP ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÀßÄê¤Ç¤­¤ë¡£¤·¤¿¤¬¤Ã¤Æ raw ¥½¥±¥Ã¥È¤¬É¬Íפˤʤë¤Î¤Ï¡¢¿·¤·¤¤¥×¥í¥È¥³¥ë¤òÀ߷פ¹¤ë¾ì¹ç¤«¡¢ ¥æ¡¼¥¶¡¼¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ò»ý¤¿¤Ê¤¤¥×¥í¥È¥³¥ë (ICMP ¤Ê¤É) ¤ò°·¤¦¾ì¹ç¤Ë ¸Â¤é¤ì¤ë¡£

¥Ñ¥±¥Ã¥È¤Ï¡¢¼õ¿®¤µ¤ì¤ë¤È¤Þ¤º¥×¥í¥È¥³¥ë¤Ë¥Ð¥¤¥ó¥É¤·¤Æ¤¤¤ë raw ¥½¥±¥Ã¥È¤ËÅϤµ¤ì¡¢ ¤½¤Î¸å¤Ç¾¤Î¥×¥í¥È¥³¥ë¥Ï¥ó¥É¥é (¥«¡¼¥Í¥ë¤Î¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤Ê¤É) ¤ËÅϤµ¤ì¤ë¡£

¥¢¥É¥ì¥¹¤Î¥Õ¥©¡¼¥Þ¥Ã¥È

raw ¥½¥±¥Ã¥È¤Ïɸ½à¤Î sockaddr_in ¥¢¥É¥ì¥¹¹½Â¤ÂΤòÍѤ¤¤ë¡£ÄêµÁ¤Ï ip(7) ¤Ç¤Ê¤µ¤ì¤Æ¤¤¤ë¡£ sin_port ¥Õ¥£¡¼¥ë¥É¤ò IP ¥×¥í¥È¥³¥ëÈÖ¹æ¤Î»ØÄê¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¤¬¡¢ Linux 2.2 ¤Ç¤Ï¤³¤ì¤ÏÁ÷¿®»þ¤Ë¤Ï̵»ë¤µ¤ì¡¢¾ï¤Ë 0 ¤Ë¤µ¤ì¤ë (¥Ð¥° ¤Î¹à¤ò»²¾È)¡£ ¼õ¿®¥Ñ¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï¡¢ sin_port ¤Ï¤½¤Î¥Ñ¥±¥Ã¥È¤Î¥×¥í¥È¥³¥ë¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ ÍѤ¤¤ë¤³¤È¤Î¤Ç¤­¤ë IP ¥×¥í¥È¥³¥ë¤Ï¡¢¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë <netinet/in.h> ¤ò¸«¤è¡£

¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó

raw ¥½¥±¥Ã¥È¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢ IPPROTO_RAW ¥Õ¥¡¥ß¥ê¡¼¥Õ¥é¥°¤òÍ¿¤¨¤Æ setsockopt(2) ¤ò¸Æ¤Ù¤ÐÀßÄê¤Ç¤­¡¢ getsockopt(2) ¤ò¸Æ¤Ù¤Ð¼èÆÀ¤Ç¤­¤ë¡£
ICMP_FILTER
IPPROTO_ICMP ¥×¥í¥È¥³¥ë¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤¿ raw ¥½¥±¥Ã¥È¤Î¤¿¤á¤ÎÆüì¤Ê¥Õ¥£¥ë¥¿¤òÍ­¸ú¤Ë¤¹¤ë¡£ ¤³¤ÎÃÍ¤Ï ICMP ¥á¥Ã¥»¡¼¥¸¤Î¥¿¥¤¥×¤½¤ì¤¾¤ì¤ËÂФ·¤Æ¡¢¤É¤ì¤ò¥Õ¥£¥ë¥¿¡¼¥¢¥¦¥È ¤¹¤ë¤«¤òɽ¤·¤¿¥Ó¥Ã¥È¥»¥Ã¥È¤Ç¤¢¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï ICMP ¥á¥Ã¥»¡¼¥¸¤ÏÁ´¤¯¥Õ¥£¥ë¥¿¡¼¤·¤Ê¤¤¡£

¤µ¤é¤Ë¡¢¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Ë»È¤¨¤ëÁ´¤Æ¤Î ip(7) SOL_IP ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¡£

¥¨¥é¡¼½èÍý

¥Í¥Ã¥È¥ï¡¼¥¯¤ÇÀ¸¤¸¤¿¥¨¥é¡¼¤¬¥æ¡¼¥¶¤ËÅϤµ¤ì¤ë¤Î¤Ï¡¢ ¥½¥±¥Ã¥È¤¬ÀܳºÑ¤ß¤Î¾ì¹ç¤« IP_RECVERR ¥Õ¥é¥°¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤é¤ì¤ë¡£ ÀܳºÑ¤ß¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ¤Ï¡¢ EMSGSIZE ¤ª¤è¤Ó EPROTO ¤À¤±¤¬ÅϤµ¤ì¤ë (¸ß´¹À­¤Î¤¿¤á)¡£ IP_RECVERR ¤òÀßÄꤹ¤ë¤È¡¢Á´¤Æ¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¨¥é¡¼¤¬¥¨¥é¡¼¥­¥å¡¼¤ËÊݸ¤µ¤ì¤ë¡£

¥¨¥é¡¼

EMSGSIZE
¥Ñ¥±¥Ã¥È¤¬Â礭¤¹¤®¤ë¡£ Path MTU Discoverry ¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë (IP_MTU_DISCOVER ¥½¥±¥Ã¥È¥Õ¥é¥°) ¤«¡¢¥Ñ¥±¥Ã¥È¤Î¥µ¥¤¥º¤¬ IPv4 ¤Çµö¤µ¤ì¤Æ¤¤¤ë ¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤ÎºÇÂçÃÍ 64KB ¤ò±Û¤¨¤Æ¤¤¤ë¡£
EACCES
¥æ¡¼¥¶¡¼¤¬ broadcast ¥Õ¥é¥°¤òÀßÄꤷ¤Æ¤¤¤Ê¤¤¥½¥±¥Ã¥È¤òÍѤ¤¤Æ ¥Ö¥í¡¼¥É¥­¥ã¥¹¥È¥¢¥É¥ì¥¹¤ËÁ÷¿®¤ò¹Ô¤ª¤¦¤È¤·¤¿¡£
EPROTO
¥Ñ¥é¥á¡¼¥¿¤ÎÌäÂê¤òÊó¹ð¤¹¤ë ICMP ¥¨¥é¡¼¤ò¼õ¤±¼è¤Ã¤¿¡£
EFAULT
ÉÔÀµ¤Ê¥á¥â¥ê¥¢¥É¥ì¥¹¤¬Í¿¤¨¤é¤ì¤¿¡£
EOPNOTSUPP
¥½¥±¥Ã¥È¸Æ¤Ó½Ð¤·¤ËÉÔÀµ¤Ê¥Õ¥é¥° (MSG_OOB ¤Ê¤É) ¤¬ÅϤµ¤ì¤¿¡£
EINVAL
°ú¿ô¤¬Àµ¤·¤¯¤Ê¤¤¡£
EPERM
¥æ¡¼¥¶¡¼¤Ï raw ¥½¥±¥Ã¥È¤ò¥ª¡¼¥×¥ó¤¹¤ë¸¢¸Â¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£ ¼Â¹Ô¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤Î¥×¥í¥»¥¹¤«¡¢ CAP_NET_RAW °À­¤ò»ý¤Ä¥×¥í¥»¥¹¤À¤±¤¬¤³¤ì¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£

¥Ð¡¼¥¸¥ç¥ó

IP_RECVERR ¤È ICMP_FILTER ¤Ï Linux 2.2 ¤ÇÅо줷¤¿¡£¤³¤ì¤é¤Ï Linux ¤Ç¤Î³ÈÄ¥¤Ç¤¢¤ê¡¢ °Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤ÏÍѤ¤¤ë¤Ù¤­¤Ç¤Ê¤¤¡£

Linux 2.0 ¤Ç¤Ï SO_BSDCOMPAT ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢ BSD ¤Î raw ¥½¥±¥Ã¥È¤Ë¤¢¤ë¥Ð¥°¤Ë¸ß´¹À­¤ò¼è¤ë¤³¤È¤¬¤Ç¤­¤¿ --- Linux 2.2 °Ê¹ß¤Ç¤Ï¡¢¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤â¤Ï¤ä¸úÎϤò»ý¤¿¤Ê¤¤¡£

Ãí°Õ

¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢raw ¥½¥±¥Ã¥È¤Ï Path MTU Discovery ¤ò¹Ô¤¦¡£ ¤Ä¤Þ¤ê¡¢¥«¡¼¥Í¥ë¤ÏÆÃÄê¤Î°¸Àè IP ¥¢¥É¥ì¥¹¤Î MTU (Maximum Transmission Unit; ºÇÂçžÁ÷ñ°Ì) ¤òµ­Ï¿¤·¡¢raw ¥Ñ¥±¥Ã¥È¤Î½ñ¤­¹þ¤ß¤¬ MTU ¤òĶ¤¨¤¿¾ì¹ç EMSGSIZE ¤òÊÖ¤¹¡£ EMSGSIZE ¤òÊÖ¤µ¤ì¤¿¾ì¹ç¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤Ù¤­¤Ç¤¢¤ë¡£ ¥½¥±¥Ã¥È¥ª¥×¥·¥ç¥ó IP_MTU_DISCOVER ¤Þ¤¿¤Ï ip_no_pmtu_disc sysctl ¤ò»È¤Ã¤Æ Path MTU Discovery ¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤â¤Ç¤­¤ë (¾ÜºÙ¤Ï ip(7) ¤ò»²¾È)¡£ Path MTU Discovery ¤ò̵¸ú¤Ë¤·¤¿¾ì¹ç¤Ï¡¢¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤¬ ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î MTU ¤è¤ê¤âÂ礭¤¤¤È raw ¥½¥±¥Ã¥È¤Ï¤½¤Î¥Ñ¥±¥Ã¥È¤ò ¥Õ¥é¥°¥á¥ó¥È²½¤·¤ÆÁ÷½Ð¤¹¤ë¡£ ¤·¤«¤·¤Ê¤¬¤é¡¢À­Ç½¤È¿®ÍêÀ­¤ÎÍýͳ¤«¤é Path MTU Discovery ¤ò ̵¸ú¤Ë¤¹¤ë¤Î¤Ï¿ä¾©¤Ç¤­¤Ê¤¤¡£

bind(2) ¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤ë¤È¡¢ raw ¥½¥±¥Ã¥È¤ò ÆÃÄê¤Î¥í¡¼¥«¥ë¥¢¥É¥ì¥¹¤Ë¥Ð¥¤¥ó¥É¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ¤³¤Î¥Ð¥¤¥ó¥É¤¬¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢»ØÄꤷ¤¿ IP ¥×¥í¥È¥³¥ë¤Î ¤¹¤Ù¤Æ¤Î¥Ñ¥±¥Ã¥È¤¬¼õ¿®¤µ¤ì¤ë¡£ ¤µ¤é¤Ë¡¢ SO_BINDTODEVICE ¤òÍѤ¤¤ì¤Ð raw ¥½¥±¥Ã¥È¤òÆÃÄê¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤Ë ¥Ð¥¤¥ó¥É¤µ¤»¤ë¤³¤È¤â¤Ç¤­¤ë¡£ socket(7) ¤ò¸«¤è¡£

IPPROTO_RAW ¥½¥±¥Ã¥È¤ÏÁ÷¿®ÀìÍѤǤ¢¤ë¡£¤â¤·¤É¤¦¤·¤Æ¤â¤¹¤Ù¤Æ¤Î IP ¥Ñ¥±¥Ã¥È¤ò ¼õ¿®¤·¤¿¤¤¾ì¹ç¤Ï¡¢ packet(7) ¥½¥±¥Ã¥È¤ò ETH_P_IP ¥×¥í¥È¥³¥ë¤ÇÍѤ¤¤ë¤³¤È¡£ packet ¥½¥±¥Ã¥È¤Ï raw ¥½¥±¥Ã¥È¤Î¤è¤¦¤Ë IP ¥Õ¥é¥°¥á¥ó¥È¤òºÆ¹½À®¤·¤Ê¤¤¤³¤È¤ËÃí°Õ¡£

datagram ¥½¥±¥Ã¥È¤ËÂФ¹¤ë¤¹¤Ù¤Æ¤Î ICMP ¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤·¤¿¤¤¾ì¹ç¤Ï¡¢ ÆÃÄê¤Î¥½¥±¥Ã¥È¤ËÂФ·¤Æ IP_RECVERR ¤òÍѤ¤¤ë¤Û¤¦¤¬Îɤ¤¾ì¹ç¤¬Â¿¤¤¡£ ip(7) ¤ò¸«¤è¡£

raw ¥½¥±¥Ã¥È¤Ï¡¢ Linux ¤Î¤¹¤Ù¤Æ¤Î IP ¥×¥í¥È¥³¥ë¤ò¼õ¿®¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ ICMP ¤ä TCP ¤Î¤è¤¦¤Ë¡¢¥«¡¼¥Í¥ëÆâÉô¤Ë¥×¥í¥È¥³¥ë¥â¥¸¥å¡¼¥ë¤ò»ý¤Ä¤è¤¦¤Ê ¤â¤Î¤â²Äǽ¤Ç¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ë¤Ï¡¢¥Ñ¥±¥Ã¥È¤Ï¥«¡¼¥Í¥ë¥â¥¸¥å¡¼¥ë¤È raw ¥½¥±¥Ã¥È¤ÎξÊý¤ËÅϤµ¤ì¤ë (raw ¥½¥±¥Ã¥È¤¬Ê£¿ô¤¢¤ì¤Ð¤½¤ì¤¾¤ì¤ËÅϤµ¤ì¤ë)¡£ °Ü¿¢À­¤ÎɬÍ×¤Ê¥×¥í¥°¥é¥à¤Ç¤Ï¤³¤Îµ¡Ç½¤Ë°Í¸¤¹¤ë¤Ù¤­¤Ç¤Ï¤Ê¤¤¡£ ¾¤Î¿¤¯¤Î BSD ¤Ë¤ª¤±¤ë¥½¥±¥Ã¥È¤Î¼ÂÁõ¤Ç¤Ï¤³¤ÎÅÀ¤Ë¤ª¤¤¤ÆÀ©¸Â¤¬¤¢¤ë¡£

Linux ¤Ï¥æ¡¼¥¶¡¼¤«¤éÅϤµ¤ì¤¿¥Ø¥Ã¥À¤ò·è¤·¤ÆÊѹ¹¤·¤Ê¤¤ (¤¿¤À¤· IP_HDRINCL ¤ÎÀâÌÀ¤Ë¤¢¤ë¤è¤¦¤Ë¡¢ 0 ¤ò¤¤¤¯¤Ä¤«Ëä¤á¤ë¾ì¹ç¤ò½ü¤¯)¡£ ¤³¤ì¤Ï¾¤Î¿¤¯¤Î raw ¥½¥±¥Ã¥È¤Î¼ÂÁõ¤Ç¤Ï°Û¤Ê¤ë¡£

°ìÈÌ¤Ë raw ¥½¥±¥Ã¥È¤Ï°Ü¿¢À­¤¬¤Ê¤¤¤³¤È¤¬Â¿¤¤¤Î¤Ç¡¢ °Ü¿¢À­¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ç¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£

raw ¥½¥±¥Ã¥È¤Ø¤ÎÁ÷¿®¤Ç¤Ï¡¢ IP ¥×¥í¥È¥³¥ë¤ò sin_port ¤«¤é¼èÆÀ¤Ç¤­¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤³¤Îµ¡Ç½¤Ï Linux 2.2 ¤Ç¤Ï»È¤¨¤Ê¤¯¤Ê¤Ã¤¿¡£ IP_HDRINCL ¤òÍѤ¤¤ì¤ÐƱÍͤΤ³¤È¤¬¼Â¸½¤Ç¤­¤ë¡£

¥Ð¥°

Æ©²á¥×¥í¥¯¥· (transparent proxy) ³ÈÄ¥¤Ë¤Ä¤¤¤Æ¤Ïµ­½Ò¤·¤Æ¤¤¤Ê¤¤¡£

IP_HDRINCL ¥ª¥×¥·¥ç¥ó¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤È¥Ç¡¼¥¿¥°¥é¥à¤Ï¥Õ¥é¥°¥á¥ó¥È²½¤µ¤ì¤º¡¢ ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î MTU ¤ÎÂ礭¤µ¤ËÀ©¸Â¤µ¤ì¤ë¡£

Á÷¿®ÍѤΠIP ¥×¥í¥È¥³¥ë¤ÎÀßÄê¤ò sin_port ¤Ë¤·¤Æ¤ª¤¯µ¡Ç½¤Ï Linux 2.2 ¤«¤é»È¤¨¤Ê¤¯¤Ê¤Ã¤¿¡£ ¥½¥±¥Ã¥È¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤Æ¤¤¤ë¥×¥í¥È¥³¥ë¤«¡¢ºÇ½é¤Î socket(2) ¥³¡¼¥ë¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥×¥í¥È¥³¥ë¤¬¾ï¤ËÍѤ¤¤é¤ì¤ë¡£

´ØÏ¢¹àÌÜ

recvmsg(2), sendmsg(2), capabilities(7), ip(7), socket(7)

¥Ñ¥¹ MTU ȯ¸«¤Ë´Ø¤¹¤ë¾ðÊó¤Ï RFC 1191 ¤Ë¤¢¤ë

IP ¥×¥í¥È¥³¥ë¤Ë´Ø¤·¤Æ¤Ï RFC 791 ¤È¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë <linux/ip.h> ¤ò»²¾È¡£