現在、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トラフィックの両方を許可するために、私が見落としているものを誰かが見ていますか?
/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"
インターフェイスを並べ替えることでこれを解決できたとしても、これは問題の本当の原因ではありません。
問題の本当の原因はこれです:
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
例えば。
インターフェースの並べ替えがうまくいったという事実は、たぶん偶然であり、おそらくルーティングテーブルの順序によるものです。あなたの設定はまだ間違っています。