Giunsa paghimo ang usa ka Linux Server nga usa ka Router aron Madumala ang Trapiko sa Statically ug Dynamically - Bahin 10


Sama sa atong gipaabot sa nangaging mga tutorial niining LFCE (Linux Foundation Certified Engineer) nga serye, niining artikuloha atong hisgotan ang pagruta sa IP nga trapiko sa statically ug dinamikong paagi uban sa piho nga mga aplikasyon.

Una sa tanan, tul-iron nato ang pipila ka mga kahulugan:

  1. Sa yanong pulong, ang packet mao ang batakang yunit nga gigamit sa pagpasa sa impormasyon sulod sa network. Ang mga network nga naggamit sa TCP/IP isip network protocol nagsunod sa samang mga lagda alang sa pagpasa sa datos: ang aktuwal nga impormasyon gibahin ngadto sa mga pakete nga gihimo sa duha ka data ug ang adres diin kini kinahanglan ipadala.
  2. Ang
  3. Routing mao ang proseso sa \paggiya” sa datos gikan sa tinubdan ngadto sa destinasyon sulod sa network.
  4. Static routing nanginahanglan usa ka manual nga gi-configure nga hugpong sa mga lagda nga gipasabut sa usa ka routing table. Kini nga mga lagda gitakda ug gigamit sa pagpasabot sa paagi nga ang usa ka pakete kinahanglang moagi samtang kini mobiyahe gikan sa usa ka makina ngadto sa lain.
  5. Dynamic routing, o smart routing (kon gusto nimo), nagpasabot nga ang sistema mahimong awtomatik nga mag-usab, kon gikinahanglan, ang ruta nga gisundan sa usa ka pakete.

Advanced nga IP ug Network Device Configuration

Ang iproute nga pakete naghatag ug usa ka hugpong sa mga himan sa pagdumala sa networking ug pagkontrol sa trapiko nga among gamiton sa tibuok niining artikulo kay kini nagrepresentar sa pagpuli sa mga himan nga kabilin sama sa ifconfig ug ruta.

Ang sentro nga gamit sa iproute suite gitawag nga yano nga ip. Ang batakang syntax niini mao ang mosunod:

# ip object command

Diin ang butang mahimong usa lamang sa mosunod (ang kasagarang mga butang lang ang gipakita – mahimo nimong i-refer ang man ip para sa kompletong listahan):

  1. link: network device.
  2. addr: protocol (IP o IPv6) nga adres sa usa ka device.
  3. ruta: routing table entry.
  4. rule: lagda sa routing policy database.

Samtang ang command nagrepresentar sa usa ka piho nga aksyon nga mahimo sa butang. Mahimo nimong ipadagan ang mosunod nga sugo aron ipakita ang kompleto nga listahan sa mga sugo nga mahimong magamit sa usa ka partikular nga butang:

# ip object help

Pananglitan,

# ip link help

Ang hulagway sa ibabaw nagpakita, pananglitan, nga mahimo nimong usbon ang status sa usa ka network interface gamit ang mosunod nga sugo:

# ip link set interface {up | down}

Alang sa dugang nga mga pananglitan sa 'ip' nga sugo, basaha ang 10 Mapuslanon nga 'ip' nga mga Sugo sa Pag-configure sa IP Address

Niini nga pananglitan, among i-disable ug i-enable ang eth1:

# ip link show
# ip link set eth1 down
# ip link show

Kung gusto nimo i-enable pag-usab ang eth1,

# ip link set eth1 up

Imbis nga ipakita ang tanan nga mga interface sa network, mahimo naton ipiho ang usa niini:

# ip link show eth1

Nga ibalik ang tanan nga kasayuran alang sa eth1.

Mahimo nimong tan-awon ang imong kasamtangan nga main routing table gamit ang bisan hain sa mosunod nga 3 ka mga sugo:

# ip route show
# route -n
# netstat -rn

Ang unang kolum sa output sa tulo ka mga sugo nagpakita sa target network. Ang output sa ip route show (pagsunod sa keyword dev) nagpresentar usab sa network devices nga nagsilbing physical gateway sa maong mga network.

Bisan tuod karong panahona ang ip command gipalabi kay sa rota, mahimo gihapon nimong i-refer ang man ip-route ug man route alang sa detalyadong pagpasabot sa uban. sa mga kolum.

Gusto namong i-ruta ang icmp (ping) nga mga pakete gikan sa dev2 ngadto sa dev4 ug sa laing paagi usab (timan-i nga ang duha ka mga makina sa kliyente anaa sa lain-laing mga network). Ang ngalan sa matag NIC, uban sa katugbang nga IPv4 address niini, gihatag sulod sa square bracket.

Ang among palibot sa pagsulay mao ang mosunod:

Client 1: CentOS 7 [enp0s3: 192.168.0.17/24] - dev1
Router: Debian Wheezy 7.7 [eth0: 192.168.0.15/24, eth1: 10.0.0.15/24] - dev2
Client 2: openSUSE 13.2 [enp0s3: 10.0.0.18/24] - dev4

Atong tan-awon ang routing table sa dev1 (CentOS box):

# ip route show

ug dayon usba kini aron magamit ang enp0s3 NIC ug ang koneksyon sa 192.168.0.15 aron ma-access ang mga host sa 10.0.0.0/24 network:

# ip route add 10.0.0.0/24 via 192.168.0.15 dev enp0s3

Nga esensya mabasa, \Pagdugang usa ka ruta sa 10.0.0.0/24 network pinaagi sa enp0s3 network interface gamit ang 192.168.0.15 ingon ganghaan.

Ingon usab sa dev4 (openSUSE box) sa pag-ping sa mga host sa 192.168.0.0/24 network:

# ip route add 192.168.0.0/24 via 10.0.0.15 dev enp0s3

Sa katapusan, kinahanglan namon nga mahimo ang pagpasa sa among Debian router:

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

Karon atong i-ping:

ug,

Aron mapadayon kining mga setting sa mga botas, i-edit ang /etc/sysctl.conf sa router ug siguroa nga ang net.ipv4.ip_forward variable kay gitakda sa true sama sa mosunod:

net.ipv4.ip_forward = 1

Dugang pa, i-configure ang mga NIC sa duha ka kliyente (pangitaa ang configuration file sulod sa /etc/sysconfig/network sa openSUSE ug /etc/sysconfig/network-scripts sa CentOS – sa duha ka kaso gitawag kini og ifcfg-enp0s3).

Ania ang configuration file gikan sa openSUSE box:

BOOTPROTO=static
BROADCAST=10.0.0.255
IPADDR=10.0.0.18
NETMASK=255.255.255.0
GATEWAY=10.0.0.15
NAME=enp0s3
NETWORK=10.0.0.0
ONBOOT=yes

Ang laing senaryo diin ang usa ka makina sa Linux mahimong magamit isip router kung kinahanglan nimo nga ipaambit ang imong koneksyon sa Internet sa usa ka pribadong LAN.

Router: Debian Wheezy 7.7 [eth0: Public IP, eth1: 10.0.0.15/24] - dev2
Client: openSUSE 13.2 [enp0s3: 10.0.0.18/24] - dev4

Dugang sa pag-set up sa packet forwarding ug sa static routing table sa kliyente sama sa miaging pananglitan, kinahanglan namong idugang ang pipila ka mga lagda sa iptables sa router:

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

Ang unang sugo nagdugang ug lagda sa POSTROUTING nga kadena sa nat (Network Address Translation) nga lamesa, nga nagpakita nga ang eth0 NIC kinahanglang gamiton para sa mga outgoing packages.

Ang MASQUERADE nagpakita nga kini nga NIC adunay dinamikong IP ug nga sa dili pa ipadala ang package sa \wild wild world sa Internet, ang pribadong tinubdan nga adres sa pakete kinahanglang mausab ngadto sa publikong IP sa router.

Sa LAN nga adunay daghang mga host, ang router nagsubay sa mga natukod nga koneksyon sa /proc/net/ip_conntrack aron mahibal-an kung asa ibalik ang tubag gikan sa Internet.

Bahin lamang sa output sa:

# cat /proc/net/ip_conntrack

gipakita sa mosunod nga screenshot.

Diin ang gigikanan (pribado nga IP sa openSUSE box) ug destinasyon (Google DNS) sa mga pakete gipasiugda. Mao kini ang resulta sa pagdagan:

# curl linux-console.net

sa openSUSE nga kahon.

Ingon nga sigurado ko nga makatag-an ka na, ang router naggamit sa 8.8.8.8 sa Google isip nameserver, nga nagpatin-aw ngano nga ang destinasyon sa mga outgoing packet nagpunting sa adres.

Mubo nga sulat: Ang umaabot nga mga pakete gikan sa Internet dawaton lamang kon kini kabahin sa natukod na nga koneksyon (command #2), samtang ang mga outgoing packages gitugotan \free exit (command #3).

Ayaw kalimti ang paghimo sa imong iptables nga mga lagda nga magpadayon sa pagsunod sa mga lakang nga gilatid sa Bahin 8 - I-configure ang Iptables Firewall niini nga serye.

Dinamikong Routing uban sa Quagga

Karong panahona, ang himan nga labing gigamit alang sa dinamikong pagruta sa Linux mao ang quagga. Gitugotan niini ang mga administrador sa sistema nga ipatuman, nga adunay medyo barato nga server sa Linux, ang parehas nga gamit nga gihatag sa kusgan (ug mahal) nga mga router sa Cisco.

Ang himan mismo wala magdumala sa routing, apan nagbag-o sa kernel routing table samtang kini nakakat-on sa bag-ong labing maayo nga mga ruta sa pagdumala sa mga pakete.

Tungod kay kini usa ka tinidor sa zebra, usa ka programa kansang pag-uswag mihunong sa miaging panahon, kini nagmintinar alang sa mga hinungdan sa kasaysayan sa parehas nga mga mando ug istruktura kaysa sa zebra. Mao nga makita nimo ang daghang paghisgot sa zebra gikan niining puntoha.

Palihug timan-i nga dili posible nga tabonan ang dinamikong pagruta ug ang tanan nga may kalabutan nga mga protocol sa usa ka artikulo, apan masaligon ako nga ang sulud nga gipresentar dinhi magsilbi nga punto sa pagsugod alang kanimo sa pagtukod.

Aron ma-install ang quagga sa imong gipili nga pag-apod-apod:

# aptitude update && aptitude install quagga 				[On Ubuntu]
# yum update && yum install quagga 					[CentOS/RHEL]
# zypper refresh && zypper install quagga 				[openSUSE]

Gamiton namo ang sama nga palibot sama sa Pananglitan #3, nga adunay bugtong kalainan nga ang eth0 konektado sa usa ka main gateway router nga adunay IP 192.168.0.1.

Sunod, i-edit ang /etc/quagga/daemons gamit ang,

zebra=1
ripd=1

Karon paghimo sa mosunod nga mga file sa pag-configure.

# /etc/quagga/zebra.conf
# /etc/quagga/ripd.conf

ug idugang kini nga mga linya (ilisan ang hostname ug password nga imong gusto):

service quagga restart
hostname    	dev2
password    	quagga
# service quagga restart

Mubo nga sulat: Kana nga ripd.conf mao ang configuration file alang sa Routing Information Protocol, nga naghatag sa router og impormasyon kung asa nga mga network ang maabot ug unsa ka layo (sa termino sa gidaghanon sa mga hops) sila.

Timan-i nga kini usa lamang sa mga protocol nga magamit kauban sa quagga, ug gipili ko kini alang sa kini nga panudlo tungod sa kasayon sa paggamit ug tungod kay kadaghanan sa mga aparato sa network nagsuporta niini, bisan kung kini adunay disbentaha sa pagpasa sa mga kredensyal sa yano nga teksto. Tungod niana nga hinungdan, kinahanglan nimo nga i-assign ang husto nga pagtugot sa file sa pag-configure:

# chown quagga:quaggavty /etc/quagga/*.conf
# chmod 640 /etc/quagga/*.conf 

Niini nga pananglitan atong gamiton ang mosunod nga setup uban sa duha ka routers (siguraduha nga paghimo sa configuration files para sa router #2 sama sa gipasabut kaniadto):

Importante: Ayaw kalimot sa pag-usab sa mosunod nga setup alang sa duha ka routers.

Sumpaysumpaya ang zebra (pagpaminaw sa port 2601), nga mao ang lohikal nga tigpataliwala tali sa router ug sa kernel:

# telnet localhost 2601

Isulod ang password nga gibutang sa /etc/quagga/zebra.conf file, ug dayon i-enable ang configuration:

enable
configure terminal

Pagsulod sa IP address ug network mask sa matag NIC:

inter eth0
ip addr 192.168.0.15
inter eth1
ip addr 10.0.0.15
exit
exit
write

Karon kinahanglan namong magkonektar sa RIP daemon terminal (port 2602):

# telnet localhost 2602

Pagsulod sa username ug password ingon nga gi-configure sa /etc/quagga/ripd.conf nga payl, ug dayon i-type ang mosunod nga mga sugo sa bold (gidugang ang mga komento alang sa katin-awan):

enable turns on privileged mode command.
configure terminal changes to configuration mode. This command is the first step to configuration
router rip enables RIP.
network 10.0.0.0/24 sets the RIP enable interface for the 10.0.0.0/24 network. 
exit
exit
write writes current configuration to configuration file.

Matikdi: Nga sa duha ka mga kaso ang configuration gidugang sa mga linya nga among gidugang kaniadto (/etc/quagga/zebra.conf ug /etc/quagga/ripd.conf) .

Sa katapusan, ikonektar pag-usab sa serbisyo sa zebra sa duha ka mga router ug timan-i kung giunsa ang matag usa kanila \nakakat-on sa ruta sa network nga anaa sa luyo sa lain, ug diin ang sunod nga paglukso nga maabot kana nga network, pinaagi sa pagpadagan sa command show ip route:

# show ip route

Kung gusto nimong sulayan ang lainlaing mga protocol o setup, mahimo nimong i-refer ang site sa proyekto sa Quagga alang sa dugang nga dokumentasyon.

Konklusyon

Niini nga artikulo among gipatin-aw kung unsaon pag-set up ang static ug dinamikong ruta, gamit ang Linux box router(s). Mobati nga gawasnon sa pagdugang sa daghang mga routers nga imong gusto, ug sa pag-eksperimento kutob sa imong gusto. Ayaw pagpanuko sa pagbalik kanamo gamit ang contact form sa ubos kung naa kay komento o pangutana.