根据envoy进程pid查看iptables规则

[root@master ~]# kubectl get pods sleep-78ff5975c6-75q5z -o yaml

初始化容器配置 

-p 15001 出向端口

-z 15006 入向端口

-u 1337 UID

-m REDIRECT 流量拦截模式

-i *   拦截目标CIDR地址列表

-x “” 需要排除的地址

-b * 拦截目标端口为什么哪些流量 *代表所有

-d 15090,15021,15020 排除的端口

 

9842为envoy的进程号

nsenter -t 9842 -n iptables -t nat -S

-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-N ISTIO_INBOUND                    #自定义链 入向流量
-N ISTIO_IN_REDIRECT                #自定义链 入向流量
-N ISTIO_OUTPUT                     #自定义链 出向流量
-N ISTIO_REDIRECT                   #自定义链 出向流量
-A PREROUTING -p tcp -j ISTIO_INBOUND
-A OUTPUT -p tcp -j ISTIO_OUTPUT    #所有的出向流量都交给ISTIO_OUTPUT自定义链
-A ISTIO_INBOUND -p tcp -m tcp --dport 15008 -j RETURN  # 不拦截
-A ISTIO_INBOUND -p tcp -m tcp --dport 15090 -j RETURN  # 不拦截
-A ISTIO_INBOUND -p tcp -m tcp --dport 15021 -j RETURN  # 不拦截
-A ISTIO_INBOUND -p tcp -m tcp --dport 15020 -j RETURN  # 不拦截
-A ISTIO_INBOUND -p tcp -j ISTIO_IN_REDIRECT  #其他的都跳转到ISTIO_IN_REDIRECT自定义链
-A ISTIO_IN_REDIRECT -p tcp -j REDIRECT --to-ports 15006  #所有到达该链的流量都重定向到15006
-A ISTIO_OUTPUT -s 127.0.0.6/32 -o lo -j RETURN         #如果原ip是127.0.0.6/32通过lo的不拦截,可以理解成两个envoy代理通信
-A ISTIO_OUTPUT ! -d 127.0.0.1/32 -o lo -m owner --uid-owner 1337 -j ISTIO_IN_REDIRECT #如果目标地址不是127.0.0.1/32又是要通过lo接口要离开的并且属主使1337的通通交给ISTIO_IN_REDIRECT
-A ISTIO_OUTPUT -o lo -m owner ! --uid-owner 1337 -j RETURN #通过lo接口流出的属主不是1337的不拦截
-A ISTIO_OUTPUT -m owner --uid-owner 1337 -j RETURN   #属主使1337的不拦截
-A ISTIO_OUTPUT ! -d 127.0.0.1/32 -o lo -m owner --gid-owner 1337 -j ISTIO_IN_REDIRECT #ip不是127.0.0.1/32通过lo接口,属组是1337的通通交给ISTIO_IN_REDIRECT
-A ISTIO_OUTPUT -o lo -m owner ! --gid-owner 1337 -j RETURN #通过lo借口属组不是1337的不拦截
-A ISTIO_OUTPUT -m owner --gid-owner 1337 -j RETURN #属组是1337的不拦截
-A ISTIO_OUTPUT -d 127.0.0.1/32 -j RETURN #ip是127.0.0.1/32的不拦截
-A ISTIO_OUTPUT -j ISTIO_REDIRECT #剩余的都交给ISTIO_REDIRECT
-A ISTIO_REDIRECT -p tcp -j REDIRECT --to-ports 15001  #所有到达该流量的都重定向到15001

 

posted @ 2022-08-23 09:42  Maniana  阅读(182)  评论(0编辑  收藏  举报