I threw out the usual suspects: firewall rules, routing issues, rebooting.
Start by clarifying the scope and gathering basic information about the failure (e.g., error message, when it started, what changed). Then systematically troubleshoot from the client side to the server side, covering network, authentication, and service layers, while explaining your reasoning and trade-offs at each step.
Pro tip: Demonstrate a methodical, hypothesis-driven approach by explicitly stating what you would check first and why, and mention how you would use tools like ssh -vvv to get detailed debugging output.
Ask questions to understand the exact error, when it started, and whether it affects all users or just one. This narrows down the scope and guides your troubleshooting.
Verify network reachability with ping, traceroute, and telnet to port 22. This confirms if the issue is network-related or specific to SSH.
Use ssh -vvv on the client and check server logs (e.g., /var/log/auth.log) for authentication failures or connection errors. This reveals if the problem is client-side, server-side, or authentication-related.
Ensure sshd is running, listening on the correct port, and not blocked by firewall rules. Check sshd_config for restrictions like AllowUsers or DenyUsers.
Check if the user's credentials are valid, if their account is locked, or if key-based authentication is misconfigured. Also verify file permissions on .ssh directories and authorized_keys.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.
This one spiraled into a full networking deep-dive.
Start by clarifying the scope and recent changes, then systematically work through the layers from physical to application using a divide-and-conquer strategy. Demonstrate structured troubleshooting by isolating whether the issue is local to one host, the switch, or the VLAN configuration, and validate with concrete commands.
Pro tip: Always verify the simplest things first (cable, link lights, IP config) before diving into complex switch configurations—most 'network mysteries' are basic misconfigurations or physical issues. Also, mention that you'd check both machines' ARP tables and MAC address tables to confirm whether traffic is even leaving the host.
Ask when it last worked, what changed recently, and whether the issue affects only these two machines or the entire VLAN. Confirm both machines are actually on the same VLAN and subnet.
Verify cables, link lights, and interface status on both hosts and the switch ports. Use commands like 'ip link' or 'show interface status' to confirm the ports are up and not err-disabled.
Check IP addresses, subnet masks, and default gateways on both machines. Ensure they are in the same subnet and that ARP resolution works (e.g., 'arp -a' shows the other's MAC).
On the switch, verify VLAN assignments, trunk/access port configuration, and that both ports are in the correct VLAN. Check MAC address table to see if the switch learned both MACs on the expected ports.
Use ping, traceroute, and packet capture (tcpdump/Wireshark) to see where packets are dropped. If needed, swap ports or test with a known-good device to isolate the faulty component.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.
Start with a simple, relatable analogy (like a phone book or GPS for the internet) to explain DNS, then briefly describe its technical role in translating domain names to IP addresses. Finally, connect it to the role by mentioning how DNS impacts performance, reliability, and API integrations, showing you understand both the concept and its practical implications.
Pro tip: Emphasize that DNS is a distributed, hierarchical system with caching and trade-offs (e.g., TTL vs. freshness), which demonstrates deeper understanding and aligns with Google's focus on scalable systems.
State that DNS (Domain Name System) is like the internet's phone book, translating human-friendly domain names (e.g., google.com) into IP addresses computers use to communicate.
Use a relatable analogy such as looking up a contact in your phone: you know the name, but the phone needs the number to connect. DNS does this for the internet.
Briefly outline the resolution steps: query goes to recursive resolver, then root, TLD, and authoritative nameservers, with caching at each level to speed up future requests.
Mention that DNS is distributed, hierarchical, and uses caching (with TTL) to balance load and reduce latency, which involves trade-offs between consistency and performance.
Explain how DNS affects application performance, reliability (e.g., failover via DNS), and API integrations (e.g., resolving service endpoints), showing its relevance to the role.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.
I knew the three-way handshake but they wanted more granularity around packet flow end to end.
Structure your answer around the TCP three-way handshake, data transfer, and connection teardown, explaining the key packet types and flags at each stage. Emphasize how sequence/acknowledgment numbers ensure reliability and how the protocol handles flow and congestion control. Conclude by connecting these mechanisms to real-world performance trade-offs.
Pro tip: Mention how TCP's design choices (e.g., three-way handshake, delayed ACKs) affect latency and throughput, and relate them to Google-scale systems where minimizing RTT is critical. This shows you think beyond textbook definitions.
Describe the three-way handshake: SYN, SYN-ACK, ACK. Explain how initial sequence numbers are chosen and why the handshake is necessary to synchronize state.
Explain how data packets are sent with sequence numbers, acknowledged with ACKs, and how sliding window, flow control, and congestion control (e.g., slow start, AIMD) regulate transmission.
Walk through the four-way teardown: FIN, ACK, FIN, ACK. Mention TIME_WAIT state and its purpose in ensuring reliable closure.
Discuss how lost packets are detected via timeouts or duplicate ACKs, and how retransmission ensures reliability. Mention fast retransmit and selective acknowledgment (SACK).
Highlight trade-offs: reliability vs. latency, overhead of handshake, and how TCP tuning (e.g., window scaling, TCP Fast Open) addresses modern needs.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.
Came right after the DNS explanation question so I was in the zone a bit more here.
Start by clarifying the scope and symptoms of the DNS failure, then walk through a systematic troubleshooting process from client-side checks to server-side diagnostics. Emphasize a logical, layered approach that isolates the root cause efficiently, and mention tools and commands you would use at each step.
Pro tip: Demonstrate that you understand DNS caching layers and TTLs, and always consider both internal and external DNS resolution paths. Mentioning how you would verify DNS propagation and check for DNSSEC issues shows depth beyond basic troubleshooting.
Ask clarifying questions to understand the failure: which domain, which clients, when it started, and whether it's intermittent or consistent. Determine if the issue is isolated to one machine, a subnet, or global.
Verify the client's DNS settings (e.g., /etc/resolv.conf, ipconfig /all), test with nslookup/dig against the configured resolver, and check local hosts file and DNS cache. Rule out local misconfigurations.
Query public DNS servers (8.8.8.8, 1.1.1.1) and authoritative nameservers directly to see if the issue is with a specific resolver or the domain's DNS configuration. Use dig +trace to follow the delegation path.
If using internal DNS, check the DNS server logs, service status, and zone file correctness. Verify network connectivity (firewall rules, port 53) and check for DNSSEC validation failures.
Based on findings, identify the root cause (e.g., misconfigured record, expired domain, network block) and apply the fix. Verify resolution and monitor for recurrence.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.