EN JA
NG_IFACE(4)
NG_IFACE(4) FreeBSD Kernel Interfaces Manual NG_IFACE(4)

名称

ng_ifaceインタフェース netgraph ノードタイプ

書式

#include < netgraph/ng_iface.h>

解説

iface ノードは、netgraph ノードでもありシステムネットワーキングインタフェースでもあります。 iface ノードが作成される時、 ifconfig(8) によってアクセス可能な新しいインタフェースが出現します。 iface ノードインタフェースは、 ng0, ng1 などと命名されます。ノードがシャットダウンされる時、対応するインタフェースは、取り除かれ、インタフェース名は、将来の iface ノードによって再使用できるようになります。新しいノードは、常に最初の未使用のインタフェースをとります。もし、ノードは、無名のままで名前がまだ存在しなければ、ノードそれ自身は、そのインタフェースと同じ名前を割り当てられます。

iface ノードは、それぞれサポートされたプロトコルに対応する 1 つのフックを持っています。インタフェースによって送信されたパケットは、対応するプロトコル特有のフックを流します。同様に、フック上で受信されたパケットは、対応するプロトコルスタックへ受信されたパケットとしてインタフェースに出現します。現在サポートされているプロトコルは、IP、IPv6、AppleTalk、IPX、ATM、 NATM と NS です。

iface ノードは、ポイントツーポイントインタフェースまたはブロードキャスト (放送) インタフェースとして設定できます。インタフェースがダウンしている時のみ、設定を変更できます。デフォルトモードは、ポイントツーポイントです。

iface ノードは、バークレイパケットフィルタ (Berkeley Packet Filter (BPF)) をサポートします。

フック

このノードタイプは、次のフックをサポートします:
inet
IP パケットの送信と受信。
inet6
IPv6 パケットの送信と受信。
atalk
AppleTalk パケットの送信と受信。
ipx
IPX パケットの送信と受信。
atm
ATM パケットの送信と受信。
natm
NATM パケットの送信と受信。
ns
NS パケットの送信と受信。

コントロールメッセージ

このノードタイプは、次を加えて、一般的なコントロールメッセージをサポートします:
NGM_IFACE_GET_IFNAME ( getifname)
NUL (ヌル) 文字で終了した ASCII 文字列として関連インタフェースの名前を返します。通常、これは、ノードの名前と同じです。
NGM_IFACE_GET_IFINDEX ( getifindex)
32 ビットの整数として関連インタフェースのグローバルなインデックスを返します。
NGM_IFACE_POINT2POINT ( point2point)
ポイントツーポイントモードにインタフェースを設定します。現在インタフェースを作動させてはいけません。
NGM_IFACE_BROADCAST ( broadcast)
インタフェースをブロードキャストモードに設定します。現在インタフェースを作動させてはいけません。
NGM_CISCO_GET_IPADDR ( getipaddr)
このメッセージは、 ng_cisco(4) ノードタイプによって定義されます。説明については、 ng_cisco(4) を参照してください。

シャットダウン

このノードは、 NGM_SHUTDOWN コントロールメッセージを受け取る時、シャットダウンします。関連するインタフェースは、取り除かれ、将来の iface ノードによって使用可能になります。

ほとんどの他のノードタイプと異なり、フックがすべて切断された時、 iface ノードは、なくなりません。むしろ、明示的な NGM_SHUTDOWN コントロールメッセージは、要求されます。

ALTQ サポート

ng_iface インタフェースは、ALTQ 帯域幅管理機能をサポートします。しかしながら、それは、制限された帯域幅での物理的なインタフェースでないので、 ng_iface は、特別の場合です。後者がいくつかのトンネル化された接続に対応するなら、例えば、PPPoE または PPTP、 ng_iface で ALTQ に変えるべきではありません。この場合、ALTQ は、インタフェースで設定されるべきです、すなわち、カプセル化されたパケットを転送するために使用されます。利用者のグラフが、同期またはモデムのどちらかの、ある種のシリアルラインで終るとき、 ng_iface は、ALTQ をオンにする正しい場所です。

歴史

iface ノードタイプは、 FreeBSD 4.0 で実装されました。

作者

Archie Cobbs <archie@FreeBSD.org>
October 28, 2005 FreeBSD