web-dev-qa-db-ja.com

Debian、2枚のネットワークカード-eth1の「ホストへのルートなし」

Debianボックスに2番目のnicを追加しました。そのnicはいくつかのテスト作業を行うためのものなので、接続されているデバイスはdebianボックスにアクセスできるか、そこからアクセスできる必要があります。

NICを設定するために、/ etc/network/interfacesに追加しました

iface eth1 inet static
    address 192.168.0.2
    netmask 255.255.255.0
    broadcast 192.168.0.255
    network 192.168.0.0

これらの値は、ifconfigを実行すると表示され、ルートは次のように表示されます。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         adim.hhv3       0.0.0.0         UG    0      0        0 eth0
192.168.0.0     *               255.255.255.0   U     0      0        0 eth1
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0

したがって、すべてが正しく設定されているように見えますが、192.168.0.xネットワーク上のデバイスのいずれかにアクセスしようとすると、「ホストへのルートがありません」というエラーが表示されます。何かを忘れたり見落としたりしましたか? (現在、他の方法でテストすることはできません。NICLEDは、リンクがあることを示しています)

物事はより奇妙になります。 eth1ネットワーク上でdhcpサーバーとして機能する古いワイヤレスルーターをセットアップしました。その後、eth1は意図したとおりに機能しますが、手動で設定しようとすると機能しません。手動で設定する場合は、上記のインターフェイスファイルを使用します。

Dhcpから設定:

root@sorbus:~# ip addr (removed loopback and eth0)
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:11:95:84:6b:6c brd ff:ff:ff:ff:ff:ff
inet 192.168.0.142/24 brd 192.168.0.255 scope global eth1
inet6 fe80::211:95ff:fe84:6b6c/64 scope link 
   valid_lft forever preferred_lft forever

root@sorbus:~# ip route
default via 192.168.1.1 dev eth0  proto static 
192.168.0.0/24 dev eth1  proto kernel  scope link  src 192.168.0.142 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.23 

そして今、それは手動セットアップでも機能するようです....:-/それが機能するのは良いことですが、理由を知っておくといいでしょう...

(192.168.0でdhcpを使用すると、resolv.confが台無しになるため、使用できません。少なくとも、dhcpの実行を停止する方法は見たことがありません)

5
MortenSickel

192.168.0.xネットワーク上のホストはどのようにしてネットワーク構成を取得しますか? DHCP経由で受信することを期待している場合は、おそらくeth1でDHCPサーバーを実行する必要があります(eth0で提供しないように十分注意してください)。デバイスにアドレスがない場合、それらにルーティングすることはできません。

ホームルーターでは、eth0でDHCPクライアントとして機能しながらppp0でISCdhcpdを実行します。 /etc/dhcpd.confの構成の関連ビットは次のとおりです。

# Don't attempt dynDNS updates
ddns-update-style none;

# option definitions common to all supported networks...
option domain-name "mydomain";
option domain-name-servers 192.168.0.1;  # This machine

default-lease-time 86400; # 1 day
max-lease-time 864000;    # 10 days


  group {
    # PXE-boot clients
    filename "/pxelinux.0";
    next-server 192.168.0.1;

    Host myhost1 {
      hardware ethernet 00:30:18:a5:6b:20;
      fixed-address 192.168.0.66;
      option root-path "192.168.0.1:/export/client/myhost1";
    }
  }

  # Dynamically-leased addresses for visitors
  subnet 192.168.0.0 netmask 255.255.255.0 {
    authoritative;  
    range 192.168.0.128 192.168.0.254;
    option broadcast-address 192.168.0.255;
    option routers 192.168.0.1;
  }

以前はeth0dnsmasqを正常に実行しました(今でも実行していますが、現在はDNSに対してのみ実行され、DHCPに対しては実行されていません)。 /etc/dnsmasq.d/dhcp.confからのコメントアウトされた古いスニペットは次のとおりです。

#interface=eth0

# read-ethers

# dhcp-range=192.168.0.128,192.168.0.254

# dhcp-Host=00:30:18:a5:6b:20,myhost1,192.168.0.66,static

# dhcp-option-force=208,f1:00:74:7e

# dhcp-boot=pxelinux.0

# #enable-tftp
# tftp-root=/var/lib/tftpboot

# log-dhcp
1
Toby Speight