最近読んだ記事メモ (DNS Operations, Load Balancing, Wireshark, Kubernetes)

 

DNSゾルバの運用コスト削減への道 ヤフー株式会社 針⼭ 拓海

www.janog.gr.jp

スライド: 

https://www.janog.gr.jp/meeting/janog52/wp-content/uploads/2023/06/janog52-dnscost-hariyama.pdf

クエリのログをとるため300台もDNSサーバがある。
拠点や⽤途ごとにVIPを建て、物理サーバをVIPメンバに収容する構成
• ロードバランサを使⽤、L2DSR/L3DSR/L4 Inline構成

環境ごとにVIPネットワークの構成が違う
- DSR(Direct server return) のVIP構成を中心に構築
- リスポンスはLBを通らない方がLBコストがよい

resolv.confを変更してリプレイスを行う。
- 新しいアドレスはACL大丈夫か?

>static route 出し分け発狂しそう
そうです。。撲滅しました。

Q. リソルバのリプレイスにおいて、DNSサーバのIPアドレスを変えるのではなく、resolv.conf書き換えを行った理由は?
A. (あまりよくわからなかった)L2DSRの場合は同じネットワークのVIPとサーバが切り離せないので、新コアスイッチに古いIPアドレスを付けた場合は広報されるまでそのネットワークはダウンされ、同じコアスイッチの下にいる同じvlanのクライアントは新しい方にリクエストを送り、新しいリゾルバが外との疎通性ができる前にリクエストを受け付けてしまい問題がおきるため行わなかった。

Q. BIND脱却は?
A. BINDのみに実装されている機能に依存しているため、脱却がむづかしいためアプライアンスとの二段構成になっている。
A. 逆にBINDはTTLが2以下だと勝手に破棄する。これは困るというのもアプライアンスを使う理由の一つ。
やっぱりBINDは脆弱性がいっぱいあって、使っている人はみな苦労しますね。

Q. クエリログをとっているためサーバが大変。みなさんスケールするためにそうしてますか?監視サーバのディスクが溢れてしまったことがあり。。。
A. (会場から)力づくです。dnstapもしてる。ログ自体はそこまで多いわけではなくなんとかいけてる。Dosされたら困る。
われわれもDNS tapやりたいがそれを漏らしたら怖い。
A. (会場から さくら)自分たちもやっているが、確かにディスクIOが厳しくなるが、その前にリゾルバのNICのカードに制限が先にくるためカーネル含めて、なのでクエリログのディスクIOはそれほど大きくないため、別のインターフェースを立てて1日一回rsyncしてとってきている。処理性能はCPU使うがCPUは足りているので力づくでいけてる。
A. (情報通信研究機構)NTPサーバだが10億きている。すいっちのmirror port を使って通信を10秒単位のファイルでNASに入れている。別のサーバで複数代のサーバでパケットを見ている。
A. dnstapを使っている。とったらすぐログサーバに入れていてリゾルバにはためていない。キャッシュサーバよりこのログサーバの方がお金がかかっているぐらいで正直ログとりしたくない

Q.  どのように分けているか。
A. プライマリー、セカンダリーは同じ設定を二つ作り、クライアントのIP偶数奇数などで、配布する設定を分けている。


感想。
半分の時間がマイクタイムで、いろいろな運用者の意見がマイクで話され“meeting” という感じで聞いてて面白かった。
ログの話が活発だった。dnstapoを多くの人が使っているのを知った。試してみたい。

 

InternetWeek2018 DNS Day IIJ

収集の仕方について分類紹介。

 

DNSの可視化検討 NTTコミュニケーションズ株式会社

2022年1月27日 小坂 良太

docomoでのDNSの可視化の話

フルサービスリゾルバのロードバランサーなし構成について NTTコミュニケーションズ株式会社 小坂 良太

DNSのLBを無くした時の構成。

BFD (Bidirectional Forwarding Detection ルータ間で相互にpingを打ち合うようなプロトコルでmsオーダーで断検知が可能、L2スイッチを超えて断検知が可能)

ルータでBGPのタイムアウトより先に通信断を検知するためのBFDをDNSサーバの疎通確認に使用。サーバで使用するためにFRRを使用。

Red Hat's open source rot took root when IBM walked in - The Register

https://www.theregister.com/2023/07/07/red_hat_open_source/

Fri 7 Jul 2023

https://www.similartech.com/ によるとRHELの10倍CentOSはビジネスで使用されているらしい。

2005年までCentOSは最新版を使いたい人はRHELを使うように勧めていたが、RedHatCentOSをトレードマークの侵害で訴えたところCentOSRedHatを名指しすることを一歳やめ"with Prominent North American Enterprise Linux Vendor."とだけいうようになった。

2014年にCentOSを手に入れたが意味がなく、2020年にCentOS StreamをはじめCentOSを止めた。

これによって代わりとして AlmaLinux と Rocky Linuxが出現することとなった。

 

Wireshark Is 25: The email that started it all and the lessons learned along the way - Wireshark Blog

https://blog.wireshark.org/2023/07/wireshark-is-25/

Gerald CombsがWiresharkの25年の歴史を振り返ってOSSが栄えるために必要なものを挙げる。最初はEtherealという名前だった。

 

SUSE To Go Private 

August 17, 2023

https://opensourcewatch.beehiiv.com/p/suse-go-private

SUSEは株主の影響を受けないように公開株式をやめる。
> aims to merge the company from the Frankfurt Stock Exchange into an unlisted Luxembourg S.A. entity.

これによって世の中に影響を受けずに長期的に計画を立てることができることを期待する。

 

Adopting Istio for a multi-tenant Kubernetes cluster in Production

https://medium.com/mercari-engineering/adopting-istio-for-a-multi-tenant-kubernetes-cluster-in-production-df1a8260ca24

Aug 28, 2019

メルカリはmulti-tenant single Kubernetes clusterを使用している。その話。

やる理由の一つとしてgRPC load-balancingがある。gRPC は HTTP2 の multiplexing をしようして RPC callsおくるため、L3で動作するk8sではうまくロードバアrんシングすることができない。

service meshを導入してproxy sidecarを使用することで解決する。

話されたことの一部

 

- 障害への対応
Istioのコントロール・プレーンの何かがダウンした場合、クラスタ全体に大きな影響が出ないようにする必要がある。

 

- istio-proxy Lifecycle

istio-proxyはsidecar containerなので、メイン・アプリケーションの前に起動し、アプリケーションの後にシャットダウンする必要がある。

 

- Istio's Kubernetes Service Port-Name Convention

k8sはL4で動作するためistioaがsidecarを設定するために必要なL7を理解しない。

そのためistioは `<protocol>[-<suffix>]` のように名前づけをする。

この命名規則が守られているかをYAML validatorを用いて確かめている。

 

kube-vip

https://github.com/kube-vip/kube-vip

kube-vip provides both a floating or virtual IP address for your kubernetes cluster as well as load-balancing the incoming traffic to various control-plane replicas.

kube-vip を使用しない場合は(現在は)VIP用とロードバランサようで二つのソフトウェアを使用する必要がある。

VIP: Keepalived、UCARP など
LoadBalancing: HAProxy、Nginx など