Kalıcı bir rota eklemenin en iyi yolu nedir?


11

Yeniden başlattıktan sonra silinmeyecek bir rota eklemem gerekiyor. Bunu yapmanın şu iki yolunu okudum:

ip route add -net 172.X.X.0/24 gw 172.X.X.X dev ethXDosyaya ekle /etc/network/interfaces

veya

/Etc/network/if-up.d/route dosyasını şununla oluşturun:

#!/bin/sh
route add -net 172.X.X.0/24 gw 172.X.X.X dev ethX

ve yürütülebilir olmasını sağlayın:

chmod +x /etc/network/if-up.d/route

Bu yüzden kafam karıştı. Bunu yapmanın en iyi yolu nedir?


1
Linux sistemine odaklandınız mı? (sitemizde AIX, HPUX, Irix, Solaris, ....) var.
— Jeff Schaller

Maalesef linux Debian sisteminde olduğunu belirtmedim. Bana hatırlattığın için teşekkürler.
— Pozinux

Sen gibi iproute2 komutlarını kullanmalısınız ip route add <network> via <IP> dev <DEV>yerine net-araçları komutları (ifconfig, rota vs.)
— AdamKalisz

Yanıtlar:


14

Bahsettiniz /etc/network/interfaces, bu bir Debian sistemi ...

Adlandırılmış bir yönlendirme tablosu oluşturun. Örnek olarak, aşağıdaki "mgmt" adını kullandım.

echo '200 mgmt' >> /etc/iproute2/rt_tables

Yukarıda, çekirdek birçok yönlendirme tablosunu destekler ve bunlara 0-255 numaralı benzersiz tamsayılarla karşılık gelir. Tablo için mgmt adı da tanımlanır.

Aşağıda, /etc/iproute2/rt_tablesbazı sayıların ayrılmış olduğunu gösteren bir varsayılan görünüm izlenir. Bu 200 yanıtın seçimi keyfi; halihazırda kullanılmayan herhangi bir sayı kullanılabilir, 1-252.

#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#

Aşağıda, bir Debian 7/8 arayüzleri dosyası eth0ve eth1. eth1172 ağıdır. eth0DHCP de kullanabilir. 172.16.100.10atanacak IP adresidir eth1. 172.16.100.1yönlendiricinin IP adresidir.

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The production network interface
auto eth0
allow-hotplug eth0
# iface eth0 inet dhcp 
# Remove the stanzas below if using DHCP.
iface eth0 inet static
  address 10.10.10.140
  netmask 255.255.255.0
  gateway 10.10.10.1

# The management network interface
auto eth1
allow-hotplug eth1
iface eth1 inet static
  address 172.16.100.10
  netmask 255.255.255.0
  post-up ip route add 172.16.100.0/24 dev eth1 src 172.16.100.10 table mgmt
  post-up ip route add default via 172.16.100.1 dev eth1 table mgmt
  post-up ip rule add from 172.16.100.10/32 table mgmt
  post-up ip rule add to 172.16.100.10/32 table mgmt

Ağları yeniden başlatın veya yeniden başlatın.

Güncelleme - EL'de expounding

Bir yorumda "RHEL'i de merak ettiğini" fark ettim. Enterprise Linux'ta ("EL" - RHEL / CentOS / et al), yukarıda belirtildiği gibi adlandırılmış bir yönlendirme tablosu oluşturun.

EL /etc/sysconfig/networkdosyası:

NETWORKING=yes
HOSTNAME=host.sld.tld
GATEWAY=10.10.10.1

/etc/sysconfig/network-scripts/ifcfg-eth0Statik bir yapılandırma kullanan EL dosyası (NetworkManager olmadan ve aşağıdaki örnek için "HWADDR" ve "UUID" belirtmeden).

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTOCOL=none
IPADDR=10.10.10.140
NETMASK=255.255.255.0
NETWORK=10.10.10.0
BROADCAST=10.10.10.255

EL /etc/sysconfig/network-scripts/ifcfg-eth1dosyası (NetworkManager olmadan ve aşağıdaki örnek için "HWADDR" ve "UUID" belirtmeden).

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTOCOL=none
IPADDR=172.16.100.10
NETMASK=255.255.255.0
NETWORK=172.16.100.0
BROADCAST=172.16.100.255

EL /etc/sysconfig/network-scripts/route-eth1dosyası:

172.16.100.0/24 dev eth1 table mgmt
default via 172.16.100.1 dev eth1 table mgmt

EL /etc/sysconfig/network-scripts/rule-eth1dosyası:

from 172.16.100.0/24 lookup mgmt

-1

Debian tabanlı dağıtımda, aşağıdaki gibi kalıcı olarak statik bir rota ekleyebilirsiniz:

 echo "up route add -net 172.X.X.X/24 gw 172.X.X.X dev ethX" | sudo tee --append /etc/network/interfaces

RHEL tabanlı dağıtımda:

echo "172.X.X.X/24 via 172.X.X.X" | sudo tee --append /etc/sysconfig/network-scripts/route-ethX

3
Her sudoiki komutunuzda da anlamsızdır. Ya zaten root, yani >>çalışır ya da değilsiniz, bu durumda >>orijinal kullanıcı olarak uygulanır ve sadece echokök olarak çalıştırılır. Ayrıca, içinde tanımlanmış birden çok arabirim varsa, bu durum büyük ölçüde başarısız olur /etc/network/interfaces.
— roaima

1
yankı "sth" | sudo tee dosya adı
— JSBach

Bu
— gcp

Gerçekten de, Debian sürümü ile ilgili olarak verilen komut büyük ölçüde / etc / network / interfaces dosyasında en son hangi arayüzün yapılandırıldığına bağlıdır
— Gohu

Debian'daki tüm komut dosyalarında artık ip route add <network> via <IP> dev <DEV>net tools route yerine iproute2 komutları ve varsayılan olarak yüklenmeyen ifconfig komutları kullanılmalıdır.
— AdamKalisz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.