• 締切済み

NICを2枚挿したときのデフォルトNIC

サーバに限ったことじゃないかもしれませんが・・・ サーバ(CentOS)にNICを2枚挿し、どちらも同じセグメントに繋いだ時、サーバからインターネットや、ルータやPC1に送信する場合はどちらのNICが優先的に使われるのでしょうか? NICを複数挿しした場合は必ずどのNICか1つをデフォルトNICとするような設定をしないとこのままでは通信できませんか? 調べていたらDEFROUTE=yesというのがあり、複数NICの場合は必ずそれをデフォルトNICに指定しないとダメなのかな?と思いまして。基本的なことですみません。 └ルーター(192.168.1.1)  ├PC1(192.168.1.2)  ├サーバ(eth0:192.168.1.100/eth1:192.168.1.200)   /etc/sysconfig/network-scripts/ifcfg-eth0 IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4 /etc/sysconfig/network-scripts/ifcfg-eth1 IPADDR=192.168.1.200 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4

みんなの回答

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

>どっちのNICを使って送信するかは分からないってことになりますかね。 リクエストを出す場合は両方のNICへパケットを流すと思います。 相手からの応答が早い方でリクエストが完了してしまうので後から帰ってきたパケットは不要なので無視されると思います。 >PC1から192.168.1.100への要求ならeth0が応答し、応答したeth0がPC1に返す。 >PC1から192.168.1.200への要求ならeth1が応答し、応答したeth1がPC1に返す。 当然、そうなるでしょう。 所謂、負荷分散の手法です。 只、クライアントからの要求はサーバー名で出されると思いますのでDNS等でIPアドレスに変換されるので負荷分散の設定はNICの設定とは関係ない所で行われるはずです。

回答No.2

通常、サーバだとNIC2枚ならActive/Standbyでボンディングするところですが、それぞれIPアドレスを割り当てて独立させているのは負荷分散のためですかね?  さて、ご質問についてですが、 > サーバ(CentOS)にNICを2枚挿し、どちらも同じセグメントに繋いだ時、サーバから > インターネットや、ルータやPC1に送信する場合はどちらのNICが優先的に使われるのでしょうか?  たぶん、NICの認識順で確定すると思います。デフォルトゲートウェイがどちらに割当たっているかは、netstat -nrで確認できると思います。 > NICを複数挿しした場合は必ずどのNICか1つをデフォルトNICとするような設定をしないとこのままでは通信できませんか?  問題なくできるかと思います。 > 調べていたらDEFROUTE=yesというのがあり、複数NICの場合は必ずそれをデフォルトNICに > 指定しないとダメなのかな?と思いまして。基本的なことですみません。  かならずじゃないでしょうね。デフォルトNICを指定したければという理解でいいと思います。  あと、/etc/sysconfig/networkや/etc/sysconfig/netowrk-scripts/ifcfg-eth?の手動設定を行うのであれば、NICの設定ファイルにNM_CONTROLLED="no"の設定を入れておくことをお勧めします。  余談ですが、通常はNIC2つを同一セグメントにつなげるなら、冗長性確保を優先してbonding(ifcfg-bond0)を組みます。これであれば片方のNICが故障したり断線したりしても継続運用可能です。障害発生時は瞬断はしますが。この場合ゲートウェイはbondingに割り当てます。  bondingしたうえで、複数のIPアドレスが必要であればbondingにIPエイリアス(ifcfg-bond0:0)を作成します。  検証、開発環境であり、これらに対する本番機がNIC4つを同一セグメントに物理接続して2つのbondingを作成している場合は、これの縮退構成としてbondingを廃しておっしゃるような構成にすることもありますね。

testmaster_x
質問者

お礼

>たぶん、NICの認識順で確定すると思います。デフォルトゲートウェイがどちらに割当たっているかは、netstat -nrで確認できると思います。 認識順なんですね。netstat -nrで確認してみます。 >かならずじゃないでしょうね。デフォルトNICを指定したければという理解でいいと思います。 なるほどです。DEFROUTE=yesと言うのはデフォルトNICを認識順ではなく、固定的に指定したい場合にそのNICに追記するんですね。 >NICの設定ファイルにNM_CONTROLLED="no"の設定を入れておくことをお勧めします。 すみません。上のifcfg-eth(x)には書いていないですが、実際にはNM_CONTROLLED="no"やONBOOT=yesやTYPE=Ethernetなどは記述しています。 >余談ですが、通常はNIC2つを同一セグメントにつなげるなら、冗長性確保を優先してbonding(ifcfg-bond0)を組みます bondingを組むという方法もあるんですね。聞いたことがなかったので勉強してみます。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

>サーバ(CentOS)にNICを2枚挿し、どちらも同じセグメントに繋いだ時、サーバからインターネットや、ルータやPC1に送信する場合はどちらのNICが優先的に使われるのでしょうか? NIC2枚使う意味が無いように思います。 其々を別セグメントに接続してルーターの役割をさせる場合やWAN回線が2つのとき負荷分散に使うのであればNICの2枚刺しに意味があります。 特殊な例としてはLANの回線が2重化されていて1方に断線が有ったときのバックアップであれば同一セグメントの2枚刺しも有り得ます。 何方かが優先的に使われるということを考える必要はないと思います。 先に応答が有った方を有効にして遅れた方のパケットは無視されるのではないでしょうか?

testmaster_x
質問者

お礼

>NIC2枚使う意味が無いように思います。特殊な例としてはLANの回線が2重化されていて1方に断線が有ったときのバックアップであれば同一セグメントの2枚刺しも有り得ます。 まさにおっしゃる通りなのですが、このように同じセグメントに2枚差す意味を問うのはここでは無しでお願いします。 >先に応答が有った方を有効にして遅れた方のパケットは無視されるのではないでしょうか? 応答が有ったほうですか。。どっちのNICを使って送信するかは分からないってことになりますかね。 例えば、逆にPC1からサーバに対しての通信なら、 PC1から192.168.1.100への要求ならeth0が応答し、応答したeth0がPC1に返す。 PC1から192.168.1.200への要求ならeth1が応答し、応答したeth1がPC1に返す。 ってなるんでしょうけど。。

関連するQ&A

  • デフォルトゲートウェイの設定場所

    CentOS5.9を使用しています。 /etc/sysconfig/network と cat /etc/sysconfig/network-scripts/ifcfg-eth0 「GATEWAY」項目があり、同じデフォルトゲートウェイのIPが設定されていることに気づきました。 ただ、別のCentOSサーバを見てみた所 ・/etc/sysconfig/network-scripts/ifcfg-eth0(eth1やeth2の複数ささってるサーバでも) のeth設定ファイルだけに、「GATEWAY」の設定があるが、networkにはない。 ・/etc/sysconfig/network の方にだけにあり、eth関係のファイルにはない。  とサーバで環境がバラバラなことに気づきました。 (同じCentバージョンでも違ってるものがありました。) 特に、インストール時にIPを設定したぐらいで 設定変更等行っていません。 この「/etc/sysconfig/network-scripts/ifcfg-eth0」と「/etc/sysconfig/network」に 設定するGATEWAYなのですが、 ・どちらのファイルに設定してても良いものなのか? ・ifcfg-eth0 の方にあれば良いものなのか? ・network の方にあれば良いものなのか? がわかりません。(特に全サーバ問題なく動いているのですが・・・。) また、全サーバ複数NICがささっていても、アップリンク(インターネット等)への接続は全てeth0になっております。eth0の先のルータで、ルーティングしております。 ご教授お願いします。

  • NIC2枚差の設定について

    CentOS5.2にてNICが2つある状態です。 それぞれの設定はこのようにしております。 /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=none IPADDR=192.168.24.200 NETMASK=255.255.255.0 BROADCAST=192.168.24.255 HWADDR=xx:xx:xx:xx:xx:xx ONBOOT=yes IPV6INIT=no NETWORK=192.168.2.0 TYPE=Ethernet USERCTL=no /etc/sysconfig/network-scripts/ifcfg-eth2 DEVICE=eth2 BOOTPROTO=none IPADDR=192.168.11.200 NETMASK=255.255.255.0 BROADCAST=192.168.11.255 HWADDR=xx:xx:xx:xx:xx:xx ONBOOT=yes IPV6INIT=no NETWORK=192.168.11.0 TYPE=Ethernet USERCTL=no /etc/resolv.conf nameserver 192.168.11.1 nameserver 192.168.24.1 # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.2.0 * 255.255.255.0 U 0 0 0 eth1 192.168.11.0 * 255.255.255.0 U 0 0 0 eth2 169.254.0.0 * 255.255.0.0 U 0 0 0 eth2 default 192.168.24.1 0.0.0.0 UG 0 0 0 eth1 /etc/sysconfig/network GATEWAY=192.168.24.1 ゲートウェイはそれぞれ別のルーターで、グローバールIPをルーターが持っています。 一般的な固定IP1ってやつです。 サービス(たとえばSSH)にアクセスしようとしたときにゲートウェイが設定されているルーターのグローバルIPからだとアクセスできるのですが、 ゲートウェイになってないほうのルーターのグローバールIPだと接続できません。 ゲートウェイを切り替えればどちらの場合でもアクセスはできるのですが、もう片方ではアクセスできないということになります。 (ルーターのパケット変換などは設定されています。) 両方のグローバルIPでアクセスするにはどうしたらよいのでしょうか? 実際には別のポートでSSHではないサービスに対してアクセスを行いたいのですが、そもそもSSHにすらアクセスできない状況で非常に困っています。 どうかよろしくお願いします。

  • ネットワークの設定について質問です。

    ネットワークの設定について質問です。 (※参考で示しているドメインやIPはダミーです。) OSはCentOS5.5です。 今回ドメインに対するIPの関連付けにおいて対象IPが変わります。 例:hogehoge.com→202.210.20.100 から 58.104.160.198 に変わります。 そのときにDNSの変更をするのですが、 変更した直後は hogehoge.com→202.210.20.100の場合と、hogehoge.com→58.104.160.198の場合 が存在することになります。 これは変更したドメイン情報がネットワーク上に完全に浸透していないためなのですが、 浸透が終わるまでどちらのIPからでもサイトにつながるようにしたいです。 そこでサーバーにNIC(LANの差込口)が2つありますので それぞれのNICにグローバルアドレスを設定すれば良いと思っているのですが、 現在片方しかつながらず困っています。 こういった状況のときのサーバーの設定方法を教えて頂たいです。 /etc/network の設定 NETWORKING=yes NETWORKING_IPV6=yes HOSTNAME=www DOMAINNAME=hogehoge.com /etc/sysconfig/network-scripts/ifcfg-eth0 の設定 DEVICE=eth0 BOOTPROTO=static BROADCAST=202.210.20.127 HWADDR=00:01:02:03:04:01 IPADDR=202.210.20.100 IPV6INIT=yes IPV6_AUTOCONF=yes NETMASK=255.255.255.224 NETWORK=202.210.20.96 GATEWAY=202.210.20.126 ONBOOT=yes /etc/sysconfig/network-scripts/ifcfg-eth1 の設定 DEVICE=eth1 BOOTPROTO=static BROADCAST=58.104.160.223 HWADDR=00:01:02:03:04:02 IPADDR=58.104.160.198 IPV6INIT=yes IPV6_AUTOCONF=yes NETMASK=255.255.255.224 NETWORK=58.104.160.192 GATEWAY=58.104.160.222 ONBOOT=yes /etc/hosts の設定 202.210.20.100 www.hogehoge.com www 58.104.160.198 www.hogehoge.com www /etc/hosts の設定 search hogehoge.com nameserver 212.178.214.28 nameserver 212.178.214.29 ※IPV4でサーバー活用しており、設定にIPV6の使用をYESにしていますが、 特にIPV6は使用していません。サーバー構築時にデフォルトで設定されていたものなので そのままにしている状態です。 networkにGATEWAYの設定をすると、指定した方のネットワークのみに有効になってしまうので、 ifcfg-eth0やifcfg-eth1にそれぞれのゲートウェイを設定させてている状態です。 routeコマンドを実行すると Destination Gateway Genmask Flags Metric Ref Use Iface 202.210.20.96 * 255.255.255.224 U 0 0 0 eth0 58.104.160.192 * 255.255.255.224 U 0 0 0 eth1 169.254.0.0 * 255.255.0.0 U 0 0 0 eth1 default 58.104.160.222 0.0.0.0 UG 0 0 0 eth1 になっている状態です。 この設定以外は特に他のファイルを設定してません。 わかる方がいましたらご教授のほどよろしくお願いします。

  • 1台で複数セグメント持つ際の設定(Linux)

    1台のLinuxサーバに、NICを2つ搭載し、それぞれ別のネットワークセグメントを想定した場合の設定方法を教えてください。 異なるネットワークセグメントを持つことから、ホスト名、IPアドレス、デフォルトゲートウェイもそれぞれ異なります。 /etc/sysconfig/networkには、HOSTNAME と GATEWAY の設定が必要だと思いますが、/etc/sysconfig/network の定義ファイルは2つ必要なのでしょうか。 /etc/sysconfig/network-scripts/ifcfg-eth[] は、ifcfg-eth0とifcfg-eth1 を作成することが必要だと考えてます。 /etc/sysconfig/networkを2つ(??)作成する必要があるのかどうか、わかりません。 【OS】 Red Hat Enterprise Linux 5.6

  • 仮想サーバのデフォルトゲートウェイ設定ができません

    仮想サーバのLinuxでデフォルトゲートウェイの設定が無かったので、ルータのIPアドレスで設定しようとしたのですが、「ネットワークが届きません」というエラーが表示されました。 ・実行コマンド  「route add default gw 192.168.28.1」 なぜその様なエラーが出るのか原因が分かりません。 もし原因と対策をご存じの方は是非教えて下さい。 どうか宜しくお願いします。 【環境】 仮想サーバ:CentOS5.6(ホストOS:Windows7) 仮想ネットワーク:NAT 仮想サーバIPアドレス:固定 【設定】 「/etc/sysconfig/network-scripts/ifcfg-eth0」ファイル内容 ------------------------------------------------- DEVICE=eth0 BOOTPROTO=static HWADDR=00:0C:29:2A:F1:54 TYPE=Ethernet IPADDR=192.168.211.*** NETMASK=255.255.255.0 IPV6INIT=yes IPV6_AUTOCONF=yes ONBOOT=yes #DHCP_HOSTNAME=localhost.localdomain USERCTL=no PEERDNS=no GATEWAY=192.168.28.1 -------------------------------------------------

  • Linuxでのpingでsendmsgだけのエラー

    TurboLinux8 Serverにて、2枚のNICを刺しサーバーを作成しています。 NICはWAN側とLAN側向けになっていて、それぞれのNICにpingを打つとWAN側はきちんと応答が帰りますが、LAN側のNICにpingを打っても下記のようになって応答が帰りません。 ping 192.168.0.101 ping : sendmsg ping : sendmsg ping : sendmsg ping : sendmsg : : これは、sendmsg以外何も出ていないのでどんなエラーなのか見当もつきません。 下記の定義を確認しましたが他にも確認する個所があれば教えてください。 ifconfigにて確認済み /etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1

  • RedHat Linux 9をルーターにしたい

    RedHat Linux 9を自宅ADSL環境にて、ルーターとして使用したいのですがやり方がいまいちよくわかりません。設定に必要な項目などを教えていただけませんでしょうか。 今現在は、 /etc/sysconfig/network-scripts/ifcfg-eth0(ADSLモデム側)に DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes USERCTL=no PEERDNS=yes TYPE=Ethernet /etc/sysconfig/network-scripts/ifcfg-eth1に DEVICE=eth1 BOOTPROTO=none BROADCAST=192.168.1.255 IPADDR=192.168.1.1 NETMASK=255.255.255.0 NETWORK=192.168.1.0 ONBOOT=yes USERCTL=no PEERDNS=no TYPE=Ethernet と設定されています。 その他、 /etc/sysctl.confでは、 net.ipv4.ip_forward=1 と書き換え /etc/rc.localには /sbin/modprobe iptable_nat /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_nat_ftp を追記 /etc/sysconfig/dhcpdには、 DHCPDARGS=eth1 と追記 /etc/sysconfig/networkには NETWORKING=yes HOSTNAME=localhost.localdomain GATEWAY=192.168.1.1 と設定されています。 何か足りないところがあるのでしょうか? ADSLは、YahooBBのを使用しています。 以上、長々と書かせていただきましたが、よろしくお願いいたします。

  • DNSサーバ設定ファイル"resolv.conf"の内容がリセットされる。

    IPでは、Webサイトにアクセスできるが、ドメインではアクセスできないという問題が発生したため、DNSの設定の問題を疑い、DNSサーバ設定ファイル"resolv.conf"ファイル(/etc/resolv.conf) をチャックしました。案の定、内容はコメント以外、空白だったので、DNS1=***.***.***.***、DNS2=***.***.***.***という形で設定したのですが、ネットワークを再起動するたびに、"resolv.conf"がリセットされ空白に戻ってしまいます。 原因をネットで調べて、”ifcfg-eth0”ファイル(/etc/sysconfig/network-scripts/ifcfg-eth0)の設定を変更したのですが、駄目でした。 OS:Linux Fedra 10 現在の”ifcfg-eth0”ファイルの内容は以下。 DEVICE=eth0 HWADDR=00:11:43:80:3c:42 ONBOOT=yes BOOTPROTO=static USERCTL=no PEERDNS=no IPV6INIT=no NM_CONTROLLED=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=192.168.1.105 GATEWAY=192.168.1.1 DHCPCDARGS='N'

  • linuxルーター構築について

    こんばんは。 今回やりたいのはunnumberd接続可能なルーターを作成したいです。 IPはプロバイダから8個もらってます。 現在、http://info.odic.ne.jp/security/pc_router.phpのサイトを参考に設定をしました。 設定状況 ・eth0をWAN側、eth1をLAN側 ・もらっているIPは111.222.333.100~107 ・iptablesはstopしております(ファイアーウォールは無効) [/etc/sysconfig/network-scripts/ifcfg-eth0] DEVICE=eth0 ONBOOT=no [/etc/sysconfig/network-scripts/ifcfg-eth1] DEVICE=eth1 IPADDR=111.222.333.101 NETMASK=255.255.255.248 NETWORK=111.222.333.100 BROADCAST=111.222.333.107 ONBOOT=yes BOOTPROTO=none プロバイダへの接続はできましたが、LAN側のPCにIP(111.222.333.105)を設定してもネットにつながりません。 その他設定するところはありますでしょうか? また、ほとんどのサイトを探してみましたが、もっと詳しく参考になるサイト等ご存知ないでしょうか? ほんとに困っているのでどなたかよろしくお願いします。

  • 複数グローバルIPを割り当てるには?

    XenServerで仮想サーバーを立ち上げていて 現在8個のグローバルIPを割り当てています。 例えば今割り当ているIPを 133.1.1.1~133.1.1.8 とした場合 /etc/sysconfig/network-scripts/ifcfg-xenbr0:1 で以下のような感じで設定しています。 DEVICE=xenbr0:1 ONBOOT=yes BOOTPROTO=none NETMASK=255.255.255.248 IPADDR=133..1.1 ここで 新たに8個のグローバルIPアドレスを割り当てる場合どのように設定すればいいのでしょうか? たとえば 133.2.2.1~133.2.2.8 を割り当てる場合どうすればいいのでしょうか? /28で16個を取得できればいいのですが もろもろの事情で現在のIPを変えることは難しく ネットワークアドレスなど3個のIPが無駄になりますが追加で8個取るしかない状況です。 推測ですが↓のファイル作成すればいけるのかな?とも思いますがググっても 複数のサブネットを割り当てる例が見つからず自信が持てません。 稼働中のサーバー動かすから推測で試してみるのは怖いですし ある程度裏付けが欲しいのですが。 /etc/sysconfig/network-scripts/ifcfg-xenbr0:2 DEVICE=xenbr0:2 ONBOOT=yes BOOTPROTO=none NETMASK=255.255.255.248 IPADDR=133..2.2 よろしくお願いいたします。