クラウドネイティブ会議で作ったもの

5/14~15日にかけて開催されたクラウドネイティブ会議にて、サーバーチームに我々のメンバーが参加しました。 ここでメンバーが担当したサーバーについて紹介させていただきます!

やったこと

設定したもの

・検証環境
・本番環境のVM
・AWSとのBGPセッション
・キャッシュDNSサーバー
・zabbixの諸々


設計図

この画像をもとに作成しました image 今回は安定してネットワークを提供するということを第一に考えて構築したので、堅実に組んでいます

本番・検証環境について

今回はproxmoxを使って構築しました。HA構成を組みたくはありましたが、HSの時間的に厳しそうだったので今回は断念しました

本番では2台の1Uサーバーをsfp+でつなぎました。

AWSとのBGPセッション

クラウドネイティブ会議とのことで、サーバー資源としてAWSを使わせていただきました。オンプレ環境とクラウド環境のネットワークを接続するにあたって、プライベートASを使ってBGPセッションを張りました。 検証環境時はIX2215,本番環境はIX3315でセッションを構築しました。こちらのサイトにコンフィグの参考資料が載ってたので、それを参考に設定を投入しました

ip access-list sec-list permit ip src any dest any
!
ike nat-traversal
!
ike proposal ikeprop-aws encryption aes hash sha group 1024-bit lifetime 28800
!
ike policy ike-aws-t1 peer <AWS側Tunnel#1のIP> key <Tunnel#1のPSK> ikeprop-aws
ike keepalive ike-aws-t1 10 3
!
ike policy ike-aws-t2 peer <AWS側Tunnel#2のIP> key <Tunnel#2のPSK> ikeprop-aws
ike keepalive ike-aws-t2 10 3
!
ipsec autokey-proposal ipsec-aws esp-aes esp-sha lifetime time 3600
!
ipsec autokey-map ipsec-aws-t1 sec-list peer <AWS側Tunnel#1のIP> ipsec-aws pfs 1024-bit
ipsec autokey-map ipsec-aws-t2 sec-list peer <AWS側Tunnel#2のIP> ipsec-aws pfs 1024-bit
!
interface GigaEthernet0.0
  ip napt static GigaEthernet0.0 udp 500
  ip napt static GigaEthernet0.0 udp 4500
  ip napt static GigaEthernet0.0 50
!
interface Tunnel0.0
  tunnel mode ipsec
  ip address <自分側Tunnel#1のInside IP>/30
  ip tcp adjust-mss auto
  ipsec policy tunnel ipsec-aws-t1 df-bit ignore pre-fragment out
  no shutdown
!
interface Tunnel1.0
  tunnel mode ipsec
  ip address <自分側Tunnel#2のInside IP>/30
  ip tcp adjust-mss auto
  ipsec policy tunnel ipsec-aws-t2 df-bit ignore pre-fragment out
  no shutdown
!
router bgp <自分側ASN>
  neighbor <AWS側Tunnel#1のInside IP> remote-as <AWS側ASN>
  neighbor <AWS側Tunnel#1のInside IP> timers 10 30
  neighbor <AWS側Tunnel#2のInside IP> remote-as <AWS側ASN>
  neighbor <AWS側Tunnel#2のInside IP> timers 10 30
  address-family ipv4 unicast
    network <広報するオンプレセグメント1>
    network <広報するオンプレセグメント2>

冗長性を持たせるため、AWS側と二つトンネルを張る必要がありました

キャッシュDNSサーバー

UnboundとknotDNSを使ってubuntu上にそれぞれ構築しています。

server:
    # テスト用: 全インターフェースでリッスン
    interface: 10.8.0.61
    interface: 2406:da14:1405:4508::2
    do-ip6: yes
    port: 53

    # アクセス許可設定
    access-control: 0.0.0.0/0 refuse
    access-control: ::0/0 refuse
    access-control: 127.0.0.0/8 allow
    access-control: ::1/128 allow
    # NOC各ネットワークからのアクセスを許可 (mgmt, server, AWS VPC, user)
    access-control: 192.168.0.0/23 allow
    access-control: 10.8.0.0/23 allow
    access-control: 10.16.0.0/16 allow
    access-control: 10.32.0.0/16 allow
    access-control: 2406:da14:1405:4501::/64 allow
    access-control: 2406:da14:1405:4508::/64 allow
    access-control: 2406:da14:1405:4520::/64 allow

    # ログ設定 (テスト用: クエリログ有効)
    verbosity: 3
    logfile: "/etc/unbound/logs/unbound.log"
    log-queries: yes

    # キャッシュ設定
    cache-min-ttl: 60
    cache-max-ttl: 86400
    msg-cache-size: 64m
    rrset-cache-size: 128m
    key-cache-size: 32m
    neg-cache-size: 16m

    # パフォーマンス設定
    num-threads: 2
    msg-cache-slabs: 4
    rrset-cache-slabs: 4
    infra-cache-slabs: 4
    key-cache-slabs: 4
    so-reuseport: yes
    outgoing-range: 8192
    num-queries-per-thread: 4096

    # セキュリティ設定
    hide-identity: yes
    hide-version: yes
    harden-glue: yes
    harden-referral-path: yes
    use-caps-for-id: yes
    unwanted-reply-threshold: 10000

    # プライバシー設定 (プライベートアドレスの逆引きを拒否)
    private-address: 10.0.0.0/8
    private-address: 172.16.0.0/12
    private-address: 192.168.0.0/16
    private-address: 169.254.0.0/16

    # ルートヒントの自動取得
    root-hints: /usr/share/dns/root.hints

    local-data: "ping.cnd.internal IN A 1.1.1.1"
    local-data: "ping6.cnd.internal IN AAAA 2001:df0:68:176::5"

    # prefetch (TTL切れ前にキャッシュを更新)
    prefetch: yes

構築の初期段階において、OSのファイアウォールの設定にミスがあり、通信がブロックされるトラブルが発生しました。この修正に少し時間を要してしまいましたが、課題解決後は本番環境でもパケットロスや遅延なく、終始安定して動作してくれました。

zabbixの構築

イベント中のトラフィックを可視化したところ、毎分約2,500クエリのDNS問い合わせを観測しました。さらに、2日目からはIPv6(v6)による名前解決への対応を有効化したところ、クエリ数が初日の約2倍近くまで増加していました。

おまけ

クラウドネイティブ会議は栄で開催されたため、夜はメンバー同士で名古屋めしを囲んで懇親を深めました。 ここでは、私たちが訪れたおすすめの居酒屋をご紹介します。

NAGOYA BEER STATION 浩養園(こうようえん)

リンク

おいしいビールや名古屋めしを食べられます! ナポリタンやみそ豚オムライスがおすすめです!

こちらについては思い出し次第追記していこうかと思います(2026/06/05)

この記事の著者

NHとっしー

NHとっしー

隠居した後方腕組院生です
ネットワークやプログラミングを浅く広く勉強してます