添加/删除相同网关路由后需要重新启动

添加/删除相同网关路由后需要重新启动

作为一项研究,我使用 VirtualBox 和 Debian 8 来学习桥接模式下接口的网络基础知识。

我在以下位置停用了dhcp网络接口:eth0/etc/network/interfaces

# ...
# iface eth0 inet manual

现在我正在自己配置界面:

# ifconfig eth0 192.168.0.99/24

然后,我测试了我的网关(192.168.0.1),ping它工作得很好。

然后我将默认网关添加到我的路由表中:

# route add default gateway 192.168.0.1 netmask 255.255.255.0 dev eth0

经过一些测试、下载等后,我发现一切正常。

然后决定学习如何删除路由并使用我的默认网关进行测试。有用。

这是我的问题

在尝试使用上面的同一行再次添加我的网关后,我得到了“SIOCADDRT:网络无法访问“ 错误。

我试图解决什么问题?

  1. ifdownifup我的界面;
  2. ifconfig使用;重新配置接口
  3. 重新启动networking守护进程。

唯一有效的是重新启动机器。

有没有办法在不需要重新启动机器的情况下再次添加我的路线?

答案1

我已在我自己的服务器上重现了您的问题

需要注意的重要一点是,无需添加到网络的路由,因为接口配置会为您完成此操作。即使您需要永久进行此更改,您也可以将其放在 /etc/network/interfaces 中,并使用“gateway”选项指定您的网络的网关。这样您甚至不必为您的网络添加默认的 gw 路由。

设置:家庭 PC -> 添加静态 IP 192.169.3.2 目标是从连接在同一交换机上的服务器到达该 IP(虚拟交换机或物理交换机相同)

服务器初始配置

root@raspberrypi:~# ifconfig -a
eth0      Link encap:Ethernet  HWaddr b8:27:eb:fd:73:1b
          inet addr:192.169.1.2  Bcast:192.169.1.255  Mask:255.255.255.0
          inet6 addr: fe80::d89e:52c:aa96:d2b5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3883499 errors:0 dropped:46 overruns:0 frame:0
          TX packets:5939416 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:580337982 (553.4 MiB)  TX bytes:1486713518 (1.3 GiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:370 errors:0 dropped:0 overruns:0 frame:0
          TX packets:370 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:29124 (28.4 KiB)  TX bytes:29124 (28.4 KiB)



root@raspberrypi:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
link-local      *               255.255.0.0     U     202    0        0 eth0
192.169.1.0     *               255.255.255.0   U     0      0        0 eth0

我现在将创建一个接口来获取电脑IP(192.169.3.2)

接口创建和验证

    root@raspberrypi:~# ifconfig eth0:1 192.169.3.5/24
    root@raspberrypi:~# ifconfig eth0:1
    eth0:1    Link encap:Ethernet  HWaddr b8:27:eb:fd:73:1b
              inet addr:192.169.3.5  Bcast:192.169.3.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

在不添加任何路由的情况下 Ping 我的家庭电脑

    root@raspberrypi:~# ping 192.169.3.2
    PING 192.169.3.2 (192.169.3.2) 56(84) bytes of data.
    64 bytes from 192.169.3.2: icmp_seq=1 ttl=128 time=32.3 ms
    64 bytes from 192.169.3.2: icmp_seq=2 ttl=128 time=2.95 ms
    ^C
    --- 192.169.3.2 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1001ms
    rtt min/avg/max/mdev = 2.956/17.642/32.329/14.687 ms

检查实际路由表

    root@raspberrypi:~# route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    link-local      *               255.255.0.0     U     202    0        0 eth0
    192.169.1.0     *               255.255.255.0   U     0      0        0 eth0
    192.169.3.0     *               255.255.255.0   U     0      0        0 eth0

正如您所看到的,通过接口 eth0 的路由 192.169.3.0/24 已自动添加到路由表中,如果我删除该路由,我将无法访问该网络,也无法通过该网络添加默认路由

删除路由并检查可达性

root@raspberrypi:~# route del -net 192.169.3.0/24 dev eth0 
root@raspberrypi:~# route
root@raspberrypi:~# ping 192.169.3.2
PING 192.169.3.2 (192.169.3.2) 56(84) bytes of data.
^C
--- 192.169.3.2 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1005ms

检查接口配置

root@raspberrypi:~# ifconfig eth0:1
eth0:1    Link encap:Ethernet  HWaddr b8:27:eb:fd:73:1b
          inet addr:192.169.3.5  Bcast:192.169.3.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

正如你所看到的,接口配置正确,但网络无法访问,因为我已经从路由表中手动删除了该路由......所以内核不知道将包发送到哪里

检查路由表

root@raspberrypi:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
link-local      *               255.255.0.0     U     202    0        0 eth0
192.169.1.0     *               255.255.255.0   U     0      0        0 eth0
root@raspberrypi:~#

如果我再次手动添加路由,网络将可达并且我将能够 ping 通。

相关内容