বিদ্যমান টিসিপি সংযোগগুলি প্রভাবিত না করে ডিফল্ট রুট পরিবর্তন করুন


3

বলুন আমার আমার সার্ভারে দুটি পাবলিক নেটওয়ার্ক ঠিকানা রয়েছে: একটি আইএসপি (192.168.99.0/24) এবং একটি ভিন্ন আইপিপি (19২.168.1.0/24) এর মাধ্যমে একটি ভিপিএন, ইতিমধ্যে একটি প্রতি-হোস্ট রুটের সাথে কনফিগার করা আছে আমার আইএসপি মাধ্যমে ভিপিএন সার্ভার।

এখানে আমার প্রাথমিক রাউটিং টেবিল। আমি বর্তমানে আমার আইএসপি 192.168.99.0/24 সাবনেটে রাউটিং করছি।

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.99.1    0.0.0.0         UG    0      0        0 eth1
55.66.77.88     192.168.99.1    255.255.255.255 UGH   0      0        0 eth1
192.168.99.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 tap0

এখন, আমি আমার টিসিপি সংযোগগুলি আমার 19২.168.1.0/24 তে স্যুইচ করতে চাই, তাই আমি নিম্নলিখিতটি টাইপ করি:

$ route add -net 0.0.0.0 gw 192.168.1.1 dev tap0

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

আমি এমন একটি সমাধান দিয়ে ঠিক আছি যা কেবলমাত্র প্রতিষ্ঠিত টিসিপি সংযোগগুলির সাথে কাজ করে এবং আমি কীভাবে হ্যাকি করি তা আমি যত্ন করি না। উদাহরণস্বরূপ, বিদ্যমান সংযোগগুলির জন্য অস্থায়ী iptables বিধিগুলিকে পুরাতন রুটগুলিতে জোর করার জন্য যদি কোন উপায় থাকে। কিন্তু আছে আছে কিছু এই কাজ করার উপায়।

সম্পাদনা করুন: বিদ্যমান সংযোগগুলির জন্য একটি সহজ "রুট অ্যাড-হোস্ট ..." সম্পর্কে একটি নোট: পুরনো ইন্টারফেসে আইপিগুলির উপসেট ছেড়ে দেওয়ার সাথে সাথে আমি এই সমাধানটি কাজ করব। যাইহোক, আমার অ্যাপ্লিকেশনটিতে, এটি আসলে আমার সমস্যাটি সমাধান করে না কারণ আমি নতুন সংযোগগুলি নতুন ইন্টারফেসে আসতে চাইলেও তাদের একই উৎস আইপি থাকে। আমি এখন উৎস-ভিত্তিক রাউটিং নিয়ম সেট করতে "আইপি রুট" কমান্ডটি ব্যবহার করছি।


আপনি সত্যিই এটি চিরতরে সঠিকভাবে ঠিক করা উচিত এবং উৎস ভিত্তিক (নীতি) রাউটিং ব্যবহার করা উচিত।
David Schwartz

@ ডেভিড স্যাচার্টজ কুল! এই ঠিক আমি খুঁজছেন ছিল সাজানোর সাজানোর। আমি সত্যই জানতাম না যে এই ধরনের ধারণা বিদ্যমান ছিল: প্রকৃতপক্ষে আমি পুরানো "রুট" পরিবর্তে "আইপি রুট" দেখছিলাম - আমি সম্পূর্ণভাবে এই ভুলে গেছি। যদি আপনি উৎস-ভিত্তিক রাউটিং বা আইপি কমান্ডগুলির ধরনের সহজতর উত্স-ভিত্তিক রাউটিং টেবিল তৈরি করতে পারে এমন আরও তথ্যের জন্য কোনও প্রক্রিয়ায় আনুষ্ঠানিকভাবে প্রতিক্রিয়া জানান তবে আমি উত্তরটি গ্রহণ করতে পেরে খুশি হব।
Patrick Horn

উত্তর:


1

নিম্নোক্ত কমান্ড খোলা টিসিপি সংযোগগুলি পরীক্ষা করবে এবং স্থানীয় নেটওয়ার্কের বাইরে গন্তব্যগুলি তালিকাবদ্ধ করবে:

$ netstat -4ntu | tail -n +3 | cut -c45-65 | cut -d: -f1 | grep -v '192.168.99' | grep -v '192.168.1'
214.236.220.101
63.171.235.16
174.63.61.132
159.47.216.178
62.59.197.29
139.47.218.150
56.4.17.22
204.63.49.5
155.9.79.196
144.31.207.66

সুতরাং আমাদের এই তালিকার মধ্য দিয়ে পুনরাবৃত্তি করতে হবে এবং ডিফল্ট রুট পরিবর্তন করার আগে মূল রাউটারের দিকে নির্দিষ্ট রুটগুলি স্থাপন করতে হবে:

for i in $(netstat -4nt | tail -n +3 | cut -c45-65 | cut -d: -f1 |grep -v '192\.168\.99' | grep -v '192\.168\.1') ; do echo route add -host $i gw 192.168.1.99; done

(আমি সেখানে "echo" কমান্ডটি রেখে দিয়েছি যাতে আপনি এটি দেখতে পারেন, আপনি আসলে এটি করতে চান যখন আপনি এটি মুছে ফেলতে পারেন।

তারপর আপনার ডিফল্ট রুট পরিবর্তন করুন:

$ route add -net 0.0.0.0 gw 192.168.1.1 dev tap0

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


রাউটিং টেবিল সমাধান would পুরানো ইন্টারফেসে আইপিগুলির উপসেট ছাড়ার সাথে আমি জরিমানা। যাইহোক, আমার অ্যাপ্লিকেশনটিতে, এটি আসলে আমার সমস্যার সমাধান করে না কারণ আমি নতুন সংযোগগুলি নতুন ইন্টারফেসে আসার অনুমতি দিতে চাই, এমনকি যদি তাদের একই উত্স আইপি থাকে। এছাড়াও, আমি এই প্রশ্নটি আংশিকভাবে জিজ্ঞাসা করেছি কারণ আমি সম্ভাবনাটির জন্য অপেক্ষা করছি একটি কম অশোধিত পদ্ধতির।
Patrick Horn

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