首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

k8s集群网络(7)-service之ipvs cluster ip实现原理

在之前文章中我们介绍了基于iptable方式实现的k8s集群中cluster ip类型和node port类型service的负载均衡。其本质上是当网络数据包从pod的network namespace中通过linux veth pair设备进入到host宿主中的network namespace时,经过iptable一系列的NAT转换,把service的cluster ip和端口DNAT成pod的ip和端口。同时leverage linux iptable的random模块,实现了对pod的负载均衡,然后再交由host对目标pod的路由策略来实现将数据包发往pod。当然,这一切都是在linux内核空间实现的,和应用程序的用户空间没有关系。在这里我们主要介绍基于ipvs的cluster ip类型service的实现原理。如果对于ipvs不熟悉的同学可以浏览一下网站http://www.linuxvirtualserver.org/,大名鼎鼎的LVS负载均衡就是基于ipvs来实现的。

04
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    自己工作用到的 linux添加路由的方法

    linux下添加路由的方法 一、查看及添加临时路由 1.查看路由(linux下) [root@nfs ~]# route #同netstat -rn Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.90.2 * 255.255.255.255 UH 0 0 0 tun0 192.168.80.0 * 255.255.255.0 U 0 0 0 eth0 192.168.10.0 * 255.255.255.0 U 0 0 0 eth1 192.168.90.0 192.168.90.2 255.255.255.0 UG 0 0 0 tun0 link-local * 255.255.0.0 U 1002 0 0 eth0 link-local * 255.255.0.0 U 1003 0 0 eth1 default 192.168.80.2 0.0.0.0 UG 0 0 0 eth0 注:windows查看路由命令:route print或netstat -rn 输出结果中各个字段的含义是: Destination表示路由的目标IP地址 Gateway表示网关使用的主机名或者是IP地址。上面输出的”*”表示没有网关。 Genmask表示路由的网络掩码 Flags是表示路由的标志。可用的标志及其意义是:U表示路由在启动,H表示target是一台主机,G表示使用网关,R表示对动态路由进行复位设置;D表示动态安装路由,M表示修改路由,!表示拒绝路由 Metric表示路由的单位开销量 Ref表示依赖本路由现状的其它路由数目 Use表示路由表条目被使用的数目 Iface表示路由所发送的包的目的网络 2.使用 route 命令添加 使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了 方法: 添加到主机的路由 route add -host 192.168.168.110 dev eth0 route add -host 192.168.168.119 gw 192.168.168.1 添加到网络的路由 route add -net IP netmask MASK eth0 route add -net IP netmask MASK gw IP route add -net IP/24 eth1 添加默认网关 route add default gw IP 删除路由 route del -host 192.168.168.110 dev eth0 3.使用ip route添加路由 添加路由 ip route add 192.168.0.0/24 via 192.168.0.1 ip route add 192.168.1.1 dev 192.168.0.1 删除路由 ip route del 192.168.0.0/24 via 192.168.0.1 二、在linux下设置永久路由的方法: 1.在/etc/rc.local里添加 route add -net 192.168.3.0/24 dev eth0 route add -net 192.168.2.0/24 gw 192.168.3.254 2.在/etc/sysconfig/network里添加到末尾 方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev 3./etc/sysconfig/static-router : 这个是network脚本执行时调用的一个文件 any net x.x.x.x/24 gw y.y.y.y any net 192.168.3.0/24 gw 192.168.3.254 any net 10.250.228.128 netmask 255.255.255.192 gw 10.250.228.129 4.创建名为route- eth0的文件 vi /etc/sysconfig/network-script/route-eth0 在此文件添加如下格式的内容 192.168.1.0/24 via 192.168.0.1 5.查看经过的路由 linux查看经过的路由traceroute www.baidu.com windows查看经过的路由tracert -d www.baidu.com 三、开启 IP 转发: echo “1” >/proc/sys/net/ipv4/ip_forward (临时) vi /etc/sysctl.conf –> net.ipv4.ip_forward=1 (永久开启)

    02

    Vulnhub 629 GAARA-1 通关笔记

    AI摘要:在Vulnhub 629 GAARA-1的通关笔记中,作者首先通过`arp-scan`发现了目标靶机的IP地址为`192.168.12.8`。接着,使用`nmap`进行端口扫描,发现开放了22(SSH)和80(HTTP)端口。通过进一步的信息收集和目录扫描,作者在`/Cryoserver`目录下发现了特殊字符串`f1MgN9mTf9SNbzRygcU`,经过解码得到用户名和密码尝试,但SSH登录失败。随后,使用`hydra`工具成功爆破SSH密码为`iloveyou2`,并登录系统。在系统内部,作者查看文件发现了`flag.txt`,并在`/usr/local/games`目录下发现了一个使用`Brainfuck`加密的信息,但解密后未找到有用信息。最后,通过查找SUID位文件并使用`gdb`提权,成功获得`root`权限。这个过程展示了从信息收集、漏洞利用到提权的完整渗透测试步骤。

    01

    k8s集群网络(8)-service之ipvs node port实现原理

    在上一篇文章中我们介绍了基于ipvs的cluster ip类型service的实现原理,本质上是在iptable的PREROUTING chain以及相关target中利用ipset来匹配cluster ip,完成对即将做MASQUERADE伪装的items的mark标记,同时结合ipset也减少了iptable中的entry数量。另外在host network namespace里创建kube-ipvs0网络设备,绑定所有cluster ip,保证网络数据包可以进入INPUT chain。在INPUT chain中ipvs利用映射规则(可由ipvsadm查看该规则)完成对cluster ip的DNAT和目标pod endpoints选择的负载均衡,然后直接把数据送入POSTROUTING chain。当数据包进入POSTROUTING chain,经过相关的iptable target,匹配在PREROUTING chain中的mark标记,完成MASQUERADE伪装(SNAT host的ip地址)。最后数据包根据host network namespace的路由表做下一跳路由选择。在这里我们主要介绍基于ipvs的node port类型service的实现原理,如果对上一篇文章内容有所理解,那么这里也比较简单。

    05
    领券