システム管理者を「継続」することを目的としたシリーズの3番目の記事を紹介しています。
これらの記事では、複数の会社のオフィスに接続し、ネットワークへの制限されたアクセス、トラフィックの優先順位付け(QoS)、および2つのプロバイダー間のチャネル予約による単純な負荷分散を可能にするLinuxでのインターネットゲートウェイの構築を検討します。
特にこの部分では:
- ShorewallでのQoS
- Shorewallのより詳細なセットアップ
- プロトコルに従ってチャネルを介してトラフィックを拡散する
- 松葉杖、それらなしで、どこにも
そして、
最初の部分で考慮されました:
- 最もシンプルなShorewallセットアップ
- 非常に複雑なdnsmasqセットアップ
- それほど複雑ではないOpenVPNセットアップ
- そして、多くの継続的な管理者にとって、非定型の動的ルーティング、例えばOSPF
そして
二番目に :
- Shorewallのより詳細なセットアップ
- 怖くて理解できないQoS
- 負荷分散と冗長性
4番目の部分では :
トラフィック分類計画
以下で説明するのは、問題に対する私のビジョンだけです。あなたの意見は異なる可能性があります(良いはずです)。
そのため、トラフィックにはいくつかのタイプがあります。
- サービストラフィック(DNS、ICMP、TCP / ACK)
- トンネルトラフィック
- VoIPトラフィック
- 管理(SSHなど)
- カスタム
次に、各クラス内のユーザートラフィックは、いくつかのサービス間で共有されます。
画像を見ることで、難しい構成全体を理解できます(左上隅:親クラス、右上隅:優先度、下隅:最低速度と最高速度):

1 Mbpsのそれほど高速ではないチャネルでトラフィックを駆動します(それほど昔ではなく、128 kbpsがクールだったと考えてください)。
ルールは次のように機能します。クラスに同じ優先度の子クラスが複数ある場合、制限を超えるストリップの量を誰に計算するかは、これらのクラスの最低速度の割合が使用されます。 優先順位が同じでない場合、それらは追加の重み係数として計算に含まれます。 クラスに割り当てられた最小帯域に加えて、まだ特定の未割り当て帯域があり、チャネルが十分に空いている場合に使用できます。 ほとんどの場合、このストリップに完全なキー値(親クラスの最大値)を指定しました。
チャネルの使用効率を向上させるために、使用可能な最小速度ですべてのクラス間でチャネルを共有しないでください。 この構成では、速度の再配布に非常に大きな遅延が発生します(SIP、またはむしろRTPはこれに満足します)。 いずれにせよ、速度は多少の遅延を伴って再配布され、ユーザーが使用するプロトコルのタイプに最も依存します。 たとえば、利用可能な最大値を消費したトレントは、非常にゆっくりと占有帯域を離れます(最大数分)。問題は、サーバーへの大量のトラフィックソースによるものです(これまでのところ、すべてが速度の低下に応答します...)。
しかし、十分な歌詞を始めましょう(以前の記事の構成の一部を使用します。ここで何かが構成されていない場合は、どこを見るべきかを知っています)。
変数を宣言します。
プロバイダーの宣言:
起動中に何かをしましょう:
ルーティングポリシーを補足します(このステップの必要性については以下で説明します)。
トラフィック用の一連のクラスを宣言します。
説明を見ると、同じことがたくさんあることに気付くでしょう。 フローの使用におけるわずかな違い(フローへのトラフィックのグループ化)。 ストリーム自体により、この現象に対処できます。1人のユーザーが異なるアドレスで多数の接続を確立し、クラス内でストリームを使用せずに、他の全員からのトラフィックを絞り込みます。 全体のトピックは、フローがなければ、共有は直接的な接続を介して行われ、より多くの人がいる場合は、全体として、彼は毛布を自分の上に引っ張って引き離しました。
もう1つの小さな機能である外部インターフェイス(物理およびIFBの両方)は、内部ネットワークの構造(NATが使用されている場合)について何も知らないため、詳細な分類の一部はありません。
ここで、トラフィックを分類し(ACKとMARKを使用するクラスの場合、何も説明せず、対応するトラフィックは自分自身で分類します)、フィルタリングします。
ヒントを用意します:
再起動後、シェーピングが機能します!奇妙な松葉杖
OSPF , ! VoIP . VPN , , ( OSPF), VoIP, , - , , , , ( Cisco )? VoIP , ( IAX2 ). VoIP ! OSPF, ( ), , ( , ).
:
/usr/local/bin/ospf_alt_route.sh , OSPF , , , - , OSPF. Shorewall . - , .
policy routing :
Routing Rules 0: from all lookup local 999: from all lookup main 10000: from all fwmark 0x10000/0xff0000 lookup pr1 10001: from all fwmark 0x20000/0xff0000 lookup pr2 10002: from all fwmark 0x40000/0xff0000 lookup tap1 10003: from all fwmark 0x30000/0xff0000 lookup tap0 19001: from all lookup tap0 20000: from 192.168.10.37 lookup pr1 20000: from 192.168.10.36 lookup pr2 32765: from all lookup balance 32766: from all lookup main 32767: from all lookup default
, ( ), ( ).
cron:
/etc/cron.d/ospf_alt_route# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 — 59)
# | .------------- hour (0 — 23)
# | | .---------- day of month (1 — 31)
# | | | .------- month (1 — 12) OR jan,feb,mar,apr…
# | | | | .---- day of week (0 — 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
*/1 * * * * root /usr/local/bin/ospf_alt_route.sh 1 128
PS
: