আমি কীভাবে একটি কাস্টম লিনাক্স নেটওয়ার্ক নেমস্পেস থেকে ডিফল্টটিতে ফিরে যেতে পারি?


14

সঙ্গে আইপি netns Exec কিন্তু ডিফল্ট নামস্থানে কমান্ড চালানো একটি উপায় - আপনি একটি কাস্টম নেটওয়ার্ক নামস্থানে কমান্ড নির্বাহ করতে পারেন?

উদাহরণস্বরূপ, এই দুটি কমান্ড কার্যকর করার পরে:

sudo ip netns add test_ns
sudo ip netns exec test_ns bash

নতুন তৈরি বাশ কীভাবে ডিফল্ট নেটওয়ার্ক নেমস্পেসে প্রোগ্রামগুলি সম্পাদন করতে পারে? কোনও আইপি নেট এক্সিকিউট ডিফল্ট বা যতদূর আমি খুঁজে পেয়েছি তার মতো কিছু নেই।

আমার দৃশ্যটি হ'ল:

আমি একটি পৃথক নেটওয়ার্ক নেমস্পেসে একটি এসএসএইচ সার্ভার চালাতে চাই (সিস্টেমটি নেটওয়ার্ক সংযোগ সম্পর্কে অবহিত রাখতে, সিস্টেমটি নেটওয়ার্ক পরীক্ষার জন্য ব্যবহৃত হয়), তবে ডিফল্ট নেটওয়ার্ক নেমস্পেসের মাধ্যমে প্রোগ্রামগুলি সম্পাদন করতে সক্ষম হতে চাই এসএসএইচ সংযোগ।

আমি এ পর্যন্ত যা জানতে পেরেছি:

উত্তর:


13

নতুন ডিস্ট্রোস / কার্নেলগুলি nsenterকমান্ডটি সমর্থন করে যা আপনার যা করা উচিত তা করা উচিত, যখন আপনি এটি করেন তখন আপনি রুট হন।

এখানে একটি উদাহরণ (ফেডোরা 20)।

[root@home ~]# unshare -n /bin/bash
[root@home ~]# ip a l
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
[root@home ~]# ping google.com
ping: unknown host google.com
[root@home ~]# nsenter -t 1 -n -- ping -c 2 google.com
PING google.com (74.125.230.65) 56(84) bytes of data.
64 bytes from lhr14s23-in-f1.1e100.net (74.125.230.65): icmp_seq=1 ttl=56 time=14.2 ms
64 bytes from lhr14s23-in-f1.1e100.net (74.125.230.65): icmp_seq=2 ttl=56 time=15.0 ms

--- google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 14.239/14.621/15.003/0.382 ms
[root@home ~]# nsenter -t 1 -n -- ip a l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: p4p1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 10:bf:48:88:50:ee brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global p4p1
       valid_lft forever preferred_lft forever
    inet6 fe80::12bf:48ff:fe88:50ee/64 scope link 
       valid_lft forever preferred_lft forever
[root@home ~]# 

এটি setnsসিস্টেম কলের উপর নির্ভর করে । এটি কাজ করার জন্য আপনার কমপক্ষে একটি 3.0 কার্নেল এবং glibc-2.14 প্রয়োজন।

RHEL 6.5 অবিচ্ছিন্ন নেমস্পেসের জন্য সমর্থন সরবরাহ করে তবে বিদ্যমান প্রক্রিয়াগুলিকে নতুন নেমস্পেসে স্থানান্তরিত করার জন্য সমর্থন করে না


এটি উসুন্টু একটি পুরানো ইউজ-লিনাক্স প্যাকেজ সরবরাহ করে যে নেসটার ছাড়াই সরবরাহ করে, এটি কার্যকর কাজ করে। তবে আমি এখানে বিল্ডের বিস্তারিত নির্দেশাবলী পেয়েছি: Askubuntu.com
মার্টিন

আমি চেষ্টা করেছি nsenter -t 1 -nকিন্তু এটি একটি নতুন প্রক্রিয়া ঠিক ip netns execতৈরি করেছে এবং বর্তমান প্রক্রিয়াটির নাম স্থান পরিবর্তন করে নি।
পাভেল Šিমেরদা

15

আমি দেখতে পেয়েছি যে আপনি দুটি সাধারণ কমান্ড দিয়ে ডিফল্ট নেটওয়ার্ক নেমস্পেসে ফিরে আসতে পারেন:

ln -s /proc/1/ns/net /var/run/netns/default
ip netns exec default ifconfig -a

এই পদ্ধতিটি স্পষ্টতই ধরে নিয়েছে যে আপনি procফাইল সিস্টেমের মাধ্যমে নিজের নিজের নামের জায়গার বাইরেও প্রক্রিয়াগুলি দেখতে পাচ্ছেন । আপনি যদি আলাদা আলাদা পিআইডি নেমস্পেসে থাকেন তবে ডিফল্ট নেমস্পেসে ফিরে আসা এত সহজ নয়।

উপরের আদেশগুলি উবুন্টু 14.04 এ পরীক্ষা করা হয়েছিল। পদ্ধতির বিষয়ে নির্দিষ্ট কোনও বিতরণ আছে কিনা তা আমি জানি না।


1
এটি বেশ উপন্যাস! আমি mount --bindপরিবর্তে আসলে করার সুপারিশ করব ln -s, কারণ এর অর্থ হ'ল ipকমান্ডটি এটি পরিচালনাও করতে পারে (আইপি মূলত - এই পর্বতগুলি নাম-স্থান ফাইলের বিপরীতে মাউন্ট - বাইন্ডটি স্থায়ী নাম-স্থান সেটআপ করতে পারে)।
ম্যাথু ইফে

@ ক্যাস্পার্ড আপনি বলছেন যে এটি আলাদা আলাদা পিআইডি নেমস্পেসের সাথে সহজ নয়। এটি কি এখনও সম্ভব, যদিও? আপনি কিভাবে উল্লেখ করতে পারেন?
কপ্পাম্পুন

পছন্দ করুন
ক্যাস্পার্ড

0

"ln -s / proc / 1 / ns / নেট / var / run / netns / default" <----- এটিকে মোটেই সুপারিশ করা হয় না।

"আইপি নেটস শো" আউটপুট করে এমন কোডের কাউন্টার

আপনি যদি ব্যাশ শেলটি চালিত করেন তবে ব্যাশের বাইরে সহজ উপস্থিত রয়েছে, প্রস্থান করুন।

আপনার যদি নেটগুলিতে এসএসএস থাকে, তবে ডিফল্ট এনএসের ইন্টারফেসে এসএসএস করুন এবং সেখানে আপনাকে যা করতে হবে তা করুন।

একটি শেষ অবলম্বন হিসাবে উপরের মতো LN, তবে আমি এটি শেষ হওয়ার সাথে সাথে এটিকে সরিয়ে ফেলার পরামর্শ দেব এবং কোনও এনএস-তে কোনও পরিবর্তন হওয়ার আগে। অন্যথায় কাউন্টারটি দূষিত হবে এবং সমস্যার কারণ হবে।


2
এটি অন্য উত্তরের মন্তব্য বলে মনে হচ্ছে।
রালফ্রেডল

দুর্ভাগ্যক্রমে আমি সাইন আপ করেছিলাম এবং মন্তব্য করতে পারিনি। এখন সরানো খুশি আমি মন্তব্য পোস্ট করতে পারেন। @ র্যালফ্রেডল
লুক এ

0
nsenter -n -t <pid of a process running in the default ns>

আপনি পিড ফর্মটি 'পিএস অক্স' করছেন বা আপনি চাইলে একটি শীর্ষস্থানীয়ও পেতে পারেন।

ব্যক্তিগতভাবে আমি সর্বদা প্রধান নেমস্পেসে চলে আসি, তারপরে আমি সর্বদা প্রস্থান টাইপ করে ডিফল্টতে ফিরে যেতে পারি এবং প্রয়োজনে নেমস্পেসে পুনরায় প্রবেশ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.