रिबूट के बाद टैप इंटरफेस को कैसे स्थिर रखें?


24

कुछ कार्यों के लिए टैप इंटरफेस को कॉन्फ़िगर करने की आवश्यकता है + स्वामित्व प्रदान करना । इसलिए, मैं इसे मैन्युअल रूप से कर रहा हूं:

sudo tuntap -u <username>
sudo ifconfig tap0 up
sudo ip a a 192.168.1.1/24 dev tap0

या उपयोग कर रहा है

ip tuntap add dev tap0 mode tap user <username>

इन आदेशों को शेल स्क्रिप्ट में जोड़कर और स्टार्टअप में जोड़े बिना रिबूट के बाद मैं टैप इंटरफेस कैसे बना सकता हूं

जो कुछ मेरे मन में है वह / etc / network / interfaces के माध्यम से कर रहा हूँ जैसे कि निम्नलिखित:

iface tap1 inet static
address 192.168.1.121
netmask 255.255.255.0
pre-up /usr/sbin/tunctl -u ajn -t tap1

लेकिन किसी कारण से, यह काम नहीं करता है।

कोई विचार?

जवाबों:


20

मैं देख नहीं सकता, मेरे जीवन के लिए, इस सवाल को क्यों वोट दिया जाना चाहिए। यह स्पष्ट है, सही है, इसका एक अच्छी तरह से परिभाषित जवाब है। मैंने इसे अपडाउन किया है।

आप टंकट जैसे अप्रचलित उपयोगिताओं का उपयोग कर रहे हैं, आपको इसके बजाय आईपी ​​का उपयोग करना चाहिए । / Etc / नेटवर्क / इंटरफेस के लिए सही श्लोक है:

    iface tap1 inet manual 
    pre-up ip tuntap add tap1 mode tap user root
    pre-up ip addr add 192.168.1.121/24 dev tap1
    up ip link set dev tap1 up
    post-up ip route del 192.168.1.0/24 dev tap1 
    post-up ip route add 192.168.1.121/32 dev tap1
    post-down ip link del dev tap1

आपकी गलती मैनुअल के बजाय स्टेटिक का उपयोग करने में थी । कारण यह है कि, जब से आप वर्चुअल इंटरफेस को अपने मुख्य इंटरफे (wlan0 / eth0) के रूप में एक ही सबनेट में एक पता देने की कोशिश कर रहे हैं, जब यह स्थानीय मार्ग को जोड़ने के लिए स्वचालित रूप से प्रयास करता है,

    ip route add 192.168.1.0/24 dev tap1

यह पाता है कि ऐसा मार्ग पहले से मौजूद है, और यह शिकायत करता है। यदि आप स्थैतिक के बजाय मैनुअल का उपयोग करते हैं, तो आपको इस मार्ग को हटाने की अनुमति है, जो निश्चित रूप से बेकार है।

साथ ही, आपको एक मार्ग जोड़ना चाहिए

     ip route add 192.168.1.121/32 dev tap1

अपने कर्नेल को सूचित करने के लिए कि मार्ग में कोई अपवाद नहीं है

     ip route add 192.168.1.0/24 dev eth0/wlan0 

बस इतना ही।


Ubuntu 17.10 पर यहां मेरे लिए कुछ काम नहीं करता है: मेरा tun0 नहीं बना है - सेवा नेटवर्किंग स्थिति कहती है कि इंटरफ़ेस tun0मौजूद नहीं है। यहाँ इंटरफेस फाइल है अगर किसी को भी देखने के लिए परवाह है: gist.github.com/velis74/ab75a46893eaed8bd08b8c6292b2737a
velis

@velis आपके नए इंटरफ़ेस को tap0 कहा जाता है , न कि tun0 , इसलिए यह नहीं मिला है। कृपया ध्यान दें कि ट्यून और टैप इंटरफेस मूलभूत रूप से अलग हैं। en.wikipedia.org/wiki/TUN/TAP , आप किसे बनाना चाहते हैं?
मारियसमैट्यूटिया

हां, इसे टैप0 कहा जाता है। यह उत्तर एक नल डिवाइस बनाने के बारे में है, न कि एक ट्यून। मैं यह देखने में विफल हूं कि यह मेरी विफलता का कारण कैसे हो सकता है। प्री-अप ऐड डिवाइस कमांड कमांड लाइन से पूरी तरह से निष्पादित होता है।
वेलिस

पता चला मैं केवल एक auto tap0छंद याद कर रहा था । तदनुसार अद्यतन करें।
10

0

कुछ और कदम हैं जिन्हें आपको करने की आवश्यकता हो सकती है:

  1. नया रूटिंग टेबल जोड़ने के लिए एक नया रूटिंग टेबल एडिट / etc / iproute2 / rt_tables जोड़ें। इसे रूटिंग टेबल "rt2" कहें और इसकी प्राथमिकताएँ 1 पर सेट करें:
    55     local
    254     main
    253     default
    0       unspec
    1       rt2
  1. जैसा कि पिछले उत्तर में बताया गया है, एक टैप इंटरफ़ेस बनाएं, लेकिन फिर आपको नए रूटिंग टेबल को कॉन्फ़िगर करने और रूटिंग नियमों को सेट करने की आवश्यकता है। / Etc / नेटवर्क / इंटरफेस में जोड़ें:
   #create a tap interface and make it persistent
    iface tap1 inet manual 
    pre-up ip tuntap add tap1 mode tap user root
    pre-up ip addr add 192.168.1.121/24 dev tap1
    up ip link set dev tap1 up
    post-up ip route del 192.168.1.0/24 dev tap1 
    post-up ip route add 192.168.1.121/32 dev tap1
    post-down ip link del dev tap1

    #configure the new routing table so that network 192.168.1.0 can be reached through the tap1 interface
    post-up ip route add 192.168.1.0/24 dev tap1 src 192.168.1.121 table rt2

    #set the default gateway to be 192.168.1.10
    post-up ip route add default via 192.168.1.10 dev tap1 table rt2

    #set rules so that traffic from and to 192.168.1.121 use the rt2 routing table 
    post-up ip rule add from 192.168.1.121/24 table rt2
    post-up ip rule add to 192.168.1.121/24 table rt2
sudo ifup tap1

इसका परीक्षण करने के लिए:

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