ਅਸਲ ਸਰੋਤ ਲੱਭਣ ਲਈ DNS ਪੁੱਛਗਿੱਛ ਦਾ ਕਦਮ-ਦਰ-ਕਦਮ ਪਿੱਛਾ ਕਰੋ
ਥੋਪਿਆ ਗਿਆ ਰਿਜ਼ਾਲਵਰ ਪਤਾ ਇਹ ਤੈਅ ਨਹੀਂ ਕਰਦਾ ਕਿ ਰਿਜ਼ਾਲਵਰ ਕਿਹੜਾ ਸਰੋਤ ਦੇਖਦਾ ਹੈ। ਕਲਾਇੰਟ, ਫਾਰਵਰਡਰ ਅਤੇ ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲੇ ਸਰਵਰ ਦਾ ਪਿੱਛਾ ਕਰੋ, ਫਿਰ ਰਾਹ ਲਿਖੋ।
ਕਲਾਇੰਟ ਨੂੰ ਰਿਜ਼ਾਲਵਰ ਪਤਾ ਦੇਣਾ ਇਹ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਪੁੱਛਗਿੱਛਾਂ ਕਿੱਥੇ ਜਾਂਦੀਆਂ ਹਨ, ਇਹ ਨਹੀਂ ਕਿ ਰਿਜ਼ਾਲਵਰ ਕਿਹੜਾ ਸਰੋਤ ਦੇਖੇਗਾ। ਰੂਟਿੰਗ, ਫਾਰਵਰਡਿੰਗ ਅਤੇ ਅਨੁਵਾਦ ਦੋਵਾਂ ਸਿਰਿਆਂ ਵਿਚਕਾਰ ਵਾਰੀ-ਵਾਰੀ ਆਉਂਦੇ ਹਨ। ਸਰੋਤ ਬਾਰੇ ਸਵਾਲਾਂ ਲਈ ਰਨਬੁੱਕ ਪੁੱਛਗਿੱਛ ਦਾ ਕਦਮ-ਦਰ-ਕਦਮ ਪਿੱਛਾ ਕਰਦੀ ਹੈ ਅਤੇ ਦਰਜ ਕਰਦੀ ਹੈ ਕਿ ਹਰ ਨਿਰੀਖਕ ਨੇ ਅਸਲ ਵਿੱਚ ਕੀ ਦੇਖਿਆ। ਕ੍ਰਮ ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ, ਕਿਉਂਕਿ ਨਿਰੀਖਣ ਤੋਂ ਪਹਿਲਾਂ ਕੀਤਾ ਦਾਅਵਾ ਸਿਰਫ਼ ਵਧੀਆ ਰੂਪ-ਰੇਖਾ ਵਾਲਾ ਅੰਦਾਜ਼ਾ ਹੁੰਦਾ ਹੈ।
ਸਬੂਤ ਇਕੱਠੇ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਬਣਤਰ ਲਿਖੋ
ਚਾਰ ਥਾਵਾਂ DNS ਸਰੋਤ ਬਾਰੇ ਤੁਹਾਨੂੰ ਕੁਝ ਦੱਸ ਸਕਦੀਆਂ ਹਨ ਅਤੇ ਸਾਰੀਆਂ ਇੱਕੋ ਜਿਹਾ ਨਹੀਂ ਕਹਿੰਦੀਆਂ। ਕਲਾਇੰਟ ਦਾ ਕਰਨਲ ਜਾਣਦਾ ਹੈ ਕਿ ਉਹ ਕਿਹੜਾ ਸਰੋਤ ਵਰਤੇਗਾ, ਫਾਰਵਰਡਰ ਜਾਣਦਾ ਹੈ ਕਿ ਉਸਨੇ ਉੱਪਰ ਕੀ ਭੇਜਿਆ, ਅਨੁਵਾਦ ਕਰਨ ਵਾਲਾ ਯੰਤਰ ਜਾਣਦਾ ਹੈ ਕਿ ਉਸਨੇ ਕੀ ਮੁੜ ਲਿਖਿਆ, ਅਤੇ ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲਾ ਰਿਜ਼ਾਲਵਰ ਜਾਣਦਾ ਹੈ ਕਿ ਕੀ ਪਹੁੰਚਿਆ। ਕੁਝ ਵੀ ਇਕੱਠਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਲਿਖੋ ਕਿ ਇਹਨਾਂ ਵਿੱਚੋਂ ਕਿੰਨ੍ਹਾਂ ਤੱਕ ਤੁਸੀਂ ਅਸਲ ਵਿੱਚ ਪਹੁੰਚ ਸਕਦੇ ਹੋ।
| Observation point | What it can prove | What it cannot prove | How to read it |
|---|---|---|---|
| client kernel | which source address it would use for that resolver | anything a device in between rewrote | ip route get against the resolver address |
| forwarder | that it sent an upstream query, and from which source | what the client originally asked for | its own log and its cache state |
| translating device | that a source was rewritten, and to what | whether the query was legitimate | NAT policy and its counters |
| receiving resolver | the address that actually arrived | which client behind that address asked | a scoped capture on port 53 |
ਆਪਣੀ ਉਮੀਦ ਵੀ ਲਿਖੋ, ਉਸ ਰਿਜ਼ਾਲਵਰ ਸਮੇਤ ਜਿਸਨੂੰ ਤੁਸੀਂ ਵਰਤੋਂ ਵਿੱਚ ਮੰਨਦੇ ਹੋ। ਵੰਡਿਆ ਰਾਹ ਪੁੱਛਗਿੱਛ ਨੂੰ ਬਿਲਕੁਲ ਕਿਤੇ ਹੋਰ ਭੇਜ ਸਕਦਾ ਹੈ, ਅਤੇ ਕੈਸ਼ ਬਿਨਾਂ ਕਿਸੇ ਉੱਪਰੀ ਅਦਲਾ-ਬਦਲੀ ਦੇ ਜਵਾਬ ਦੇ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਸਿਰਫ਼ ਯਾਦ ਵਿੱਚ ਰੱਖੀ ਧਾਰਨਾ ਪਹਿਲੇ ਹੈਰਾਨੀ ਤੱਕ ਨਹੀਂ ਟਿਕੇਗੀ। ਐਲਾਨਿਆ ਡਿਜ਼ਾਈਨ ਅਤੇ ਦੇਖਿਆ ਰਾਹ ਇੱਕੋ ਨੋਟ ਦੇ ਵੱਖਰੇ ਕਾਲਮਾਂ ਵਿੱਚ ਰੱਖੋ; ਜਦੋਂ ਦੋਵੇਂ ਨਹੀਂ ਮਿਲਦੇ, ਤੁਸੀਂ ਉਹ ਸਵਾਲ ਲੱਭ ਲਿਆ ਹੈ ਜਿਸਦਾ ਪਿੱਛਾ ਕਰਨਾ ਬਣਦਾ ਹੈ।
ਜਾਂਚੋ ਕਿ ਪੁੱਛਗਿੱਛ ਅਸਲ ਵਿੱਚ ਕਿਹੜੀ ਪ੍ਰਕਿਰਿਆ ਨੇ ਭੇਜੀ
ਕਲਾਇੰਟ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ: ਰਿਜ਼ਾਲਵਰ ਪਤਾ, ਪੁੱਛਗਿੱਛ ਦਾ ਨਾਮ ਅਤੇ ਸਮਾਂ ਦਰਜ ਕਰੋ, ਫਿਰ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਕਿਹੜੀ ਪ੍ਰਕਿਰਿਆ ਨੇ ਇਹ ਭੇਜਿਆ। ਹੇਠਾਂ ਪਹਿਲੀ ਲਾਈਨ ਉਸ ਪ੍ਰਕਿਰਿਆ ਦਾ ਨਾਮ ਲੈਂਦੀ ਹੈ ਜੋ UDP ਸਾਕਟ ਰੱਖਦੀ ਹੈ, ਅਤੇ ਇਹੀ ਉਹ ਜਾਂਚ ਹੈ ਜਿਸਦਾ ਇਹ ਸਿਰਲੇਖ ਵਾਅਦਾ ਕਰਦਾ ਹੈ। ਜੇ ਉਹ ਪ੍ਰਕਿਰਿਆ ਸਿਸਟਮ ਰਿਜ਼ਾਲਵਰ ਦੀ ਥਾਂ ਬ੍ਰਾਊਜ਼ਰ ਸਹਾਇਕ ਜਾਂ ਕੰਟੇਨਰ ਰਨਟਾਈਮ ਹੈ, ਤਾਂ ਬਾਕੀ ਨਿਸ਼ਾਨ ਉਸ ਰਾਹ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ ਜੋ ਕਿਸੇ ਨੇ ਨਹੀਂ ਮੰਗਿਆ।
ss -tunp 'dport = :53'
dig @10.20.30.53 host.corp.example +noall +answer
ip route get 10.20.30.53
ਕਈ ਇੰਟਰਫ਼ੇਸ ਵਾਲੇ ਹੋਸਟ ਉੱਤੇ, ਹੋਰ ਕਿਤੇ ਦੇਖਣ ਤੋਂ ਪਹਿਲਾਂ ਪਤਾ ਕਰੋ ਕਿ ਕਰਨਲ ਉਸ ਮੰਜ਼ਿਲ ਲਈ ਕਿਹੜਾ ਸਰੋਤ ਪਤਾ ਚੁਣਦਾ ਹੈ। ਇਹ ਆਖਰੀ ਬਿੰਦੂ ਹੈ ਜਿੱਥੇ ਰਾਹ ਪੂਰੀ ਤਰ੍ਹਾਂ ਤੁਹਾਡੇ ਨਿਯੰਤਰਣ ਵਿੱਚ ਹੈ, ਅਤੇ ਇਹੀ ਉਹ ਮੁੱਲ ਹੈ ਜਿਸਦੀ ਤੁਲਨਾ ਤੁਸੀਂ ਰਿਜ਼ਾਲਵਰ ਵੱਲੋਂ ਦੱਸੇ ਨਾਲ ਕਰੋਗੇ। ਅੰਤਰ ਇਸ ਗੱਲ ਦਾ ਸੰਕੇਤ ਹੈ ਕਿ ਵਿਚਕਾਰ ਕਿਸੇ ਚੀਜ਼ ਨੇ ਪੈਕਟ ਮੁੜ ਲਿਖਿਆ, ਜਾਂ ਦੋ ਵੱਖਰੀਆਂ ਪੁੱਛਗਿੱਛਾਂ ਭੇਜੀਆਂ ਗਈਆਂ।
ਟੈਸਟ ਨਾਮ ਅੰਦਰੂਨੀ ਰੱਖੋ, ਕਿਉਂਕਿ ਜਨਤਕ ਰਿਜ਼ਾਲਵਰ ਨੂੰ ਭੇਜਿਆ ਅੰਦਰੂਨੀ ਨਾਮ ਅੰਦਰੂਨੀ ਰਾਹ ਬਾਰੇ ਕੁਝ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ ਅਤੇ ਉਹ ਨਾਮ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜਿਸਨੂੰ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਸੀ। ਸੁਰੱਖਿਅਤ DNS ਵਾਲਾ ਬ੍ਰਾਊਜ਼ਰ ਉਸ ਸਾਕਟ ਸੂਚੀ ਵਿੱਚ ਬਿਲਕੁਲ ਨਹੀਂ ਦਿਸੇਗਾ, ਅਤੇ ਉਹ ਗੈਰਹਾਜ਼ਰੀ ਆਪ ਹੀ ਜਵਾਬ ਹੈ।
ਫਾਰਵਰਡਰ ਦੂਜੀ, ਵੱਖਰੀ ਪੁੱਛਗਿੱਛ ਕਰਦਾ ਹੈ
ਫਾਰਵਰਡਰ ਇੱਕ ਅਦਲਾ-ਬਦਲੀ ਨੂੰ ਦੋ ਬਣਾ ਦਿੰਦਾ ਹੈ। ਹੇਠਾਂ ਤੋਂ ਬੇਨਤੀ ਆਉਂਦੀ ਹੈ, ਅਤੇ ਫਿਰ ਫਾਰਵਰਡਰ ਆਪਣੀ ਪੁੱਛਗਿੱਛ ਉੱਪਰ ਭੇਜਦਾ ਹੈ ਉਸ ਪਤੇ ਤੋਂ ਜੋ ਉਹ ਚੁਣਦਾ ਹੈ। ਉਸਦੀ ਸੰਰਚਨਾ, ਕਲਾਇੰਟ ਨਹੀਂ, ਤੈਅ ਕਰਦੀ ਹੈ ਕਿ ਉੱਪਰਲਾ ਰਿਜ਼ਾਲਵਰ ਕੀ ਦੇਖਦਾ ਹੈ।
dnsmasq ਦਸਤਾਵੇਜ਼ ਇਸੇ ਕਾਰਨ ਪੜ੍ਹਨ ਯੋਗ ਹੈ: ਇਹ ਦਰਜ ਕਰਦਾ ਹੈ ਕਿ ਫਾਰਵਰਡਰ ਉੱਪਰਲੇ ਸਰਵਰ ਕਿਵੇਂ ਚੁਣਦਾ ਹੈ ਅਤੇ ਆਪਣਾ ਸੁਣਨ ਵਾਲਾ ਪਾਸਾ ਕਿਵੇਂ ਬੰਨ੍ਹਦਾ ਹੈ, ਅਤੇ ਉਸ ਬਣਤਰ ਵਿੱਚ ਕੁਝ ਵੀ ਕਲਾਇੰਟ ਦਾ ਸਰੋਤ ਉੱਪਰ ਨਹੀਂ ਲੈ ਜਾਂਦਾ। ਇਸ ਲਈ ਗੇਟਵੇ ਪਤਾ ਦਿਖਾਉਣ ਵਾਲਾ ਰਿਜ਼ਾਲਵਰ ਲਾਗ ਆਮ ਹੈ, ਖਰਾਬੀ ਦਾ ਸਬੂਤ ਨਹੀਂ। ਗੈਰਹਾਜ਼ਰੀ ਵੀ ਓਨੀ ਹੀ ਆਸਾਨੀ ਨਾਲ ਗਲਤ ਪੜ੍ਹੀ ਜਾ ਸਕਦੀ ਹੈ, ਕਿਉਂਕਿ ਕੈਸ਼ ਹਿੱਟ ਕੋਈ ਉੱਪਰੀ ਪੁੱਛਗਿੱਛ ਨਹੀਂ ਬਣਾਉਂਦਾ ਅਤੇ ਉਸ ਪੁੱਛਗਿੱਛ ਵਰਗਾ ਹੀ ਦਿਸਦਾ ਹੈ ਜੋ ਕਦੇ ਪਹੁੰਚੀ ਹੀ ਨਹੀਂ। ਦੋਵਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਸਿੱਟਾ ਕੱਢਣ ਤੋਂ ਪਹਿਲਾਂ ਫਾਰਵਰਡਰ ਦੀ ਸੰਰਚਨਾ ਅਤੇ ਉਸਦੇ ਕੈਸ਼ ਦੀ ਸਥਿਤੀ ਪੜ੍ਹੋ। ਦੋ ਸਵਾਲ, ਦੇਖਣ ਲਈ ਦੋ ਥਾਵਾਂ।
ਸਰੋਤ ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲੇ ਰਿਜ਼ਾਲਵਰ ਉੱਤੇ ਪੜ੍ਹੋ
ਇਹ ਤੈਅ ਕਰਨ ਵਾਲਾ ਇੱਕੋ ਨਿਰੀਖਣ ਸਰਵਰ ਪਾਸੇ ਲਿਆ ਜਾਂਦਾ ਹੈ। ਕਲਾਇੰਟ ਦੀ ਇੰਟਰਫ਼ੇਸ ਸੂਚੀ ਤੋਂ ਕੱਢਿਆ ਗਿਆ ਹਰ ਕੁਝ ਅੰਦਾਜ਼ਾ ਹੀ ਰਹਿੰਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਰਿਜ਼ਾਲਵਰ ਇਹ ਨਹੀਂ ਦੱਸਦਾ ਕਿ ਅਸਲ ਵਿੱਚ ਕੀ ਪਹੁੰਚਿਆ।
tcpdump -ni any port 53 and host 10.20.30.53
ਰਿਜ਼ਾਲਵਰ ਹੋਸਟ ਉੱਤੇ ਕੈਪਚਰ ਕਰੋ, ਕੈਪਚਰ ਛੋਟਾ ਅਤੇ ਸੀਮਿਤ ਰੱਖੋ, ਅਤੇ ਉੱਥੇ ਸੰਭਾਲੋ ਜਿੱਥੇ ਨੀਤੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ। ਜੇ ਦੇਖਿਆ ਗਿਆ ਸਰੋਤ ਅਨੁਵਾਦਿਤ ਪਤਾ ਹੈ, ਤਾਂ ਅਗਲਾ ਸਵਾਲ ਇਹ ਹੈ ਕਿ ਕਿਹੜੇ ਯੰਤਰ ਨੇ ਅਨੁਵਾਦ ਕੀਤਾ ਅਤੇ ਕੀ ਉਸਦੀ ਨੀਤੀ ਹੀ ਇਰਾਦਿਆਂ ਵਾਲੀ ਹੈ। ਕੈਪਚਰ ਦੱਸਦਾ ਹੈ ਕਿ ਕੀ ਪਹੁੰਚਿਆ; ਇਹ ਨਹੀਂ ਦੱਸਦਾ ਕਿ ਨੀਤੀ ਨੇ ਕਿਉਂ ਇਜਾਜ਼ਤ ਦਿੱਤੀ। ਨੋਟ ਵਿੱਚ ਨਿਰੀਖਕ ਅਤੇ ਕਦਮ ਦਾ ਨਾਮ ਲਵੋ, ਕਿਉਂਕਿ ਗੇਟਵੇ ਬਾਰੇ ਪਰਦੇਦਾਰੀ ਦਾ ਦਾਅਵਾ ਉਸ ਕਦਮ ਬਾਰੇ ਹੈ, ਪੂਰੇ ਰਾਹ ਬਾਰੇ ਨਹੀਂ।
ਖੋਜ ਨੂੰ ਰਾਹ ਵਜੋਂ ਲਿਖੋ, ਪਤੇ ਵਜੋਂ ਨਹੀਂ
ਕਲਾਇੰਟ, ਰਿਜ਼ਾਲਵਰ, ਕੋਈ ਵੀ ਫਾਰਵਰਡਰ, ਹਰ ਕਦਮ ਉੱਤੇ ਦੇਖਿਆ ਸਰੋਤ ਅਤੇ ਉਸਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਵਾਲੀ ਨੀਤੀ ਦਰਜ ਕਰੋ। ਅਜਿਹਾ ਰਿਕਾਰਡ ਬਹੁਤ ਸਾਰੇ ਭਵਿੱਖੀ ਸਵਾਲਾਂ ਦਾ ਜਵਾਬ ਬਿਨਾਂ ਹੋਰ ਕੈਪਚਰ ਦੇ ਦੇ ਦਿੰਦਾ ਹੈ। ਇਸਨੂੰ ਜ਼ੰਜੀਰ ਵਾਂਗ ਬਣਾਓ, ਕਿਉਂਕਿ ਪਤਿਆਂ ਦੀ ਸੂਚੀ ਲੁਕਾਉਂਦੀ ਹੈ ਕਿ ਕਿਹੜੇ ਕਦਮ ਨੇ ਕਿਹੜਾ ਪੈਦਾ ਕੀਤਾ।
ਤਸਵੀਰ ਨਾਲ ਤਾਰੀਖ਼, ਕਲਾਇੰਟ ਸੰਸਕਰਣ ਅਤੇ ਸੰਰਚਨਾ ਦਾ ਸੋਧ ਜੋੜੋ, ਤਾਂ ਜੋ ਬਾਅਦ ਵਾਲਾ ਪਾਠਕ ਦੱਸ ਸਕੇ ਕਿ ਕੀ ਇਹ ਅਜੇ ਵੀ ਲਾਗੂ ਹੈ। ਆਵਾਜਾਈ ਸਰੋਤ ਨੂੰ ਉਸ ਹਰ ਚੀਜ਼ ਤੋਂ ਵੱਖ ਰੱਖੋ ਜੋ ਸੇਵਾ ਪ੍ਰੋਸੈਸ ਕਰਦੀ ਹੈ, ਕਿਉਂਕਿ ਗੇਟਵੇ ਪਤਾ ਦੇਖਣਾ ਇਸ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਕਹਿੰਦਾ ਕਿ ਹੋਰ ਕੀ ਸੰਭਾਲਿਆ ਜਾਂਦਾ ਹੈ। ਰਿਜ਼ਾਲਵਰ ਦਾ ਟਿਕਾਣਾ ਵੀ ਇਸ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਕਹਿੰਦਾ ਕਿ ਕਿਸ ਕਲਾਇੰਟ ਨੇ ਪੁੱਛਿਆ। ਇਹਨਾਂ ਦਾਅਵਿਆਂ ਨੂੰ ਵੱਖ ਰੱਖਣਾ ਹੀ ਸਿੱਟੇ ਨੂੰ ਸਮੀਖਿਆ ਵਿੱਚ ਟਿਕਾਊ ਬਣਾਉਂਦਾ ਹੈ।