背景
ついにインフラエンジニアになった。インフラエンジニアになったのであれば、インフラ関係を一通りこなせないと話にならないだろう! というお話です。ということで、クラスタ作って、クラスタがいい感じに運用できるようにいろいろとインフラを構築していこうと思う。
さらに言うと、業務でansibleを使っているので、IaC(インフラストラクチャasコード)を実現したいと思っている。これができればいつでもそのインフラが再現可能になるからね。練習も込みで。
要件
完全に独立したネットワークを構築したいと思っている。そのため、
ルータ が必要。この時、内部ネットワークから外部にアクセスする必要がないよね。だから、natでいいわけだね。 次に、サブネット内でDHCPをしつつ、アドレスの固定を一括で管理したい。 それの実現方法がDHCPを使って、macアドレスとipを対応付けるという方法。 さらに、ネットワーク内で、ipアドレスではなく、ドメイン名でアクセスができるようにしたいので、DNSサーバも立てたい。
最後、K8Sのコントロールプレーンだね。これは作りたい。
K8Sサーバに何を立てるかだけど、とりあえずechoサーバを立てて負荷試験をやってみたい。そうだね。将来的には配信サーバなどを立てられるといいのだけれど
後は、prometheus + graphanaで、負荷を可視化できるとなおいいよね。時系列でどれくらい負荷がかかっているのかが見れると最高だと思います。
各サーバにいちいち入るのは面倒くさいので一括でsshしたいと思っています。これを可能にする方法を岡田さんが考えてくれました。 msshですね。
各物理サーバ(ラズパイ)のハードウェアスペック
- router : raspi 5. RAM 8G. Storage 128G
- beta : raspi 4. RAM 1G. Storage 32G
- delta: raspi4. RAM 4G Storage 64G
- phi (f): raspi4. RAM 8G. Storage 32G
- gamma: raspi4. RAM 8G Storage 128G
- omega: raspi4. RAM 1G storage 32G
- zeta: raspi4. RAM 8G
ここから使える奴だけ選抜する。 router, delta, phi, gamma, zeta の5台。一台は、router + dhcp + dnsの役割を持たせる。 容量的にdeltaがよさそう。そのほかは、k8sクラスタになる。頑張ってくれ。 k8sちゃんと動いてくれ!! ちなみに、
参考文献
前に書いた自分の記事を参考にしてインストール これも使えそう
簡単に前提知識をまとめる
ルータの構築
まずはルータの定義をしたいと思う。
いろんな定義があるが、個人的に大事だと思うのは以下。
- Data Packet Forwarding
- Network Connectionis
- IP Address Management
- Network Addrss Translation だね。この中で思うのは、NATはData Packet Forwardingに含まれるのでは?という話。 chat GPTに聞いてみたらこんな答えが返ってきた。
So, while NAT is indeed a subset of the packet forwarding process, it plays a specialized role in managing and translating IP addresses as packets are forwarded between different networks.
うん、俺が気になるのはNATをせずに外界にアクセスできるのか?という話。これも聞いてみようか。
はい、直接インターネットにつなげるとか、VPNを使わとか、L7でプロキシを使うとか、そういう話をしてくれたけど、全部違うね。結論、できない。と思っておいていいよ。 ちなみに、IPマスカレードはNAPTのこと。リナックスのルーティング設定でやっているnatは厳密にはnaptって覚えておいた方がいいかも。
- Data packet Forwardingは、Linuxカーネルの機能でいける。
- Network Connections:これは、なんだ?
- これはね、DHCPを持てということだともう。
- NAT;これは内側から外側へのアクセスを可能すること。これはData packet ForwardingをONにした後、iptablesで実現できるよね。Ok?
実際の作業記録
ルータ構築
まず、ラズパイにubuntu 22.04以上をインストールした。 この時、初期ユーザがubuntuで初期パスワードもubuntuだった。これ知らなくて少し戸惑った。 次。usb nicをつなげても ifconfigで出てこなかったのが戸惑った。しかし、ip addrでは出てきていた。 これ、ubuntu 20.04からかな、ネットワーク関係のファイルは全部/etc/netplan/で管理されるようになって、そこに書き込まないとだめだという話だった。
network:
version: 2
ethernets:
eth0:
dhcp4: true
match:
macaddress: fc:15:b4:bn:34:g5
set-name: eth0
wlan0:
dhcp4: true
match:
macaddress: 00:22:34:f4:d3:45
set-name: wlan0
こんな感じで書き込まなとだめだったという話である。 実際に僕が書いたネットワーク設定はこちらである。
network:
ethernets:
eth0:
dhcp4: true
enx548883dk:
optinal: true
address:
- "192.168.3.1/24"
といった感じである。問題なさそうだね。ゲートウェイだから、192.168.3.1/24になっている、という話です。ここは大事だね。
ip forwarding とNATの設定
ipフォワーディングを可能にするカーネルパラメータをいじる。
vim /etc/sysctl
net.ip.的なのを変更。これをしないと次ののiptablesでnatの設定をしてもカーネルで通過させない設定になる。これは大事ですね。 その次、ipフォワーディングを実際に可能にする設定をiptablesに書き込む
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
次、iptablesでnatを可能にする。
iptables -A FORWARD -i enx58278cbf4b66 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o enx58278cbf4b66 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ルールを永続化させるために、rc.localっていう、ブート時に実行されるファイルを用意していたけど、今回はそれではなく、
sudo apt install iptables-persistent
というのをインストールしました。
sudo iptables-save > /etc/iptables/rules.v4
ここまでの動作確認をします。 一応、サブネットにいるサーバたちから、
ping 8.8.8.8
は通ります。 しかし、
ping google.com
は通りません。それはなぜかというと、参照しているDNSが /etc/resolve.confを見ればわかりますが、
nameserver 127.0.0.53
options edns0 trust-ad
search .
になっているからですね。これを変えていきたいと思っています。あとでサブネットにDNSサーバを作って、名前解決できるようにします。
DHCPサーバ
入れる。isc keaってのと、isc-dhcp-serverという二つの選択肢がある。isc-keaはisc-dhcp-serverの後継。 ってことでisc-kea入れようと思ったけど、どうしよう。まあ、isc-dhcp-serverでいいか。 これは、実は前にやったことがあるって話だよね。
の前に、DHCPでIPアドレスを固定していきたいと思います。
#追記
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.10 192.168.3.20;
option routers 192.168.3.1;
option domain-name-servers 192.168.3.1;
option broadcast-address 192.168.3.255;
ignore declines;
host zeta {
hardware ethernet DC:A6:32:FA:54:DF; # Device's MAC address
fixed-address 192.168.3.5; # Fixed IP address
}
host gamma {
hardware ethernet e4:5f:01:96:51:12; # Device's MAC address
fixed-address 192.168.3.6; # Fixed IP address
}
host phi {
hardware ethernet e4:5f:01:96:51:05; # Device's MAC address
fixed-address 192.168.3.7; # Fixed IP address
}
host master {
hardware ethernet d8:3a:dd:f0:f6:de; # Device's MAC address
fixed-address 192.168.3.8; # Fixed IP address
}
}
この設定にしました。そして、dhcpをリスタートすると、こんな感じになります。
sudo journalctl -u isc-dhcp-server の結果
Jul 27 09:07:57 ubuntu dhcpd[31431]: Server starting service.
Jul 27 09:08:03 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.7 from d8:3a:dd:f0:f6:de via enx58278cbf4b66: lease 192.168.3.7 unavailable.
Jul 27 09:08:03 ubuntu dhcpd[31431]: DHCPNAK on 192.168.3.7 to d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:03 ubuntu dhcpd[31431]: DHCPDISCOVER from d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:03 ubuntu dhcpd[31431]: DHCPOFFER on 192.168.3.8 to d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:03 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.8 (192.168.3.1) from d8:3a:dd:f0:f6:de via enx58278cbf4b66: lease 192.168.3.8 unavailable.
Jul 27 09:08:03 ubuntu dhcpd[31431]: DHCPNAK on 192.168.3.8 to d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:05 ubuntu dhcpd[31431]: DHCPDISCOVER from d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:05 ubuntu dhcpd[31431]: DHCPOFFER on 192.168.3.8 to d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:05 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.8 (192.168.3.1) from d8:3a:dd:f0:f6:de via enx58278cbf4b66: lease 192.168.3.8 unavailable.
Jul 27 09:08:05 ubuntu dhcpd[31431]: DHCPNAK on 192.168.3.8 to d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:09 ubuntu dhcpd[31431]: DHCPDISCOVER from d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:09 ubuntu dhcpd[31431]: DHCPOFFER on 192.168.3.8 to d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:09 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.8 (192.168.3.1) from d8:3a:dd:f0:f6:de via enx58278cbf4b66: lease 192.168.3.8 unavailable.
Jul 27 09:08:09 ubuntu dhcpd[31431]: DHCPNAK on 192.168.3.8 to d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:17 ubuntu dhcpd[31431]: DHCPDISCOVER from d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:17 ubuntu dhcpd[31431]: DHCPOFFER on 192.168.3.8 to d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:17 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.8 (192.168.3.1) from d8:3a:dd:f0:f6:de via enx58278cbf4b66: lease 192.168.3.8 unavailable.
Jul 27 09:08:17 ubuntu dhcpd[31431]: DHCPNAK on 192.168.3.8 to d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:25 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.5 from e4:5f:01:96:51:12 via enx58278cbf4b66: lease 192.168.3.5 unavailable.
Jul 27 09:08:25 ubuntu dhcpd[31431]: DHCPNAK on 192.168.3.5 to e4:5f:01:96:51:12 via enx58278cbf4b66
Jul 27 09:08:30 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.4 from e4:5f:01:96:51:05 via enx58278cbf4b66: lease 192.168.3.4 unavailable.
Jul 27 09:08:30 ubuntu dhcpd[31431]: DHCPNAK on 192.168.3.4 to e4:5f:01:96:51:05 via enx58278cbf4b66
Jul 27 09:08:33 ubuntu dhcpd[31431]: DHCPDISCOVER from d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:33 ubuntu dhcpd[31431]: DHCPOFFER on 192.168.3.8 to d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:33 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.8 (192.168.3.1) from d8:3a:dd:f0:f6:de via enx58278cbf4b66: lease 192.168.3.8 unavailable.
Jul 27 09:08:33 ubuntu dhcpd[31431]: DHCPNAK on 192.168.3.8 to d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:36 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.3 from dc:a6:32:fa:54:df via enx58278cbf4b66: lease 192.168.3.3 unavailable.
Jul 27 09:08:36 ubuntu dhcpd[31431]: DHCPNAK on 192.168.3.3 to dc:a6:32:fa:54:df via enx58278cbf4b66
Jul 27 09:08:48 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.7 from d8:3a:dd:f0:f6:de via enx58278cbf4b66: lease 192.168.3.7 unavailable.
Jul 27 09:08:48 ubuntu dhcpd[31431]: DHCPNAK on 192.168.3.7 to d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:48 ubuntu dhcpd[31431]: DHCPDISCOVER from d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:48 ubuntu dhcpd[31431]: DHCPOFFER on 192.168.3.8 to d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:48 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.8 (192.168.3.1) from d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:08:48 ubuntu dhcpd[31431]: DHCPACK on 192.168.3.8 to d8:3a:dd:f0:f6:de via enx58278cbf4b66
Jul 27 09:09:23 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.4 from e4:5f:01:96:51:05 via enx58278cbf4b66: lease 192.168.3.4 unavailable.
Jul 27 09:09:23 ubuntu dhcpd[31431]: DHCPNAK on 192.168.3.4 to e4:5f:01:96:51:05 via enx58278cbf4b66
Jul 27 09:09:23 ubuntu dhcpd[31431]: DHCPDISCOVER from e4:5f:01:96:51:05 via enx58278cbf4b66
Jul 27 09:09:23 ubuntu dhcpd[31431]: DHCPOFFER on 192.168.3.7 to e4:5f:01:96:51:05 via enx58278cbf4b66
Jul 27 09:09:23 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.7 (192.168.3.1) from e4:5f:01:96:51:05 via enx58278cbf4b66
Jul 27 09:09:23 ubuntu dhcpd[31431]: DHCPACK on 192.168.3.7 to e4:5f:01:96:51:05 via enx58278cbf4b66
Jul 27 09:09:25 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.5 from e4:5f:01:96:51:12 via enx58278cbf4b66: lease 192.168.3.5 unavailable.
Jul 27 09:09:25 ubuntu dhcpd[31431]: DHCPNAK on 192.168.3.5 to e4:5f:01:96:51:12 via enx58278cbf4b66
Jul 27 09:09:28 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.3 from dc:a6:32:fa:54:df via enx58278cbf4b66: lease 192.168.3.3 unavailable.
Jul 27 09:09:28 ubuntu dhcpd[31431]: DHCPNAK on 192.168.3.3 to dc:a6:32:fa:54:df via enx58278cbf4b66
Jul 27 09:09:28 ubuntu dhcpd[31431]: DHCPDISCOVER from dc:a6:32:fa:54:df via enx58278cbf4b66
Jul 27 09:09:28 ubuntu dhcpd[31431]: DHCPOFFER on 192.168.3.5 to dc:a6:32:fa:54:df via enx58278cbf4b66
Jul 27 09:09:28 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.5 (192.168.3.1) from dc:a6:32:fa:54:df via enx58278cbf4b66
Jul 27 09:09:28 ubuntu dhcpd[31431]: DHCPACK on 192.168.3.5 to dc:a6:32:fa:54:df via enx58278cbf4b66
Jul 27 09:10:16 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.5 from e4:5f:01:96:51:12 via enx58278cbf4b66: lease 192.168.3.5 unavailable.
Jul 27 09:10:16 ubuntu dhcpd[31431]: DHCPNAK on 192.168.3.5 to e4:5f:01:96:51:12 via enx58278cbf4b66
Jul 27 09:10:16 ubuntu dhcpd[31431]: DHCPDISCOVER from e4:5f:01:96:51:12 via enx58278cbf4b66
Jul 27 09:10:16 ubuntu dhcpd[31431]: DHCPOFFER on 192.168.3.6 to e4:5f:01:96:51:12 via enx58278cbf4b66
Jul 27 09:10:16 ubuntu dhcpd[31431]: DHCPREQUEST for 192.168.3.6 (192.168.3.1) from e4:5f:01:96:51:12 via enx58278cbf4b66
Jul 27 09:10:16 ubuntu dhcpd[31431]: DHCPACK on 192.168.3.6 to e4:5f:01:96:51:12 via enx58278cbf4b66
でログを見ると、本当にDHCp requestが来て、割り当てているのがわかる。これは面白いね。
DNSサーバ
bindというDNSサーバを立てたいと思ます。これもISCが開発したサーバです。
必要ツールのインストール
sudo apt install bind9 bind9utils bind9-doc
/etc/bind/named.conf.optionsの設定
options {
directory "/var/cache/bind";
listen-on { any; }; # or specify an interface
allow-query { 192.168.3.0/24; };
forwarders {
8.8.8.8;
8.8.4.4;
};
recursion yes;
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
};
/etc/bind/named.conf.localの編集
zone "ingenboy.local" {
type master;
file "/etc/bind/db.ingenboy.local";
allow-update { key "rndc-key"; };
};
rndc keyの生成
sudo rndc-confgen -a
sudo chown bind:bind /etc/bind/rndc.key
これはマジで何かわからんなという話。
/etc/dhcp/dhcpd.confのアップデート
option domain-name "ingenboy.local";
option domain-name-servers 192.168.3.1;
default-lease-time 600;
max-lease-time 7200;
zone ingenboy.local. {
primary 127.0.0.1; # This is your local DNS server
key rndc-key;
}
zone 3.168.192.in-addr.arpa. {
primary 127.0.0.1;
key rndc-key;
}
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.10 192.168.3.20;
option routers 192.168.3.1;
option domain-name-servers 192.168.3.1;
option broadcast-address 192.168.3.255;
ignore declines;
host zeta {
hardware ethernet DC:A6:32:FA:54:DF; # Device's MAC address
fixed-address 192.168.3.5; # Fixed IP address
}
host gamma {
hardware ethernet e4:5f:01:96:51:12; # Device's MAC address
fixed-address 192.168.3.6; # Fixed IP address
}
host phi {
hardware ethernet e4:5f:01:96:51:05; # Device's MAC address
fixed-address 192.168.3.7; # Fixed IP address
}
host master {
hardware ethernet d8:3a:dd:f0:f6:de; # Device's MAC address
fixed-address 192.168.3.8; # Fixed IP address
}
}
zoneファイルを作る
テンプレをコピー
sudo cp /etc/bind/db.local /etc/bind/db.ingenboy.local
$TTL 604800
@ IN SOA ns1.ingenboy.local. admin.ingenboy.local. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.ingenboy.local.
ns1 IN A 192.168.3.1 ; Assuming the DNS server is on 192.168.3.1
zeta IN A 192.168.3.5
gamma IN A 192.168.3.6
phi IN A 192.168.3.7
master IN A 192.168.3.8
configの確認
sudo named-checkzone ingenboy.local /etc/bind/db.ingenboy.local
最終的なdhcpd.conf
# Domain and DNS settings
option domain-name "ingenboy.local";
option domain-name-servers 192.168.3.1;
# Default and max lease time
default-lease-time 600;
max-lease-time 7200;
# Define the key used for DNS updates
key "rndc-key" {
algorithm hmac-md5;
secret "the_secret_from_rndc.key_file"; # This is just a placeholder; your actual key is in rndc.key
}
# Zone configurations for DNS dynamic updates
zone ingenboy.local. {
primary 127.0.0.1; # IP of your DNS server, assuming it's the local machine
key rndc-key;
}
zone 3.168.192.in-addr.arpa. {
primary 127.0.0.1;
key rndc-key;
}
# Subnet configuration
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.10 192.168.3.20; # Range of IPs for dynamic allocation
option routers 192.168.3.1;
option domain-name-servers 192.168.3.1;
option broadcast-address 192.168.3.255;
ignore declines;
# Fixed IP assignments
host zeta {
hardware ethernet DC:A6:32:FA:54:DF; # Device's MAC address
fixed-address 192.168.3.5; # Fixed IP address
}
host gamma {
hardware ethernet e4:5f:01:96:51:12; # Device's MAC address
fixed-address 192.168.3.6; # Fixed IP address
}
host phi {
hardware ethernet e4:5f:01:96:51:05; # Device's MAC address
fixed-address 192.168.3.7; # Fixed IP address
}
host master {
hardware ethernet d8:3a:dd:f0:f6:de; # Device's MAC address
fixed-address 192.168.3.8; # Fixed IP address
}
}
テスト
ray@master:~ $ ping zeta.ingenboy.local
PING zeta.ingenboy.local (192.168.3.5) 56(84) bytes of data.
64 bytes from 192.168.3.5 (192.168.3.5): icmp_seq=1 ttl=64 time=0.280 ms
64 bytes from 192.168.3.5 (192.168.3.5): icmp_seq=2 ttl=64 time=0.212 ms
といった感じで動いている。いいですね。
ちなみににDNSがどのポートで動いているかなんですけど、実は
ray@gamma:~$ sudo nmap ns1.ingenboy.local
Starting Nmap 7.80 ( https://nmap.org ) at 2024-07-27 10:38 UTC
Nmap scan report for ns1.ingenboy.local (192.168.3.1)
Host is up (0.0014s latency).
rDNS record for 192.168.3.1: _gateway
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
MAC Address: 58:27:8C:BF:4B:66 (Buffalo.inc)
って感じで、53番ポートで動いています。はい。
ちなみに、サブネットのphiから、ping bg.ingenboy.comをした時の様子を dns (delta) の53番ポートでtsharkで捕まえた時の結果がこちらになります。
1 0.000000000 192.168.3.7 → 192.168.3.1 DNS 88 Standard query 0x9a15 A bg.ingenboy.com OPT
2 0.000823601 192.168.3.7 → 192.168.3.1 DNS 88 Standard query 0x2b44 AAAA bg.ingenboy.com OPT
3 0.001801164 192.168.0.27 → 8.8.4.4 DNS 100 Standard query 0x6ac0 A bg.ingenboy.com OPT
4 0.001933311 192.168.0.27 → 8.8.4.4 DNS 100 Standard query 0x9cb7 AAAA bg.ingenboy.com OPT
5 0.014198447 8.8.4.4 → 192.168.0.27 DNS 104 Standard query response 0x6ac0 A bg.ingenboy.com A 162.43.28.215 OPT
6 0.014815588 8.8.4.4 → 192.168.0.27 DNS 155 Standard query response 0x9cb7 AAAA bg.ingenboy.com SOA dns01.muumuu-domain.com OPT
7 0.015363859 192.168.0.27 → 8.8.4.4 DNS 97 Standard query 0x7432 DS ingenboy.com OPT
8 0.025734832 8.8.4.4 → 192.168.0.27 DNS 614 Standard query response 0x7432 DS ingenboy.com NSEC3 RRSIG SOA a.gtld-servers.net RRSIG NSEC3 RRSIG OPT
9 0.030683460 192.168.3.1 → 192.168.3.7 DNS 104 Standard query response 0x9a15 A bg.ingenboy.com A 162.43.28.215 OPT
10 0.030911365 192.168.3.1 → 192.168.3.7 DNS 158 Standard query response 0x2b44 AAAA bg.ingenboy.com SOA dns01.muumuu-domain.com OPT
11 0.048858547 192.168.3.7 → 192.168.3.1 DNS 99 Standard query 0x7048 PTR 215.28.43.162.in-addr.arpa OPT
12 0.049779980 192.168.0.27 → 8.8.4.4 DNS 111 Standard query 0x211f PTR 215.28.43.162.in-addr.arpa OPT
13 0.069771879 8.8.4.4 → 192.168.0.27 DNS 145 Standard query response 0x211f PTR 215.28.43.162.in-addr.arpa PTR x162-43-28-215.static.xvps.ne.jp OPT
14 0.070867626 192.168.0.27 → 8.8.4.4 DNS 89 Standard query 0x5613 DS arpa OPT
15 0.078166301 8.8.4.4 → 192.168.0.27 DNS 412 Standard query response 0x5613 DS arpa DS RRSIG OPT
16 0.081543206 192.168.0.27 → 8.8.4.4 DNS 97 Standard query 0xf63e DS in-addr.arpa OPT
17 0.090093663 8.8.4.4 → 192.168.0.27 DNS 569 Standard query response 0xf63e DS in-addr.arpa DS DS DS DS RRSIG OPT
18 0.091050893 192.168.0.27 → 8.8.4.4 DNS 89 Standard query 0xa17b DNSKEY arpa OPT
19 0.097703909 8.8.4.4 → 192.168.0.27 DNS 921 Standard query response 0xa17b DNSKEY arpa DNSKEY DNSKEY RRSIG OPT
20 0.100476006 192.168.0.27 → 8.8.4.4 DNS 101 Standard query 0x5c49 DS 162.in-addr.arpa OPT
21 0.106870155 8.8.4.4 → 192.168.0.27 DNS 309 Standard query response 0x5c49 DS 162.in-addr.arpa DS RRSIG OPT
22 0.107978975 192.168.0.27 → 8.8.4.4 DNS 97 Standard query 0x701b DNSKEY in-addr.arpa OPT
23 0.114495678 8.8.4.4 → 192.168.0.27 DNS 85 Standard query response 0x701b DNSKEY in-addr.arpa OPT
24 0.115122207 192.168.0.27 → 8.8.4.4 TCP 76 39251 → 53 [SYN] Seq=0 Win=64660 Len=0 MSS=1220 SACK_PERM=1 TSval=670793320 TSecr=0 WS= 32 0.129581485 192.168.0.27 → 8.8.4.4 TCP 68 39251 → 53 [ACK] Seq=56 Ack=1344 Win=64256 Len=0 TSval=670793334 TSecr=276138244
33 0.129868130 192.168.0.27 → 8.8.4.4 TCP 68 39251 → 53 [FIN, ACK] Seq=56 Ack=1344 Win=64384 Len=0 TSval=670793334 TSecr=276138244
34 0.132475322 192.168.0.27 → 8.8.4.4 DNS 104 Standard query 0x4b32 DS 43.162.in-addr.arpa OPT
35 0.136691866 8.8.4.4 → 192.168.0.27 TCP 68 53 → 39251 [FIN, ACK] Seq=1344 Ack=57 Win=65536 Len=0 TSval=276138252 TSecr=670793334
36 0.136791328 192.168.0.27 → 8.8.4.4 TCP 68 39251 → 53 [ACK] Seq=57 Ack=1345 Win=64384 Len=0 TSval=670793341 TSecr=276138252
37 0.139114856 8.8.4.4 → 192.168.0.27 DNS 544 Standard query response 0x4b32 DS 43.162.in-addr.arpa SOA z.arin.net NSEC 0.43.162.in-addr.arpa RRSIG RRSIG OPT
38 0.140350435 192.168.0.27 → 8.8.4.4 DNS 101 Standard query 0x39d3 DNSKEY 162.in-addr.arpa OPT
39 0.146972747 8.8.4.4 → 192.168.0.27 DNS 89 Standard query response 0x39d3 DNSKEY 162.in-addr.arpa OPT
40 0.147406668 192.168.0.27 → 8.8.4.4 TCP 76 34411 → 53 [SYN] Seq=0 Win=64660 Len=0 MSS=1220 SACK_PERM=1 TSval=670793352 TSecr=0 WS=128
41 0.153103676 8.8.4.4 → 192.168.0.27 TCP 76 53 → 34411 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1412 SACK_PERM=1 TSval=3779884023 TSecr=670793352 WS=256
42 0.153186879 192.168.0.27 → 8.8.4.4 TCP 68 34411 → 53 [ACK] Seq=1 Ack=1 Win=64768 Len=0 TSval=670793358 TSecr=3779884023
43 0.153401580 192.168.0.27 → 8.8.4.4 DNS 127 Standard query 0x3bdd DNSKEY 162.in-addr.arpa OPT
44 0.159389252 8.8.4.4 → 192.168.0.27 TCP 68 53 → 34411 [ACK] Seq=1 Ack=60 Win=65536 Len=0 TSval=3779884030 TSecr=670793358
45 0.159961486 8.8.4.4 → 192.168.0.27 TCP 1276 53 → 34411 [ACK] Seq=1 Ack=60 Win=65536 Len=1208 TSval=3779884031 TSecr=670793358 [TCP segment of a reassembled PDU]
46 0.160004837 192.168.0.27 → 8.8.4.4 TCP 68 34411 → 53 [ACK] Seq=60 Ack=1209 Win=64256 Len=0 TSval=670793364 TSecr=3779884031
47 0.160045522 8.8.4.4 → 192.168.0.27 DNS 235 Standard query response 0x3bdd DNSKEY 162.in-addr.arpa DNSKEY DNSKEY DNSKEY DNSKEY RRSIG RRSIG OPT
48 0.160094781 192.168.0.27 → 8.8.4.4 TCP 68 34411 → 53 [ACK] Seq=60 Ack=1376 Win=64256 Len=0 TSval=670793365 TSecr=3779884031
49 0.160354278 192.168.0.27 → 8.8.4.4 TCP 68 34411 → 53 [FIN, ACK] Seq=60 Ack=1376 Win=64384 Len=0 TSval=670793365 TSecr=3779884031
50 0.163618574 192.168.0.27 → 8.8.4.4 DNS 107 Standard query 0x24f1 DS 28.43.162.in-addr.arpa OPT
51 0.166275506 8.8.4.4 → 192.168.0.27 TCP 68 53 → 34411 [FIN, ACK] Seq=1376 Ack=61 Win=65536 Len=0 TSval=3779884037 TSecr=670793365
52 0.166364264 192.168.0.27 → 8.8.4.4 TCP 68 34411 → 53 [ACK] Seq=61 Ack=1377 Win=64384 Len=0 TSval=670793371 TSecr=3779884037
53 0.174239377 8.8.4.4 → 192.168.0.27 DNS 545 Standard query response 0x24f1 DS 28.43.162.in-addr.arpa SOA z.arin.net NSEC 29.43.162.in-addr.arpa RRSIG RRSIG OPT
54 0.176503128 192.168.3.1 → 192.168.3.7 DNS 145 Standard query response 0x7048 PTR 215.28.43.162.in-addr.arpa PTR x162-43-28-215.static.xvps.ne.jp OPT
bind9はいったいどこで動いているのか??
という質問ですが、53で動いているみたいですね。ただ、プロセスとして動いているのが確認できないんですよね。 いや、namedというプロセスが動いています。そして、どこで聞いてるか見てみたけど、普通に53万ポートで動いているみたい。
構築した感想
DHCP側でIPアドレスを固定できるとすごく楽になるという感想。 あと、routerの構築はまじで簡単だという感想。 ただ、新しいubuntuでは、/etc/netplan/….confで全て管理している。という話。しかし、意外と分かりやすい設定になっていると思う。
ここまでのインフラ構築をansbleで実現したい。とりあえずやってみようか??
はい、playbookはこんな感じです。
router_dhcp_dns/
├── inventory
├── playbook.yml
└── roles/
├── router/
│ └── tasks/
│ └── main.yml
├── dhcp/
│ └── tasks/
│ └── main.yml
└── dns/
└── tasks/
└── main.yml
inventoryはこんな感じですね?
[routers]
your_router_ip_or_hostname
[dhcp_servers]
your_dhcp_server_ip_or_hostname
[dns_servers]
your_dns_server_ip_or_hostname
もちろん全部同じにしてもいんですよ。
roles/router/tasks/main.yml
---
- name: Enable IP forwarding
sysctl:
name: net.ipv4.ip_forward
value: '1'
state: present
reload: yes
- name: Configure NAT with iptables
iptables:
chain: FORWARD
protocol: all
in_interface: enx58278cbf4b66
out_interface: eth0
jump: ACCEPT
- name: Configure NAT for established connections
iptables:
chain: FORWARD
protocol: all
in_interface: eth0
out_interface: enx58278cbf4b66
match: state
state: RELATED,ESTABLISHED
jump: ACCEPT
- name: Configure NAT masquerade
iptables:
table: nat
chain: POSTROUTING
protocol: all
out_interface: eth0
jump: MASQUERADE
roles/dhcp/tasks/main.yml
---
- name: Install ISC DHCP server
apt:
name: isc-dhcp-server
state: present
# Configuration of DHCP server can be added here, for example:
- name: Configure DHCP server
template:
src: dhcpd.conf.j2
dest: /etc/dhcp/dhcpd.conf
notify: restart dhcp server
# handlers:
- name: restart dhcp server
service:
name: isc-dhcp-server
state: restarted
と入った感じです。
ちょっと面倒くさいので、この辺で終わりにしたいと思いますが。
K8sの構築
の構築はまた次の記事でって感じかな。