# lab08 mtr 패턴 모음

# ─── 인터랙티브 ──────────────────────────────────────────────
sudo mtr -n TARGET                        # IP 만 표시 (DNS off)
sudo mtr TARGET                           # DNS on
sudo mtr -b TARGET                        # IP + 호스트명 양쪽
sudo mtr --aslookup TARGET                # AS 번호 표시

# ─── 보고서 모드 (-r) ────────────────────────────────────────
sudo mtr -r -c 100 -n TARGET              # 100회 평균 보고서
sudo mtr -r -c 50 -T -P 443 -n TARGET     # 운영 표준 (TCP 443)
sudo mtr -r -c 30 -I -n TARGET            # ICMP 모드 보고서
sudo mtr -r -c 30 -u TARGET               # UDP 모드 (기본)
sudo mtr -j -c 30 TARGET                  # JSON 출력 (후처리용)

# ─── 패킷 옵션 ───────────────────────────────────────────────
sudo mtr --psize 1400 TARGET              # 패킷 사이즈 1400
sudo mtr --interval 0.5 TARGET            # 0.5초 간격 (빠르게)
sudo mtr --first-ttl 5 TARGET             # 5번째 hop 부터
sudo mtr --max-ttl 20 TARGET              # 최대 20 hop

# ─── 운영 1-liner ────────────────────────────────────────────
# 손실율만 추출 (마지막 hop)
sudo mtr -r -c 30 -T -P 443 TARGET | awk 'END{print $3}'

# RTT 평균만 (마지막 hop)
sudo mtr -r -c 30 -T -P 443 TARGET | awk 'END{print $6}'

# JSON 으로 받아 jq 처리
sudo mtr -j -c 10 TARGET | jq '.report.hubs[-1] | {Host, Loss, Avg}'

# ─── 비교: traceroute ────────────────────────────────────────
traceroute -n TARGET                      # UDP 기본
sudo traceroute -I TARGET                 # ICMP
sudo traceroute -T -p 443 TARGET          # TCP SYN
sudo tcptraceroute TARGET 443             # TCP, 방화벽 회피
tracepath TARGET                          # 자동 PMTU 탐색

# ─── 관련 도구 ───────────────────────────────────────────────
ping -c 4 TARGET
ping -M do -s 1472 TARGET                 # PMTU 1500 확인
ping6 -c 4 TARGET                         # IPv6
ip route                                  # 라우팅 테이블
ip route get TARGET                       # 어느 인터페이스로 나가나
ip neigh                                  # ARP / NDP 테이블

# ─── 인증·SUID ───────────────────────────────────────────────
# mtr 가 setuid 없이 실행되도록 cap 부여
sudo setcap cap_net_raw+p $(which mtr)
