मैं स्थिर रूटिंग के लिए बहुत नया हूं, हमारे ग्राहक ने सॉकेट के लिए स्थिर रूटिंग लागू करने का अनुरोध किया है। जब मैं googled मैं रूटिंग जानकारी सेट करने के लिए rtentry
के साथ आया था। जब मैंने इस संरचना को खोला तो मैंने स्थिर रूटिंगसॉकेट के लिए एकाधिक रूटिंग प्रविष्टियों को कैसे सेट करें?
struct sockaddr rt_dst; /* Target address. */
struct sockaddr rt_gateway; /* Gateway addr (RTF_GATEWAY). */
struct sockaddr rt_genmask; /* Target network mask (IP). */
पर फ़ील्ड देखा, लेकिन मैं यहां एकाधिक प्रविष्टि कैसे सेट कर सकता हूं? एकाधिक rtentry
बनाने और ioctl(FileDes, SIOCADDRT, &rtentry)
पर कॉल करने से मेरी समस्या ठीक हो जाएगी?
int32_t FileDes = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
for(auto RtEntry : RtEntriesList)
{
ioctl(FileDes, SIOCADDRT, RtEntry)`
}
यदि मैं कॉन्फ़िगर करता हूं, तो मैं इसका परीक्षण कैसे कर सकता हूं? यह उपयोगी होगा यदि आप इन चीजों के बारे में अधिक जानने के लिए एक लिंक प्रदान कर सकते हैं।
गिल्सन, क्या आप अपने प्रश्न के हिस्से को अधिक जानकारी में "सॉकेट के लिए स्थिर रूटिंग लागू करने के लिए अनुरोध किए गए क्लाइंट" का विस्तार कर सकते हैं? सॉकेट में आमतौर पर कोई अतिरिक्त रूटिंग चयन नहीं होता है, वे केवल सिस्टम-व्यापी परिभाषित रूटिंग का उपयोग करते हैं; और rtentry सामान्य सॉकेट के लिए नहीं है, यह प्रशासनिक सॉकेट के लिए सिस्टम-व्यापी रूटिंग प्राप्त करने और सेट करने के लिए है (इसका उपयोग विशेषाधिकार प्राप्त 'रूट एड' कमांड द्वारा किया जाता है: http://unix.stackexchange.com/questions/274094/can-not जोड़ें स्थैतिक मार्ग में मेरी-ubuntu-siocaddrt-नेटवर्क-है-पहुंच योग्य नहीं)। – osgx
@osgx हमें स्थिर रूटिंग प्रदान करने के लिए/etc/network/interface फ़ाइल को संशोधित करना होगा। मैं उस हिस्से के बारे में स्पष्ट हूं, हमें इन रूटिंग जानकारी को इंटरफ़ेस में सेट करना होगा ताकि यह पुनरारंभ किए बिना कॉन्फ़िगरेशन ले सके। इसके लिए हमें रूटिंग जानकारी को प्रशासनिक सॉकेट के माध्यम से सेट करना होगा। तो मैं उलझन में हूं कि इन सूचनाओं को कैसे सेट करें। वे रूट कमांड निष्पादित नहीं करना चाहते हैं या स्थिर रूटिंग कॉन्फ़िगरेशन सेट करने के लिए डिवाइस को पुनरारंभ नहीं करना चाहते हैं। मुझे आशा है कि आप मेरे प्रश्न के बारे में स्पष्ट हैं। –
गिल्सन, 'मार्ग' या ['आईपी रूट'] के स्रोतों की जांच करें (https://access.redhat.com/sites/default/files/attachments/rh_ip_command_cheatsheet_1214_jcs_print.pdf) उपकरण (sourceforge.net/projects/net-tools ,) और/या 'मार्ग जोड़ें 'आदेशों के' strace'/'ltrace' /' sysdig' करें जो वांछित रूटिंग सेट करने के लिए उपयोग किए जाते हैं। – osgx