Intrvw: Difference between revisions

13,484 bytes added ,  1 year ago
 
(32 intermediate revisions by the same user not shown)
Line 1:
= Google GCP Workspaces =
 
* Code:
 
<syntaxhighlight lang='python'>
with open('tab.txt','r') as tab, open('csv.txt','r') as csv, open('data.txt','w') as data:
for line in tab.readlines():
data.write(' '.join(line.strip().split('\t'))+'\n')
for line2 in csv.readlines():
data.write(' '.join(line2.strip().split(','))+'\n')
 
data.close()
 
 
with open('data.txt','r') as file:
for line in file.readlines():
print(line)
</syntaxhighlight>
 
* Code2:
 
<pre>
def analyze(numbers):
result = []
index = {}
min = None
max = None
for n in numbers:
index[n] = True
if not max or n > max:
max = n 9
if not min or n < min:
min = n 0
for n in range(min + 1, max):
if not n in index:
result.append(n)
return result
 
analyze()
 
 
4,5,6,7,8
3rd
0—-
 
 
analyze([5,9])
 
(6,9)
result = [6,7,8]
 
 
analyze([3,0,5,9])
4,3
 
 
Result = [1,2,4,6,7,8]
</pre>
 
* Equivalent Code:
<pre>
def analyze(numbers):
min = None
max = None
for n in numbers:
print(n)
if not max or n > max:
max = n
if not min or n < min:
min = n
print("max: ",max," min: ",min)
</pre>
 
* Results:
<pre>
>>> analyze([3,0,5,9])
3
max: 3 min: 3
0
max: 3 min: 0
5
max: 5 min: 5
9
max: 9 min: 5
</pre>
 
* Logic:
<pre>
>>> min = None
>>> not min
True
>>> min = 0
>>> not min
True
</pre>
 
* Working code for Min & Max:
<pre>
def analyze(numbers):
min = 0
max = 0
for n in numbers:
print(n)
if n > max:
max = n
if n < min:
min = n
print("max: ",max," min: ",min)
</pre>
 
= Amzn SysDE II =
 
* Recover from below issue:
chmod -x /bin/chmod
 
# Copy
# tar -file
# ld
 
* Coding
 
<syntaxhighlight lang='python'>
## Write a function that gives you the average latency in a log file with the following format
#
# timestamp requestid operation latency
# 2021-01-20T08:19:18+00:00 123e4567-e89b-12d3-a456-426614174000 getresults 175
# 2021-01-20T08:19:20+00:00 123e4567-e89b-12d3-a456-426614174100 submitquery 100
# 2021-01-20T08:19:21+00:00 123e4567-e89b-12d3-a456-426614174200 getquerystatus 60
# 2021-01-20T08:20:03+00:00 123e4567-e89b-12d3-a456-426614174300 getresults 150
# 2021-01-20T08:22:09+00:00 123e4567-e89b-12d3-a456-426614174400 cancelquery 20
 
}
 
path = input('')
#path = '/var/log/messages'
 
r = []
 
with open(path,'r') as file:
for line in file:
r.append(line.split()[-1])
 
avg_Latency = sum(r)/len(r)
 
print(avg_Latency)
 
--------------------------------------
 
#path = input('')
 
 
def avg_lat(path):
#a = 0
#rr = 0
latency = {}
occurrence = {}
with open(path,'r') as file:
for line in file:
try:
c = line.split()[-1]
if int(c):
#a += 1
#rr = rr + int(c)
latency['getresults']
oper.update({line.split()[-2]:line.split()[-1]})
except:
pass
latency = {
'getresults': 455,
'submitquery': 678
...
}
occurrences = {
'getresults': 4,
'submitquery': 9
}
latency.get('getresults')
#return (rr/a)
 
 
avg_lat('/var/log/syslog')
</syntaxhighlight>
 
;Debrief
<pre>
feedback - team liked, pleasure in interview
strong NW
stron linux
LP fine
L4 is not good for you
System design not good
DB using indexing, Queues, scalable, parallel approach, LB using, indexing DBs, instead of storage.
Coding was also OK, difficulty with dictionary
Should know Datastructures not algorithms
Try again in 6 months, ask HR & try to get exception.
</pre>
 
* Correct Code:
<pre>
latency ={}
occurrance = {}
 
with open('latency2.logs','r') as file:
for line in file:
lat = int(line.split()[-1])
oper = line.split()[-2]
if oper in latency.keys():
add_latency = latency.get(oper) + lat
occurrance.update({oper:occurrance.get(oper)+1})
else:
add_latency = lat
occurrance.update({oper:1})
latency.update({oper:add_latency})
 
print(latency)
print(occurrance)
 
for k,v in latency.items():
print(k,int(v/occurrance.get(k)))
</pre>
 
= MasterCard =
 
* SSL Handshake
* TCP 3-Way Handshake
* TLS 1.0 vs TLS 3.0
* curl -kv (meaning of k)
* HTTP
 
= Microsoft =
 
;HM Round:
* State a Work process you changed
* Mention a time when you worked with a Cross functional team
* Mention a time when you tried to understand the Customer needs in a better way.
 
; Scripting Round
* Write a code to:
- Check how many IP addresses from a range are online
- Login into one of them & perform traceroute to each & save output to <IP>_traceroute.txt file
- Login into each and save output of ipconfig/all & nbtstat to a file called <IP>_config.txt
* Program with AND/OR function operations
* What is a Pull Request? (Merge branch into Main branch)
* What is a Class? (Datatype eg: string - Cat, Sub, etc functions)
 
; Networking Round
* NTP Strutum
* Vlan turking - switchport mode trunk without impact
-> allowed VLAN command
* Difference between BGP default info orig & default orig
* OSPF AD? eBGP/iBGP AD?
* BGP port no, States, Attributes
* OSI Model
 
= AMZN Networking =
 
Line 180 ⟶ 442:
Srv3 is slow, latency, how to troubleshoot? top, free -h, df -h
How to check traffic requests coming per second? netstat -s, ss -s, tcpdump
 
= AMZN Sydney NDE =
 
;Round 1
 
*OSPF
OSPF States
OSPF LSAs
'''Type 4 LSA Details'''
'''Type 3 LSA Details'''
'''Route Selection Hierarchy - E1, E2, N1, N2'''
Looping prevention in OSPF 1) Only best route selected in SPF; 2) All Areas must connect to Backbone Area.
'''ABR has 2 DB Tables for 2 interfaces each in different areas, each learning same route with same cost, how will best path be selected.'''
'''How is route removed in OSPF, What is there in LSU?'''
 
*BGP
Loop prevention method for eBGP(AS Path list own AS Number, route removed)
'''Loop prevention method for iBGP'''
To avoid routing information loops within the same AS, all IBGP routers must peer with every router within AS
Only TCP sessions required, not physical connections) – this is called full mesh IBGP.
IBGP uses split horizon rule (covered in other article), which states that routes learned from one IBGP neighbor is never sent to the rest of IBGP neighbors.
That way, when you have full mesh IBGP, routing information loops will not occur, because all routers have the same routing information.
Attributes for affecting Outbound traffic? '''MED & Local Preference?'''
'''Attributes for affecting Inbound traffic?'''
 
*Linux
 
High CPU Troubleshooting
Commands: GREP, AWK, SED
Case/Implementation you worked - NSM repro, SIP Asterisk repro
Scripting/Automation example - Top VS list
 
 
;Round 2
 
* Load Balancer
Explain LB usage in detail
How it distributes connections from TCP prospective?
How is connection initiated & how it reaches Server?
Can LB use VIP to connect to Server?
'''When in Citrix Netscaler it uses VIP as source IP for connecting to Server?'''
 
* BGP
 
Scenario for eBGP:
 
|-----[R2]-------|
[A]-----[R1] [R4]----[B]
|-----[R3]-------|
 
'''How is maintenance done in R2?'''(ASPath Prepend and Local_Pref)
 
Shutdown command? not preferred, disruptive way
Local Pref? Nope
Med? Nope
'''IS local Pref used in eBGP?'''
'''Where is MED set on? (Med cannot be used in eBGP)'''
''AS-Path prepend:'' Way to add AS number to the list of subnet u want to advertise.
This is a way to route poisoning.
Tell the outside world not to follow the path.
Applied outwardly.
Impacts incoming path.
''Local preference:'' Applied while the traffic coming inside.
Impacts traffic while going out.
Non transitive.
Propagates within the AS-Path.
Higher is preferred
''MED:'' When your router has connection with two other routers with same AS.
Let's say you have 2 subnets behind your router.
You can use MED value to mention which networks should be accessed through which links.
It is advertised outwards.
Impacts the incoming traffic.
Semi transitive.
Propagates to one AS.
Lower is preferred
Should be used carefully as it reduces network resiliency.
Can we do Load balancing across R2 & R3? (ECMP?)
Loop Prevention in eBPG?
Loop prevention in iBGP? For above Scenario? (Split Horizon, do not advertize to other iBGP peers, but learn directly from neighbor)
Need for a direct connection b/w R1 & R4? What if not possible? (Run IGP)
How Router Reflector prevents loops (using RR, RR Clients, Non-Client Peers)
'''When will a router received be discarded:'''
Originator-ID same as own Router-id(the route is discarded in this case)
Originator-ID different from Router-ID
 
* Python
 
Skill you learned in past 12 months? Python
Describe a project you worked on in Python?
How did you learned Python?
 
* Scenario 1
 
[PC]-------[Branch India]-------------------------------[HQ US]------------[Update Server]
 
How does PC reach Server for updates? Explain all steps - ARP, DHCP,DNS, TCP, HTTP(GET) , etc
If Download is Slow, how will you troubleshoot?
Where will you take captures? (All devices)
Which device's captures will you see Retransmissions? (All)
TCP Slow Start?
What happens if TCP Packet is lost?
Will Latency cause slowness?
If 1 server is in US & Another is in India with same BW, will the download time change?
If so, how much?
 
* Scenario 2
 
[PC]------[SW]-------[Router]------[DNS Server]
 
Captures on Switch, what will be Source & Dest IP as well as MAC?
 
= AMZN NDE =
 
* Steps to upgrade 10 Routers safely.
* iBGP vs OSPF
* Loop avoidance in OSPF
* What are OSPF Areas?
* RIB vs FIB
* Can BGP COnverge as fast as OSPF
* iBGP Loop avoidance
* What direction is AS PAth Prepend applied?
* WSF, why it is just 65535?
* Collision avoidance
* How is congestion detected? (RTO & 3 Dup ACKs)
 
 
;Q. Write a function to verify if a given set of interfaces is present as next-hops for a given prefix in router's routing table.
Task:
* Implement function: check_prefix_next_hops("router-1", "216.182.232.249/32", ["bond1", "bond3"])
* Function must return True/False
* Use example router output from MOCKED_DEVICE_DATA object
<syntaxhighlight lang="python">
MOCKED_DEVICE_DATA = {
"router-1": """
B>* 216.182.232.249/32 [200/0] via 100.92.0.1, bond1, 00:14:14
* via 100.92.0.3, bond3, 00:14:14
C>* 253.4.0.232/31 is directly connected, jrp2-1
B> 30.0.0.0/8 [200/0] via 100.92.188.32 (recursive), 00:00:25
* via 100.92.64.3, bond2, 00:00:25
via 100.92.188.64 (recursive), 00:00:25
* via 100.92.64.5, bond3, 00:00:25""",
"router-2": None
}
 
#int = ['bond0','bond1']
 
#for k,v in x.itemm():
# print(k,v)
# if k == "router-1"
 
#def check_prefix_next_hops("router-1", "216.182.232.249/32", ["bond1", "bond3"])
def check_prefix_next_hops(router_name, given_prefix, expected_next_hop_interfaces):
#for k,v in r
router_output = MOCKED_DEVICE_DATA[router_name]
if given_prefix in router_output:
for i in range(len(expected_next_hop_interfaces)):
if expected_next_hop_interfaces[i] ==
</syntaxhighlight>
 
 
= AMZN SysDE =
 
;1. Extract Timeout & Desination IP address information from a log file
* The log file is in text format having 2 elements:
- timeout always present either 1 or 0
- dest IP address
* Big annotation
* What will happen if you do not close the file in python & program crashes?
* Is there a way to close files automatically?
 
;2. Script to print duplicate files from a directory
* How to run a Unit Test(performance test) on this script?
* Why not use a Dict?
 
<pre>
# Read the file
f = open('/var/log/apache2/access.log','r')
lines = f.readlines()
f.close()
 
print(len(lines))
 
# Append Response code & Dest IP address to 'a'
a = []
for i in lines:
a.append((i.split()[0], i.split()[8]))
 
print(len(a))
 
# Create a set of IP addresses 'b'
b=[]
for i in a:
b.append(i[0])
 
b = set(b)
 
print(len(b))
 
# Create a new list having Unique IP addresses & list of Responses for each:
c=[]
for i in b:
x = []
for j in range(len(a)):
if i == a[j][0]:
x.append(a[j][1])
c.append((i,x))
 
print(len(c))
 
# Print the results:
for k in range(len(c)):
print(c[k][0],len(c[k][1]))
</pre>
 
= Google =
{{UC}}
 
== Challenge ==
{{UC}}
 
= Google Dublin =
 
;Round 1
{{UC}}
 
;Round 2
{{UC}}
 
= CouchBase =
Line 1,195 ⟶ 1,683:
= TechM (Chd) =
 
* SRX fxp1 interface
For SRX240B:
ge-0/0/0 interface will be mapped to fxp0 (out-of-band management)
ge-0/0/1 interface will be mapped to fxp1 (control).
The interfaces that are mapped to fxp0 and fxp1 are device specific.
* IPS blocked webmail. Where to get the alerts?
Analysis & Reporting > IPS > Intrusion Events
* Upgrade process of Sourcefire Sensors:
Reimage:
Reboot Sensor
Select System Restore
Set IP config
Select SCP, Enter Server IP, Credentials & ISO File name
Download & Mount ISO
Install
Reboot
* Screenos flow
* What is Sanity Checking?
* VPN
* NSRP Preempt behavior
* Proxy Server Experience
 
= ZScalar (Chd) =
 
DNS? need for DNS
Traffic troubleshooting
HTTP is in which layer?
DNS uses protocol? UDP & TCP
Why not use UDP for all DNS traffic? (Ans:Huge Overhead)
Reverse of DNS possible?
ScreenOS CPU utilization check command
Port no of DNS, SSH, HTTP
SSH access is there but WebUI not opening?
 
;2nd Level
 
302,403,401 error HTTP
SSL Handshake steps - 4 phases
Hashing vs Encryption, examples of protocols
Port Numbers - 80, 443
Proxy Server functions
ALG - Active vs Passive FTP
Destination NAT - Proxy ARP, Server issues, Debugging
If the Server does not have a reverse route to reach firewall,it will drop reply packet. Workaround is to create a Source NAT rule in firewall
Aggressive vs Main Mode
Is Preshared Key, ID shared in clear text in Aggressive mode? (no, its Hashed)
Dynamic IP in Site, Which mode is used? (Aggressive)
What is a Digital Signature?
 
 
= Convergys (JTAC L2) =
 
* VPN traffic is not reaching other gateway device? How to prove?
Ans:Take snoop simultaneusly at both sites.
 
* What filters to use for VPN Traffic?
Ans: 4 filters- two for & to the gateways, two to & for the PCs
 
* 4 VPNs between 2 devices, how to identify which packet is for which VPN?
Ans:SPI will be unique & remains same for a single VPN
 
* ESP has Port no?
 
* IMP:What is NAT-T? Why packet will drop without NAT-T? at which packet exchange will it drop?
Ans:At which packet level does it start using UDP port 4500?
 
*Scenario 1:
Line 1,289 ⟶ 1,776:
= TechM (Chd) =
 
* Ph1 Configuration steps
* Ph1 Troubleshooting
* Traffic not reaching Destination roubleshooting
* NAT in ScreenOS
* VIP
* Nat DST
* DIP
* Troubleshooting VPN
* Commands in ScreenOS
* TCP in juniper srx flow
 
= Akamai =
 
* Detailed data transfer(http/ftp) steps
* EC Window, CWR
* 3-way handshake (Sequence number was wrong)
* Acknowledgment field value in a Syn Packet
* Window size=0; what conditions
Server is overloaded
Window scaling is not supported or configured
Some old OS in use by server
* Fields in a TCP & IP Header
 
= Iopex =
 
* IP Header Fields, Flags & length
* TCP Header Fields, Flags & length
* How ICMP will recognize reply message? Identification field
* Where Segmentation occurs
* What is MTU
* URG vs Push Flag
* Data Offset
* NAT-T
* DORA
* DHCP Relay
* Use of GARP
* Port no of Telnet, SMTP, FTP
* Why FTP uses 2 ports
* Phase 1 parameters
* Phase 1 errors
'''If Proxy ID mismatch occurs, will VPN come up or just data will not transfer?'''
IKE Phase 1 successful, Phase 2 fails due to proxy-id mismatch
The Proxy ID on the local and remote VPN device must match for phase 2 to complete the VPN negotiations
* Use of Inverse ARP(Frame Relay)
* Scenario: Ping from PC1 to PC2 - Explain ARP, IP, MAC table, etc
[PC1]------[SW]------[Router]------[PC2]
 
 
= Arcesium =
Line 1,342 ⟶ 1,828:
* Which cmd sets max size of core dumps? ulimit
* Which cmd used to inspect system call made by running proces?
strace
ptrace ?
lsof ?
* In bash which cmd used to execute a shel script in current shel context?
source
exec
'.'
all of the above ?
* Print top 5 lines
cat foo.txt | head -5
head -5 foo.txt
* Redirect error stream to file errors? foo2>errors?
* Command used to create a new process? fork()
Line 1,358 ⟶ 1,844:
* init was replace by which default service manager in RHEL? systemd
* Check env variables of a running process?
env
htop
/proc FS
all of the abpve?
* Web Server can do what?
caching
LB ?
Proxy
URL Rewrite
* HTTP/2 was inspired by what? SPDY
* Most commonly used compression in response from server to client in HTTP? gzip
 
= Interview Questionaire =
 
;General
 
* Benefit of using Transparent mode?
* Basic difference between IDS & IPS?
* SSL VPN
* Phase 1,2 no of packets? encryption starts at which packet in VPN?
* PFS
* VPN Troubleshooting
* Stateful Inspection
* Aggressive mode / Main mode more secure?
* Task/Flow CPU High
* Reasons for High Memory?
 
;ScreenOS
 
* Flow in Netsreen firewall
* MIP vs VIP
* Multi-Cell policy
* Traffic Shapping is config where?
* 100 VPNs terminating on the Juniper firewall? Filter
* Pseudo session ?
* Snoop Detail?
* Debug flow basic
* Precautions while debugging
* Sync NSRP devices manually
* NSRP non-propagating parameters
* How to avoid Split-Brain scenario?
* How to avoid No Brain scenario?
* Secondary path in NSRP
 
= Achievements =
 
* Rockman Cyberoam ARP script
* Rockman Nagios Monitoring
* Wipro BP SRX & NSM Repro
* Citrix SDWAN VoIP repro
* Citrix CodeRed - PHP/Laravel
* AVI Case Alert script
* AVI config Parser
* AWS VPN Log Parser
* Endian Firewall Deployments
* NIC Snort IDS
* NIC Nessus Vulnerability
* Citrix SDWAN SME/Dev Deployment
* Cloudwatch Alarm S3 Bucket Objects Lambda function