web-dev-qa-db-ja.com

ルーター/ゲートウェイとしてのUbuntu-アクセスできませんWAN

現在、Ubuntu 12.04を実行しているマシンを使用してホームルーターをセットアップしようとしています。マシンには2つのイーサネットポートがあります。 eth0はLAN、eth1はWANです。

Eth0を静的IPに設定し、eth1がDHCP経由でIPを要求しています。

/etc/network/interface

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 10.1.1.10
  netmask 255.255.255.0
  gateway 10.1.1.10
  dns-nameservers 10.1.1.1 10.1.1.10

auto eth1
iface eth1 inet dhcp

これにより、LANコンピューターにpingを実行できますが、外部ホストにpingまたはアクセスできません。モデムはeth1に有効なIPアドレスを与えています。マシンはLAN IPを10.1.1.10に設定しています(すべてが機能しているときに10.1.1.1に移動されます)。

以下を/etc/bind/named.conf.optionsに追加しました:

    forwarders {
            8.8.8.8;
            8.8.4.4;
    };

net.ipv4.ip_forward = 1/etc/sysctl.confに追加されました。

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         Vanir.local     0.0.0.0         UG    100    0        0 eth0
10.1.1.0        *               255.255.255.0   U     0      0        0 eth0
98.162.168.0    *               255.255.252.0   U     0      0        0 eth1
link-local      *               255.255.0.0     U     1000   0        0 eth0

WANとマシン上のLANトラフィックの両方を許可するために、私が見落としているものを誰かが見ていますか?

2
earthmeLon

/etc/udev/rules.d/70-persistent-net.rulesを編集することで、この問題を解決できました。 eth0をmy WAN NICにすることで、Linuxはそのゲートウェイをデフォルトゲートウェイとして自動的に使用しました。

/ etc/udev/rules.d/70-persittent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x10ec:/sys/devices/pci0000:00/0000:00:1c.4/0000:03:00.0 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="FF:FF:FF:FF:FF:F0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x10ec:/sys/devices/pci0000:00/0000:00:1c.5/0000:04:00.0/0000:05:01.0 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="FF:FF:FF:FF:FF:F1", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10ec:0x8169 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="FF:FF:FF:FF:FF:F2", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
2
earthmeLon

インターフェイスを並べ替えることでこれを解決できたとしても、これは問題の本当の原因ではありません。

問題の本当の原因はこれです:

 auto eth0 
 iface eth0 inet static 
 address 10.1.1.10 
 netmask 255.255.255.0 
gateway 10.1 .1.10
 dns-nameservers 10.1.1.1 10.1.1.10 

ここでは、10.1.1.0/24サブネット上にないエンティティへのパケットがある場合、10.1.1.10に送信する必要があると言っています。しかし、10.1.1.10はローカルコンピューターです。パケットはこのコンピューター宛てではないため、ルーティングテーブルで検索し、パケットを10.1.1.10。に転送することを決定します。これは、1台のコンピューターの ルーティングループ です。

(おそらく)自宅にルーターが1つしかない場合は、サブネット内のすべてのIPがローカルに到達できるため、ローカルインターフェイスにゲートウェイを定義しないでください。自宅に複数のルーターがある場合、それらのルーターによって処理されるネットワークへのspecificルートを設定する必要があります。 2つのデフォルトルートで意味があるのは、実際にインターネットへの2つの異なるルートがある場合だけです。

セットアップでは、onlyインターネットを指すインターフェイスにデフォルトゲートウェイを定義する必要があります。したがって、構成は

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
  address 10.1.1.10
  netmask 255.255.255.0
  dns-nameservers 10.1.1.1 10.1.1.10

auto eth1
iface eth1 inet dhcp

これはうまくいくでしょう。

自宅に複数のルーターがある場合、おそらくホームラボなどが原因であり、おそらくそれを処理するためにルーティングプロトコルを採用しているでしょうが、post-up route add 192.168.1.0/24 gw 10.1.1.20 例えば。

インターフェースの並べ替えがうまくいったという事実は、たぶん偶然であり、おそらくルーティングテーブルの順序によるものです。あなたの設定はまだ間違っています。

0
vidarlo