Debian 10 busterでルーター構築

# はじめに

「[Debian 10 buster Xfceでtigervnc-scraping-server - Qiita](https://qiita.com/mktlab/items/77c1982d3eb0c591abc6)」の続き

# 2つ目のLANポート設定

1. 2つ目のLANポートにハブなどを接続してリンクさせる（これをしないと設定できない）
1. ポート名取得

    ```console
$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> ...
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...（1つ目）
3: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...（2つ目）
```

1. 接続名設定

    ```console
$ nmcli connection add type ethernet ifname enp3s0（2つ目のLANポート名） con-name "Wired connection 2"
```

1. IPアドレス設定

    ```console
$ nmcli connection modify "Wired connection 2" ipv4.method manual ipv4.addresses 192.168.0.1/24
```

# DNSサーバー、DHCPサーバー設定

1. 2つ目のLANポートにハブなどを接続してリンクさせる（これをしないとサービス再起動時にエラーになる）
1. 「アプリケーションメニュー／設定／Synaptic パッケージマネージャ」を起動
1. 「dnsmasq」「dnsutils」をインストール
1. 設定

    ```console
$ sudo nano /etc/dnsmasq.conf
...
domain-needed
bogus-priv
local=/mkt.home/（ローカルのドメイン名）
interface=enp3s0（2つ目のLANポート名）
expand-hosts
domain=mkt.home（ローカルのドメイン名）
dhcp-range=enp3s0（2つ目のLANポート名）,192.168.0.101,192.168.0.200,12h
...
```

1. hosts設定

    ```console
$ sudo nano /etc/hosts
127.0.0.1       localhost
127.0.1.1       debian.mkt.home debian
192.168.0.1     debian.mkt.home debian
...
```

1. NetworkManager設定

    ```console
$ sudo nano /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
dns=dnsmasq（追記、結局うまくいかず削除）
[ifupdown]
managed=false
```

1. サービス再起動

    ```console
$ sudo systemctl restart dnsmasq.service
$ sudo systemctl restart NetworkManager.service

1. debian上でローカルの名前解決ができない感じだが、クライアント上ではできているので保留・・・
1. nmtuiでDNSサーバーにプロバイダーから提供されたIPアドレスを指定したりしてみたが「/etc/resolv.conf」「/run/NetworkManager/resolv.conf」ともに「127.0.0.1」になってしまってやっぱり保留・・・

<!--
# DHCPサーバー設定

1. 2つ目のLANポートにハブなどを接続してリンクさせる（これをしないとサービス再起動時にエラーになる）
1. 「アプリケーションメニュー／設定／Synaptic パッケージマネージャ」を起動
1. 「isc-dhcp-server」をインストール
1. LANポート設定

    ```console
$ sudo nano /etc/default/isc-dhcp-server 
...
INTERFACESv4="enp3s0"（2つ目のLANポート名）
INTERFACESv6=""
```

1. サブネット設定

    ```console
$ sudo nano /etc/dhcp/dhcpd.conf
...
subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.101 192.168.0.200;
        option routers 192.168.0.1;
        option domain-name-servers 192.168.0.1;
}
```

1. サービス再起動

    ```console
$ sudo systemctl restart isc-dhcp-server
```
-->

# NAT設定

1. IP Forward設定

    ```console
$ sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1
```

1. 「アプリケーションメニュー／設定／Synaptic パッケージマネージャ」を起動
1. 「nftables」をインストール
1. 設定

    ```console
$ sudo nano /etc/nftables.conf
table ip nat {
        chain prerouting {
                type nat hook prerouting priority 0;
        }
        chain postrouting {
                type nat hook postrouting priority 100;
                oifname "enp1s0"（1つ目のLANポート名） masquerade
        }
}
```

1. サービス有効化、再起動

    ```console
$ sudo systemctl enable nftables.service
$ sudo systemctl restart nftables.service
```

# 参考

* [bluewidz nota: Debian10のPCのルータ化](http://bluewidz.blogspot.com/2019/08/debian10pc.html)
* [ラズパイ(RaspberryPi3)をDHCPサーバーにしてみた - Qiita](https://qiita.com/homines22/items/cccd711c9a77680d1e2c)
* [Debian LinuxでGigabit対応高性能マルチメディア無線LANルータ作成 – オレンジの国](https://www.techlive.tokyo/archives/2016)
* [dnsmasq - Debian Wiki](https://wiki.debian.org/dnsmasq)
* [dnsmasqを使った内部用DNSサーバの構築 - Qiita](https://qiita.com/icebird009/items/b90df257fb1f7c8c9bdf)
* [Use dnsmasq to provide DNS & DHCP services - Fedora Magazine](https://fedoramagazine.org/dnsmasq-provide-dns-dhcp-services/)
* [Debian 10 Buster : Dnsmasq : インストール : Server World](https://www.server-world.info/query?os=Debian_10&p=dnsmasq&f=1)
* [windows - Why is 'ping' unable to resolve a name when 'nslookup' works fine? - Super User](https://superuser.com/questions/495759/why-is-ping-unable-to-resolve-a-name-when-nslookup-works-fine/1257512#1257512)
* [systemctl コマンド - Qiita](https://qiita.com/sinsengumi/items/24d726ec6c761fc75cc9)
* [How to Install and Use DIG on Debian 9 – Linux Hint](https://linuxhint.com/install_dig_debian_9/)
[linux - Setting the hostname: FQDN or short name? - Server Fault](https://serverfault.com/questions/331936/setting-the-hostname-fqdn-or-short-name)
* [dnsmasq - ArchWiki](https://wiki.archlinux.jp/index.php/Dnsmasq)
* [Dnsmasq 軽量 DNS サーバ構築 - Qiita](https://qiita.com/hirohiro77/items/64b2b63f442eaffb22c4)
* [Dnsmasq 軽量 DNS サーバ構築（内部向け） - eTuts+ Server Tutorial](https://server.etutsplus.com/dnsmasq-setup-internal-dns/)
* [NetworkManager＋dnsmasqで名前解決の耐障害性を向上 | 外道父の匠](http://blog.father.gedow.net/2016/02/12/networkmanager-dnsmasq/)
* [Apple 製のデバイスで社内ネットワークの '.local' ドメインを開けない場合 - Apple サポート](https://support.apple.com/ja-jp/HT207511)