IPv6アドレスで構成された3つのサーバーがあり、S1とS3などのいくつかのサーバーに遅延を追加したいと思います。 IPv4の場合、「tc」コマンドを使用していますが、正常に機能しています。
IPv4アドレスに使用するコマンド:
tc qdisc ls dev eth1
tc qdisc add dev eth1 root handle 1: prio
tc qdisc add dev eth1 parent 1:1 handle 2: netem delay 1000ms
tc filter add dev eth1 parent 1:0 protocol ip pref 55 handle ::55 u32 match ip
src 20.1.1.1 flowid 2:1
tc filter add dev eth1 parent 1:0 protocol ip pref 55 handle ::55 u32 match
ip src 20.1.1.3 flowid 2:1
同じポリシーをIpv6アドレスに追加したいと思います。どんな助けでもいただければ幸いです。前もって感謝します
これらのフィルターは発信パケットに適用され、送信元IPに一致します。また、同じハンドルを再利用するために最後の2つのtcコマンドが衝突するため、ルールが各サーバーに直接追加されるか、ハンドルが変更された場合はルーターに追加されることを理解しています。ハンドルが指定されないので、システムにそれらを選択させるという答えでは問題ではありません。
同等のIPv6ルールに切り替えるのは非常に簡単です。protocol ip
はprotocol ipv6
に置き換えられ、match ip
はmatch ip6
に置き換えられます。矛盾をありがとう!プロトコルを切り替えるときに同じ設定/プリオを使用することはできません。前の2つのポイントの参照: IPv6およびIPv4でのtcの使用 。必要に応じてハンドルを追加するだけです(同じ設定内で一意の:: nodeidを使用)。
したがって、2つの追加アドレス2001:db8::10
と2001:db8::20
に遅延を追加するには、質問の前のすべてのルールを保持し、これら2つのルールを追加します。
tc filter add dev eth1 parent 1:0 protocol ipv6 pref 56 u32 match ip6 src 2001:db8::10 flowid 2:1
tc filter add dev eth1 parent 1:0 protocol ipv6 pref 56 u32 match ip6 src 2001:db8::20 flowid 2:1
u32
と呼ばれるフィルターは、実際には32ビットで動作していることを意味します。したがって、IPv6アドレスは128ビットを使用しているため、各ルールは実際には4つの一致を使用します。