我在 debian 盒子中添加了第二个网卡。该网卡用于进行一些测试,因此连接的设备应该能够访问 debian 盒子或从它进行访问。
为了设置网卡,我已添加到/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 网络上的任何设备时,我只是收到“没有到主机的路由”错误。我是否忘记或忽略了什么? (目前我无法测试相反的方式。网卡 LED 指示有一个链接)
事情变得更奇怪了。我已经设置了一个旧的无线路由器,充当 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 - 至少我没有看到任何方法阻止它这样做)
答案1
192.168.0.x 网络上的主机如何获取其网络配置?如果他们希望通过 DHCP 接收它,您可能需要运行 DHCP 服务器eth1
(非常小心不要提供它eth0
!)。如果设备没有地址,您将无法路由到它们。
在我的家庭路由器上,我运行 ISC dhcpd
,eth0
同时充当 DHCP 客户端ppp0
。相关配置位包括/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;
}
我以前dnsmasq
成功运行过eth0
(现在仍然如此,但现在仅适用于 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