Linuxパフォーマンスの最適化(6)-ネットワーク構成ツール

一、ifconfig

1.ifconfigの概要

ifconfigは、ネットワークインターフェイスの構成情報を取得するだけでなく、構成を変更することもできます。ネットワークカードの再起動後にマシンを再起動すると、ifconfigコマンドで構成されたネットワークカード情報は存在しなくなります。

2.Ifconfigコマンド

ifconfig [-v] [-a] [-s] [interface]
ifconfig [-v] interface [aftype] options | address

up:指定されたネットワークデバイス/ネットワークカードを起動します。
ダウン:指定されたネットワークデバイス/ネットワークカードをオフにします。このパラメータは、指定されたインターフェイスを介したIP情報の流れを効果的にブロックできます。インターフェイスを完全に閉じる場合は、コアルーティングテーブルからインターフェイスのすべてのルーティング情報も削除する必要があります。
arp:指定したネットワークカードがARPプロトコルをサポートするかどうかを設定します。
-promisc:ネットワークカードの無差別モードをサポートするかどうかを設定します。このパラメーターを選択すると、ネットワークカードはネットワーク内で送信されたすべてのデータパケットを受信します。
-allmulti:マルチキャストモードをサポートするかどうかを設定します。このパラメーターを選択すると、ネットワークカードはネットワーク内のすべてのデータを受信します。マルチキャストパケット
-a:すべてのインターフェイス情報を表示します
-s:要約情報を表示します(netstat -iと同様)
追加:指定したネットワークカードのIPv6アドレスを構成します
del:指定したネットワークカードのIPv6アドレスを削除します
mtu n:ネットワークカードの最大送信単位を設定します( bytes)
netmask xxx:ネットワークカードのサブネットマスクを設定します。マスクは、接頭辞0xが付いた32桁の16進数にすることも、ドットで区切った4つの10進数にすることもできます。ネットワークをサブネットに分割する予定がない場合は、このオプションを無視できます。サブネットを使用する場合は、ネットワーク内のすべてのシステムに同じサブネットマスクが必要であることに注意してください。
tunel:トンネル
を確立しますdstaddr:ポイントツーポイント通信を確立するためのリモートアドレスを設定します
-broadcast address:指定したネットワークカードのブロードキャストプロトコルを設定します
-pointtopoint address:ネットワークカードのポイントツーポイント通信プロトコル
を設定しますmulticast:
ネットワークカードアドレスのmulticastフラグを設定します:ネットワークカードのIPv4を設定しますアドレス
txqueuelenlength:ネットワークカードの送信キューの長さを設定します

3.ifconfigの一般的なコマンド

ifconfig
アクティブなネットワークカード情報を
ifconfig -a
表示するすべてのネットワークカード情報を表示
ifconfig eth0 192.168.1.100
する
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
ネットワークカードeth0のIPアドレスを構成するネットワークカードeth0のIPアドレスとサブネットマスクを構成する

ifconfig eth0:0 192.168.1.100 netmask 255.255.255.0 up
ifconfig eth0:1 192.168.2.100 netmask 255.255.255.0 up


ifconfig eth0 del 192.168.1.100
ネットワークカードに複数のIPアドレスを追加するeth0ネットワークカードのIPアドレスを削除するeth0ネットワークカード
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
のMACアドレスを変更するeth
ifconfig eth0 up       
ネットワーク
ifconfig eth0 down     
カードを起動するeth0ネットワークカードをオフにするethネットワークカードを
ifconfig eth0 reload   
再起動するeth0ARPを
ifconfig eth0 arp
有効にするARPを
ifconfig eth0 -arp
無効
ifconfig eth0 mtu 1500
にするethネットワークカードのMTU値を設定するネットワークカード
ifconfig eth0 allmulti
のマルチキャスト機能を有効にする
ifconfig eth0 -allmulti
eth0ネットワークカードを無効にするeth0マルチキャスト機能

二、ethtool

1.ethtoolの紹介

Ethtoolは、Linuxネットワークドライバーの診断および調整ツールです。接続ステータス、ドライバーバージョン、PCIバスの場所など、ネットワークデバイスに関する情報を取得できます。機能は次のとおりです。
(1)識別および診断情報を
取得します。(2)拡張情報を取得します。デバイス統計
(3)イーサネットデバイスの速度、デュプレックス、自動ネゴシエーション、およびフロー制御を制御します
(4)チェックサムオフロードおよびその他のハードウェアオフロード機能を
制御します(5)DMAリングサイズと割り込み制御を制御します
(6)複数のキューを制御しますデバイスの受信キューの選択
(7)フラッシュメモリ内のファームウェアをアップグレードするには、
ethtoolを実行するためにroot権限が必要です。

2.ethtoolコマンド

ethtool [ -a | -c | -g | -i | -d | -k | -r | -S |] ethX
ethtool [-A] ethX [autoneg on|off] [rx on|off] [tx on|off]
ethtool [-C] ethX [adaptive-rx on|off] [adaptive-tx on|off] [rx-usecs N] [rx-frames N] [rx-usecs-irq N] [rx-frames-irq N] [tx-usecs N] [tx-frames N] [tx-usecs-irq N] [tx-frames-irq N] [stats-block-usecs N][pkt-rate-low N][rx-usecs-low N] [rx-frames-low N] [tx-usecs-low N] [tx-frames-lowN] [pkt-rate-high N] [rx-usecs-high N] [rx-frames-high N] [tx-usecs-high N] [tx-frames-high N] [sample-interval N]
ethtool [-G] ethX [rx N] [rx-mini N] [rx-jumbo N] [tx N]
ethtool [-e] ethX [raw on|off] [offset N] [length N]
ethtool [-E] ethX [magic N] [offset N] [value N]
ethtool [-K] ethX [rx on|off] [tx on|off] [sg on|off] [tso on|off]
ethtool [-p] ethX [N]
ethtool [-t] ethX [offline|online]
ethtool [-s] ethX [speed 10|100|1000] [duplex half|full] [autoneg on|off] [port tp|aui|bnc|mii] [phyad N] [xcvr internal|external]
[wol p|u|m|b|a|g|s|d...] [sopass xx:yy:zz:aa:bb:cc] [msglvl N]

-a:ネットワークカード内の受信モジュールRX、送信モジュールTX、および自動ネゴシエーションモジュールのステータス(オンまたはオフ)を確認します。
-A:ネットワークカード内の受信モジュールRX、送信モジュールTX、および自動ネゴシエーションモジュールのステータスをオンまたはオフに変更します。
-c:ネットワークカード集約情報の表示
-C:ネットワークカード集約情報の設定
-g:ネットワークカードRX / TXリングパラメータ情報の表示
-G:ネットワークカードRX / TXリング設定の変更
-i:ドライバ名などのネットワークカードドライバ情報の表示、バージョンなど。
-d:レジスタダンプ情報を表示します。一部のネットワークカードドライバはそれをサポートしていません。
-e:EEPROMダンプ情報を表示します。一部のネットワークカードドライバはそれをサポートしていません。
-E:ネットワークカードのEEPROMバイトを変更します。
-k:ネットワークカードのオフロードパラメータステータスを表示します:rx-checksumming、tx-checksummingなどを含むオンまたはオフ。
-K:ネットワークカードのオフロードパラメータのステータスを変更します。
-p:異なるethXに対応するネットワークカードの物理的な場所を区別するために使用されます。一般的な方法は、ネットワークカードポートのLEDを継続的に点滅させることです。Nは、ネットワークカードの点滅時間を秒単位で示します。
-r:自動ネゴシエーションモジュールのステータスがオンの場合、自動ネゴシエーションモジュールを再起動します。
-S:ネットワークカードによって送受信されたバイト数、送受信されたブロードキャストパケットの数など、NICおよびドライバ固有の統計パラメータを表示します。
-t:ネットワークカードにセルフテストを実行させます。オフラインとオンラインの2つのモードがあります。
-s:ネットワークカードの速度、シンプレックス/フルデュプレックスモード、Macアドレスなど、ネットワークカードの構成の一部を変更します。

3.オフロードオプション

rx-checksumming: off|on      
受信側のハードウェアチェックサム計算。オンに設定できる場合は、ネットワークカードがそれをサポートしていることを意味します。
tx-checksumming: off|on      
送信側のハードウェアチェックサム計算は、オンに設定できる場合、ネットワークカードがス
scatter-gather: off|on          
キャッターギャザー機能をサポートしていることを意味します。これは、ネットワークカードがTSOをサポートするために必要な条件の1つです。
tcp-segmentation-offload: off|on 
TSOは、ネットワークカードを使用してTCPパケットをフラグメント化し、CPUの負荷を軽減するテクノロジーです。LSO(ラージセグメントオフロード)とも呼ばれます。TSOはTCP用、UFOはUDP用です。ハードウェアがTSO機能をサポートしている場合、ハードウェアはTCPチェック計算とスキャッターギャザー機能もサポートする必要があります。
TSOをサポートしないネットワークカードでは、TCP層はIP層にデータを送信するときにmssを考慮するため、TCPによって送信されたデータを断片化することなくIPパケットに含めることができます。mssは、TCPが最初に接続を確立するときにネットワークカードによって使用されます。 MTUは決定され、反対側とネゴシエートされるため、MTU = 1500のネットワークカードでは、TCPによってダウンワードに送信されるデータはmin(mss_local、mss_remote)-ipheader-tcpヘッダーより大きくなりません。
ネットワークカードがTSOをサポートしている場合、TCPレイヤーはmssを徐々に増やします(常に整数の倍数で増やします)。TCPレイヤーが大きなデータブロックを下向きに送信すると、TCPヘッダーのみが計算され、ネットワークカードはIPレイヤーから大きなデータパケットを受信した後に自動的に再起動します。いくつかのIPデータパケットに分割し、IPヘッダーを追加し、TCPヘッダーをコピーして、チェックサムおよびその他の関連データを再計算し、CPU関連の処理作業の一部をネットワークカードに転送して処理します。
udp-fragmentation-offload: off|on
UFOは、ネットワークカードからUDPに提供されるTSOのようなテクノロジーです。
generic-segmentation-offload: on
GSOは、ネットワークカードドライバに送信されるまで、データの断片化を可能な限り遅らせます。このとき、ネットワークカードが断片化機能(TSO、UFOなど)をサポートしているかどうかを確認し、ネットワークカードへの直接送信をサポートしている場合は、断片化してからに送信します。ネットワークカード。このように、大きなデータパケットは、複数のデータパケットに分割されて別々に処理されるのではなく、プロトコルスタックを1回通過するだけで済み、効率が向上します。コマンド:ethtool -K eth0 gso on | off
large-receive-offload: off
LROは、受信した複数のTCPデータを1つの大きなデータパケットに集約し、それをネットワークプロトコルスタックに渡して処理します。これにより、上位層のプロトコルスタックの処理オーバーヘッドが削減され、TCPデータパケットを受信するシステムの機能が向上します。
generic-receive-offload: on
GRO、基本的な考え方はLROに似ており、LROのいくつかの欠点を克服し、より用途が広いです。以降のドライバーはすべて、LROではなくGROインターフェースを使用します。

4.ethtoolの一般的なコマンド

ethtool ethX      

ethtool –i ethX   
ethXネットワークポートの基本設定を照会するethXネットワークポートの関連情報を照会する 
ethtool –d ethX   
ethXネットワークポートの登録情報を照会する
ethtool –r ethX   
ethXネットワークポートを適応モードにリセットする
ethtool –S ethX   
パケットを送受信するethXネットワークポートの統計を照会
ethtool –s ethX [speed 10|100|1000] [duplex half|full] [autoneg on|off] [port tp|aui|bnc|mii]
するネットワークポートレートを設定する10/100 / 1000M、ネットワークポートの半分全二重、ネットワークポートが自動ネゴシエーションであるかどうか、ネットワークポートタイプ
ethtool -K eth0 tso on | off
設定TSO機能

3、ip

1.ipの概要

ipは、iproute2ソフトウェアパッケージの強力なネットワーク構成ツールであり、ルート、ネットワークデバイス、ポリシールーティング、およびトンネルを表示または操作するために使用されます。

2.ipコマンド

ip [OPTIONS] OBJECT COMMAND | help
(1)OBJECTサブコマンド
リンク:ネットワークデバイス
アドレス:プロトコル(IPまたはIPv6)アドレス
addrlabel:プロトコルアドレス選択のラベル構成
ネイバー:ARPまたはNDISCキャッシュエントリ
ルート:ルーティングテーブルエントリ
ルール:ルーティングポリシーデータベースの
ルールmaddress:グループブロードキャストアドレス
mroute:マルチキャストルーティングキャッシュエントリ
トンネル:IPトンネル
xfrm:IPSecプロトコルフレームワーク
(2)オプション
-V、-バージョン:コマンドバージョン情報の表示
-s、-stats、統計:詳細情報の出力
-h、-human、-人間が読み取り可能:読み取り可能な統計とサフィックスを出力します
-iec:人間が読み取り可能なレートをIEC標準単位で出力します(たとえば、1K = 1024)
-f、-family FAMILY:プロトコルファミリ、inet、inet6、ipx、dnet、linkを指定します。
-4:IPv4プロトコルを使用します
-6:IPv6プロトコルを使用します
-0:link
-o、-oneline:各レコードを1行に出力し、newline文字を「\」文字に置き換えます。
-r、-resolve:ホストアドレスの代わりにシステム名リゾルバーを使用してDNS名を出力します。

3.ipの一般的なコマンド

ip link show
ネットワークインターフェイス情報を表示するカードを
ip link set eth0 up
開くカードを
ip link set eth0 down
オフにする
ip link set eth0 promisc on
NICハイブリッドモードを
ip link set eth0 promisc off
オフにするハイブリッドモードをオフにするNIC
ip link set eth0 txqueuelen 1200
設定キューの長さNIC
ip link set eth0 mtu 1400
設定最大伝送ユニットカード
ip addr show
表示
ip addr add 192.168.0.1/24 dev eth0
LANIP情報提供eth0LANIPアドレス192.168.0.1eth0
ip addr del 192.168.0.1/24 dev eth0
カードのIPアドレスを削除する
ip route show
表示システムルーティング
ip route add default via 192.168.1.254
設定デフォルトルート
ip route list
ビューのルーティング情報
ip route add 192.168.4.0/24 via 192.168.0.254 dev eth0。192.168.4.0ネットワークセグメントのゲートウェイを192.168.0.254に
ip route add default via 192.168.0.254 dev eth0
設定し、eth0インターフェイスのデフォルトゲートウェイを192.168.0.254に設定します
ip route del 192.168.4.0/24
。192.168.4.0ネットワークセグメントのゲートウェイを
ip route del default
削除します。デフォルトルートを削除します。ルートを削除します
ip route delete 192.168.1.0/24 dev eth0

4、iptables

1.iptablesの概要

Iptablesは、UnixおよびLinuxシステムに付属する、優れた完全無料のパケットフィルタリングベースのファイアウォールツールです。非常に強力な機能と非常に柔軟な使用法を備えています。サーバーを流入、流出、およびサーバーを通過するデータパケットを細かく制御できます。
Iptablesは、linux 2.4および2.6カーネルに統合されたサービスであり、OSIモデルの第2層、第3層、および第4層で機能します。

2.iptablesはデータパケットを送信します

(1)データパケットがネットワークカードに入ると、最初にPREROUTINGチェーンに入り、カーネルはデータパケットの宛先IPに従って転送する必要があるかどうかを判断します。 
(2)データパケットがマシンに入ると、INPUTチェーンに到達します。データパケットがINPUTチェーンに到着すると、すべてのプロセスがそれを受信します。このマシンで実行されているプログラムは、データパケットを送信できます。データパケットは、OUTPUTチェーンを通過してから、POTROUTINGチェーンの出力に到達します。 
(3)データパケットを転送する必要があり、カーネルが転送を許可している場合、データパケットはFORWARDチェーンを通過してから、POTROUTINGチェーンの出力に到達します。
Linuxパフォーマンスの最適化(6)-ネットワーク構成ツール

3.iptablesルールテーブル

iptablesには、フィルターテーブル、natテーブル、mangleテーブル、rawテーブルが組み込まれており、それぞれパケットフィルタリング、ネットワークアドレス変換、パケット再構築(変更)、およびデータ追跡を実装するために使用されます。
チェーンは、データパケットが伝播されるパスです。各チェーンは、多くのルールのチェックリストであり、各チェーンには複数のルールを含めることができます。データパケットがチェーンに到着すると、iptablesはチェーンの最初のルールからチェックを開始し、データパケットがルールで定義された条件を満たすかどうかを確認します。満たされている場合は、ルールで定義されている方法に従ってパケットを処理します。それ以外の場合、iptablesは次のルールをチェックし続けます。パケットがチェーン内のどのルールも満たしていない場合、iptablesはチェーンで定義されているデフォルトのポリシーに従ってパケットを処理します。
Linuxパフォーマンスの最適化(6)-ネットワーク構成ツール

4.iptablesルールチェーン

INPUT:INPUTルールチェーンのポリシーをファイアウォールに入るパケットに
適用します。OUTPUT:出力ルールチェーンのポリシーを送信パケットに
適用します
。FORWARD:パケットを転送するときにFORWARDルールチェーンのポリシーを適用します。PREROUTING:パケットをルーティングする前に適用します。PREROUTINGチェーン
のルール:POSTROUTING:データパケットをルーティングした後、POSTROUTINGチェーンのルールを適用します

5.iptablesコマンド

iptables [-t table] {-A|-C|-D} chain rule-specification
ip6tables [-t table] {-A|-C|-D} chain rule-specification
iptables [-t table] -I chain [rulenum] rule-specification
iptables [-t table] -R chain rulenum rule-specification
iptables [-t table] -D chain rulenum
iptables [-t table] -S [chain [rulenum]]
iptables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...]
iptables [-t table] -N chain
iptables [-t table] -X [chain]
iptables [-t table] -P chain target
iptables [-t table] -E old-chain-name new-chain-name

-h:ヘルプを取得(ヘルプ)
-A:指定されたチェーンの最後に新しいルールを追加します
-D:指定されたチェーンのルールを削除します。ルール番号と内容に従って削除できます
-I:指定されたチェーンに挿入します(挿入)新しいルール、デフォルトで最初の行に追加
-R:指定されたチェーンのルールを変更、置換(置換)、ルール番号と内容に従って置換できます
-L:指定されたすべてのチェーンを一覧表示(リスト)表示するルール
-E:チェーン自体を変更せずにユーザー定義チェーンの名前を変更します
-F:フラッシュ(フラッシュ)
-N:ユーザー定義ルールチェーンを作成します
-X:指定したテーブルのユーザー定義ルールチェーンを削除します
-P :指定したチェーンのデフォルトポリシーを設定します(policy)
-Z:すべてのテーブルのすべてのチェーンのバイトカウンターとパケットカウンターをクリアします
-n:出力結果を数値形式で表示します(数値)
-v:ルールテーブルの詳細情報を表示します(詳細) )情報
-V:バージョンの表示(バージョン)

6、ipatblesの一般的に使用されるコマンド

iptables -D INPUT 1
ルールチェーンの最初のルールを削除し
iptables -I INPUT -p icmp -j REJECT
、ファイアウォールに入るICMPプロトコルパケットを拒否し、ファイアウォール
iptables -A FORWARD -p ! icmp -j ACCEPT
がICMPプロトコルを除くすべてのネットワークパケットを転送できるように
iptables -A FORWARD -s 192.168.1.11 -j REJECT 
し、192.168.1.11ホストからのパケットの転送を拒否し
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
、192.168.0.0 / 24ネットワークセグメントからのパケットを転送します。

iptables -A INPUT -i eth1 -s 192.168.0.0/16 -j DROP 
iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP 
iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

送信元IPアドレスがプライベートアドレスであるデータパケットを、eth1ネットワークカードからファイアウォールに入力して破棄します。

iptables -A INPUT -p tcp --dport 22 -s 202.13.0.0/16 -j ACCEPT 
iptables -A INPUT -p tcp --dport 22 -j DROP

202.13.0.0/16ネットワークセグメントからのSSHログインを許可する

iptables -A INPUT -p tcp --dport 20:1024 -j ACCEPT 
iptables -A OUTPUT -p tcp --sport 20:1024 -j ACCEPT

開いているTCPポート20-1024にアプリケーションサービスの提供を許可する

iptables -I INPUT -p icmp --icmp-type Echo-Request -j DROP 
iptables -I INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT 
iptables -I INPUT -p icmp --icmp-type destination-Unreachable -j ACCEPT

他のホストからのファイアウォールホストへのpingを禁止します。ファイアウォールホストが他のホストにpingを実行できるようにします。
service iptables save
ファイアウォール構成を/ etc / sysconfig / iptablesに保存します。フィルターテーブルの
iptables –F
すべてのルールチェーンをクリアし
iptables –X
ます。フィルターテーブルのユーザー定義チェーンを削除します。

おすすめ

転載: blog.51cto.com/9291927/2594095
おすすめ