---
# System prepended metadata

title: ゲスト用DHCPネットワークのPCルーター構築方法

---

渡辺研究室admin用構築・運営メモ


# ゲスト用DHCPネットワークのPCルーター構築方法

## 1.PC用意

PCを用意してUbuntu18.04 LTSを入れる

## 2.グローバルに接続

PCをグローバルに接続するため、`/etc/netplan/50-cloud-init.yaml`を編集する。

- ゲートウェイアドレス : 133.1.17.126
- ネームサーバー : 133.1.138.166

でネットワークの設定をする。
設定後の`/etc/netplan/50-cloud-init.yaml`は [ここ](#4.固定IPの設定を書く) を参照


## 2.（必要があれば）USB Etherを足す

Ethernetのインタフェースが一つしかないPCをルーターにしたい場合、[USB Ether](https://www.buffalo.jp/product/detail/lua3-u2-atx.html)などを使ってインタフェースを増やす必要がある。

挿しただけではifconfigの結果に反映されないことがあるで、その場合は以下のコマンドを打ってlogical nameを確認

```
$ sudo lshw -c Network
...
*-network DISABLED
    description: Ethernet interface
    pysical id: 2
    logical name: enx106f3fa674b9
```

確認したlogical nameで、以下のコマンドを実行

```
$ sudo ifconfig enx106f3fa674b9
```

これで、ifconfigなどを実行するとUSB Etherが認識されていることがわかる。
このインタフェースをローカルに、もう一つの元からあるインタフェースをグローバルに繋げることにする。

## 3.ルーターを繋げる

先程認識させたUSB Etherをルーターに繋げる。
そしてルーターの設定をする。
今回はゲスト用ネットワークのため、192.168.4.1〜192.168.4.255までのアドレスをDHCPで用意。


## 4.固定IPの設定を書く

以下は最終版の`/etc/netplan/50-cloud-init.yaml`

```
network:
    ethernets:
        enp0s31f6:
            addresses:
            - 133.1.17.101/27
            dhcp4: false
            gateway4: 133.1.17.126
            nameservers:
                addresses: [133.1.138.166, 8.8.8.8]
            optional: true
        enx106f3fa674b9:
            addresses:
            - 192.168.3.1/24
            dhcp4: false
            gateway4: 172.16.104.104
            nameservers:
                addresses: [8.8.8.8]
                search: []
            optional: true
    version: 2
```

ルーターに繋がるgateway4はなんでもいい。
`sudo netplan restart`で設定を反映させる。

## 5.NATの設定をする

IPフォワードは以下のように設定

```
$ sudo su
# echo 1 > /proc/sys/ipv4/ip_forward
```

IPマスカレードの設定

```
$ sudo iptables -t nat -F
$ sudo iptables -F
$ sudo iptables -L
$ sudo iptables -t nat -A POSTROUTING -o enp0s31f6 -j MASQUERADE
$ sudo iptables -A FORWARD -i enp0s31f6 -o enx106f3fa674b9 -m state --state RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -A FORWARD -i enx106f3fa674b9 -o enp0s31f6 -j ACCEPT
```


## 運用メモ
### tcpdump
#### 動作
+ headerを保存
+ 1時間ごとlogファイルを切り替え
+ gzip化
```
tcpdump -i enp0s31f6 -W 1 -G 3600 -z gzip -w /path/to/NAS/tcpdump_\%Y\%m\%d_\%H\%M\%S.pcap
```

#### crontabで定期実行
+ crontab編集方法
```
編集
# crontab -e
再起動
# service cron restart
確認
# service cron status
```
+ 毎時0分に実行する場合，以下をcrontabに追記．
```
0 * * * * tcpdump -i enp0s31f6 -W 1 -G 3600 -z gzip -w /path/to/NAS/tcpdump_\%Y\%m\%d_\%H\%M\%S.pcap
```
+ option
    + -i: interface
    + -W: 繰り返し回数
    + -G: キャプチャ時間[s]
    + -z: コマンド実行(スクリプトも実行可能)
    + -w: 保存
    