私は1kbit / sに制限されているDSLアップリンク接続を介してSCPを使用して大量のデータを頻繁にアップロードします。インタラクティブSSHセッションの優先順位が最も高いことを望んでいますが、SSHを最高の優先順位に設定すると、SCPアップロード中に接続が利用できなくなります。
特に、OpenWRTでSSHとSCPのサービス品質設定を区別する方法は?
答え1
少なくともOpenSSHは、次のように他のTOSビット(0x16
対話型セッション、0x08
一括転送用)を設定します。quoraで議論された。
これは、これらのビットに一致するルールを使用して簡単に悪用される可能性があります。最も一致するQoSが適用されるようです。ポート22 / SSHの一般規則がないことを確認してください。 OpenWRT には、デフォルトで SSH と DNS を一致させるルールが用意されています。これらのルールでは、上にリンクされたquoraの記事で提案されているとの重複0x04
するDSCP値を使用しました。0x02
config classify
option target "Priority"
option ports "22"
option dscp 0x04
option comment "ssh"
config classify
option target "Bulk"
option ports "22"
option dscp 0x02
option comment "scp"
「デフォルト」iptables設定の場合、生成されたルールは次のとおりです(パラメータ-m dscp --dscp 0x04
は-m dscp --dscp 0x02
面白い部分です)。
-A qos_Default_ct -p tcp -m mark --mark 0x0/0xf -m tcp -m multiport --ports 22 -m dscp --dscp 0x04 -m comment --comment ssh -j MARK --set-xmark 0x11/0xff
-A qos_Default_ct -p tcp -m mark --mark 0x0/0xf -m tcp -m multiport --ports 22 -m dscp --dscp 0x02 -m comment --comment scp -j MARK --set-xmark 0x44/0xff
QoS設定の再ロードを使用した後は、SCP転送を再開する必要があります/etc/init.d/qos restart
。 QoS設定は新しいフローにのみ適用されます。
これらのルールを適用する前(シングルSSH「優先順位」ルールを使用)、SCPアップロード中のマイピングは約200msでした。ルールを適用した後、時間は70〜100msに低下しました(アイドル回線の時間は30ミリ秒に比べて)。