Etcd

Etcd 配置 使用apt安装etcd sudo apt install etcd 生成证书(参考 https://www.jianshu.com/p/ba0964c41b50) 配置config文件 /etc/etcd/etcd.conf # [Member] ETCD_NAME="worker1" ETCD_DATA_DIR="/var/lib/etcd/worker" ETCD_LISTEN_PEER_URLS="http://yourip-1:2380" ETCD_LISTEN_CLIENT_URLS="http://yourip-1:2379,http://127.0.0.1:2379" # [Clustering] ETCD_INITIAL_ADVERTISE_PEER_URLS="http://yourip-1:2380" ETCD_ADVERTISE_CLIENT_URLS="http://yourip-1:2379" ETCD_INITIAL_CLUSTER="worker1=http://yourip-1:2380,worker2=http://yourip-2:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01" ETCD_INITIAL_CLUSTER_STATE="new" # [Security] ETCD_CERT_FILE="/etc/etcd/cert/server.crt" ETCD_KEY_FILE="/etc/etcd/cert/server.key" ETCD_TRUSTED_CA_FILE="/etc/etcd/cert/ca.crt" ETCD_CLIENT_CERT_AUTH=true ETCD_PEER_CERT_FILE="/etc/etcd/cert/server.crt" ETCD_PEER_KEY_FILE="/etc/etcd/cert/server.key" ETCD_PEER_TRUSTED_CA_FILE="/etc/etcd/cert/ca.crt" ETCD_PEER_CLIENT_CERT_AUTH=true 修改service文件 /lib/systemd/system/etcd.service [Unit] Description=etcd - highly-available key value store Documentation=https://github.com/coreos/etcd Documentation=man:etcd After=network.target Wants=network-online.target [Service] EnvironmentFile=/etc/etcd/etcd.conf Type=notify User=etcd ExecStart=/usr/bin/etcd --name ${ETCD_NAME} \ --data-dir=${ETCD_DATA_DIR} \ --listen-peer-urls=${ETCD_LISTEN_PEER_URLS} \ --listen-client-urls=${ETCD_LISTEN_CLIENT_URLS} \ --advertise-client-urls=${ETCD_ADVERTISE_CLIENT_URLS} \ --initial-advertise-peer-urls=${ETCD_INITIAL_ADVERTISE_PEER_URLS} \ --initial-cluster=${ETCD_INITIAL_CLUSTER} \ --initial-cluster-token=${ETCD_INITIAL_CLUSTER_TOKEN} \ --initial-cluster-state=${ETCD_INITIAL_CLUSTER_STATE} \ --cert-file=${ETCD_CERT_FILE} \ --key-file=${ETCD_KEY_FILE} \ --peer-cert-file=${ETCD_PEER_CERT_FILE} \ --peer-key-file=${ETCD_PEER_KEY_FILE} \ --trusted-ca-file=${ETCD_TRUSTED_CA_FILE} \ --client-cert-auth=${ETCD_CLIENT_CERT_AUTH} \ --peer-client-cert-auth=${ETCD_PEER_CLIENT_CERT_AUTH} \ --peer-trusted-ca-file=${ETCD_PEER_TRUSTED_CA_FILE} Restart=on-abnormal LimitNOFILE=65536 [Install] WantedBy=multi-user....

2022-05-21 · 1 分钟 · 101 字

网络排查案例

预习 traceroute 查看路由跳转 Nginx 日志报 connection reset by peer Wireshark 抓包分析 过滤IP:ip.addr eq my_ip, ip.src eq my_ip或者ip.dst eq my_ip 找到RST报文:tcp.flags.reset eq 1 过滤序列号:tcp.ack eq my_num 过滤时间:frame.time >= "dec 01,2015 15:49:48" 过滤表达式前添加 ! 或者 not 表示取反 多个条件可以使用 and 或者 or 形成复合过滤器 定位防火墙问题 客户端和服务端在同一时间开始抓包 使用IP过滤 查看Wireshark的Expert Information,关注可疑的(如Warning)报文并追踪TCP流 对比两侧文件,如何找到另一端对应的TCP流:TCP序列号(裸序列号) 设置去掉 Wireshark -> Preferences -> Protocols -> Relative sequence numbers Wireshark 支持自定义列,在主窗口中显示。进入详情之后,右键需要在主窗口中显示的数据,选择 Apply as column 同样的服务端,在三次握手中(SYN+ACK 报文)的 TTL 是 59,在导致连接中断的 RST 包里却变成了 64!显然,这个 RST 包并不是跟我们握手的那个服务端发出的(防火墙) 长肥管道 带宽很大、RTT 很长的网络,被冠以一个特定的名词,叫做长肥网络,英文是 Long Fat Network TCP 传输的核心公式:速度 = 窗口 / 往返时间 传输速度的上限就是 window/RTT = 64KB/134ms = 478KB/s TCP Window Full 一般说到 TCP Window,如果没有特别指明,就是指接收窗口。 TCP 的下个序列号(Next Sequence Number)等于序列号和段长度之和,即 NextSeq = Seq + Len。 在途数据计算 Bytes_in_flight = latest_nextSeq - latest_ack_from_receiver 在 Statistics 下拉菜单下的 I/O Graph 工具,可以直观地展示传输速度图。 同是 Statistics 菜单下的 TCP Stream Graphs 的 Window Scaling 工具,可以直观的展示 TCP Window Full 历史曲线图。 名称 Acknowledgement Number:确认号 Next Sequence Number:下个序列号 Caculated Window Size:计算后的接收窗口 Bytes in flight:在途字节数 velocity = acked_data/RTT TCP探测拥塞 概念 慢启动:每收到一个 ACK,拥塞窗口(CW)增加一个 MSS。 拥塞避免:策略是“和性增长乘性降低”,每一个 RTT,CW 增加一个 MSS。 快速重传:接收到 3 次或者以上的重复确认后,直接重传这个丢失的报文。 快速恢复:结合快速重传,在遇到拥塞点后,跳过慢启动阶段,进入线性增长。 Wireshark 序列号(会根据自己发送的数据量进行增加) Acknowledgment: Ack序号 nextSeq: 下一个序号 拥塞控制算法 (命令 sysctl) 修改拥塞控制算法 sudo sysctl net....

2022-04-20 · 2 分钟 · 283 字