哪些設定檔影響 Debian 系統的路由表

哪些設定檔影響 Debian 系統的路由表

據我所知,基本的網路配置會進入/etc/network/interfaces,系統會根據這些資訊產生路由表。我還了解到,通常/etc/network/interfaces是永久添加自訂命令來操作路由表的地方(有時也建議是/etc/rc.local或 中的自訂腳本/etc/network/if-up.d/)。此外,人們還可以在/etc/iproute2/rt_tables.

  • 還有其他地方會影響(主)路由表嗎?
    • /etc/network/interfaces特別是,除了手動新增/刪除的路由永久化之外,還有其他可能性嗎?
  • 具有多個網路卡的系統是否有一個概念基本的輔助網路介面或者這些只是用來幫助用戶的措詞? (在設定過程中,必須選擇主要的 if 並將/etc/network/interfaces包含適當的註釋。)如果存在這樣的概念,可以在哪裡配置它?
  • Debian Squeeze 和 Debian Jessie 之間的路由表概念有什麼區別嗎?

我的問題的背景是,我有一個舊的 Debian Squeeze 系統和一個新的 Debian Jessie 系統,它們使用不同的路由表啟動,但(據我所知)配置相同。我可以手動操作路由表以滿足我的需求並使更改永久使用,/etc/network/interfaces但我想了解發生了什麼。

編輯

這是兩台機器的設定檔。出於隱私原因,我更改了每個 IP 位址的前部分。然而,子網路和各個網路的位址部分並沒有改變。/etc/network/interfaces.d/Jessie 機器上的目錄是空的。

/etc/iproute2/rt_tables關於傑西

#
# reserved values
#
255 local
254 main
253 default
0   unspec
#
# local
#
#1  inr.ruhep

/etc/iproute2/rt_tables擠壓時

#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep

/etc/rc.local關於傑西

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

/etc/rc.local擠壓時

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

/etc/network/interfaces關於傑西

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
    address 143.103.155.254
    netmask 255.255.255.0
    network 143.103.155.0
    gateway 143.103.155.254

# The primary network interface
auto eth2
iface eth2 inet static
    address 27.126.19.194
    netmask 255.255.255.248
    network 27.126.19.192
    broadcast 27.126.19.199
    gateway 27.126.19.193
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 143.103.5.1
    dns-search subdomain.domain.de

/etc/network/interfaces擠壓時

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface

auto eth0
iface eth0 inet static
        address 143.103.155.254
        netmask 255.255.255.0
        network 143.103.155.0
        gateway 143.103.155.254

auto eth2
iface eth2 inet static
        address 27.126.19.194
        netmask 255.255.255.248
        network 27.126.19.192
        broadcast 27.126.19.199
        gateway 27.126.19.193

ip route show table mainJessie的輸出

default via 143.103.155.254 dev eth1 
143.103.155.0/24 dev eth1  proto kernel  scope link  src 143.103.155.254 
27.126.19.192/29 dev eth2  proto kernel  scope link  src 27.126.19.194

ip route show table main擠壓時的輸出

27.126.19.192/29 dev eth2  proto kernel  scope link  src 27.126.19.194
143.103.155.0/24 dev eth0  proto kernel  scope link  src 143.103.155.254
default via 27.126.19.193 dev eth2
default via 143.103.155.254 dev eth0  scope link

route -nJessie的輸出

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         143.103.155.254  0.0.0.0         UG    0      0        0 eth1
143.103.155.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
27.126.19.192  0.0.0.0         255.255.255.248 U     0      0        0 eth2

route -n擠壓時的輸出

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
27.126.19.192  0.0.0.0         255.255.255.248 U     0      0        0 eth2
143.103.155.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         27.126.19.193  0.0.0.0         UG    0      0        0 eth2
0.0.0.0         143.103.155.254  0.0.0.0         UG    0      0        0 eth0

答案1

你的兩個/etc/網路/接口檔案包含一個相同的錯誤:預設閘道被指定兩次。

您可以擁有多個預設網關,僅在非常特定的情況下(忽略指標):您有多個路由表,每個路由表都在檔案中指定/etc/iproute2/rt_tables,但每個路由表應有一個單身的預設網關。

相反,您可以在非常同一張桌子 主要的。所以我們在這裡看到的是執行上的細微差別ip路由2包,以及它如何回應錯誤。

如果是傑西,它將第一個提到的網關 143.103.155.254 建立為唯一的網關,因為它是第一個提到的。當聲明第二個網關 27.126.19.193 時,沒有任何反應,因為它是不是之前是

      ip route del default

相反,Squeeze 以不同的方式處理錯誤:它限制了範圍第二個門戶的連結本地。欲了解更多信息範圍, 看iproute2 手冊,其中指出:

範圍連結 --- 位址是連結本地的,僅在此設備上有效。

維基百科指出:

在電腦網路中,連結本地位址是僅對主機所連接的網段(連結)或廣播網域內的通訊有效的網路位址。

因此範圍(不精確的同義詞範圍第二個網關的網路段(IE,其廣播域143.103.155.0/24)。因此,Jessie 也以不同的方式處理了同一路由表中多個網關的錯誤聲明。

當然,沒有預期行為關於包如何處理錯誤。您設定的正確方法/etc/網路/接口文件是省略該語句

   gateway 143.103.155.254

總共(這也很奇怪,因為它說你自己的電腦的網關是......它自己!)。要查看對此的詳細解釋,請閱讀初始解決方案段落在這裡;稍後,還解釋瞭如何新增多個網關,以及多個路由表。

如果像你聲稱的那樣,

我可以再次嘗試驗證,但我很確定我已經嘗試過,但仍然無法存取任何外部 IP。

這很可能是因為您不允許 IPv4 從一個介面轉送到另一個介面(如 sudo:

     echo 1 > /proc/sys/net/ipv4/ip_forward

處理這個),或因為你的 iptables 規則阻止轉送。

答案2

Squeeze 和 Jessie 之間的主要區別在於ip命令要求ifconfig第一個和iproute2最後一個。

ifconfig 不知道多個網關配置,至少沒有指標。這就是為什麼您會看到兩個ip route命令之間的差異(或route -n(已棄用))

iproute2可以追蹤多個路由表

ip route show all

主網路介面和輔助網路介面的概念只是一種區分它們的方法,通常稱為 eth0(第一個)和 eth1(第二個),但順序可能會有所不同!

是的,您可以透過/etc/network/interfaces使用up以下方式設定永久路由:

up ip route add 1.2.3.4/24 via 1.2.3.1

相關內容