• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FreeBSDでNICを2枚使う設定がわからない)

FreeBSDでNICを2枚使う設定がわからない

このQ&Aのポイント
  • FreeBSD7.2でsendmailサーバを運用しています。NICを2枚利用して、ローカルLANからのアクセス用と、インターネット向けのメール送受信用のポートを分けることを検討しています。
  • NICを2枚使用する場合に、それぞれのNICに別々のDNS、デフォルトゲートウェイを設定する方法がわかりません。FreeBSDでそれぞれのNICに個別のIPを振るのは、rc.confで出来そうですが、DNS設定を登録するresolv.confでNICの指定が出来るかわかりません。
  • sendmail上で、ローカルとネット向けで利用するNICをわける方法がわかりません。単純にNICを2枚挿しただけでは、ネット向けの通信もローカル側に配信されるのではないかと理解しています。BCP対策として利用予定のF/Wの制限で、ローカルLANのアクセスポートとインターネット向けのアクセスポートを分ける必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

おそらく、FreeBSD以前の問題として、IPネットワークのことがまだよく理解できていないのではないでしょうか? とりあえず、独自の表現「ローカルLAN」というは用語は、社内*ローカル*アクセスなどの内部ネットワークのことと仮定します。 「インターネットに接続できるものは専用ネットワーク(外部ネットワーク)に接続されたノードのみで、内部ネットワークには アクセスできない。内部ネットワークに接続したノードは、インターネットへのアクセスができない。」ということでしょうか? 以下のような構成だと仮定します。とりあえず、NATなどは無視します。 F/Wがうんぬんということで、内部側にもゲートウェイ(ゲートウェイの先に別ネットワークセグメント)があるものとします 構成の予想図: (((インターネット))) | R:インターネット接続側ゲートウェイ(192.168.0.0/24) | ――――― 外部接続用ネットワーク:192.168.0.0/24 | |192.168.0.100/24 ■:FreeBSD |192.168.1.100/24 | ――――― 内部ネットワーク:192.168.1.0/24 | G:内部ネットワークゲートウェイ(192.168.1.1/24) | (((内部ネットワーク))) 192.168.2.0/24と192.168.3.0/24の2つとします。 経路設定、DNS設定、sendmail設定に分けて説明します。 **FreeBSD上の経路設定**  経路設定にNICは関係ありません。  ※ 詳細は避けますが、Windows ではできるように見えますが、設定できるだけであってNIC毎にデフォルトゲートウェイが    機能するわけではありません。  「ゲートウェイ(アドレス)」とは、自分が直結しているセグメント以外のネットワークについて、ゲートウェイになってくれる  アドレスを指定するものです。そのため、きちんと指定すれば、NICは関係ありません。  デフォルト経路:   ゲートウェイを192.168.0.1に設定する  192.168.2.0/24宛: ゲートウェイを192.168.2.1に設定する 起動時に有効にする rc.conf での設定(デフォルト経路の設定はわかると思いますので省略します)   static_routes="route1 route2"   route_route1="-net 192.168.2.0 -netmask 255.255.255.0 192.168.1.1"   route_route2="-net 192.168.3.0 -netmask 255.255.255.0 192.168.1.1"  ※ 変数名ですので、route1,route2というのはユニークな名前であれば構いません。   static_routes="kaihatsu keiri"   route_kaihatsu="-net 192.168.2.0 -netmask 255.255.255.0 192.168.1.1"   route_keiri="-net 192.168.3.0 -netmask 255.255.255.0 192.168.1.1" これは、内部的には、"route add -net 192.168.2.0 -netmask 255.255.255.0 192.168.1.1" というような 経路設定コマンドが実行されます。 内部ネットワークのセグメントがいっぱいあると大変かもしれませんが、 192.168.0.0/16(192.168.0.0 -netmask 255.255.0.0)などで向けてしまえばよいと思います。 ※192.168.0.0/16だとインターネット側の192.168.0.0/24は?と思うかもしれませんが、  より細かなネットワークの方の宛先を優先しますので、192.168.0.0/24宛がGになることはありません。  (そもそも、FreeBSD自身が直結しているセグメントですね)  最悪、10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16のプライベートIP空間全体を向ければ何とかなるかもしれません。  グローバルIP宛をデフォルト経路で処理する   static_routes="privateA privateB privateC"   route_privateA="-net 10.0.0.0 -netmask 255.0.0.0 192.168.1.1"   route_privateB="-net 172.16.0.0 -netmask 255.240.0.0 192.168.1.1"   route_privateC="-net 192.168.0.0 -netmask 255.255.0.0 192.168.1.1"   もし、 ゲートウェイRに向けないといけないプライベートIPネットワークがあれば、192.168.0.1宛を個別に記載してください。 「デフォルトゲートウェイ」とは、このような個別のネットワーク宛先のゲートウェイとして設定されていない時の *デフォルト*のゲートウェイということになります。そのため、NIC自体に設定するということは特殊な方法を除きありません。 **DNS設定**   resolverの設定だと思いますが、nameserver は2つまで書くことができ、上から順番に参照します。   内部ネットワーク側のDNS情報は、内部DNSしか持っていないのであれば、     nameserver 内部用DNSサーバを指定     nameserver インターネット接続側DNSサーバを指定   としておけば、おそらく問題ないと思います。1つ目が駄目な時、次に移るため、インターネット側サーバのDNS解決   に時間が少し掛るようになるかもしれません。   なお、内部用DNSサーバがインターネット側の情報も解決できるのであれば、内部DNSサーバだけ登録する   のでも問題ないと思います。   これは、内部DNSサーバだけ登録して、digコマンドで、「dig okwave.jp」など外部のインターネット側のサーバ   のIPアドレスを解決できるか確認してみましょう。   このように、  IPルーティングで、FreeBSDから見て、どちらにあるか設定済みですから、DNS設定としては、   NICは関係ありません。 **sendmail設定**  インターフェイス別(それぞれのIPアドレス毎)にsendmailを別々に用意しなくとも、経路情報から、正しい宛先に出ていきます。  受信について、デフォルトではsendmailは全てのインターフェイス(NIC)からの接続を受け付けます。  インターフェイス別に挙動が違うsendmailを用意したい(図では、192.168.0.100, 192.168.1.100で別の挙動をさせる)場合、  インターフェイスごとのsendmailの設定を用意し、sendmailを二つ挙げる(別のメールサーバのように見せる)という方法もあります。   一つ目は、192.168.0.100に割り当て、2つ目は192.168.1.100という方法で、読み込む設定の異なるsendmailを2つ上げる   のですが、おそらく、そういう話ではなく、1つのsendmailで済む話と思いますので、こちらは割愛します。  送信(FreeBSDから送信)ですが、メールアドレスのドメインによって、送信先を変えたいことがあるかもしれません。  DNSサーバ側でうまく設定できていれば、特に気にしなくともよいのですが、場合によっては明示的に指定した方が  良いと思います。   1.mailertableが使えるようにsendmail.cfを作成してください。     internal.foo.jp 宛を、mail.internal.foo.jp宛に送る場合      /etc/mail/mailertable の設定          internal.foo.jp smtp:[mail.internal.foo.jp]  ←DNSが引けない時を想定したい場合、IPアドレスで書くのもあり     [~]で送り先のメールサーバを囲むのを忘れないでください。       internal.foo.jp smtp:[mail.internal.foo.jp]               → internal.foo.jp 宛を mail.internal.foo.jp に送ります。       internal.foo.jp smtp:mail.internal.foo.jp              → internal.foo.jp 宛を mail.internal.foo.jp のMXとして登録しているサーバに送ります。   mailertable 参考:http://www.ksknet.net/sendmail/mailertable.html など 回答の残り字数が足りなくなりそうなので、全体的にあまり丁寧な書き方ではなく、また、ネットワーク状況がいまいち わかりにくいため答えづらく、申し訳ないですが、おそらく、このような方法でなんとかなるのではないでしょうか

fbdunix
質問者

お礼

詳細な説明をありがとうございます。 基本的には、ご指摘の構成で間違いありません。 予想構成図のR側にインターネットゲートウェイを接続、G側を社内ネットワークに接続して、 社内のPCからはGを経由しメールの送受信をし、社外とのメール交換はR側で行うことを考えています。 DNSは社内にあるDNSで基本的には、社外の名称解決もできるはずですが、resolv.confに社外DNSも追加してみます。 まずは、ご指摘いただいた設定で試してみます。 FreeBSD及びネットワーク環境は前任者が構築し、引き継ぎ資料等もない状態で、手探りで運用しているため、中途半端な理解でわかりにくい記載となり申し訳ありませんでした。

fbdunix
質問者

補足

作業時間が確保できず、まだ試していませんが、 質問から時間がたってしまいましたので、 ベストアンサーとさせていただきます。

その他の回答 (1)

回答No.1

DNSはホスト名からIPアドレスを調べるために使用するので、その時点でどのNICを使用するかはOSにはわかりません。だから、NICごとに設定しても意味はありません。Windowsで複数NICの場合は、優先設定されているNICのDNSのみが使用されているはずです。 デフォルトゲートウェイについても、どのゲートウェイ(NIC)を使用するべきかわからない相手と交信する場合に使用するのですから、NICごとに設定できるものではありません。

fbdunix
質問者

お礼

ご指摘ありがとうございました。 NICを1枚のみのサーバやPCは運用したことがあるのですが、複数のNICを使用した機器の運用の経験がないため、的外れな質問となっていました。 申し訳ありませんでした。 No.2の方の指摘を参考に設定してみます。

関連するQ&A