• ベストアンサー
  • 困ってます

NICの2枚挿し(ルーター用に)

こんにちわ。 RedHat Linux9をADSLルーターにしようとしています。 (ADSLは、YahooBBのです) ですが、NIC一枚だけ(eth0)の時は、ちゃんとインターネットに接続でき外に向けたpingも通るのですが、二枚目(eth1)を認識させたとたんに、外へのpingすら通らなくなってしまいます。 eth0には、DHCPからIPアドレスなどを取得するように設定 eth1には、 IPAddress=192.168.1.1 SubnetMask=255.255.255.0 DefaultGateway:設定なし としています。 /etc/sysctl.comは、 net_ipv4.ip_forward=1 # iptables -t nat -A POSTROUTING -s 192.168.1.0 -o eth0 -j MASQUERADE も打ってみたのですが。。 以上、足りない設定や確認すべきところなど教えていただけませんでしょうか。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数464
  • ありがとう数1

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

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

うちもlinuxで2枚差しでマスカレードしています。RedHatではないのでお役に立てるかどうかは分かりませんが。。。 ルータにしたいマシン上からpingが通らないんですよね? でしたらiptablesは関係ないと思います。iptablesに関しては、LAN上の別のマシンからpingが飛ばなかったときに確認してください。 おそらく、デフォルトゲートウェイが設定してないせいではないでしょうか? ifconfigで、eth0のipaddrは分かりますよね、そしたら netstat -r して、defaultがeth0のアドレスになっているか確認してください。 通常は、dhcpのアドレス取得が成功した場合はそこが自動的にデフォルト経路になると思うのですが、、、その辺の設定も正しいか確認してみてください。

共感・感謝の気持ちを伝えよう!

質問者からの補足

shige_70さん、レスありがとうございます。 とりあえずは、ネット接続できるようになりました。ありがとうございました。 /etc/sysconfig/network のGATEWAYの設定がおかしかったようです。 WindowsXPのマシンを直接ADSLモデムに接続した際に、ipconfigにて表示されるDefaultGatewayを /etc/sysconfig/network の中のGATEWAYに設定したところルーターにしているマシンからのpingやWebブラウジングが可能になりました。 ただ、LAN側においているマシンからのネット接続も可能になったのですが、なぜかpingだけは通らないようです。。 > 通常は、dhcpのアドレス取得が成功した場合はそこが自動的にデフォルト経路になると思うのですが、、、その辺の設定も正しいか確認してみてください。 こちら、どのあたりの設定を確認すればよいのか、ご存知でしたらご教授いただけませんでしょうか?

その他の回答 (2)

  • 回答No.3

#2です。 pingのみだめですか。。とするとおそらくtracerouteもだめですよね。 フィルタリングでicmpのパケットを通さないようにしていると思われます。実害はないでしょうから放って置いても問題ないです。それどころかむしろセキュリティ上わざとそういう設定にすることもあるくらいです。 iptablesの設定を試していたときにそうなってしまったんではないでしょうか。。。そのへんはおいおい勉強しながら直してみればよいと思います。 dhcpの設定についてはdhcpクライアントの種類によって違います。私の使っているdhcpcdはほとんど設定しなくても使えるタイプですので、、、お役に立てず申し訳ありません。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

/etc/sysconfig/network NETWORKING=yes HOSTNAME=*** GATEWAYDEV=eth0 と書き換えたら、pingがすぐに通るようになりました。ルーターマシンからも内側PCからも。。 うちのDHCPクライアントもちゃんと設定を拾ってきているようでした。 いろいろと、ご回答いただきまして、ありがとうございました。

  • 回答No.1

こちらが違っていませんか? -s 192.168.1.0 → -s 192.168.1.0/24 http://www.jp.redhat.com/manual/Doc9/rhl-rg-ja-9/s1-iptables-options.html

参考URL:
http://www.jp.redhat.com/manual/Doc9/rhl-rg-ja-9/s1-iptables-options.html

共感・感謝の気持ちを伝えよう!

質問者からの補足

MovingWalkさん、レスありがとうございます。 教えていただいたとおりサブネットマスクも指定してiptablesコマンドを実行したのですが、またネット接続がうまくいきませんでした。。 iptableについてもう少し勉強したほうがよさそうですね。リンク先など参照させていただきます。

関連するQ&A

  • Linuxルータの構築

    CentOS5.4にて、Linuxルータを構築しようと考えています。 そこで、NICを新たに1枚購入して構築を進めているのですが、うまくいきません。 ネットワークの構成は、 外部  ------ ルータ(192.168.1.1)--(192.168.1.5)linuxルータ(192.168.2.1)--クライアント(192.168.2.3) 設定方法は、CentOSのGUIで行ったもので、外部側 (eth0)は 上記のipとデフォルトゲートウェイ(192.168.1.1)を設定し、内部側(eth1)は、上記のipとデフォルトゲートウェイに(192.168.1.5)を設定しています。 そして、iptablesには、 ----- setiptables.sh ----- external_ip='192.168.1.0/24' internal_ip='192.168.2.0/24' my_external_ip='192.168.1.5' my_internal_ip='192.168.2.1' eth_external='eth0' eth_internal='eth1' iptables -t filter -F iptables -t nat -F iptables -t mangle -F iptables -t filter -X iptables -t nat -X iptables -t mangle -X iptables -t nat -A POSTROUTING -o $eth_external -s $internal_ip -j MASQUERADE iptables -t nat -A POSTROUTING -o $eth_internal -s $external_ip -j MASQUERADE --------- このように設定しています。 この環境でクライアントからpingしてみたところ、192.168.1.5には到達できるのですが、外部には到達することができません。 つたない説明で申し訳ありませんが、アドバイス頂ければ幸いです。 分かりにくいところがあれば言っていただければ、補足説明させていただきます。 よろしくお願いします。

  • iptablesを使ってルーターを作りたい

    今、iptablesを使ってルーターを作りたいと思っています。 グローバルIPは複数利用できます。 ルーターに使うLinux(CentOS4.3) eth0:192.168.100.1 ⇒ LAN内 eth1:210.*.*.1 ⇒ インターネット という感じになっています 上記ルーターには、外部からグローバルIPでアクセスできるようになっています。 現在、 iptables -t nat -A POSTROUTING -s 192.168.100.0/255.255.255.0 -o eth1 -j MASQUERADE とやり、LAN内からインターネットにはつなげるようになっています。 グローバルIP 210.*.*.2 で外部からアクセスがあった時に プライベートIP 192.168.100.2 にすべて中継する設定をしたいとおもっています。 iptables -t nat -A PREROUTING -d 210.*.*.2 -p tcp --dport 80 -j DNAT --to 192.168.100.2 とやってみたのですが、外部からはアクセスすることはできませんでした。 どなたか、教えてもらえると助かります。

  • BBルータ化

    CentOS4.4でLANカードを2枚差しにしてPPPoE接続をし、ブロードバンドルータのようにルータ化したいと考えています。しかし、pppoe接続までうまくいくのですが、なぜかインターネット接続ができません。/etc/sysctlなどの設定は1に設定してあります。iptablesの設定はiptables -Fですべて 許可している状態です。eth0がインタネット(WAN)側でeth1がLAN側(192.168.0.1)です。PCからeth1へpingが通るのでIPマスカレードの設定が間違っているのでしょうか? ご存知の方、よろしくお願いします。

  • iptablesでNATログを取りたい。

    CentOS6.3のiptablesにて 192.168.1.0/24(eth1)→192.168.13.254(eth0) 192.168.2.0/24(eth2)→192.168.13.254(eth0) と、二つのLANをeth0に向けてNAPTするよう設定しています。 ただ実際、LANからeth0へのアドレスが変換されているかの情報を知りたいと思っております。 そこで以下設定を記述してみました。 ・iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 LOG --log-prefix "1_MASQ_LOG : " --log-level=debug -j MASQUERADE ・iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 LOG --log-prefix "2_MASQ_LOG : " -j MASQUERADE 実行しようとすると、LOG部分がエラーになり実施できません。 どのように、設定すれば変換ログ情報を取得できるでしょうか? ご教授お願いします。

  • FletsADSLを経由してのLinuxルータ???

    前回、Linux機はFletsADSLを経由して、外のIPAddressは訪問できましたが、 でも、このマシンはルータとして、後のLANのマシンはまだ訪問できませんでした。 OS: RedHatLinux 7.01J Hardware: CPU celeron 333MHZ Memory:64MB NIC eth0:rtl8139 eth1:tulip インストール手順: 1>eth1にADSLModemと接続させて、eth0は別のマシンと接続している。 それで、netconfでeth1関連IPアドレスを抜いて、無効になった。 2>次、adsl-setupで、ISPから貰ったUID、eth1を選択して、ISPプライマリーDNS とセカンダリーDNSのIPアドレス、パスワード、firewallの選択(0に指定して) 等順序に設定した。 3>adsl-startで起動して、...connectedになった、成功そうです。 4>ifconfigで確認して、eth0,eth1,lo,ppp0に対しての情報が出てきた。 eth0 ......... MTU=1500 eth1 ......... MTU=1500 ppp0 ......... MTU=1454 成功そうです。 5>/etc/sysconfig/networkに,gatewaydevはeth1になる 6>このlinuxマシン自体でping www.goo.ne.jpは順調にできました。 7>eth0と接続しているほかのマシンで"ping www.goo.ne.jp"をやりますと、 最初には、正しいIPAddress順調に出来ましたが、すぐ、"Request timed out" になりました。 でも、"ping linux機のinetのIPAddress"は大丈夫でした。 今、困っています。 よろしくお願いいたします。

  • Linux 複数ISP時でのiptablesの設定

    ローカルとサーバー用にISPを分けて使用したいのですがその際の設定についてお聞かせください。 環境としてましてはISP1とISP2共に動的IP。CentOS6.2にNIC二枚挿しでルータ兼サーバとして使用しています。 インターネット ― (eth1)サーバ兼ルーター(eth0) ― ローカルPC サーバーIP:192.168.0.10 ネットワークアドレス:192.168.0.0/24 ppp0:ISP1(ローカルPC用) ppp1:ISP2(サーバ専用) 上記のようにしたいのですが現在はppp0のみで接続しています。 これにppp1を追加しサーバ専用に使いたいのですが思うようにいきません。 ppp0の設定をコピーしppp1を追加しifconfigにてppp1が稼動している事を確認。ip routeを設定してみるもうまくいかず。iptablesの設定も変えないといけないと思うのですが今一わかりません。 現在のppp0のみの設定は下記になります。これにppp1をサーバ用に追加するにはどうしたらいいか。 WAN='ppp0' LAN='eth0' LOCALNET='192.168.0.0/24' #----------------# # デフォルトルール # #----------------# iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT #---------------------------------# # 自ホストからのアクセスをすべて許可 # #---------------------------------# iptables -A INPUT -i lo -j ACCEPT #---------------------------------------------# # ローカルネットアドレスからのアクセスをすべて許可 # #---------------------------------------------# iptables -A INPUT -i $LAN -j ACCEPT iptables -A FORWARD -i $LAN -j ACCEPT #------------------------------------------------# # ローカルネットワーク内からのインターネット接続を許可 # #------------------------------------------------# iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward #--------------------------------------------------------# # 内部から行ったアクセスに対する外部からの応答アクセスを許可 # #--------------------------------------------------------# iptables -A INPUT -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT ~中略~ #----------------------------------------------------# # Webサーバー(80番ポート)HTTPへのアクセスをすべて許可 # #----------------------------------------------------# iptables -A INPUT -p tcp --dport 80 -j ACCEPT 上の設定の場合ppp1を追加する場合、WAN2を追加しWANを記述するべき箇所をコピーし追記するのか?もしくはeth1としたほうがいいのか? 例1: iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE WAN2='ppp1' iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE iptables -t nat -A POSTROUTING -o $WAN2 -j MASQUERADE 例:2 iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE WAN='eth1' iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE 正確な設定方法がわかりませんのでどこをどうすれば良いのか教えていただけると助かります。よろしくお願いします。

  • FletsADSLを経由しての自作linuxルータは不調

    前回、Linux機はFletsADSLを経由して、外のIPAddressは訪問できましたが、 でも、このマシンはルータとして、後のLANのマシンはまだ訪問できませんでした。 OS: RedHatLinux 7.01J Hardware: CPU celeron 333MHZ Memory:64MB NIC eth0:rtl8139 eth1:tulip インストール手順: 1>eth1にADSLModemと接続させて、eth0は別のマシンと接続している。 それで、netconfでeth1関連IPアドレスを抜いて、無効になった。 2>次、adsl-setupで、ISPから貰ったUID、eth1を選択して、ISPプライマリーDNS とセカンダリーDNSのIPアドレス、パスワード、firewallの選択(0に指定して) 等順序に設定した。 3>adsl-startで起動して、...connectedになった、成功そうです。 4>ifconfigで確認して、eth0,eth1,lo,ppp0に対しての情報が出てきた。 eth0 ......... MTU=1500 eth1 ......... MTU=1500 ppp0 ......... MTU=1454 成功そうです。 5>/etc/sysconfig/networkに,gatewaydevはeth1になる 6>このlinuxマシン自体でping www.goo.ne.jpは順調にできました。 7>eth0と接続しているほかのマシンで"ping www.goo.ne.jp"をやりますと、 最初には、正しいIPAddress順調に出来ましたが、すぐ、"Request timed out" になりました。 でも、"ping linux機のinetのIPAddress"は大丈夫でした。 今、困っています。 よろしくお願いいたします。

    • ベストアンサー
    • ADSL
  • CentOSのルーター化について

    ADSLモデム --->ブロードバンドルーター(192.168.1.1)の構成で各クライアントPCがWAN側に出れる状態です。 現在CentOS6.5の入ったサーバー(192.168.1.10)をブロードバンドに接続しています。WAN側にも問題なく出れる状態です。サーバーにNICを1枚追加しました。元々使用していたNICはeth0(192.168.1.10)で追加のNICはeth1(192.168.2.1)です。詳細は以下のとおりです。 eth0の設定 DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.1.255 HWADDR=xx:xx:xx:xx:xx:xx IPADDR=192.168.1.10 NETMASK=255.255.255.0 NETWORK=192.168.1.0 ONBOOT=yes GATEWAY=192.168.1.1 DNS1=192.168.1.1 eth1の設定 DEVICE=eth1 BOOTPROTO=static BROADCAST=192.168.2.255 HWADDR=xx:xx:xx:xx:xx:xx IPADDR=192.168.2.1 NETMASK=255.255.255.0 NETWORK=192.168.2.0 ONBOOT=yes /etc/sysconfig/network の設定 NETWORKING=yes HOSTNAME=localhost.localdomain FORWARD_IPV4=yes GATEWAY=192.168.1.1 sysctl -w net.ipv4.ip_forward=1 というコマンドを実行 /etc/sysctl.conf 内の下記内容変更 net.ipv4.ip_forward = 1 ※0から1に変更 /etc/rc.d/init.d/network restart を実行。追加したNIC(eth1)に直接、クライアントPCを固定IP(192.168.2.2 MASK 255.255.255.0 Gateway 192.168.2.1 DNS 192.168.2.1)に設定しました。 クライアントPCから追加したNIC(192.168.2.1)及び元々あるNIC(192.168.1.10)にpingは通ります。しかし、クライアントPCから192.168.1.1(ルーター)にpingが通りません。又、サーバーからクライアントPC(192.168.2.2)にpingが通りません。 192.168.2.0のネットワークからWAN側に出れるようにしたいのですが、何が足りないのでしょうか。サーバーのiptables及びselinuxは停止してあります。 routeコマンドの結果です。 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.2.1 * 255.255.255.255 U 0 0 0 eth1 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.255.0 U 1002 0 0 eth1 link-local * 255.255.255.0 U 1003 0 0 eth0 default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 よろしくお願いします。

  • iptablesでポートフォアワードがうまくいかない。

    お世話になります。下記の通りiptablesでフィルターとNATの定義をしました。 しかし、内部からネットへの接続は可能ですが、外部からWebサーバーにあるHPが見れない指摘を受け、その原因を調べています。 不備な点、ご指導賜りたく存じます。 eth0:1.2.3.4 ---------- | Linux | ----------- eth1:192.168.0.101   | websever:192.168.0.100 cla:192.168.0.102~ modprobe iptable_nat modprobe ip_conntrack_ftp modprobe ip_nat_ftp iptables -F iptables -t nat -F iptables -t mangle -F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT iptables -A OUTPUT -o lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j ACCEPT iptables -A OUTPUT -o eth1 -d 192.168.0.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -d 1.2.3.4 -j ACCEPT iptables -A OUTPUT -p tcp --dport 80 -s 1.2.3.4 -j ACCEPT iptables -A INPUT -p tcp --dport 53 -d 1.2.3.4 -j ACCEPT iptables -A OUTPUT -p tcp --dport 53 -s 1.2.3.4 -j ACCEPT iptables -t nat -A PREROUTING -p tcp -d 1.2.3.4 -i eth0 --dport 80 -j DNAT --to 192.168.0.100:80 iptables -A FORWARD -i eth1 -o eth0 -s 192.168.0.0/24 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4 iptables -t nat -A POSTROUTING -s 192.168.0.102/32 -o eth0 -j MASQUERADE

  • iptablesでアドレス変換したい

    初心者です。 iptablesの勉強中ですが、アドレスの変換がうまくできず行き詰っています。 下図のように Mannaka をはさんで隔離された実験環境をつくりました。ここでやりたいことは、とにかくどんなアクセスやプロセスでもいいので、Mannaka をはさんで 192.168.10.10 <--> 192.168.20.100 192.168.10.20 <--> 192.168.20.200 というアドレス変換を実現したいということです。実験なのでセキュリティは度外視し、とにかくつながることを優先しています。Server1とServer2ではWebサーバーが動いていて、Apacheのインストールページが表示されます。 (192.168.20.100) Server1――          |          |―(eth1)Mannaka(eth0)―――PCs(192.168.10.X)          | (eth0=192.168.10.10)Mannaka IP Server2――  (eth1=192.168.20.10)Mannaka IP (192.168.20.200)          ---            (eth0:1=192.168.10.100)Server1 IP            (eth0:2=192.168.10.200)Server2 IP iptablesの設定は下記のようにしました。 ---------- ---------- #!/bin/sh service iptables restart echo 1 > /proc/sys/net/ipv4/ip_forward iptables -F iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -A FORWARD -d 192.168.10.10 -s 0.0.0.0 -j ACCEPT iptables -A FORWARD -d 0.0.0.0 -s 192.168.10.10 -j ACCEPT iptables -A FORWARD -d 192.168.10.20 -s 0.0.0.0 -j ACCEPT iptables -A FORWARD -d 0.0.0.0 -s 192.168.10.20 -j ACCEPT iptables -t nat -A PREROUTING -d 192.168.10.10 -j DNAT --to 192.168.20.100 iptables -t nat -A PREROUTING -d 192.168.10.20 -j DNAT --to 192.168.20.200 iptables -t nat -A POSTROUTING -s 192.168.20.100 -j SNAT --to 192.168.10.10 iptables -t nat -A POSTROUTING -s 192.168.20.200 -j SNAT --to 192.168.10.20 ---------- ---------- 意図としては、 192.168.10.10へのアクセスがServer1(実IP192.168.20.100)、 192.168.10.20へのアクセスがServer2(実IP192.168.20.200) へと割り振られ、同じく Server1(実IP192.168.20.100)からのアクセスが192.168.10.10、 Server2(実IP192.168.20.200)からのアクセスが192.168.10.20 へと割り振られる、ということなのですが、スクリプトを実行してもeth0側のPCからeth1側のサーバーにアクセスできません。eth1側からeth0側へのアクセスもできません。192.168.20.0内部でのPing送受信やWebサイト閲覧は自由にできますが、eth0側のPCから192.168.10.10と192.168.10.20にPingを送っても、Mannakaサーバーが応答してしまい意図した動きにはなっていません。Server1とServer2のWebサイトも閲覧できません。 環境は、Mannaka, Server1, Server2 がCentOS6、その他のPCはWindows7です。 これがなぜ意図したとおりに動かないのか、そしてどうすれば動くようになるのかをご教示いただけないでしょうか。 よろしくお願いします。