GNU/Linux >> Znalost Linux >  >> Linux

Jak přidat více tras v Linuxu pomocí příkladů příkazů ip

Kromě výchozí trasy můžete také nakonfigurovat další trasy.

Například váš server může mít 2 rozhraní (eth0 a eth1). Ve výchozím nastavení je veškerý provoz směrován přes rozhraní eth0 bez ohledu na to, jakou IP adresu jste na eth1 nakonfigurovali.

Chcete-li směrovat příchozí a odchozí provoz přes eth1, jinou než výchozí trasu (eth0), musíte také přidat další trasy pro eth1.

V tomto tutoriálu použijeme následující příklad:

  • eth0 byl nakonfigurován s IP adresou 19.86.101.54 s maskou sítě 255.255.255.0 a výchozí bránou 19.86.101.1
  • eth1 byl nakonfigurován s IP adresou 19.86.100.176 s maskou sítě 255.255.255.0 a IP adresa jeho brány je 19.86.100.1

Svou aktuální IP adresu svých karet rozhraní můžete zobrazit pomocí příkazu ifconfig, jak je uvedeno níže.

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:50:56:8E:0B:EC
          inet addr:19.86.101.54  Bcast:19.86.101.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3735 errors:0 dropped:0 overruns:0 frame:0
          TX packets:336 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:295679 (288.7 Kb)  TX bytes:50312 (49.1 Kb)

eth1      Link encap:Ethernet  HWaddr 00:50:56:8E:27:0D
          inet addr:19.86.100.176  Bcast:19.86.100.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:840 (840.0 b)  TX bytes:0 (0.0 b)

Výstup příkazu netstat také indikuje, že výchozí brána ukazuje na eth0,

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         19.86.101.1     0.0.0.0         UG        0 0          0 eth0
19.86.100.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
19.86.101.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

S výše uvedeným nastavením můžete bez problémů pingnout na obě brány a komunikovat s ostatními zařízeními. Pamatujte však, že veškerý provoz je standardně směrován přes eth0.

Když odešlete příkaz ping na IP adresu 19.86.100.176 mimo vaši síť, můžete si všimnout, že nebude možné pingnout.

Abyste to mohli implementovat, musíte vytvořit novou politiku ve směrovací tabulce. Směrovací tabulka se nachází v /etc/iproute2/rt_tables. Počáteční soubor pravidel před konfigurací může vypadat jako soubor zobrazený níže.

# cat /etc/iproute2/rt_tables
#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
#

Chcete-li zobrazit všechna aktuální pravidla, použijte příkaz ip, jak je uvedeno níže:

# ip rule show
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default

Nejprve si před provedením jakýchkoli změn vytvořte zálohu rt_Tables.

cd /etc/iproute2
cp rt_tables rt_tables.orig

Dále vytvořte nový záznam v tabulce směrování zásad v souboru /etc/iproute2/rt_tables:

echo "1 admin" >> /etc/iproute2/rt_tables

Nyní přidejte položky směrování do tabulky správce.

ip route add 19.86.100.0/24 dev eth1 src 19.86.100.176 table admin
ip route add default via 19.86.100.1 dev eth1 table admin

Ve výše uvedeném příkladu:

  • V prvním příkazu ip přidáváme do tabulky správce podsíť 19.86.100.0 s maskou sítě 255.255.255.0 se zdrojovou IP adresou 19.86.100.176 &device eth1.
  • Ve druhém příkazu ip přidáváme do tabulky správce cestu 19.86.100.1. Tímto způsobem všechna pravidla definovaná v tabulce admin směrují provoz přes zařízení eth1.

Jakmile budou výše uvedené příkazy úspěšně provedeny, musíte instruovat operační systém, jak tuto tabulku používat.

V „ip rule show“ si můžete všimnout řádku „32766:from all lookup main“. Toto je řádek, který instruuje operační systém, aby směroval veškerý provoz definovaný v „hlavní“ tabulce, která je výchozí bránou.

Všechna pravidla se provádějí ve vzestupném pořadí. Přidáme tedy položky pravidel nad „hlavní“ tabulku.

ip rule add from 19.86.100.176/24 table admin
ip rule add to 19.86.100.176/24 table admin
ip route flush cache

Ve výše uvedeném příkladu:

  • První příkaz přidává pravidlo, že veškerý provoz směřující na IP adresu eth1 musí používat směrovací tabulku „admin“ namísto „hlavní“.
  • Druhý příkaz přidává pravidlo, že veškerý odchozí provoz z IP adresy eth1 musí používat směrovací tabulku „admin“ namísto „hlavní“.
  • Třetí příkaz se používá k provedení všech těchto změn v předchozích příkazech

Nakonec pomocí následujícího příkazu ověřte, zda jsou změny provedeny správně:

# ip rule show
0:      from all lookup local
32764:  from all to 19.86.100.176/24 lookup admin
32765:  from 19.86.100.176/24 lookup admin
32766:  from all lookup main
32767:  from all lookup default

V tuto chvíli byste měli být schopni pingnout IP adresu 19.86.100.176 z vnější sítě a zobrazit veškerý provoz, který má používat eth1, funguje podle očekávání.

Aby tyto změny byly trvalé i po restartu, můžete tyto příkazy přidat do /etc/init.d/boot.local (pro SUSE Linux) nebo /etc/rc.d/rc.local (pro Redhat, CentOS).

Pokud chcete nakonfigurovat ještě jednu IP adresu v jiné podsíti, opakujte všechny výše uvedené kroky, ale použijte jiný název tabulky. Místo tabulky „admin“ použijte tabulku „admin-new“.


Linux
  1. Jak restartovat Linux pomocí příkazového řádku

  2. Jak zrychlit proces spouštění Linuxu pomocí příkladů příkazů Startpar

  3. Příklady použití příkazu dmsetup v Linuxu

  1. Jak zabít proces v Linuxu pomocí příkazu?

  2. 5 Praktické příklady příkazů linuxové fixační jednotky

  3. Jak kombinovat Ping a Traceroute v Linuxu pomocí příkladů příkazů MTR

  1. Jak používat příkaz IP v Linuxu s příklady

  2. Linux alias Command:Jak jej používat s příklady

  3. Jak se pohybovat v příkazovém řádku Linuxu pomocí klávesové zkratky (Příklady příkazů Linux Ctrl)