लिनक्स राउटर को सेकेंडरी राउटर / ISP को हुक करना: राउटिंग को सही तरीके से कैसे सेटअप करें?


8

सार:

मेरे पास मेरे मौजूदा नेटवर्क सेटअप में द्वितीयक ISP जोड़ते समय मेरे पास (मैं रूटिंग रूटिंग) समस्याएँ हैं: इनकमिंग ट्रैफ़िक Router1का उत्तर नहीं दिया गया है, लेकिन स्थानीय ट्रैफ़िक और इसके माध्यम से आने वाला ट्रैफ़िक Router0ठीक काम कर रहा है।

Router1काम के माध्यम से आने वाले ट्रैफ़िक को बनाते हुए मैं उन भागों को कैसे रख सकता हूं जो वर्तमान में अच्छी तरह से काम कर रहे हैं?

विस्तार:

मैंने स्थिति की नंगे अनिवार्यताओं के साथ एक चित्र नीचे दिया है (व्यवहार में प्रत्येक LAN पर अधिक डिवाइस हैं, लेकिन वे कोई फर्क नहीं पड़ता)।

यह स्थिति है:

  • मेरे पास दो आंतरिक नेटवर्क हैं: LAN0है 192.168.x.0/24और LAN1है 192.168.y.0/24। दोनों आंतरिक यातायात के लिए ठीक काम करते हैं (उदाहरण के लिए http का उपयोग कर cURL )।
  • LAN0हमेशा के माध्यम से Router0और ISP0से जुड़ा हुआ है Internet
  • LAN1हमेशा था Router1, लेकिन अब के माध्यम ISP1से जुड़ा हुआ है Internet
  • केवल आउटगोइंग और आने वाले ट्रैफ़िक के लिए काम के LAN0माध्यम से डिफ़ॉल्ट मार्ग पर मशीनें Router0
  • केवल आउटगोइंग और आने वाले ट्रैफ़िक के लिए काम के LAN1माध्यम से डिफ़ॉल्ट मार्ग पर मशीनें Router1
  • आंतरिक यातायात पर LAN0और LAN1हमेशा ठीक काम किया है।
  • आने वाले ट्रैफ़िक को सही तरीके से आने के Router1लिए WindowsB: मैं इसे आरडीपी से कनेक्ट कर सकता हूं WindowsC
  • आने वाले ट्रैफ़िक के माध्यम से आने के Router1लिए LinuxB( tcpdump के अनुसार ), लेकिन एक उत्तर के रूप में उत्तर नहीं दिया जाता है curl http://e.f.g.hताकि LinuxCशो पर tcpdump के साथ एक LinuxBशो हो:

यह केवल पैकेट दिखाता है कि - tcpdump आउटपुट फॉर्मेट के अनुसार - एक SYN फ्लैग सेट है:

LinuxB:/tmp/LinuxB.eth1.80 # tcpdump -i eth1 'port 80'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
13:35:19.489779 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047182 ecr 0,sackOK,eol], length 0
13:35:19.788841 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047478 ecr 0,sackOK,eol], length 0
13:35:19.888835 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047578 ecr 0,sackOK,eol], length 0
13:35:19.989412 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047678 ecr 0,sackOK,eol], length 0
13:35:20.089685 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047778 ecr 0,sackOK,eol], length 0
13:35:20.190836 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047877 ecr 0,sackOK,eol], length 0
13:35:20.392123 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287048072 ecr 0,sackOK,eol], length 0
13:35:20.693692 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:21.197162 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:22.204134 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:24.115961 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:27.852374 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:31.967049 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0

यह LinuxBमार्ग तालिका है:

LinuxB:/tmp/LinuxB.eth1.80 # route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.x.1     0.0.0.0         UG    0      0        0 eth0
loopback        *               255.0.0.0       U     0      0        0 lo
link-local      *               255.255.0.0     U     0      0        0 eth0
192.168.x.0     *               255.255.255.0   U     0      0        0 eth0
192.168.x.0     *               255.255.255.0   U     0      0        0 eth1

RDP से ठीक काम WindowsCकरने के लिए कनेक्ट करने के बाद से WindowsB, मुझे लगता है कि यह वास्तव में एक रूटिंग समस्या है। यह WindowsBमार्ग तालिका है:

C:\temp>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 0c 29 35 77 e1 ...... AMD PCNET Family PCI Ethernet Adapter - Packet Scheduler Miniport
0x3 ...00 0c 29 35 77 eb ...... VMware Accelerated AMD PCNet Adapter - Packet Scheduler Miniport
===========================================================================
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.x.1     192.168.x.4      10
          0.0.0.0          0.0.0.0      192.168.y.1     192.168.y.4       5
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
      192.168.x.0    255.255.255.0      192.168.x.4     192.168.x.4      10
      192.168.x.4  255.255.255.255        127.0.0.1       127.0.0.1      10
    192.168.x.255  255.255.255.255      192.168.x.4     192.168.x.4      10
      192.168.y.0    255.255.255.0      192.168.y.4     192.168.y.4      10
      192.168.y.4  255.255.255.255        127.0.0.1       127.0.0.1      10
    192.168.y.255  255.255.255.255      192.168.y.4     192.168.y.4      10
        224.0.0.0        240.0.0.0      192.168.x.4     192.168.x.4      10
        224.0.0.0        240.0.0.0      192.168.y.4     192.168.y.4      10
  255.255.255.255  255.255.255.255      192.168.x.4     192.168.x.4       1
  255.255.255.255  255.255.255.255      192.168.y.4     192.168.y.4       1
Default Gateway:       192.168.y.1
===========================================================================
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
          0.0.0.0          0.0.0.0      192.168.y.1       5
          0.0.0.0          0.0.0.0      192.168.x.1      10

तो मैं LinuxBइस तरह से रूटिंग को कैसे प्राप्त कर सकता हूं :

  • पर डिफ़ॉल्ट मार्ग रखने LinuxBके लिए 192.168.x.1तो बाहर जाने वाले यातायात का उपयोग कर रखता है Router0/ISP0
  • से आने वाले आने वाले अनुरोधों का जवाब देने रखने LAN0परLAN0
  • से आने वाले आने वाले अनुरोधों का जवाब देने रखने LAN1परLAN1
  • Router0( a.b.c.d/ 192.168.x.1) के माध्यम से आने वाले अनुरोधों का उत्तर देते रहें192.168.x.1
  • Router1( e.f.g.h/ 192.168.y.1) के माध्यम से आने वाले अनुरोधों का जवाब देना शुरू करें192.168.y.1
  • बोनस: के साथ Router1विफल-ओवर या लोड-बैलेंस हैRouter0

परिशिष्ट भाग:

PNG छवि नीचे पर उत्पन्न होता है यूएमएल मुफ्त ऑनलाइन के माध्यम से पाठ PlantUML इंजन। यदि आप मूल यूएमएल पाठ देखना चाहते हैं , तो इस प्लांट यूएमएल फॉर्म में पीएनजी छवि लिंक पेस्ट करें , फिर दबाएं ।Submit

यहां छवि विवरण दर्ज करें


बस unix.stackexchange.com/a/23345/69111 पर एक दिलचस्प जवाब मिला, जिसे मैं यह देखने के लिए जांच कर रहा हूं कि क्या यह मेरे मामले पर लागू होता है, और इसका उपयोग कैसे लागू किया जाए yast
जेरेन वीर्ट प्लुइमरस

1
Yastजटिल रूटिंग करने के लिए बाहर लगता है और इसके routeपक्ष में पदावनत किया जा रहा है ip। देखें opensuse.14.x6.nabble.com/yast2-advanced-routing-td3083578.html और suse.com/documentation/sles11/book_sle_admin/data/...
जेरोन Wiert Pluimers

1
Unix.stackexchange पर आपका लिंक किया गया समाधान सही दिशा में जा रहा है, और लिनक्स समस्या को हल करेगा - लिनक्स नोड में दो अलग-अलग राउटिंग टेबल हैं, और इस पर निर्भर करता है कि किस इंटरफ़ेस पर कनेक्शन शुरू किया गया था। मुझे विंडोज के लिए ऐसे किसी भी समाधान की जानकारी नहीं है। जब तक दो सबनेट्स की वास्तविक आवश्यकता नहीं होगी, मैं एक से छुटकारा पाऊंगा और दोनों आईएसपी के लिए एक राउटर का उपयोग करूंगा। आप राउटर खरीद सकते हैं जो दो WAN से ठीक से निपट सकते हैं, या आप इसे करने के लिए एक और लिनक्स सिस्टम का उपयोग कर सकते हैं, जो इसके पीछे के सिस्टम पर रूटिंग को सरल बना देगा।
डेविड मैकिनटोश

@DavidMackintosh भविष्य में मैं करूँगा। यह अस्थायी है: फाइबर वास्तव में डीएसएल है, और एक अलग फाइबर पते पर स्थानांतरित होने जा रहा है। मशीन डीएनएस और एमएक्स है, इसलिए मैं चाहता हूं कि दो आईएसपी से निरंतरता हो, क्योंकि मुझे यकीन नहीं है कि फाइबर सक्रिय होने से पहले या बाद में डीएसएल बंद हो जाएगा।
जीरोन विएर्ट प्लिमर्स

जवाबों:


1

मेरे पास कुछ ऐसा करने के लिए एक शेल स्क्रिप्ट थी, जो बहुत समय पहले थी लेकिन, क्षमा करें, इसे पा सकते हैं। इसलिए मैं आपको केवल उन समाधानों के लिए संकेत दे सकता हूं जिन्हें मैंने वापस लागू किया था। मैं ज्यादातर स्मृति से लिख रहा हूँ इसलिए कुछ उदाहरण गायब हैं:

  1. मेरे पास एक राउटिंग टेबल प्रति अपलिंक (आईपी रूट ... टेबल 101, आईपी रूट ... टेबल 102) थी। यह / etc / iproute2 / rt_tables में जाता है।

    101 isp1 102 isp2

    आपको उन तालिकाओं को भी सेटअप करने की आवश्यकता है:

    आईपी ​​मार्ग $ गेटवे 1 देव $ इंटरफ़ेस 1 टेबल isp1 के माध्यम से डिफ़ॉल्ट जोड़ें। आईपी मार्ग $ गेटवे 2 देव $ इंटरफेस 2 तालिका .p2 के माध्यम से डिफ़ॉल्ट जोड़ें

    # डिफ़ॉल्ट तालिका न भूलें:

    आईपी ​​मार्ग $ DefaultGateway देव $ DefaultInterface के माध्यम से डिफ़ॉल्ट जोड़ते हैं

  2. Iptables कनेक्शन ट्रैकिंग सक्षम करें (modprobe nf_conntrack)

  3. नए आने वाले कनेक्शन के लिए iptables नियम सेट करें -j पैकेट को किसी भी तरह (यानी: 0x201, 0x202)
  4. एक आईपी नियम सेट करें जो सुनिश्चित करता है कि ट्रैफ़िक से बाहर जाने वाला ट्रैफ़िक सही राउटिंग टेबल का उपयोग करता है

    ip रूल $ Ip1 टेबल isp1 से जोड़ें। ip रूल $ Ip2 टेबल isp2 से जोड़ें

  5. एक आईपी नियम (आईपी रूल ऐड ...) सेट करें, जिसमें कहा गया है कि "पैकेट 0x201 चिह्नित किया गया है, रूटिंग टेबल 201 की खोज करेगा", प्रत्येक अपलिंक के लिए एक नियम।

जगह में सब कुछ के साथ आप किसी भी वान अपलिंक और यहां तक ​​कि आउटगोइंग कनेक्शन के साथ कनेक्शन प्राप्त करने और शुरू करने में सक्षम होना चाहिए।

उन मूल बातें होगी। Iptables + "आईपी मार्ग" + "आईपी नियम" और आप जाने के लिए अच्छे हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.