ipコマンド クイックリファレンス

# 概要

ときどき忘れてしまうので、**[ipコマンド](https://man7.org/linux/man-pages/man8/ip.8.html)**の主なサブコマンドの書式をメモ🖋
対象のサブコマンドは以下。

|サブコマンド  |          機能                 　　　      |
|:------------|:----------------------------------------|
|ip-address   | IPアドレスの管理                          |
|ip-link      | ネットワークデバイスのコンフィグレーション   |
|ip-monitor   | ネットワークの状態監視                    |
|ip-neighbour | neighbour/arp テーブルの管理             |
|ip-netns     | ネットワークネームスペースの管理           |
|ip-route     | ルーティングテーブルの管理                 |

## [ip-address コマンド](https://man7.org/linux/man-pages/man8/ip-address.8.html)

### ip address add

**eth0**に対してIPv4アドレス**192.168.1.1/24**を追加する。

```
# ip address add 192.168.1.1/24 dev eth0 
```

**eth0**に対してIPv6アドレス**fc00::1234/64**を追加する。

```
# ip address add fc00::1234/64 dev eth0 
```

### ip address del

**eth0**からIPv4アドレス**192.168.1.1/24**を削除する。

```
# ip address del 192.168.1.1/24 dev eth0
```

### ip address del

**eth0**からIPv6アドレス**fc00::1234/64**を削除する。

```
# ip address del fc00::1234/64 dev eth0
```

### ip address show

全てのNICの情報を表示する

```
# ip addr show
```

**eth0**の情報を表示する

```
# ip addr show eth0
```

## [ip-link コマンド](https://man7.org/linux/man-pages/man8/ip-link.8.html)


### ip link set

**eth0**のMTUを**8000バイト**に変更する

```
# ip link set eth0 mtu 8000
```

**eth0**をアップする。

```
# ip link set eth0 up
```

**eth0**をダウンする。

```
# ip link set eth0 down
```

**eth0**をプロミスキャスモードに設定する。

```
# ip link set eth0 promisc on
```

**eth0**のプロミスキャスモードを解除する。

```
# ip link set eth0 promisc off
```

**veth０**にネームスペース**NS**に割り当てる。

```
ip link set veth0 netns NS
```

### ip link add

仮想ブリッジ**br0**を作成する。

```
# ip link add br0 type bridge
```

**eth0**上にVLAN ID **100**を指定してタグVLANインタフェース**eth0.100**を作成する。

```
# ip link add link eth0 name eth0.100 type vlan id 100
```

仮想イーサネットピア **veth0** **veth1** を作成する。

```
# ip link add veth0 type veth peer name veth1
```

### ip link delete

仮想ブリッジ**br0**を削除する。

```
# ip link add br0 type bridge
```

**eth0**からタグVLANインタフェース**eth0.100**を削除する。

```
# ip link delete link eth0 name eth0.100 type vlan
```

仮想イーサネットピア **veth0** **veth1** を削除する。

```
# ip link delete veth0 type veth peer name veth1
```

## [ip-monitor コマンド](https://man7.org/linux/man-pages/man8/ip-monitor.8.html)

短形式の**タイムスタンプ**付きで全てのイベントをモニターする。

```
# ip -ts monitor all
```

## [ip-neighbour コマンド](https://man7.org/linux/man-pages/man8/ip-neighbour.8.html)

### ip neigh show

neighbourテーブルを表示する。

```
# ip neigh show
```

### ip neigh add

**eth0**にARPエントリー**192.168.1.10**/**01:23:45:67:89:ab**を追加する。

```
# ip neigh add 192.168.1.10 lladdr 01:23:45:67:89:ab dev  eth0
```

### ip neigh del

**eth0**から**192.168.1.10**のARPエントリーを削除する。

```
# ip neigh del 192.168.1.10 dev eth0
```

## [ip-netns コマンド](https://man7.org/linux/man-pages/man8/ip-netns.8.html)

### ip netns

ネームスペースの一覧を表示する。

```
# ip netns
```

### ip netns add

ネームスペース**NS**を追加する。

```
# ip netns add NS
```

### ip netns exec

ネームスペース**NS**において**ip addr コマンド**を実行する。

```
# ip netns exec NS ip addr
```

### ip netns del

ネームスペース**NS**を削除する。

```
# ip netns del NS
```

## [ip-route コマンド](https://man7.org/linux/man-pages/man8/ip-route.8.html)

### ip route show

経路情報を表示する。

```
# ip route show
```

### ip route add

IPv4ネットワーク**192.168.101.0/24**宛の経路としてゲートウェイ**192.168.100.254**を設定する。

```
# ip route add 192.168.101.0/24 via 192.168.100.254
```

IPv6ネットワーク**fc00:1000::/64**宛の経路としてゲートウェイ**fc00::1**を設定する。

```
# ip route add fc00:1000::/64 via fc00::1
```

### ip route del

IPv4ネットワーク**192.168.101.0/24**宛の経路を削除する。

```
# ip route del 192.168.101.0/24
```

IPv6ネットワーク**fc00:1000::/64**宛の経路を削除する。

```
# ip route del fc00:1000::/64
```

### ip route get

IPv4アドレス**192.168.101.1**宛の経路情報を表示する。

```
# ip route get 192.168.101.1
```

IPv6アドレス**fc00:1000::123/64**宛の経路情報を表示する。

```
# ip route get fc00:1000::123/64
```

### ip route flush

**eth0**の経路情報をフラッシュする。

```
# ip route flush dev eth0
```