web-dev-qa-db-ja.com

dhcpcdで静的IPv6デフォルトルートを設定する方法

静的IPv6アドレスと対応するIPv6デフォルトルートをdhcpcdで設定します。私はman dhcpcd.confを調べましたが、IPv6デフォルトルートの設定方法について言及しているところはどこにもありませんでした。

私の現在のdhcpcd.conf

hostname
duid
persistent
option rapid_commit
option domain_name_servers, domain_name, domain_search, Host_name
option classless_static_routes
option interface_mtu
require dhcp_server_identifier

interface eth0
noipv6rs
static ip6_address=2001:xxx::xxx/128

私がdhcpcdにしてほしいことは:

ip addr add 2001:xxx::xxx/112 dev eth0
ip -6 route add 2001:xxx::xxxx dev eth0
ip -6 route add default via 2001:xxx::xxxx

ただし、現在の構成では、dhcpcdは最初の2行のみを実行し、3行目は実行しません。

man dhcpcd.confは、IPv4デフォルトルーターがstatic routers=192.168.0.1のようなものを介して設定できることを通知するだけです。

dhcpcdのフックを使用して手動でip -6 route addで実行することも、単にdhcpcdを脇に置いておくこともできます。しかし、DHCPv4の処理はdhcpcdに依存しています。そして、dhcpcdがIPv4とIPv6の両方の構成を処理できれば、混乱が少なくなると思います。

私の質問:

dhcpcddhcpcd.confでいくつかのオプション/コマンドを指定することによってIPv6デフォルトルートを自動的に設定するより直接的な方法はありますか?

7
Dummmy

DHCPv4を使用してデフォルトのIPv6ルートを提供することはできません。 DHCPv6 を使用してデフォルトのIPv6ルートを提供することもできません。

その理由は、IPv6は多くの点でIPv4とは異なり、その1つはルーターの動作です。すべてのIPv6ルーターは、それをゲートウェイとして使用できるセグメントへのゲートウェイとしてアナウンスします。また、セグメントに複数のルーターを使用できます。IPv4のように単一のゲートウェイに制限されるわけではありません。

したがって、これはDHCPブロードキャストと応答を交換することでは発生せず、代わりにルーター要請(RS)とルーターアドバタイズメント(RA)IPv6で定義されているホストとルーター間のメッセージ 近隣探索プロトコル

したがって、IPv6ホストに正しいルートを設定する唯一の方法は、ルーター/ゲートウェイでradvpに加えてdhcpd(適切に設定された)を実行することです。その間、RSメッセージを再度有効にできます(削除noipv6rs)、それは、Linuxが自身をルーターと見なす場合(転送が有効になっている場合)、RSメッセージを送信しない(または少なくとも送信してはならない)ためです。

そしてradvpisを使用すると、実際には「面倒が少ない」方法です-セグメントにルーターを追加したり、セグメントからルーターを削除したりする中央構成ファイルを更新します。

さらに、ステートレス自動構成(SLAAC)により、ホストはルーティング可能なプレフィックス自体からIPv6アドレスを生成できます。

8
dirkt

「dhcp ipv6 defaultroute」をグーグルで検索すると、AUに関するQ&Aというタイトルの dhcpd6.confでデフォルトゲートウェイを設定する方法 が表示されます。このQ&A IPv6によると:

DHCPv6は、ルーター/ゲートウェイを設定するオプションをサポートしていません。

4
slm

私自身の質問に答えたいです。

dirktによる回答は、この質問に対する直接の回答です。 slmによる回答は、いくつかの役立つソリューションとさらなる提案を提供します。

しかし、どちらも私が遭遇する問題を解決しません。

私が直面したケースは、ネットワーク環境が完全に制御不能であるということです。 実際、私はVPSプロバイダーからVPSを購入しました。 それらが提供するのは、事前構成されたネットワークです。 VPSを再インストールして、OSをDebianから別のディストリビューションに変更したかっただけで、インストール後にまったく同じネットワーク構成を再現する以外に、ネットワーク環境を変更することはできません。

インターネットで検索し、他の人に助けを求めた後、静的IPv6ルーターとアドレスを構成するための最善の回避策はnetctlを使用することです。 netctlは、DHCPv4をネゴシエートするためのバックエンドとしてdhcpcdを使用できると同時に、IPv6を静的に構成する簡単な方法も提供します。これが今までの私の設定です:

Description='A basic dhcp ethernet connection'
Interface=eth0
Connection=ethernet
IP=dhcp
#DHCPClient=dhcpcd
#DHCPReleaseOnStop=no

IP6=static
Address6=('2001:****:****::****/***')
Routes6=('2001:****:****::****')
Gateway6='2001:****:****::****'
0
Dummmy