腾讯云 Kubernetes 高性能网络技术揭秘——使用 eBPF 增强 IPVS 优化 K8s 网络性能-范建明
NodePort 提供集群外部的访问 iptables mode • 在netfilter pre-routing阶段做DNAT • 在netfilter post-routing阶段做SNAT • 每个service 添加一条或多条rules。使用数组管理rules。 • 仅支持随机的调度算法 • kube-proxy代码实现比较简单 • iptables 在linux iptables rule 不容易调试 IPVS mode • 使用hashtable 管理service • IPVS 仅仅提供了DNAT,还需要借用 iptables+conntrack 做SNAT • 控制面和数据面算法复杂度都是O(1) • 经历了二十多年的运行,比较稳定成熟 • 支持多种调度算法 优势 IPVS mode 不足之处 • 没有绕过conntrack,由此带来了性能开销 编译成eBPF中间代码 • 注入内核 • 挂载到network traffic control • 报文激发eBPF代码 技术创新点一 • IPVS 对conntrack的功能依赖 • Iptables SNAT • 具体如何绕过conntrack? • 进报文 • 将处理请求的钩子从nf local-in 前移到nf pre-routing • skb的路由指针是NULL • 处理分片 •0 码力 | 27 页 | 1.19 MB | 9 月前3Cilium的网络加速秘诀
driver kube-proxy DNAT kube-proxy SNAT worker node nodePort request backend endpoint tc eBPF NAT XDP eBPF NAT DSR 加速南北向 nodePort 访问 传统的 nodePort 转发,伴随着 SNAT的发生。而 Cilium 为 nodePort 提供了 native redirect_neigh step1 client -> node1 : nodePort step3 client -> pod2 : targetPort native DSR DNAT and No SNAT step4 pod2:targetPort -> client step6 node2 : nodePort -> client client step5 node2 : nodePort0 码力 | 14 页 | 11.97 MB | 1 年前3CentOS 7 操作命令-基础篇1.2
REJECT DROP nat 地址转换 PREROUTING OUTPUT POSTROUTING 地址转换发生在路由之前 DNAT 转换由系统生成的包 地址转换发生在路由之后 SNAT DNAT REDIRECT SNAT security ...... ③iptables 命令工具 本地进程 93 iptables 语法: iptables -t filter 操作 链名 匹配规则 -j -A INPUT -i ens33 -m mac --mac-source 00:04:0d:33:33:21 -j DROP SNAT #iptables -t nat -A POSTROUTING -o ens37 -s 192.68.1.0/24 -j SNAT --to 200.1.1.2 或者转换为出接口的 IP(pppoe 拨号时) #iptables -t nat -A POSTROUTING0 码力 | 115 页 | 8.68 MB | 1 年前3运维上海2017-Kubernetes 在大规模场景下的service性能优化实战 - 杜军
��� Ø DR�Tunneling�����������IPVS Director Ø NAT���������������IPVS Director - �������� DNAT���SNAT DR Tunneling NAT IPVS����� • �VVIP ü dummy�G # ip link add dev dummy0 type dummy # ip addr add @Huawei���1.9�beta • ��ClusterIP�NodePort�External IP�Load Balancer�OnlyLocalNode… • ��iptables�SNAT����� Kubernetes�Service�� Iptables��Service���� ��iptables������� IPVS��Service���� Iptables0 码力 | 38 页 | 3.39 MB | 1 年前3Linux就该这么学 第2版
:当前正在使用的区域。 ➢ :管理当前被选中区域中的服务。 ➢ :管理当前被选中区域中的端口。 ➢ 设置允许被访问的协议。 ➢ 设置允许被访问的端口。 ➢ :开启或关闭 SNAT(源网络地址转换)技术。 ➢ :设置端口转发策略。 255 ➢ :控制请求 icmp 服务的流量。 ➢ :管理防火墙的富规则。 ➢ :被选中区域的服务, 略立即生效(见图 8-6)。这与在命令行中使用--reload 参数的效果一样。 前面在讲解 firewall-config 工具的功能时,曾经提到了 SNAT(Source Network Address Translation,源网络地址转换)技术。SNAT 是一种为了解决 IP 地址匮乏而设计的技术,它可 以使得多个内网中的用户通过同一个外网 IP 接入 Internet。该技术的应用非常广泛,甚至可以 com 时,就用到了 SNAT 技术。 257 图 8-5 放行访问 8080~8088 端口的流量 图 8-6 让配置的防火墙策略规则立即生效 大家可以看一下在网络中不使用 SNAT 技术(见图 8-7)和使用 SNAT 技术(见图 8-8) 时的情况。在图 8-7 所示的局域网中有多台 PC,如果网关服务器没有应用 SNAT 技术,则互 联网中的网站服务器在收到0 码力 | 552 页 | 22.25 MB | 1 年前3基于Kubernetes构建容器云平台的实践 - UCloud优刻得实验室负责⼈ 叶理灯
Bgpd 负责将 Service IPv6 地址段通过 BGP 路路由协议宣告给接⼊入交换机 P o d 返 回 的 包 , 会 先 回 给 S e r v i c e Gateway,由于做了了SNAT,基于连接 追踪(conntrack),再返回给请求的 客户端。 每个接⼊入交换机下,选择两台节点作为Service Gateway,作为集群外部访问Service的⽹网关 Kube-proxy负责将发往 Kube-proxy负责将发往 Service IP 的流量量转 发到对应的Pod。启动时将 kube-proxy的 masquerade-all 选项打开,这样 kube- proxy 转发给Pod的包会实现源地址转换 (SNAT) Service Gateway包括 bgpd 和 kube-proxy两部分。 Node Pod Pod Pod BGPD Kube-proxy masquerade-all=true0 码力 | 30 页 | 3.52 MB | 1 年前3Linux command line for you and me Documentation Release 0.1
a router • PREROUTING for port forwarding • POSTROUTING for Source Network Address Translation (SNAT), this applies to all packets leaving the sys- tem 14.3 filter table filter is the default table 3 default chains. • INPUT • OUTPUT • FORWARD 14.4 nat table nat table is a special table for SNAT and DNAT (port forwarding). It has the following chains. • PREROUTING • POSTROUTING • OUTPUT There POSTROUTING | --dport destination_ip | ˓→DNAT | | | -L (list) | USER_DEFINED_CHAINS | -i incoming | ˓→SNAT | | | -S (show) | | -o outgoing | ˓→LIMIT | | | -Z (zero) | | -m mac | ˓→RETURN | | | -N | |0 码力 | 128 页 | 716.99 KB | 1 年前3鸟哥的Linux私房菜:服务器架设篇 第三版
Linux 主机后的局域网络内计算机较有相关。 PREROUTING:在进行路由判断之前所要进行的规则(DNAT/REDIRECT) POSTROUTING:在进行路由判断之后所要进行的规则(SNAT/MASQUERADE) OUTPUT:与发送出去的封包有关 9.3.3 iptables 的表格 (table) 与链 (chain) 12.3. 9.3 Linux 的封包过滤软件:iptables ,PREROUTING 则在修改目标 IP 。 由于修改的 IP 不一样,所以 就称为来源 NAT (Source NAT, SNAT) 及目标 NAT (Destination NAT, DNAT)。我们先来谈一谈 IP 分享器功能的 SNAT 吧! 来源 NAT, SNAT:修改封包表头的『来源』项目 你应该有听说过 IP 分享器这个玩意儿,他可以让你家庭里的好几部主机同时透过一条 ADSL 1-2所示, 那么 NAT 服务器是如何处理这个封包的呢? 9.5 NAT 服务器的设定 9.5.1 什么是 NAT? SNAT? DNAT? 12.5. 9.5 NAT 服务器的设定 - 289 - 本文档使用 书栈(BookStack.CN) 构建 图 9.5-1、SNAT 封包传送出去 的示意图 如上图所示,在客户端 192.168.1.100 这部主机要联机到 http://tw.yahoo0 码力 | 795 页 | 17.63 MB | 1 年前3Amazon Elastic Kubernetes Service (EKS) 初探秘
– 100.64.0.0/10 客户网 关 公司数 据中心 On-premises 10.1.0.0/16 VPN / DX Pod Outbound Traffic SNAT EKS worker node Primary elastic network interface Pod Secondary elastic network interface0 码力 | 39 页 | 1.83 MB | 1 年前3North-South Load Balancing of Kubernetes Services with eBPF/XDP
svc = bpf_map_lookup_elem(..); if (svc) { b = select_backend(svc); dnat(skb, b); snat(skb); redirect(skb); } } CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=1222010 码力 | 11 页 | 444.46 KB | 1 年前3
共 16 条
- 1
- 2