TCP: Transmission Control Protocol
UDP: Uesr Datagram Protocol
IP: Internet Protocol
- IPアドレスの規定
- データグラム(伝送単位)の規定
- データグラムが伝送されるネットワーク経路の制御
ICMP: Internet Control Message Protocol
- エラーメッセージや制御メッセージの伝送用
- pingやtracerouteで使用される
- 32ビット
- 8ビットずつ分割、
.
区切り10進表記
- ネットワーク部/ホスト部
- ホストNICに割り当てられないアドレス
- ホスト部全ビット0: ネットワークアドレス
- ホスト部全ビット1: ブロードキャストアドレス
クラス
|
A |
B |
C |
先頭8ビット |
0xxxxxxx |
10xxxxxx |
110xxxxx |
先頭8ビット(10進) |
0-127 |
128-191 |
192-223 |
サブネットマスク |
255.0.0.0 |
255.255.0.0 |
255.255.255.0 |
ホスト数 |
224 - 2 |
2-16 - 2 |
28 - 2 |
- 特殊なアドレス
- デフォルトルート
- 先頭8ビットが0
- 知らないネットワーク宛のパケットを丸投げ
- ローカルループバック
- 先頭8ビットが127
localhost
が127.0.0.1
だったり
プライベートアドレス
- IPアドレスは、原則インターネット内で一意
- 例外: プライベートアドレス
|
A |
B |
C |
先頭 |
00001010.******** |
10101100.0001**** |
11000000.10101000 |
先頭(10進) |
10 |
172.16 - 172.32 |
192.168 |
CIDR: Classless Inter-Domain Routing
- クラスCでもホスト数254
- ネットワークにぶら下げられるホストを減らし、ネットワークを分割する
- 例:
192.168.0.0/26
- もともとネットワーク部が24ビットなのを、26に
- 2ビットを使って、4つのサブネットワークに分ける
第四オクテット |
0b00 |
0b01 |
0b10 |
0b11 |
ネットワークアドレス |
192.168.0.0 |
192.168.0.64 |
192.168.0.128 |
192.168.0.192 |
ブロードキャストアドレス |
192.168.0.63 |
192.168.0.127 |
192.168.0.191 |
192.168.0.255 |
ホストに使えるやつ |
1-62 |
65-126 |
129-190 |
193-254 |
- 128ビット
:
区切りの16進数4桁(=16ビット)8ブロック表記
- 長いので、省略記法多数
- 各ブロック先頭の0は省略可
- 連続する0のみブロックは
::
と略記可能
- 1箇所だけ
- さもないと、何ブロック略記されているのか特定できないから
- プレフィックス
- インタフェースID
分類 |
IPv6表記 |
プレフィックス(2進) |
備考 |
ローカルループバックアドレス |
::1/128 |
000...1 |
|
グローバルユニキャストアドレス |
2000::/3 |
001 |
|
リンクローカルユニキャストアドレス |
fe80::/10 |
1111111010 |
|
マルチキャストアドレス |
ff00::/8 |
11111111 |
IPv4のブロードキャストアドレス相当 |
エニーキャストアドレス |
|
|
複数のホストの集合に割り当てられる |
ポート番号
- 送信元/先の識別に使われる
- これのおかげで、同一のホストが複数のアプリケーションを使用していても正しく通信できる
- 0は特殊。「動的に別の空きを割り当ててね」というやつ(any port)
- どのアプリケーションが何番を使うか、有名どころは決まっている(well-known port)
- 1023まで予約済
- IANA: Internet Assigned Numbe Authority
- well-known portの予約などを行う組織
- 現在、ICANNの下部組織
- 465 -- SSMTPはIANAによる正式な割り当てではないらしい
- レジスタードポート
- 1024-49151
- 49151 = 65535 - 16384 = (1 << 16) - 1 - (1 << 14)
- 使用可能な0-65535のうちだいたい3/4
- ベンダやグループの申請により割り当てが可能
- IPv4でローカルにWebサーバーを立てたなら
- IPv6では、IPアドレスのブロックの区切りの
:
と混ざってしまわないよう、アドレスを[]
で囲む
- ポート番号とサービスとの対応は
/etc/services
に記述されている
/etc/services
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, officially ports have two entries
# even if the protocol doesn't support UDP operations.
#
# Updated from http://www.iana.org/assignments/port-numbers and other
# sources like http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services .
# New ports will be added on request if they have been officially assigned
# by IANA and used in the real-world or are needed by a debian package.
# If you need a huge list of used numbers please install the nmap package.
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
netstat 15/tcp
qotd 17/tcp quote
msp 18/tcp # message send protocol
msp 18/udp
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
fsp 21/udp fspd
ssh 22/tcp # SSH Remote Login Protocol
telnet 23/tcp
smtp 25/tcp mail
ネットワークの設定
ネットワークの基本設定
/etc/hostname
ファイル
wand-ThinkPad-X240s
/etc/hosts
ファイル
127.0.0.1 localhost
127.0.1.1 wand-ThinkPad-X240s
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
- 名前解決を記述
- 小規模ネットワークならこれでネットワーク内の名前解決が実現可能
- ネットワークに変更があったら、全ホストの
/etc/hosts
を書き換える必要あり
/etc/network/interfaces
ファイル
- Debian系ディストリ
- ネットワークインタフェースの設定を記述
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
- loインタフェースをループバックとして設定しているもよう
/etc/sysconfig/network-scripts
ディレクトリ
- Red Hat系ディストリ
- 様々なネットワークインタフェースの設定ファイルを配置
ifcfg-eth0
とかそういう感じのファイル命名
- CentOS7コンテナにはなかったです
nmtui
/nmcli
コマンドを使って設定することが推奨されているらしい
- CentOS6コンテナにはあった
NetworkManagerによる設定
yum install -y NetworkManager
systemctl start NetworkManager
systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-04-17 06:24:31 UTC; 5s ago
Docs: man:NetworkManager(8)
Main PID: 2318 (NetworkManager)
CGroup: /docker/727bfe1baddeb8a5b1488ef5c03d3198417e541231a2e53a06ec7c691adbd0e0/system.slice/NetworkManager.service
└─2318 /usr/sbin/NetworkManager --no-daemon
‣ 2318 /usr/sbin/NetworkManager --no-daemon
Apr 17 06:24:31 727bfe1badde NetworkManager[2318]: <info> [1555482271.9644] ...
Apr 17 06:24:31 727bfe1badde NetworkManager[2318]: <info> [1555482271.9652] ...
Apr 17 06:24:31 727bfe1badde NetworkManager[2318]: <info> [1555482271.9656] ...
Apr 17 06:24:31 727bfe1badde NetworkManager[2318]: <info> [1555482271.9659] ...
Apr 17 06:24:31 727bfe1badde NetworkManager[2318]: <info> [1555482271.9668] ...
Apr 17 06:24:31 727bfe1badde NetworkManager[2318]: <info> [1555482271.9671] ...
Apr 17 06:24:31 727bfe1badde NetworkManager[2318]: <info> [1555482271.9674] ...
Apr 17 06:24:31 727bfe1badde NetworkManager[2318]: <info> [1555482271.9680] ...
Apr 17 06:24:31 727bfe1badde NetworkManager[2318]: <info> [1555482271.9684] ...
Apr 17 06:24:31 727bfe1badde NetworkManager[2318]: <info> [1555482271.9689] ...
Hint: Some lines were ellipsized, use -l to show in full.
nmcli --help
...
OBJECT
g[eneral] NetworkManager's general status and operations
n[etworking] overall networking control
r[adio] NetworkManager radio switches
c[onnection] NetworkManager's connections
d[evice] devices managed by NetworkManager
a[gent] NetworkManager secret agent or polkit agent
m[onitor] monitor NetworkManager changes
nmcli general status
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
nmcli radio
WIFI-HW WIFI WWAN-HW WWAN
enabled enabled enabled enabled
nmcli radio wifi
enabled
- Wi-Fi無効化・有効化
- privilegedコンテナ内から実行するとホストのWi-Fiが影響を受ける
sudo nmcli radio wifi off
nmcli radio
WIFI-HW WIFI WWAN-HW WWAN
enabled disabled enabled enabled
sudo nmcli radio wifi on
nmcli radio all
WIFI-HW WIFI WWAN-HW WWAN
enabled disabled enabled enabled
nmcli connection show
NAME UUID TYPE DEVICE
eth0 50a52767-1d0d-4a3b-b4de-81161e89807f ethe
rnet eth0
Wired connection 1 291c7b26-6e87-32b8-b702-3839a81df5dd ethernet --
nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected eth0
lo loopback unmanaged --
hostnamectl status
[root@727bfe1badde /]# hostnamectl status
Static hostname: 727bfe1badde
Icon name: computer-laptop
Chassis: laptop
Machine ID: 5e7ad63340d1400aba5b3b022de880bb
Boot ID: 3aa178b2499447f28aa817cf02905437
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 4.15.0-47-generic
Architecture: x86-64
sudo hostnamectl set-hostname piyo
コラム: systemd-networkd
- Systemd採用システム
- NetworkManagerやnetplan(Ubuntu)の代替
/etc/systemd/network/
ディレクトリ以下の設定ファイルで設定