내 환경에는 5개의 컴퓨터가 있습니다.
클라이언트: 10.22.46.11
라우터: 10.22.53.122,10.22.46.28
서버 1: 10.22.53.108
서버 2: 10.22.53.107
서버 3: 10.22.53.105
서비스는 서버 중 하나에 배포되고 192.168.200.1:80 라우터의 라우팅 정보를 수신합니다.
bash-5.1# ip r
default via 10.22.46.254 dev ens4 proto dhcp src 10.22.46.28 metric 100
default via 10.22.53.254 dev ens3 proto dhcp src 10.22.53.122 metric 100
10.22.46.0/24 dev ens4 proto kernel scope link src 10.22.46.28
10.22.53.0/24 dev ens3 proto kernel scope link src 10.22.53.122
169.254.169.254 via 10.22.46.5 dev ens4 proto dhcp src 10.22.46.28 metric 100
169.254.169.254 via 10.22.53.100 dev ens3 proto dhcp src 10.22.53.122 metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.200.1 proto bird
nexthop via 10.22.53.105 dev ens3 weight 1
nexthop via 10.22.53.107 dev ens3 weight 1
nexthop via 10.22.53.108 dev ens3 weight 1
또한 클라이언트 측에 라우팅 항목을 추가했습니다.
ip r
default via 10.22.53.254 dev ens3 proto dhcp src 10.22.53.110 metric 100
10.22.53.0/24 dev ens3 proto kernel scope link src 10.22.53.110
169.254.169.254 via 10.22.53.100 dev ens3 proto dhcp src 10.22.53.110 metric 100
192.168.200.0/24 via 10.22.53.122 dev ens3
방문하려고 합니다http://192.168.200.1/클라이언트 컴퓨터에서는 라우터에 전달되는 패킷을 볼 수 있습니다.
bash-5.1# tcpdump -nn -i any port 80
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
07:43:10.171495 ens4 In IP 10.22.46.11.51554 > 192.168.200.1.80: Flags [S], seq 993243063, win 29200, options [mss 1460,sackOK,TS val 972255655 ecr 0,nop,wscale 7], length 0
07:43:10.171616 ens3 Out IP 10.22.46.11.51554 > 192.168.200.1.80: Flags [S], seq 993243063, win 29200, options [mss 1460,sackOK,TS val 972255655 ecr 0,nop,wscale 7], length 0
07:43:11.172361 ens4 In IP 10.22.46.11.51554 > 192.168.200.1.80: Flags [S], seq 993243063, win 29200, options [mss 1460,sackOK,TS val 972256656 ecr 0,nop,wscale 7], length 0
07:43:11.172404 ens3 Out IP 10.22.46.11.51554 > 192.168.200.1.80: Flags [S], seq 993243063, win 29200, options [mss 1460,sackOK,TS val 972256656 ecr 0,nop,wscale 7], length 0
그런데 어떤 서버 시스템에서도 전달된 패킷을 찾을 수 없습니다. 무슨 일이 일어나고 있는 걸까요?
라우터에서 "netstat -i"를 실행합니다.
netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
docker0 1500 0 0 0 0 0 0 0 0 BMU
ens3 1500 4590 0 0 0 4022 0 0 0 BMRU
ens4 1500 40283 0 0 0 12428 0 0 0 BMRU
lo 65536 142 0 0 0 142 0 0 0 LRU
패킷 손실이 발견되지 않았습니다.