Linuxのシリーズ - ポリシールーティング、IPルール、IP経路(ターン)

初期のLinuxシステムネットワークの管理では、多くの場合、ifconfigとrouteコマンドなどを使用していますが、Linuxの強力なポリシーベースルーティングメカニズムの使用を開始する準備ができている場合は、すべてで、これらのツールので、このようなツールを使用しないでください強力なポリシーベースのルーティングメカニズムのために、代わりにツールのiprouteではありません。あなたは通常、このツールを見つけることができるように、このソフトウェアは、シリーズのRedHat Linuxシステムにデフォルトでインストールされるのiproute。あなたが実際にいくつかの理由のためのソフトウェアを見つけることができない場合は、限りのFedoraやCentOSのLinuxを使用する場合、ネットワークの場合には、正常にインストールすることができるようにyum iprouteのコマンドをインストールし、またはあなたがソフトウェアiprouteのかどうかを確認するには、ip -Vコマンドを使用することができますインストールされている、英語の文字を大文字に、再び-V引数に注意してください。

[ルート@ localhostの/]#IP -V

IPユーティリティ、iproute2を-ss091226

まず、管理ポリシーデータベース
Linux上では、ポリシーベースのルーティングポリシーデータベースは、以下の「管理」の面で議論、ipコマンドによって管理されています。

1は、ポリシーデータベースビュー
ポリシーデータベースの内容を表示するには、コマンドのIPルールのショーを使用するか、IPルールLSを使用することができます。次のコマンドを実行した後に得られた出力であり、これらのデータでは、システムは、3つのルールのデフォルトのローカルメールおよび3つのデフォルト・ルーティング・テーブルに対応する3つのデフォルトのルールを見ることができます。

[ルート@ localhostの/]#のIPルールショー

0:すべてのルックアップローカルから

32766:すべてのルックアップmainから

32767:すべてのルックアップデフォルトから

2、ルールを追加する
ルールを追加するとき、それはルールを追加する操作を行うことができた後、あなたはまず、良い「条件」、「優先度」と「ルーティングテーブルID」を決定しなければなりません。

条件
このルールを遵守したデータパケットの種類を決定するために使用することができ、フィールドはのソースIP、送信先IP、タイプ一致させるために使用することができますサービス、fwmarkの次のようにDEVなどを、これらのフィールドの使用は、以下のとおりです。

送信元IP
送信ルーティングテーブルデータパケットを参照して決定された送信元IP端末に係ります。次の2つの例は、ソース・エンドIPパケットは192.168.1.10である場合、それは、ルーティングテーブル10を参照して、認められた; IPネットワーク192.168.2.0/24のIP送信元端末は、それがルーティングテーブル20を参照している場合。

IPルールは192.168.1.10テーブル10から追加します

IPルールは192.168.2.0/24テーブル20から追加します

宛先IP
送信テーブル参照をルーティングするかを決定するために、宛先IPパケット。以下の2つの例は、データパケットの目的は、IP端末168.95.1.1である場合、それは、ルーティングテーブル10を参照し、注目された;宛先IPはIPネットワークである場合168.95.0.0/24は、ルーティングテーブル20を参照します。

IP規則は、168.95.1.1表10に追加します

IPルールは168.96.0.0/24表20に追加します

fwmarkは
Netfilterのと組み合わせて使用する必要があり、一致条件としてfwmarkだろう、それは多くの問題だが、それは最も柔軟性の一致条件です。示されるように、3つのは、会社のADSL 10-8があり、我々は最初のADS L、第二ADSLを介してSMTPとPOP3、第三貫通ADSL残りの流れを介して全てのHT TPプロトコルことを望みます。あなたは、この目的を達成するために以下のコマンドの組み合わせを使用することができます。

iptablesのは-A FORWARD -i ETH3 -p TCPをマングル-t --dport 80 -j MARK --set-マーク1

iptablesのは-A FORWARD -i ETH3 -p TCPをマングル-t --dport 25 -j MARK --set-マーク2

iptablesのは、マングル-A FORWARD -i ETH3 -p TCPを-t --dport 110 -j MARK --setマーク2

iptablesのは-A FORWARD -i ETH3 -j MARK --set-マーク3をマングル-t

IPルールはfwmark 1つの表1を追加します

IPルールはfwmark 2表2を追加します

IPルールがfwmark 3表3を追加します

まず、メカニズム用いmanagle NetfilterのMARK値が特定のパケットに設定され、この値はMARKのHTTPパケットに設定されている。1、SMTPとPOP3 MARK値が2つのデータパケットであり、さらにパケットがマーク3が設けられています。MARK値が1であれば次、fwmarkは、次に条件マークパケットの値に応じて判断し、パケットを送信し、ルーティングテーブル1を指し、2のMAKR値がパケット2を送信し、ルーティングテーブルを参照するとき、最後に、MARK値図3は、データパケットが3が供給されているルーティングテーブルを参照しています。

あなたは本当にこの例では、すべての機能を反映して完了するだけでなく、これは最初のNetfilterのとfwmarkある組み合わせを使用しての概念を理解する限り、このセクションの後半で詳しく説明するために、例を使用しますが、多くの細部に注意を払うようにしたい場合は、上記の例では、唯一のちょうど概念であり、ことができます。

DEVは、
入力されたデータパケットが決定されるように最後に、インタフェースはまた、図10-9に示すように、使用することができ、我々はすべてのETH3にパケットインタフェース、インタフェースによってインタフェースのeth2摂食eth0のパケットを介して転送したいですeth1のインターフェイスによって転送。次のコマンドの組み合わせは、当社の要件を満たすことができるようになります:

IP規則は、DEVのは、eth2表1を追加します

IP規則は、DEVのETH3テーブル3を追加します

図3に示すように、優先順位
ルールに前述した、使用の「条件」は、次の優先度について説明します。0から40億に及ぶ可能性が数字で表さ優先順位は、天文学的数字と呼ばれる、我々は実際にPC上のような大規模なルーティングメカニズムを設定することはできません。

[ルート@ localhostの〜]#のIPルールショー

0:すべてのルックアップローカルから

32766:すべてのルックアップmainから

32767:すべてのルックアップデフォルトから

[ルート@ localhostの〜]#

[ルート@ localhostの〜]#のIPルールは192.168.1.0/24表1から、追加します

[ルート@ localhostの〜]#のIPルールは192.168.2.0/24表2から追加します

[ルート@ localhostの〜]#

[ルート@ localhostの〜]#のIPルールショー

0:すべてのルックアップローカルから

32764:192.168.2.0/24検索2から

32765:192.168.1.0/24のルックアップ1から

32766:すべてのルックアップmainから

32767:すべてのルックアップデフォルトから

一例として、我々は、IPルールshowコマンドは、最初のフィールドの内容が優先される表示パケットが条件であるので、番号が低いほど、また、このルールの代わりに、より高い優先度の代表は、より多くの最前列であってもよい実行しますマッチしたときに、このルールに早く試合は、データ出力から、デフォルトの優先度0,32766と32767は、デフォルトの優先順位、特に優先度を設定していない場合は、ルールを追加する場合、そのために占有、とされていますそれは我々が優先順位を設定する必要がある場合は特に、あなたはIPルールがPRIO XXXのパラメータで、最終的に追加命令することができる、など...... 32766、32765,32764から減少し始めます。次の例に示すように:

[ルート@ localhostの〜]#のIPルールショー

0:すべてのルックアップローカルから

32766:すべてのルックアップmainから

32767:すべてのルックアップデフォルトから

[ルート@ localhostの〜]#

[ルート@ localhostのは〜]#のIPルールは192.168.1.0/24表1 PRIOから、追加10

[ルート@ localhostのは〜]#のIPルールは192.168.2.0/24表2 PRIOから、追加20

[ルート@ localhostの〜]#

[ルート@ localhostの〜]#のIPルールショー

0:すべてのルックアップローカルから

10:192.168.1.0/24のルックアップ1から

20:192.168.2.0/24検索2から

32766:すべてのルックアップmainから

32767:すべてのルックアップデフォルトから

ルーティングテーブルID

Linuxベースのポリシールーティングは、ルーティングテーブルIDが表されるが、必要に応じて、また名IDテーブルIDが名前に翻訳されると共に用いることができます。

4、ルール削除
ルール方法ipコマンドは、非常に柔軟であって、例えば、次のルール2を削除するには、独自の「優先度」、「条件」のいずれかの値がそれぞれ設定されている「ルーティングテーブル」を使用することができ削除次のようにルールは、削除します:

IPルール・デル・PRIO 10

192.168.1.0/24からIPルールデル

IPデル表1を支配

192.168.1.0/24表1 PRIOからデルのIPルール10

[ルート@ localhostの〜]#のIPルールショー

0:すべてのルックアップローカルから

10:192.168.1.0/24のルックアップ1から

20:192.168.2.0/24検索2から

32766:すべてのルックアップmainから

32767:すべてのルックアップデフォルトから

[ルート@ localhostの〜]#

第二に、ルーティングテーブル管理
コマンド-N経路は、従って、ルートコマンドは、特定のルーティングテーブルを操作することができる、ポリシーベースのルーティングに使用するのに完全に不適切であったが、ポリシーベースのルーティングでは、同時に複数のルーティングテーブルが存在することになるのでこのルート管理ツールの代わりに、まだIPコマンドをあきらめてください。次は、ルーティングテーブルを管理するには、ipコマンドを使用する方法について説明します。

1、ルーティングテーブルの内容を確認し
、現在使用されているものルーティングテーブルを参照するには、ipルールshowコマンドを使用して最初に、ルーティングテーブルを見る前に、その後の再利用のIPルートショー[テーブルID |名 ] ルーティングテーブルの内容を表示するためのコマンド。たとえば、あなたがメインの内容を表示するには、ipルートshowtableメインルーティングテーブルを使用することができ、(たとえば、IPルートのショーなど)なしのルーティングテーブル名ならば、メインルーティングテーブルの内容を表示するためにデフォルト設定されます。

[ルート@ localhostの/]#のIPルールショー

0:すべてのルックアップローカルから

32766:すべてのルックアップmainから

32767:すべてのルックアップデフォルトから

[ルート@ localhostの/]#

[ルート@ localhostの/]#のIPルーティングテーブルの表示メイン

10.10.15.0/25 devのeth0のプロトカーネルスコープリンクSRC 10.10.15.46

192.168.1.0/24 devのeth1のプロトカーネルスコープリンクのsrc 192.168.1.10

10.10.15.1のdevのeth0を経由して、デフォルト

[ルート@ localhostの/]#

デフォルトでは、システムは、3つのルーティングテーブル、次の3つの機能のルーティングテーブルを有します。

ローカル:マシンがローカルルーティングテーブルを備えたルーティング情報を放送。例えば、機械127.0.0.1ときのsshで実行される、それは限り、ネットワークカードの設定が設定されているとして、それが自動的に内容ローカルルーティングテーブルを生成します、我々はする必要はありません、通常の状況下では、このルーティングテーブルの内容を参照しますその内容を変更します。

メイン:伝統的なコマンドルートルーティングテーブルの使用は-nを参照の主な内容です。Linuxシステムは、データパケットを送信するために、このルーティングテーブルのデフォルトの内容を使用しているため、その内容は限りネットワークカードの設定が設定されているとして、それが自動的にコンテンツメインルーティングテーブルを生成します、通常の状況下では、非常に重要です。

デフォルト:;特別な要件がない限り、またはそのコンテンツを維持することが空白になって最後に、ルーティングテーブルをデフォルト、ルーティングテーブルの内容は、デフォルトでは空です。

ルーティングテーブルの内容の主な用途は、二つのNICはeth0とeth1がホスト上であるので、10-10。以下は、図23のメインルーティングテーブルの内容であり、説明され、それぞれ10.10.15.46/25をIP及び192.168を設定します.1.10 / 24、従って、第1のルーティングテーブル。すなわち、パケットはインターフェイスeth0に送信されるデータパケットから直接、ネットワークセグメント10.10.15.0/25に送信する場合、システムに指示するOKであり、機械IPのこのセグメントに隣接したが、最初の行は正確に最初の行の意味と同じであり、経路192.168.1.0/24に設定され、10.10.15.46です。...お使いのコンピュータのIPネットワークカードの2行以上が設定されている限り、およびネットワークサービスの再起動後に、それは特別な設定をせずにデフォルトルートを生成します。最後の行はを参照:パケットが10.10.15.0/25と192.168.1.0/24のネットワークセグメントに送信されない場合、そのパケットに対処するために、統一10.10.15.1ホストに転送し、何で私たち10.10.15.1ネットワーク構成されます「デフォルトゲートウェイ」を設定

[ルート@ localhostの/]#のIPルーティングテーブルの表示メイン

10.10.15.0/25 devのeth0のプロトカーネルスコープリンクSRC 10.10.15.46

192.168.1.0/24 devのeth1のプロトカーネルスコープリンクのsrc 192.168.1.10

10.10.15.1のdevのeth0を経由して、デフォルト

[ルート@ localhostの/]#

図2に示すように、経路を追加する
代わりに、同じルートコマンドを使用してのIPルートショーを用いて第1の実施形態を、この経路またはipコマンドを追加する。メインコマンドは、ルーティングテーブルの内容を表示し、その後、追加コマンドIPルートの所望の経路を使用して、ルーティングテーブルに追加します主な。最後に、再使用のIPルートをプリントアウトして、ルーティングテーブルメインコマンドの内容を表示し、あなただけのメインルーティングテーブルに追加ルートを見ることができます。

[ルート@ localhostの/]#のIPルーティングテーブルの表示メイン

10.10.15.0/25 devのeth0のプロトカーネルスコープリンクSRC 10.10.15.46

192.168.1.0/24 devのeth1のプロトカーネルスコープリンクのsrc 192.168.1.10

10.10.15.1のdevのeth0を経由して、デフォルト

[ルート@ localhostの/]#

[ルート@ localhostの/]#のIPルート10.10.15.50テーブルの主な経由で192.168.2.0/24を追加

[ルート@ localhostの/]#

[ルート@ localhostの/]#のIPルーティングテーブルの表示メイン

10.10.15.0/25 devのeth0のプロトカーネルスコープリンクSRC 10.10.15.46

10.10.15.50のdevのeth0を介した192.168.2.0/24

192.168.1.0/24 devのeth1のプロトカーネルスコープリンクのsrc 192.168.1.10

10.10.15.1のdevのeth0を経由して、デフォルト

[ルート@ localhostの/]#

既存のルートを追加したい場合はそれに対処する方法を、ルーティングテーブルに表示されませんか?新しいルーティングテーブルから、システムのデフォルトを使用する予定がないので、あなたがメインルーティングテーブル以外のルートを追加したい場合は、ここでのコンセプトを持ってください、単に「のみを追加する、、、ルーティングテーブルには意味がありません。ルールを追加「新しいルーティングテーブル(テーブルID)の名前を決定するために、新しいルーティングテーブルは、ルーティングテーブルに新しいルートを追加します。

私たちは、このプロセスを説明するために、次の例を使用します。、あなたは、現在唯一の3つのデフォルトルールで参照し、IP rule addコマンドを使用してルールを追加することができ、現在のステータスを照会するRPDB。IPルールのショーを最初に使用し、システム内のこの時間、より有用ルーティングテーブル、どのルーティングテーブルIDが10である、我々はすぐに新しいルーティングテーブルを表示するには、ipルートshowコマンドを使用することができ、デフォルトの内容が空である、あなたはルートを追加するには、この新しいルーティングテーブルにルートを追加することができますiprouteのaddコマンドを使用し、我々は、機械、したがって、完全に記述する必要がありますeth1インターフェイスからデータパケットを送信するためにeth1インターフェイスからルーティングされ192.168.2.0/24のネットワーク・データ・パケットから来ている人を決めます。最初に。充填されたインターフェースeth1のルーティング近く、eth1インターフェイスによって処理され、次いで、デフォルトルートのルーティングテーブルに記入されているマシンとネットワークセグメント192.168.1.0/24の通信システムを語った。最後に、コマンドshow IPルートショーを使用10コンテンツルーティングテーブル。

[ルート@ localhostの〜]#のIPルールショー

0:すべてのルックアップローカルから

32766:すべてのルックアップmainから

32767:すべてのルックアップデフォルトから

[ルート@ localhostの〜]#

[ルート@ localhostの〜]#のIPルールは192.168.2.0/24テーブル10から追加します

[ルート@ localhostの〜]#

[ルート@ localhostの〜]#のIPルートショーのテーブル10

[ルート@ localhostの〜]#

[ルート@ localhostの〜]#のIPルート192.168.1.0/24のdevのeth1のテーブルを追加する10

[ルートlocalhostの@〜]#のIPルート192.168.1.254テーブル10を介してデフォルトを追加

[ルート@ localhostの〜]#

[ルート@ localhostの〜]#のIPルートショーのテーブル10

192.168.1.0/24 devのeth1のスコープリンク

192.168.1.254 devのeth1のを経由して、デフォルト

[ルート@ localhostの〜]#

3は、ルートを削除することは
簡単に我々はルートを削除する方法を説明するために、次の例を使用して、コマンドのIPルートを削除するために使用することができます。まず、ルーティングテーブル10の内容が表示されます。、その後、デフォルトルートを削除するには、ipルートdelコマンドを使用し、2つのルートがある現在のルーティングテーブル10に見ることができます。これで我々はあなたがルーティングテーブル10を削除するように指定することを忘れないでください、そうでない場合はデフォルトでは、デフォルトのメインルーティングテーブルが削除され、その後、再利用IPルートを表示するコマンドが192.168.122.0/24を除去するために再度IPルート・デル・コマンドを使用して、デフォルトルートのルーティングテーブル10が存在しないこの場合には、ルーティングテーブル10を表示しますルーティング。最後に、あなたが見ることができるルーティングテーブル10は何のルーティングを持っていません。

[ルート@ localhostの〜]#のIPルートショーのテーブル10

192.168.1.0/24 DEV virbr0スコープリンク

192.168.1.254 devのeth1のを経由して、デフォルト

[ルート@ localhostの〜]#

[ルート@ localhostの〜]#IPルートデルデフォルトのテーブル10

[ルート@ localhostの〜]#

[ルート@ localhostの〜]#のIPルートショーのテーブル10

192.168.1.0/24 DEV virbr0スコープリンク

[ルート@ localhostの〜]#

[ルート@ localhostの〜]#IPルートデル192.168.1.0/24テーブル10

[ルート@ localhostの〜]#

[ルート@ localhostの〜]#のIPルートショーのテーブル10

[ルート@ localhostの〜]#

おすすめ

転載: www.cnblogs.com/linyihan/p/11234105.html
おすすめ