ಒಂದು ಪ್ರೋಗ್ರಾಂ ಸಾಮಾನ್ಯ ಸಂಪರ್ಕ ಬಳಸಬೇಕು, ಉಳಿದೆಲ್ಲವೂ ಟನೆಲ್ನಲ್ಲೇ ಉಳಿಯಬೇಕು, ಮತ್ತು ಕ್ಲೈಂಟ್ಗೆ ಅದಕ್ಕೆ ಸ್ವಿಚ್ ಇಲ್ಲ. ಮರೆಮಾಡಿದ ಮೆನುವೂ ಸಿಗುವುದಿಲ್ಲ. ಮಾರ್ಗವನ್ನು ಪ್ಯಾಕೆಟ್ನ ಒಳಗಿನ ಕ್ಷೇತ್ರಗಳಿಂದ ಆರಿಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಪ್ಯಾಕೆಟ್ ವಿಳಾಸಗಳು ಹಾಗೂ ಪೋರ್ಟ್ಗಳನ್ನು ಹೊತ್ತೊಯ್ಯುತ್ತದೆ, ಅದನ್ನು ಸೃಷ್ಟಿಸಿದ ಪ್ರಕ್ರಿಯೆಯ ಗುರುತನ್ನಲ್ಲ, ಆದ್ದರಿಂದ ಹೊರಗಿಡುವಿಕೆಯನ್ನು ಆ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಒಂದರಲ್ಲಿ ವ್ಯಕ್ತಪಡಿಸಬೇಕು. ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಒಮ್ಮೆ ಅನುಸರಿಸಿ, ಲಭ್ಯವಿರುವ ಆಯ್ಕೆಗಳು ನಿಗೂಢವಾಗಿರುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತವೆ.

ಕ್ಲೈಂಟ್ ಅದನ್ನು ಏಕೆ ನೀಡಲಾಗದು

ಗಮ್ಯಸ್ಥಾನ ರೂಟಿಂಗ್ ಗಮ್ಯಸ್ಥಾನದ ವಿಳಾಸವನ್ನು ಪೂರ್ವಪ್ರತ್ಯಯಗಳೊಂದಿಗೆ ಹೋಲಿಸುತ್ತದೆ ಮತ್ತು ಅತಿ ಉದ್ದದ ಹೊಂದಾಣಿಕೆಯನ್ನು ಇಟ್ಟುಕೊಳ್ಳುತ್ತದೆ. ಆ ಕ್ಷಣದಲ್ಲಿ ಪ್ರತಿ ಪ್ಯಾಕೆಟ್ ಒಂದೇ ರೀತಿ ಕಾಣುತ್ತದೆ, ಅದನ್ನು ಯಾವುದು ಉತ್ಪಾದಿಸಿದರೂ. ಮೂಲ ನೀತಿ ರೂಟಿಂಗ್ ಹೋಲಿಕೆಯನ್ನು ಮೂಲ ವಿಳಾಸಕ್ಕೆ ವಿಸ್ತರಿಸುತ್ತದೆ, ಮತ್ತು ಪ್ರತಿ ಪ್ರಾಯೋಗಿಕ ಪರಿಹಾರವೂ ಬಳಸುವ ಕೊಕ್ಕೆ ಅದೇ: ಮೂಲವನ್ನು ಬದಲಿಸಿ, ಇನ್ನೊಂದು ಕೋಷ್ಟಕ ಅರ್ಹವಾಗುತ್ತದೆ.

ಪೋರ್ಟ್ಗಳು ಸಹಾಯ ಮಾಡುವುದಿಲ್ಲ. ಪೋರ್ಟ್ ಮೂಲಕ ಹೊರಗಿಡುವಿಕೆಯನ್ನು ಗಮ್ಯಸ್ಥಾನ ಹುಡುಕುವ ಮೊದಲು ಮೌಲ್ಯಮಾಪನ ಮಾಡಬೇಕಾಗಿತ್ತು, ಮತ್ತು ಆ ನಿರ್ಣಯದಲ್ಲಿ ಪೋರ್ಟ್ಗೆ ಯಾವ ಪಾತ್ರವೂ ಇಲ್ಲ. ಪೋರ್ಟ್ ಆಧಾರಿತ ಹೊರಗಿಡುವಿಕೆ ಎಂದು ಪ್ರಚಾರ ಮಾಡುವುದೆಲ್ಲವೂ ವಾಸ್ತವವಾಗಿ ಬೇರೆ ಕ್ಷೇತ್ರದಿಂದ ಹೊರಗಿಡುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಸಡಿಲವಾಗಿ ವಿವರಿಸುತ್ತದೆ.

ನಿಜವಾದ ಅಪ್ಲಿಕೇಶನ್-ವಾರು ರೂಟಿಂಗ್ ಎಲ್ಲಿ ವೇದಿಕೆ ಅದಕ್ಕೆ ಯಂತ್ರಾಂಗವನ್ನು ಸೇರಿಸಿದೆಯೋ ಅಲ್ಲಿ ಇರುತ್ತದೆ, ಉದಾಹರಣೆಗೆ Windows ನಲ್ಲಿ ಫಿಲ್ಟರ್ ಕರೆಗಳು ಅಥವಾ Android ನಲ್ಲಿ VPN ಸೇವೆಯ ಬೈಂಡಿಂಗ್. ಡೆಸ್ಕ್ಟಾಪ್ OpenVPN ಪ್ರತಿಯು ಅವುಗಳಲ್ಲಿ ಯಾವುದನ್ನೂ ತರುವುದಿಲ್ಲ, ಮತ್ತು ಯಾವ ಕಾನ್ಫಿಗರೇಶನ್ ಫ್ಲ್ಯಾಗೂ ಅದನ್ನು ಕಲ್ಪಿಸುವುದಿಲ್ಲ.

Linux: ಪ್ರಕ್ರಿಯೆಯನ್ನು ಗುರುತಿಸಿ, ನಂತರ ಗುರುತನ್ನು ರೂಟ್ ಮಾಡಿ

ಅತ್ಯಂತ ಸ್ವಚ್ಛ ವಿಧಾನ ನಿರ್ಣಯವನ್ನು ಸಾಕೆಟ್ ಹೊಂದಿರುವ ಪ್ರಕ್ರಿಯೆಗೆ ಬಿಗಿಯುತ್ತದೆ. owner ಹೊಂದಾಣಿಕೆ OUTPUT ಸರಣಿಯಲ್ಲಿ ಸ್ಥಳೀಯವಾಗಿ ಉತ್ಪಾದಿತ ಟ್ರಾಫಿಕ್ಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಆದ್ದರಿಂದ ಅಲ್ಲಿ ಅನ್ವಯಿಸಿದ ಗುರುತು ಪ್ರತ್ಯೇಕ ಕೋಷ್ಟಕವನ್ನು ಆಯ್ಕೆ ಮಾಡಬಹುದು:

iptables -t mangle -A OUTPUT -m owner --uid-owner 1001 -j MARK --set-mark 0x1
ip rule add fwmark 0x1 table 200
ip route add 192.168.1.0/24 dev eth0 src 192.168.1.0 table 200
ip route add default via 192.168.1.1 dev eth0 table 200

ಬಳಕೆದಾರ 1001 ರ ಪ್ಯಾಕೆಟ್ಗಳು ನಂತರ ಕೋಷ್ಟಕ 200 ಅನ್ನು ಸಂಪರ್ಕಿಸಿ ಸಾಮಾನ್ಯ ಗೇಟ್ವೇ ಮೂಲಕ ಹೊರಡುತ್ತವೆ, ಮುಖ್ಯ ಕೋಷ್ಟಕವು ಉಳಿದೆಲ್ಲವನ್ನೂ ಟನೆಲ್ಗೆ ಕಳುಹಿಸುತ್ತದೆ. owner ಹೊಂದಾಣಿಕೆ ಸ್ಥಳೀಯವಾಗಿ ಉತ್ಪಾದಿತ ಪ್ಯಾಕೆಟ್ಗಳಿಗೆ ಮಾತ್ರ ಅನ್ವಯಿಸುತ್ತದೆ, ಅದು ಇಲ್ಲಿ ಮುಖ್ಯವಾದ ಟ್ರಾಫಿಕ್, ಮತ್ತು ಅದು ಇನ್ನೊಂದು ಹೋಸ್ಟ್ಗೆ ರವಾನಿಸುವ ಪ್ಯಾಕೆಟ್ಗಳನ್ನು ವರ್ಗೀಕರಿಸಲಾರದು. ಉದ್ದೇಶದಿಂದ ಅಲ್ಲ, ಉಪಕರಣಗಳಿಂದ ಪರಿಶೀಲಿಸಿ: ss -tnp ಸ್ಥಾಪಿತ ಸಂಪರ್ಕಗಳ ಸ್ಥಳೀಯ ವಿಳಾಸ ಮತ್ತು ಮಾಲೀಕ ಪ್ರಕ್ರಿಯೆಯನ್ನು ತೋರಿಸುತ್ತದೆ, ಮತ್ತು ip route get 1.1.1.1 mark 0x1 ಗುರುತು ಯಾವ ಕೋಷ್ಟಕವನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ.

ನೆಟ್ವರ್ಕ್ ಹೆಸರಿನ ಸ್ಥಳ ಸ್ವಯಂಪೂರ್ಣ ಪ್ರೋಗ್ರಾಂಗೆ ಹೆಚ್ಚು ಗಟ್ಟಿಯಾದ ಉತ್ತರ, ಏಕೆಂದರೆ ಅದರೊಳಗೆ ರಚಿಸಿದ ಪ್ರತಿ ಸಾಕೆಟ್ ನಿರ್ಮಾಣದಿಂದಲೇ ಅದಕ್ಕೆ ಬದ್ಧವಾಗಿರುತ್ತದೆ, ಆದ್ದರಿಂದ ಸಹಾಯಕ ಪ್ರಕ್ರಿಯೆಗಳು ಮತ್ತು ಶಿಶು ಸಂಪರ್ಕಗಳು ಯಾವುದೇ ವರ್ಗೀಕರಣವಿಲ್ಲದೆ ವರ್ತನೆಯನ್ನು ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತವೆ. ಬೆಲೆ ಕೊಳವೆ ಕೆಲಸ: ಒಂದು veth ಜೋಡಿ, ಪ್ರತಿ ತುದಿಯಲ್ಲಿ ವಿಳಾಸ, ಮತ್ತು ಹೆಸರಿನ ಸ್ಥಳದೊಳಗೆ ಹೋಸ್ಟ್ಗೆ ಮರಳಿ ತೋರುವ ಡಿಫಾಲ್ಟ್ ಮಾರ್ಗ.

ip netns add novpn
ip link add veth-host type veth peer name veth-ns
ip link set veth-ns netns novpn
ip addr add 10.200.0.1/24 dev veth-host
ip netns exec novpn ip addr add 10.200.0.2/24 dev veth-ns
ip netns exec novpn ip route add default via 10.200.0.1

Windows: ಗಮ್ಯಸ್ಥಾನವೇ ಇನ್ನೂ ನಿರ್ಧರಿಸುತ್ತದೆ

Windows ಹೊರಹೋಗುವ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಗಮ್ಯಸ್ಥಾನದಿಂದ ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ, ಆದ್ದರಿಂದ ಬೇರೆ ಮಾರ್ಗ ಬಯಸುವ ಪ್ರೋಗ್ರಾಂ ಆಯ್ಕೆಗೆ ಮೊದಲು ಸ್ಟಾಕ್ ಸಂಪರ್ಕಿಸುವ ಯಾವುದನ್ನಾದರೂ ಬದಲಿಸಬೇಕು. ForceBindIP ಮೊದಲ ಅರ್ಧವನ್ನು ಆವರಿಸುತ್ತದೆ: ನೀವು ಹೆಸರಿಸುವ ಸ್ಥಳೀಯ ವಿಳಾಸಕ್ಕೆ ಸಾಕೆಟ್ಗಳು ಈಗಾಗಲೇ ಬದ್ಧವಾಗಿರುವಂತೆ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ. ಅಷ್ಟು ಮಾತ್ರ ಪ್ಯಾಕೆಟ್ ಯಾವ ಇಂಟರ್ಫೇಸ್ನಿಂದ ಹೊರಡುತ್ತದೆ ಎಂಬುದನ್ನು ಬದಲಿಸುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಮಾರ್ಗವನ್ನು ಇನ್ನೂ ಗಮ್ಯಸ್ಥಾನವೇ ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ. ಡಿಫಾಲ್ಟ್ ಮಾರ್ಗ ಟನೆಲ್ಗೆ ತೋರುವ ಲ್ಯಾಪ್ಟಾಪ್ನಲ್ಲಿ ಮೂಲವನ್ನು ಬಂಧಿಸಿ, ಪ್ಯಾಕೆಟ್ ಹೇಗಿದ್ದರೂ ಟನೆಲ್ಗೆ ಹೋಗುತ್ತದೆ.

ಲಕ್ಷಣಕ್ಕೆ ಓದಬಹುದಾದ ರೂಪವಿದೆ, ಒಮ್ಮೆ ಅದನ್ನು ತಿಳಿದರೆ. ಆಯ್ಕೆ ಮಾಡಿದ ಇಂಟರ್ಫೇಸ್ ನೇರವಾಗಿ ತಲುಪುವ LAN ವಿಳಾಸಕ್ಕೆ ಇದು ಅನ್ವಯಿಸುತ್ತದೆ ಮತ್ತು ಮಾರ್ಗ ಟನೆಲ್ಗೆ ತೋರುವ ಇಂಟರ್ನೆಟ್ನ ಯಾವುದಕ್ಕೂ ವಿಫಲವಾಗುತ್ತದೆ. ಪ್ರೋಗ್ರಾಂ ಕೆಲಸವನ್ನು ಸಹಾಯಕನಿಗೆ ಒಪ್ಪಿಸುವವರೆಗೆ ಅದು ಕೆಲಸ ಮಾಡುತ್ತಿರುವಂತೆಯೂ ಕಾಣುತ್ತದೆ, ಏಕೆಂದರೆ ತನ್ನದೇ ಸಾಕೆಟ್ ತೆರೆಯುವ ಸಹಾಯಕನಿಗೆ ಬಂಧನದ ಬಗ್ಗೆ ಎಂದೂ ಹೇಳಲಾಗಿಲ್ಲ.

ಒಂದು ಪ್ರಕ್ರಿಯೆ ತಪ್ಪು ಘಟಕವಾದಾಗ ನಿರ್ಣಯವನ್ನು ಸರಿಸಿ

ನಿಜವಾದ ಅಗತ್ಯ ಪ್ರೋಗ್ರಾಂ ಅಲ್ಲ, ಸಾಧನವಾಗಿದ್ದರೆ, ಅದನ್ನು ಅದರದೇ SSID ಅಥವಾ VLAN ಗೆ ಇರಿಸಿ ಮತ್ತು ರೌಟರ್ ನಿರ್ಧರಿಸಲಿ: ಆ ಮೂಲ ಸಾಮಾನ್ಯ ಮಾರ್ಗ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ಉಳಿದ ಮೂಲಗಳು ಟನೆಲ್ ಬಳಸುತ್ತವೆ. ಮೀಸಲಾದ ಗೇಟ್ವೇ ಯಂತ್ರ ಇನ್ನೊಂದು ಪ್ರಾಮಾಣಿಕ ವಿನ್ಯಾಸ: ಅದು VPN ಅನ್ನು ಇಟ್ಟುಕೊಂಡು ರೌಟರ್ ಕಳುಹಿಸುವ ಗಮ್ಯಸ್ಥಾನಗಳನ್ನು ಮಾತ್ರ ಸ್ವೀಕರಿಸುತ್ತದೆ. VLAN ನಲ್ಲಿ ನೀತಿ ಸಾಧನ ತೆರೆಯುವ ಪ್ರತಿ ಹರಿವನ್ನು ಆವರಿಸುತ್ತದೆ, Windows ವಿಧಾನವನ್ನು ಮುರಿದ ಸಹಾಯಕ ಪ್ರಕ್ರಿಯೆಗಳೂ ಸೇರಿದಂತೆ. ವಿನಿಮಯವೆಂದರೆ ವ್ಯಾಪ್ತಿ: ಆ ಸಾಧನದ ಎರಡು ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಇನ್ನು ವಿಭಿನ್ನವಾಗಿ ಪರಿಗಣಿಸಲಾಗದು.

ಎರಡೂ ಒಂದು ವಾಕ್ಯದಲ್ಲಿ ಹೇಳಬಹುದಾದ ವ್ಯಾಪ್ತಿಯ ಮೂಲ ಅಥವಾ ಗಮ್ಯಸ್ಥಾನ ನೀತಿಗಳು. ಯಾವುದೂ ಅಪ್ಲಿಕೇಶನ್-ವಾರು ಅಲ್ಲ, ಮತ್ತು ತನ್ನನ್ನು ಅಪ್ಲಿಕೇಶನ್-ವಾರು ಎಂದು ಜಾಹೀರಾತು ಮಾಡುವ ವಿನ್ಯಾಸ ಪ್ರೋಗ್ರಾಂ ತನ್ನ ಕೆಲಸವನ್ನು ಎರಡನೇ ಪ್ರಕ್ರಿಯೆಗೆ ಒಪ್ಪಿಸಿದ ಮೊದಲ ಸಲವೇ ವಿಫಲವಾಗುತ್ತದೆ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು