क्या ip6tables में नियम सेट करना या ipv6 को अक्षम करना बेहतर है?


11

मेरे पास निम्न नेटवर्क कॉन्फ़िगरेशन है:

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:e0:1c:73:02:09
          inet addr:10.1.4.41  Bcast:10.1.255.255  Mask:255.255.0.0
          inet6 addr: fe80::2e0:4cff:fe75:309/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:858600 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1069549 errors:0 dropped:0 overruns:5 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:142871181 (136.2 MiB)  TX bytes:717982640 (684.7 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:37952 errors:0 dropped:0 overruns:0 frame:0
          TX packets:37952 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3396918 (3.2 MiB)  TX bytes:3396918 (3.2 MiB)

मेरे नेटवर्क में डीएचसीपी सर्वर है और मुझे निम्नलिखित पट्टे मिल सकते हैं:

lease {
  interface "eth0";
  fixed-address 10.1.4.41;
  option subnet-mask 255.255.0.0;
  option routers 10.1.255.253;
  option dhcp-lease-time 120;
  option dhcp-message-type 5;
  option domain-name-servers 82.160.125.52,213.199.198.248,82.160.1.1;
  option dhcp-server-identifier 192.168.22.22;
  renew 3 2014/01/01 18:34:41;
  rebind 3 2014/01/01 18:35:30;
  expire 3 2014/01/01 18:35:45;
}

मैं पिंग कर सकते हैं 127.0.0.1, ::1, 10.1.4.41:

$ ping 10.1.4.41
PING 10.1.4.41 (10.1.4.41) 56(84) bytes of data.
64 bytes from 10.1.4.41: icmp_seq=1 ttl=64 time=0.065 ms
64 bytes from 10.1.4.41: icmp_seq=2 ttl=64 time=0.075 ms
64 bytes from 10.1.4.41: icmp_seq=3 ttl=64 time=0.085 ms
^C
--- 10.1.4.41 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.065/0.075/0.085/0.008 ms

$ ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.066 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.056 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.055 ms
^C
--- 127.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.055/0.059/0.066/0.005 ms

$ ping6 ::1
PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from ::1: icmp_seq=2 ttl=64 time=0.049 ms
64 bytes from ::1: icmp_seq=3 ttl=64 time=0.037 ms
^C
--- ::1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.037/0.046/0.052/0.006 ms

मैं IPv6 पते को पिंग नहीं कर सकता fe80::2e0:4cff:fe75:309:

$ ping6 fe80::2e0:4cff:fe75:309
connect: Invalid argument

मैंने कुछ iptables नियम (ipv4) निर्धारित किए हैं:

# iptables -S
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-N TCP
-N UDP
-A INPUT -i eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
-A OUTPUT -m conntrack --ctstate INVALID -j DROP

और यह ipv4 के लिए अपेक्षित रूप से काम करता है। लेकिन जब मैं ip6tables की जांच करता हूं, तो मैं कुछ पैकेटों को वहां जाते हुए देख सकता हूं:

# ip6tables -nvL
Chain INPUT (policy ACCEPT 381 packets, 27624 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 390 packets, 26296 bytes)
 pkts bytes target     prot opt in     out     source               destination

मैंने इस गाइड का पालन ​​किया , और वे कहते हैं कि मुझे iptables (ipv4) कॉन्फ़िगरेशन की प्रतिलिपि बनाना चाहिए और इसे ip6tables (ipv6) में पेस्ट करना चाहिए। लेकिन जब मैं ऐसा करता हूं, तो कोई भी पैकेट RELATED,ESTABLISHEDipv6 टेबल में नियम से नहीं जा सकता है । INPUT श्रृंखला नीति ( DROP) के कारण सभी को छोड़ दिया गया है ।

# ip6tables -nvL
Chain INPUT (policy DROP 5 packets, 360 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all      eth0   *       ::/0                 ::/0                 ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all      lo     *       ::/0                 ::/0
    0     0 ACCEPT     all      tun0   *       ::/0                 ::/0                 ctstate RELATED,ESTABLISHED
    0     0 DROP       all      *      *       ::/0                 ::/0                 ctstate INVALID
    0     0 UDP        udp      *      *       ::/0                 ::/0                 ctstate NEW
    0     0 TCP        tcp      *      *       ::/0                 ::/0                 tcp flags:0x17/0x02 ctstate NEW
    0     0 REJECT     tcp      *      *       ::/0                 ::/0                 reject-with tcp-reset
    0     0 REJECT     udp      *      *       ::/0                 ::/0                 reject-with icmp6-port-unreachable

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all      *      *       ::/0                 ::/0                 ctstate INVALID

Chain TCP (1 references)
 pkts bytes target     prot opt in     out     source               destination

Chain UDP (1 references)
 pkts bytes target     prot opt in     out     source               destination

जैसा कि आप देख सकते हैं कि कोई आउटपुट पैकेट नहीं है, इसलिए Google और स्टैक एक्सचेंज मेरी मशीन से कनेक्ट करने का प्रयास क्यों करते हैं? और वे ऐसा कैसे करते हैं क्योंकि यहां तक ​​कि मैं अपने आईपीवी 6 पते को पिंग नहीं कर सकता हूं?

वे यह भी कहते हैं कि यदि मेरे ISP में ipv6 नहीं है (पट्टे में, कोई ipv6 प्रविष्टि नहीं है) तो मुझे ipv6 को अक्षम करना चाहिए और उपयोग करने से पहले ऐसा किया था ipv6.disable=1। मैंने इसी तरह का सवाल पूछा meta.stackoverflow.com, और मुझे जवाब मिला कि मुझे ipv6 को अक्षम नहीं करना चाहिए।

मुझे नहीं पता हैं क्या करना है। मुझे कुछ कनेक्शन समस्याएं हैं, मेरा मतलब है कि कभी-कभी मैं स्टैक एक्सचेंज, या Google पर पृष्ठों तक नहीं पहुंच सकता हूं, मुझे pastebin.com के साथ भी समस्याएं हैं। प्रत्येक मामले में समान लक्षण होते हैं - मेरे ब्राउज़र में एक पता लिखने के बाद, साइट तक पहुंचने के लिए मुझे कभी-कभी कई मिनट इंतजार करना पड़ता है और 2-3 बार इसे फिर से लोड करने के बाद, मैं इसे स्वतंत्र रूप से ब्राउज़ कर सकता हूं, कम से कम एक के लिए समय की निश्चित अवधि।

जवाबों:


13

आपका IPv6 पता इसके साथ शुरू होता है fe80:और इसलिए लिंक-स्थानीय पता होता है। इस तरह के पते केवल नेटवर्क इंटरफ़ेस के समान लिंक पर उपयोग करने योग्य हैं। क्योंकि प्रत्येक नेटवर्क इंटरफ़ेस पर एक ही लिंक-लोकल सबनेट मौजूद है, आपको यह निर्दिष्ट करना होगा कि आप किस इंटरफ़ेस का उपयोग करना चाहते हैं। उदाहरण के लिए जब आप लिंक-स्थानीय पता पिंग करना चाहते हैं।

निम्न ping6उदाहरणों में से एक का प्रयास करें । दोनों ही करते हैं:

ping6 fe80::2e0:4cff:fe75:309%eth0
ping6 -I eth0 fe80::2e0:4cff:fe75:309

इसका अर्थ यह भी है कि आपके सिस्टम से कनेक्ट करने के लिए केवल आपके स्थानीय लिंक (आपके LAN) पर सिस्टम इस लिंक-स्थानीय पते का उपयोग कर सकते हैं। रूटर्स उन पतों को रूट नहीं करेंगे। ऐसा कोई तरीका नहीं है कि Google या स्टाॅक एक्सचेंज आपकी मशीन को IPv6 ट्रैफिक भेज रहे हैं, क्योंकि आपकी मशीन का IPv6 पता नहीं है, जो उनके लिए उपलब्ध नहीं है।

तो, क्या IPv6 यातायात आप अपने इंटरफेस पर देख रहे हैं? संभवतः mDNS ( मल्टीकास्ट डीएनएस ) और अन्य प्रोटोकॉल जैसी चीजें जो स्वचालित रूप से स्थानीय लिंक पर कनेक्ट हो सकती हैं। उदाहरण के लिए Apple Airplay और Windows होम ग्रुप

आपके फ़ायरवॉल नियम बहुत महत्वपूर्ण बात याद कर रहे हैं ICMPv6:। IPv6 ICMP का उपयोग IPv4 से बहुत अधिक करता है, और ICMP पैकेट को आपके ट्रैफ़िक को गंभीर रूप से अपंग नहीं होने देता क्योंकि आपको उस ट्रैफ़िक से संबंधित त्रुटि संदेश प्राप्त नहीं होंगे। यह लंबे समय तक देरी / टाइमआउट का कारण बन सकता है। आमतौर पर ICMPv6 ट्रैफ़िक की अनुमति देने से कोई हानि नहीं होती है, इसलिए आप इसे अपने फ़ायरवॉल नियमों में जोड़ सकते हैं:

ip6tables -A INPUT -p icmpv6 -j ACCEPT

यदि आप ping6पैकेट को ब्लॉक करना चाहते हैं (हालांकि मुझे वास्तव में यह समझ में नहीं आता है कि लोग इन दिनों क्यों करते हैं, तो यह कनेक्टिविटी को बहुत कठिन बना देता है) आप इसे पिछली ACCEPTपंक्ति से पहले जोड़ सकते हैं :

ip6tables -A INPUT -p icmpv6 --icmpv6-type 128 -j DROP

यह ज्यादातर तब महत्वपूर्ण होता है जब आपको अपनी मशीन के लिए वास्तविक वैश्विक IPv6 कनेक्टिविटी मिल जाती है, लेकिन अगर आप पहले से ही इसके लिए तैयार हैं तो यह दुख नहीं होगा :-)


1
मुझे ये अब मिला। मैंने icmpv6नियम जोड़ा, लेकिन 20 / मिनट तक सीमित था, और मैं देख सकता हूं कि पैकेट वहां जाते हैं। ping6 -I eth0 fe80::2e0:4cff:fe75:309भी काम करता है।
मिखाइल मोरफिकोव

2

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

  • अनावश्यक सॉफ़्टवेयर स्थापित करना
  • सर्वर पर GUI डेस्कटॉप को अक्षम करना
  • अक्षम और / या एकात्मक हार्डवेयर को छोड़कर
  • IPv6 को अक्षम करना
  • असमान सेवाओं को अक्षम करना
  • आदि।

मेरे पास एक ही दर्शन है, लेकिन इस मामले में मैं वास्तव में नहीं जानता कि क्या करना है। कुछ लोग कहते हैं कि मुझे IPv6 को अक्षम करना चाहिए, अन्य लोग कुछ अलग कहते हैं। IPv6 अक्षम होने पर भी मुझे समस्याएँ हैं।
मिखाइल मॉर्फिकोव

@MikhailMorfikov - क्या आपका ISP किसी भी प्रॉक्सी / NAT का प्रदर्शन करता है जहाँ वे अपने ग्राहकों को ISP में पहुँचने के लिए IPv6 का उपयोग कर रहे हैं। मुझे नहीं लगता कि यह आपके लिए एक मुद्दा है, अन्यथा आपके पास एक आईपीवी 6 पता होगा लेकिन सिर्फ इसके बारे में सोचा।
SLM

मेरे पास कोई विचार नहीं है, शायद मुझे उनसे पूछना चाहिए, और शायद वे कुछ करेंगे और समस्या को ठीक करेंगे।
मिखाइल मोरफिकोव

2

वे यह भी कहते हैं कि अगर मेरे ISP में ipv6 (पट्टे में नहीं है, तो ipv6 की कोई प्रविष्टि नहीं है) मुझे ipv6 को अक्षम करना चाहिए और ipv6.disable = 1 का उपयोग करके पहले ऐसा किया था। मैंने meta.stackoverflow.com पर इसी तरह का सवाल पूछा, और मुझे जवाब मिला कि मुझे ipv6 को अक्षम नहीं करना चाहिए।

बेशक आप डीएचसीपी के साथ एक आईपीवी 6 पता पट्टा नहीं देखेंगे - यही डीएचसीपीवी 6 के लिए है: डीएचसीपी और डीएचसीपी 6 संगत नहीं हैं।

IPv6 को बंद करने या न करने के रूप में: यदि आपको इसकी आवश्यकता नहीं है और आपका ISP इसे अभी तक प्रदान नहीं करता है, तो इसे बंद कर दें लेकिन इसके परिचय की तैयारी करें । इसमें उन सभी चीज़ों को निकालना / फिर से डिज़ाइन करना शामिल है जो विरासत आईपी पर स्पष्ट रूप से निर्भर हैं, जैसे कि हार्ड कोडित आईपी पते या प्रसारण का उपयोग करना।

Apropos IPv6 को बंद कर रहे हैं: इस बात से सावधान रहें कि उदाहरण के लिए Microsoft IPv6 को ऑपरेटिंग सिस्टम का अभिन्न अंग मानता है, इसलिए IPv6 को बंद करने से आपको उनसे मिलने वाले समर्थन पर असर पड़ सकता है।

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