IPv6のIPルール

IPv6のIPルール

LinuxシステムでIPv6のIPルールを追加しようとすると、次のエラーが発生します。

$ ip -6 rule add fwmark 0xfab lookup 0xf
RTNETLINK answers: Address family not supported by protocol

IPルールコードを見ましたが、これはカーネルにnetlinkメッセージを送信します。いくつかのモジュールをロードする必要があるかもしれませんが、どのモジュールなのかわかりません。この問題を解決するにはどうすればよいですか?

私はカーネルソースから構築されたLinux 2.6.37.3を使用しています。

回避策:デフォルトでは、LinuxバージョンはIPv6のマルチルーティングテーブルをサポートしません。複数のIPv6ルーティングテーブルをサポートするには、CONFIG_IPV6_MULTIPLE_TABLESを有効にする必要があります。

答え1

IPv6機能は、ipv6カーネルモジュールを介してシステムに提供されます。モジュールが現在システムにロードされていることを確認するには、rootとして次のコマンドを実行します。

lsmod | grep ipv6

出力にipv6が表示された場合は、モジュールがロードされたことを意味します。

/etc/modprobe.conf を確認し、ipv6 が無効になっていることを確認してください。

alias ipv6 off
options ipv6 disable=1

しなければならない

alias net-pf-10 ipv6

インターフェース固有の構成ファイルをさらに確認してください。 (Fedora、CentOSなどのRedHatスタイルのディストリビューションを使用している場合)

存在する/etc/sysconfig/network-scripts/ifcfg-eth0

IPV6INIT=yes
IPV6_AUTOCONF=yes

/etc/sysconfig/networkファイルにある場合:

NETWORKING_IPV6=yes

その後、networkサービスを再起動し、システムを再起動してipv6カーネルモジュールを完全にロードします。

答え2

lookup私はこれがどのオブジェクトにも有効なオプションだとは思いませんip。ルール操作にはtablenatまたはprohibit recjectが含まれますunreachablerealmsあなたの命令形式で判断すると、それはあなたが望むものであると予想されますtable。努力する

ip -6 rule add fwmark 0xfab table 0xf

関連情報