Kao što smo i pretpostavili u prethodnim vodičima LFCE (Ovlašteni inženjer Linux Foundation), u ovom članku ćemo raspravljati o usmjeravanju IP prometa statički i dinamički sa posebnim aplikacijama.
Prije svega, razjasnimo neke definicije:
The iproute paket pruža skup alata za upravljanje umrežavanjem i kontrolu prometa koje ćemo koristiti u ovom članku jer predstavljaju zamjenu naslijeđenih alata, kao što su ifconfig i rutu.
Središnji uslužni program u iproute suite naziva se jednostavno ip. Njegova osnovna sintaksa je sljedeća:
# naredba objekta ip.
Gdje objekt može biti samo jedno od sljedećeg (prikazani su samo najčešći objekti - možete se pozvati na čovjeka ip za potpuni popis):
Dok naredba predstavlja posebnu radnju koja se može izvršiti na objektu. Možete pokrenuti sljedeću naredbu za prikaz cijelog popisa naredbi koje se mogu primijeniti na određeni objekt:
# ip objekt pomoć.
Na primjer,
# pomoć za ip vezu.
Gornja slika pokazuje, na primjer, da možete promijeniti status mrežnog sučelja sljedećom naredbom:
# ip sučelje za postavljanje veza {gore | dolje}
Za još takvih primjera 'ip‘Naredba, čitaj 10 korisnih ‘ip’ naredbi za konfiguriranje IP adrese
U ovom primjeru ćemo onemogućiti i omogućiti eth1:
# ip link show. # ip veza postavila je eth1 prema dolje. # ip link show.
Ako želite ponovo omogućiti eth1,
# ip veza set eth1 up.
Umjesto prikaza svih mrežnih sučelja, možemo navesti jedno od njih:
# ip link show eth1.
Što će vratiti sve podatke za eth1.
Trenutnu glavnu tablicu usmjeravanja možete pregledati bilo kojom od sljedeće 3 naredbe:
# ip show rute. # ruta -n. # netstat -rn.
Prvi stupac u izlazu tri naredbe označava ciljnu mrežu. Izlaz od ip ruta show (slijedeći ključnu riječ dev) također predstavlja mrežne uređaje koji služe kao fizički pristupnik tim mrežama.
Iako je u današnje vrijeme ip naredba je preferirana u odnosu na rutu, ipak se možete obratiti čovjeku ip-route i ruta čovjeka za detaljno objašnjenje ostatka kolumni.
Želimo usmjeriti icmp (ping) pakete od dev2 do dev4 i obrnuto (imajte na umu da su oba klijentska računala na različitim mrežama). Naziv svake mrežne kartice, zajedno s odgovarajućom IPv4 adresom, naveden je unutar uglatih zagrada.
Naše ispitno okruženje je sljedeće:
Klijent 1: CentOS 7 [enp0s3: 192.168.0.17/24] - dev1. Ruter: Debian Wheezy 7.7 [eth0: 192.168.0.15/24, eth1: 10.0.0.15/24] - dev2. Klijent 2: openSUSE 13.2 [enp0s3: 10.0.0.18/24] - dev4.
Pogledajmo tablicu usmjeravanja u dev1 (okvir CentOS):
# ip show rute.
a zatim ga izmijenite kako biste ga koristili enp0s3 NIC i veza na 192.168.0.15 za pristup hostovima u mreži 10.0.0.0/24:
# ip route add 10.0.0.0/24 via 192.168.0.15 dev enp0s3.
Što u biti glasi: "Dodajte rutu mreži 10.0.0.0/24 putem mrežnog sučelja enp0s3 koristeći 192.168.0.15 kao pristupnik".
Slično u dev4 (openSUSE okvir) za ping hostove u mreži 192.168.0.0/24:
# ip route add 192.168.0.0/24 via 10.0.0.15 dev enp0s3.
Na kraju, moramo omogućiti prosljeđivanje u našem Debian usmjerivaču:
# echo 1>/proc/sys/net/ipv4/ip_forward.
Sada pingajmo:
i,
Uredite kako bi ove postavke bile postojane u svim čizmama /etc/sysctl.conf na usmjerivaču i provjerite je li net.ipv4.ip_forward varijabla je postavljena na true na sljedeći način:
net.ipv4.ip_forward = 1.
Osim toga, konfigurirajte mrežne kartice na oba klijenta (potražite konfiguracijsku datoteku unutar /etc/sysconfig/network na openSUSE -u i /etc/sysconfig/network-scripts na CentOS -u - u oba slučaja to se zove ifcfg-enp0s3).
Evo konfiguracijske datoteke iz okvira openSUSE:
BOOTPROTO = statičan. Emitovanje = 10.0.0.255. IPADDR = 10.0.0.18. MREŽNA MASKA = 255.255.255.0. ULAZNI PUT = 10.0.0.15. IME = enp0s3. MREŽA = 10.0.0.0. ONBOOT = da.
Drugi scenarij u kojem se Linux stroj može koristiti kao usmjerivač je kada trebate podijeliti svoju internetsku vezu s privatnim LAN -om.
Ruter: Debian Wheezy 7.7 [eth0: Javni IP, eth1: 10.0.0.15/24] - dev2. Klijent: openSUSE 13.2 [enp0s3: 10.0.0.18/24] - dev4.
Osim postavljanja prosljeđivanja paketa i statičke tablice usmjeravanja u klijentu, kao u prethodnom primjeru, moramo dodati nekoliko pravila iptables u usmjerivač:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE. # iptables -A NAPRIJED -i eth0 -o eth1 -m stanje -stanje VEZANO, USTANOVLJENO -j PRIHVATLJIVO. # iptables -A NAPRIJED -i eth1 -o eth0 -j PRIHVATI.
Prva naredba dodaje pravilo u POSTROUTING lanac u tablici nat (Network Address Translation), što pokazuje da se eth0 NIC treba koristiti za odlazne pakete.
MAŠKARA označava da ova mrežna kartica ima dinamički IP i da je prije slanja paketa u “divlji divlji svijet”Na Internetu, adresa privatnog izvora paketa mora se promijeniti u javnu IP adresu usmjerivača.
U LAN -u s mnogo hostova, usmjerivač prati uspostavljene veze u /proc/net/ip_conntrack tako da zna kamo vratiti odgovor s Interneta.
Samo dio rezultata:
# cat/proc/net/ip_conntrack.
je prikazano na sljedećoj snimci zaslona.
Tamo gdje je istaknuto podrijetlo (privatni IP kutije openSUSE) i odredište (Google DNS) paketa. Ovo je rezultat trčanja:
# curl www.tecmint.com.
na kutiji openSUSE.
Kao što već možete pogoditi, usmjerivač koristi Googleov 8.8.8.8 kao poslužitelj imena, što objašnjava zašto odredište odlaznih paketa upućuje na tu adresu.
Bilješka: Dolazni paketi s Interneta prihvaćeni su samo ako su dio već uspostavljene veze (naredba #2), dok su odlazni paketi dopušteni “slobodan izlaz”(Naredba #3).
Ne zaboravite učiniti svoja pravila za iptables trajna slijedeći korake navedene u 8. dio - Konfiguriranje Iptables vatrozida ove serije.
U današnje vrijeme alat koji se najviše koristi za dinamičko usmjeravanje u Linuxu je quagga. Omogućuje administratorima sustava da uz relativno jeftin Linux poslužitelj implementiraju istu funkcionalnost koju pružaju moćni (i skupi) Cisco usmjerivači.
Sam alat ne upravlja usmjeravanjem, već mijenja tablicu usmjeravanja jezgre dok uči nove najbolje rute za rukovanje paketima.
Budući da je to račva zebre, program čiji je razvoj prestao davno, iz povijesnih razloga zadržava iste naredbe i strukturu kao i zebra. Zato ćete od sada nadalje puno spominjati zebru.
Napominjemo da nije moguće obuhvatiti dinamičko usmjeravanje i sve povezane protokole u jednom članak, ali uvjeren sam da će vam ovdje predstavljeni sadržaj poslužiti kao polazište za izgradnju na.
Da biste instalirali quaggu na odabranu distribuciju:
# aptitude update && aptitude install quagga [Na Ubuntuu] # yum update && yum install quagga [CentOS/RHEL] # zypper refresh && zypper install quagga [openSUSE]
Koristit ćemo isto okruženje kao u primjeru #3, s jedinom razlikom što je eth0 spojen na usmjerivač glavnog pristupnika s IP 192.168.0.1.
Zatim uredite /etc/quagga/daemons s,
zebra = 1. ripd = 1.
Sada stvorite sljedeće konfiguracijske datoteke.
# /etc/quagga/zebra.conf. # /etc/quagga/ripd.conf.
i dodajte ove retke (zamijenite naziv hosta i lozinku po vašem izboru):
usluga quagga restart. naziv hosta dev2. lozinka quagga.
# usluga quagga restart.
Bilješka: To ripd.conf je konfiguracijska datoteka za Routing Information Protocol, koja usmjerivaču daje informacije do kojih mreža se može doći i koliko su udaljene (u smislu količine skokova).
Imajte na umu da je ovo samo jedan od protokola koji se može koristiti zajedno s quaggom, a ja sam ga odabrao za ovaj vodič zbog jednostavnost korištenja i zato što ga podržava većina mrežnih uređaja, iako ima nedostatak prenošenja vjerodajnica na jasan način tekst. Iz tog razloga konfiguracijskoj datoteci morate dodijeliti odgovarajuća dopuštenja:
# chown quagga: quaggavty /etc/quagga/*.conf. # chmod 640 /etc/quagga/*.conf
U ovom primjeru koristit ćemo sljedeće postavljanje s dva usmjerivača (svakako stvorite konfiguracijske datoteke za usmjerivač #2 kao što je prethodno objašnjeno):
Važno: Ne zaboravite ponoviti sljedeće postavljanje za oba usmjerivača.
Spojite se na zebru (slušanje na portu 2601), koji je logički posrednik između usmjerivača i jezgre:
# telnet localhost 2601.
Unesite lozinku koja je postavljena u /etc/quagga/zebra.conf datoteku, a zatim omogućite konfiguraciju:
omogućiti. konfigurirati terminal.
Unesite IP adresu i mrežnu masku svake mrežne kartice:
inter eth0. ip addr 192.168.0.15. inter eth1. ip addr 10.0.0.15. Izlaz. Izlaz. pisati.
Sada se moramo spojiti na POČIVAO U MIRU demonski terminal (port 2602):
# telnet localhost 2602.
Unesite korisničko ime i lozinku kako je konfigurirano u /etc/quagga/ripd.conf datoteku, a zatim podebljanim slovima upišite sljedeće naredbe (komentari se dodaju radi pojašnjenja):
omogućiti uključuje naredbu povlaštenog načina rada. konfigurirati terminal mijenja način konfiguracije. Ova naredba je prvi korak u konfiguraciji. rip usmjerivača omogućuje RIP. mreža 10.0.0.0/24 postavlja sučelje za omogućavanje RIP -a za mrežu 10.0.0.0/24. IzlazIzlazpisati zapisuje trenutnu konfiguraciju u konfiguracijsku datoteku.
Bilješka: Da se u oba slučaja konfiguracija dodaje recima koje smo prethodno dodali (/etc/quagga/zebra.conf i /etc/quagga/ripd.conf).
Na kraju se ponovno povežite sa uslugom zebra na oba usmjerivača i zabilježite kako svaki od njih ima “naučeno”Put do mreže koji se nalazi iza druge i koji je sljedeći skok do te mreže pokretanjem naredbe prikaži ip rutu:
# show ip route.
Ako želite isprobati različite protokole ili postavke, preporučujemo da pogledate Mjesto projekta Quagga za daljnju dokumentaciju.
U ovom smo članku objasnili kako postaviti statičko i dinamičko usmjeravanje pomoću Linux okvirnih usmjerivača. Slobodno dodajte onoliko usmjerivača koliko želite i eksperimentirajte koliko želite. Ne oklijevajte, javite nam se putem donjeg obrasca za kontakt ako imate bilo kakvih komentara ili pitanja.