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.