|
1.
ネットワークモジュール
現在、モジュール構造のネットワーク接続スクリプトをサポートしています。
これにより、既存のものと互換性を保ちながら、新しいインタフェースの種類や設定モジュールのサポートを簡単に追加できます。
モジュールが必要とするパッケージがインストールされていれば、モジュールはデフォルトでロードされます。
ここでまだインストールされていないパッケージのモジュールを指定すると、インストールする必要があるパッケージがあることを示すエラーとなります。
理想は、同一サービスを提供する二つ以上のパッケージをインストール済みで、その中の一つを選ぶ必要があるときにだけモジュール設定を使用することです。
注意:
ここで紹介したすべての設定は、他に規定がなければ、/etc/conf.d/netに書かれています。
|
コード表示 1.1: モジュール選択 |
modules=( "iproute2" )
modules_eth0=( "pump" )
modules=( "!iwconfig" )
|
1.
インタフェースハンドラ
現在、ifconfigとiproute2の二つのインタフェースハンドラを提供しています。
ネットワークの設定のどんなことをするのにも、これらのうちの一つが必要です。
ifconfigは、今のGentooのデフォルトであり、システムプロファイルに含まれています。iproute2は、より強力で柔軟なパッケージですが、デフォルトでは含まれていません。
コード表示 1.1: iproute2をインストールする |
# emerge sys-apps/iproute2
modules=( "iproute2" )
|
ifconfigもiproute2もどちらもよく似たことをするので、基本設定を相互に動作するようにできます。
例えば、以下の抜粋コードのどちらも、どちらを使用しているかに関係なく動作します。
コード表示 1.1: ifconfigとiproute2の例 |
config_eth0=( "192.168.0.2/24" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0" )
config_eth0=( "192.168.0.2/24 brd 192.168.0.255" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" )
|
1.
DHCP
DHCPは、DHCPサーバからネットワーク情報(IPアドレス、DNSサーバ、ゲートウェイ、その他)を取得する手段です。
これは、ネットワーク上で稼動中のDHCPサーバが存在する場合、DHCPを使うことを各クライアントに指示する必要があり、それが自動的にネットワークを設定するということを意味します。
もちろん、DHCPを使えるようになる前に、必要なら無線やPPPなど、他の設定をする必要はあります。
DHCPの機能は、dhclient、dhcpcd または pumpによって提供されます。
各DHCPモジュールには、長所と短所があります。以下にざっと紹介します。
| DHCPモジュール |
パッケージ |
長所 |
短所 |
| dhclient |
net-misc/dhcp |
BIND DNSソフトウェアを作成しているISCによって作成されています。
設定項目が豊富
|
設定が極めて複雑で、ソフトウェアは非常に大きくなり過ぎており、DHCPからNTPサーバの情報を得ることはできず、デフォルト設定ではホスト名を送信しません
|
| dhcpcd |
net-misc/dhcpcd |
長い間Gentooではデフォルトであり、外部のツールに依存せず、Gentooで積極的に開発されています
|
たまに遅くなることがあり、与えられたIPアドレスなどの貸与期間に制限がない場合は、今のところデーモン化されません
|
| pump |
net-misc/pump |
軽量、外部ツールへの依存なし
|
性能向上のためには維持されておらず、信頼性が低く、特にモデム経由の場合に信頼性が低く、DHCPからNISサーバの情報を取得できません
|
二つ以上のDHCPクライアントがインストールされている場合、どれを使用するかを指定する必要があります - そうしないと可能ならdhcpcdをデフォルトにします。
DHCPモジュールに特定のオプションを与えるために、module_eth0="..."を使用してください。
(使用中のDHCPモジュールにmoduleを付け替えてください - たとえばdhcpcd_eth0)
DHCPの相互運用性の向上に勤めています - その一環としてdhcp_eth0変数を使用して以下のコマンドをサポートします。デフォルト設定ではこれらのどれも設定されていません。
-
release - 再利用できるようにIPアドレスを解放します
-
nodns - /etc/resolv.confを書き換えません
-
nontp - /etc/ntp.confを書き換えません
-
nonis - /etc/yp.confを書き換えません
コード表示 1.1: /etc/conf.d/netでのDHCP設定の例 |
modules=( "dhcpcd" )
config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10"
dhcp_eth0="release nodns nontp nonis"
|
注意:
dhcpcdとpumpは、デフォルトで現在のホスト名をDHCPサーバに送信します。
よって、これに関して何も指定する必要はありません。
|
1.
PPPoE/PPPoAによるADSL
最初に、ADSLソフトウェアをインストールする必要があります。
コード表示 1.1: pppパッケージのインストール |
# emerge net-dialup/ppp
|
注意:
もしPPPoAが必要なら、必ず>=baselayout-1.12.xを使用してください。
|
次に、PPPで使われるPPPネットスクリプトとイーサネットインタフェースのためのネットスクリプトを生成します。
コード表示 1.1: PPPとイーサネットのスクリプトの生成 |
# ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0
# ln -s /etc/init.d/net.lo /etc/init.d/net.eth0
|
必ず/etc/conf.d/rcでRC_NET_STRICT_CHECKING="yes"を設定してください。
ここで、/etc/conf.d/netの設定をする必要があります。
コード表示 1.1: 基本的なPPPoEの設定 |
config_eth0=( null )
config_ppp0=( "ppp" )
link_ppp0="eth0"
plugins_ppp0=( "pppoe" )
username_ppp0='user'
password_ppp0='password'
pppd_ppp0=(
"noauth"
"defaultroute"
"usepeerdns"
"holdoff 3"
"child-timeout 60"
"lcp-echo-interval 15"
"lcp-echo-failure 3"
noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp
)
depend_ppp0() {
need net.eth0
}
|
コード表示 1.1: /etc/ppp/pap-secretsの例 |
"username" * "password"
|
もしUSBモデムによるPPPoEを使用しているなら、br2684ctlをemergeする必要があるでしょう。
これについての適切な設定方法は、/usr/portage/net-dialup/speedtouch-usb/files/READMEを読んでください。
重要:
/etc/conf.d/net.exampleのADSLとPPPの章を注意深く読んでください。
個々のPPPの設定で必要になりそうなすべての設定方法について、より詳細な説明が多く含まれています。
|
1.
APIPA (Automatic Private IP Addressing)~自動プライベートIPアドレス割当て機能
APIPAは、インタフェースに169.254.0.0-169.254.255.255の範囲のアドレスに無作為にARPメッセージを送信することによって、空きアドレスを探します。
応答のないものがあった場合、そのアドレスをインタフェースに割り当てます。
DHCPサーバが存在せず、かつ直接インターネットに接続せず、かつ他の全てのコンピュータがAPIPAを使用しているプライベートネットワークにだけ役に立ちます。
APIPAをサポートするために、emerge net-misc/iputilsまたは、net-analyzer/arpingをしてください。
コード表示 1.1: /etc/conf.d/netでのAPIPA設定 |
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )
config_eth0=( "apipa" )
|
1.
Bonding(インタフェースを束ねる)
bonding/trunkingをする(インタフェースを束ねる)には、emerge net-misc/ifenslaveをします。
bondingは、ネットワーク帯域を増やすために使われます。
もし一つのネットワークにしたい二つのネットワークカードがあるなら、それらを束ねることができます。
そうすると、アプリケーションには一つのインタフェースとして見えますが、実際は両方のネットワークカードが使用されます。
コード表示 1.1: /etc/conf.d/netでのbonding設定 |
slaves_bond0="eth0 eth1 eth2"
config_bond0=( "null" )
depend_bond0() {
need net.eth0 net.eth1 net.eth2
}
|
1.
ブリッジ (802.1dのサポート)
ブリッジをサポートするには、emerge net-misc/bridge-utilsをします。
ブリッジは、異なるネットワーク同士を繋げるために使用されます。
例えば、ADSLモデム経由でインターネットに接続していて、他のコンピュータをADSLモデム経由でインターネットに接続できるようにするための無線接続カードを持っているサーバがあるとします。
この場合、二つのインタフェースを相互に繋げるために、ブリッジを作成できます。
コード表示 1.1: /etc/conf.d/netでのブリッジ設定 |
brctl_br0=( "setfd 0" "sethello 0" "stp off" )
bridge_br0="eth0 eth1"
config_eth0=( "null" )
config_eth1=( "null" )
config_br0=( "192.168.0.1/24" )
depend_br0() {
need net.eth0 net.eth1
}
|
重要:
複数のブリッジ設定を行う場合、(変数名)を参照してください。
|
1.
MACアドレス
sys-apps/baselayout-1.11.14かそれ以上を使用していて、特定のアドレスに変更したいなら、インタフェースのMACアドレスを変更するために何もemergeする必要はありません。
しかし、ランダムなMACアドレスに変更する必要があるか、上記のバージョンよりも古いbaselayoutを使用しているなら、この機能が有効になるにはemerge net-analyzer/macchangerをする必要があります。
コード表示 1.1: MACアドレスを変更する例 |
mac_eth0="00:11:22:33:44:55"
mac_eth0="random-ending"
mac_eth0="random-samekind"
mac_eth0="random-anykind"
mac_eth0="random-full"
|
1.
トンネリング
トンネリングをするには、インタフェースハンドラで実現できるので、何もemergeする必要はありません。
コード表示 1.1: /etc/conf.d/netでのトンネリング設定 |
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"
config_vpn0=( "192.168.0.2 peer 192.168.1.1" )
|
1.
VLAN (802.1qのサポート)
VLANをサポートするには、emerge net-misc/vconfigをします。
仮想LANは、たとえ別のセグメントであっても、あたかも単一のネットワークセグメントに接続されているように振舞うネットワークデバイスの集合です。
VLANに接続している機器には、たとえ物理的に同じネットワークを共有していても、同一のVLAN上の機器しか見えません。
コード表示 1.1: /etc/conf.d/netでのVLAN設定 |
vlans_eth0="1 2"
vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" )
vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" )
config_vlan1=( "172.16.3.1 netmask 255.255.254.0" )
config_vlan2=( "172.16.2.1 netmask 255.255.254.0" )
|
重要:
複数のVLAN設定を行う場合、(変数名)を参照してください。
|
|