読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】DNS は UDP なのに TCP の53番も開いてる?TCP・UDP・ICMP の違いとよく使うポート番号、/etc/services【LPICレベル1】

18レスカテゴリ:Linux
1: 名無しさん

/etc/services を見たら domain が 53/tcp と 53/udp の2行あった
TCP と UDP って何が違うん

2: 名無しさん

前提のおさらい。IPv4 アドレスはどのマシンかを表す32ビットの番号。同じマシンの中で、どのプログラム(サービス)宛てかを表すのがポート番号

3: 名無しさん

>>1
TCP は接続型。始めに3回のやりとり(SYN、SYN/ACK、ACK)でつないで、届いたかを確かめて、なくなったら送り直して、順番もそろえる。HTTP、SSH、メールなど
UDP は送りっぱなし。確認も送り直しもないぶん軽くて速い。DNS の普通の問い合わせ、NTP、syslog、SNMP、DHCP など

4: 名無しさん

>>3
DNS が両方あるのは?

5: 名無しさん

>>4
普通の問い合わせは UDP。答えが大きいときや、サーバー同士でデータをまとめて写す(ゾーン転送)ときは TCP を使う

6: 名無しさん

>>3
ping は TCP?UDP?

7: 名無しさん

>>6
どっちでもない ICMP。IP の調子を知らせるためのもので、ポート番号はない。ping はエコー要求(タイプ8)とエコー応答(タイプ0)、届かないときの「宛先到達不能」も ICMP
/etc/protocols で番号を確かめたら icmp 1、tcp 6、udp 17、ipv6-icmp 58

8: 名無しさん

>>2
ポート番号はいくつまで?

9: 名無しさん

>>8
16ビットやから

通りで、0〜65535。0〜1023 がウェルノウンポートで、Linux では root でないと待ち受けられない

10: 名無しさん

>>9
覚えとかなあかん番号を並べて

11: 名無しさん

>>10
/etc/services で確かめた主なもの
20・21 FTP(データ・制御)、22 SSH、23 Telnet、25 SMTP、53 DNS、80 HTTP、110 POP3、123 NTP(UDP)、139 NetBIOS、143 IMAP、161・162 SNMP(UDP)、389 LDAP、443 HTTPS、465 SMTPS、514 syslog(UDP)、587 メールの送信(submission)、631 IPP、636 LDAPS、993 IMAPS、995 POP3S

12: 名無しさん

>>11
S が付いたら TLS で暗号化した版。110 と 995、143 と 993、389 と 636 で組にすると覚えやすい

13: 名無しさん

>>11
Telnet と SSH はどっちもログインに使うけど、Telnet は全部平文で流れるから今は SSH

14: 名無しさん

>>11
/etc/services は何に使われてるん

15: 名無しさん

>>14
番号と名前の対応表。ss や netstat が番号の代わりに ssh、https と表示するときに見てる(-n を付けると番号のまま)。getent services 22 で ssh 22/tcp と出た
書き換えても、サービスが待ち受けるポートは変わらない。ポートは各サービスの設定で決まる

16: 名無しさん

>>3
TCP の接続の状態って何があるん

17: 名無しさん

>>16
待ち受け中が LISTEN、つながってるのが ESTABLISHED、閉じた後しばらく残るのが TIME_WAIT。ss -t で見られる

18: 名無しさん

>>1
確実に届けるのが TCP、軽いのが UDP、ポートのない ICMP。1023 までがウェルノウン、番号は /etc/services。DNS は普段 UDP で大きいときは TCP やな

管理人のひとこと