AWS Gateway Load Balancer GWLB和Palo Alto 的应用

网友投稿 305 2022-10-10

AWS Gateway Load Balancer GWLB和Palo Alto 的应用

上次弄的太复杂,这次我们弄的简单点, 自己单独去搭建一个环境这次我们VPC之间不需要TGW 去连,直接GWLB 私有通道去转发数据,这样简单多了,上次各种路由走的头大,这次可以看到Inbound 的流量和Outbound 的流量看上去都没有走很多个路由表,比上次那一个好太多了!\

Inbound 的流量是虚线,就是用户访问web服务器的流量Outbound 的流量是实线,就是web服务器上网打补丁的流量

1. 去注册Palo Alto 防火墙,你在搜索栏里搜索Palo Alto 选择 “VM-Series Next-Generation Firewall Bundle 2“ 然后选择“continue to Subscribe" 就可以了。 它是15天免费用,但是AWS ec2 花钱的。 2. 然后就可以建PA VM_SERIES了 建好之后,就是配置 防火墙有三个口 eth0 MGMT eth1 GWLB ETH2 UNTRUST

```1. eth0 和eth1 交换set system setting mgmt-interface-swap enable yesrequest restart systemdebug show vm-series interfaces all Phoenix_interface Base-OS_port Base-OS_MAC PCI-ID Driver mgt(interface-swap) eth0 0e:53:96:91:ef:29 0000:00:04.0 ixgbevf Ethernet1/1 eth1 0e:4d:84:5f:7f:4d 0000:00:03.0 ixgbevf

enable GWLB 功能request plugins vm_series aws gwlb inspect enable yes enable 路由功能,这个是为了VM OUTBOUND 流量防火墙的的UNTRUST 出去request plugins vm_series aws gwlb overlay-routing 这个弄好之后,就可以配置Gateway Load Balancer 了。

GWLB 就像八抓鱼一样,在需要的网段或者VPC 里设置一个点,当路由把流量扔去GWLB是,它就会从AWS GWLB内部是有链接把流量传到防火墙,然后检测完之后在发回到原来的GWLB。

a. Gateway Load Balancer b. 建Endpoint Services 八抓鱼总部c. 建Endpoint 点,<---- 建立节点到总部的通道,注意,这里的流量不走VPC的,是GWLB 单独的,私有的通道,就像IPSEC VPN一样

现在可以建另外一个APP VPC 192.168.192.0/20

建subnet 和路由表,让下面这些subnet 和路由表对应起来PA-TEST-VPC-PUBLIC-2A 192.168.195.0/24PA-TEST-VPC-PUBLIC-2B 192.168.196.0/24PA-TEST-VPC_subnet_a 192.168.192.0/24PA-TEST-VPC-gwlbe-a192.168.207.240/28

建Internet Application LB, 可以选择上面的两个subnet。 后台web server 我这里是192.168.192.241

测试看看可不可以通过LB 访问web,注意LB也有Security Group, 需要放行80端口。 如果访问,证明OK了,下一步,也是最重要的一步,让进来的流量走防火墙 \ 建立ALB,是用户访问web服务器的流量走LB,再到后台! APP VPC LB 路由设置如下,目的就是LB 去往后台服务器192.168.192.241 流量发往GWLB,让防火墙过滤 >PA-TEST-VPC-PUBLIC-2A 192.168.195.0/24 192.168.192.0/24 vpce-0934c7b704f142863 Active No 192.168.192.0/20 local Active No 0.0.0.0/0 igw-0d1c0e097ca910e3b Active No >PA-TEST-VPC-PUBLIC-2B 192.168.196.0/24 192.168.192.0/24 vpce-0934c7b704f142863 Active No 192.168.192.0/20 local Active No 0.0.0.0/0 igw-0d1c0e097ca910e3b Active No 然后web服务器路由如下,目的就是把所有发往出去的流量都在GWLB,走防火墙过滤 这一步最重要,我想了两天才搞明白。以前一直没有把发往LB的路由发给GWLB,但是LB 路由把数据直接发给防火墙了, 导致不通,一个走VPC 路由,一个走GWLB 私有通道,怎么也不通。 >PA-TEST-VPC-EC2-RTB 192.168.192.0/24 192.168.195.0/24 vpce-0934c7b704f142863<--服务器返回LB的流量也走GWLB 192.168.196.0/24 vpce-0934c7b704f142863<--服务器返回LB的流量也走GWLB 192.168.192.0/20 local Active No 0.0.0.0/0 vpce-0934c7b704f142863 Active No >PA-TEST-VPC-GWLBE-RTB 192.168.207.240/28 没有什么特别,经过防火墙检查的流量出来之后,就到这里了,然后去往服务器 192.168.192.0/20 local Active No 0.0.0.0/0 igw-0d1c0e097ca910e3b Active No 下面是没有LB的路由情况,用户通过服务器的公网地址直接访问we服务

###########main route APP VPC 主路由表看到去往服务器的路由,都往GWLB防火墙那里去送192.168.192.0/24 vpce-0ea0ffa8f57eeca39 192.168.192.0/20 local igw-050730d0ad25747fb / attached vpc-049d6d76ead58c779 983909635988

##GWLB 防火墙处理过的流量到这里了,然后再去往服务器192.168.192.0/20 local Active No0.0.0.0/0 igw-050730d0ad25747fb Active Nosubnet-0244ec5d3406343b3 / essex-pa-test.pri_subnet_gwlbe_a 192.168.207.240/28

#web route table 服务器处理完,把所有的流量发送给防火墙去过滤192.168.192.0/20 local Active No0.0.0.0/0 vpce-0ea0ffa8f57eeca39 Active Nosubnet-0ce7f64bf030014d3 / essex-pa-test.pri_subnet_a 192.168.192.0/24 –

\

防火墙共有三个接口,eth1/0 是MGMT 口eth1/1 是GWLB Inbound 流量是从这个口给送进来坐检测,然后回去的。Eth1/2 UNTRUST 防火墙的对外出口,outbound流量就是从GWLB 进来,然后PAT,从UNTRUST 出去的。

admin@PA-VM> show interface logical

total configured logical interfaces: 2

name id vsys zone forwarding tag address

ethernet1/1 16 1 GWLB vr:default 0 172.20.200.4/28ethernet1/2 17 1 UNTRUST vr:default 0 172.20.200.40/28

Management ethernet1/0Ip address: 172.20.200.23Netmask: 255.255.255.240Default gateway: 172.20.200.17

我们来看一下流量的路径

客户访问服务器的流量也叫Inbound 流量

到APP VPC 的主路由表,直接发往各自的LB路由表192.168.192.0/20 local igw-0d1c0e097ca910e3b / PA-TEST-VPC-IGW attached vpc-01380408de4482e6f 272253919530

2.LB的路由表,LB 把流量发往后台服务器192.168.192.241,直接往GWLB送PA-TEST-VPC-PUBLIC-2A or PA-TEST-VPC-PUBLIC-2B 192.168.195.0/24 or 192.168.196.0/24

192.168.192.0/24 vpce-0934c7b704f142863 <------发送到GWLB点,然后发给防火墙过滤在回到GWLB 在APP VPC 的路由 192.168.192.0/20 local 0.0.0.0/0 igw-0d1c0e097ca910e3b

3 和4 和 防火墙检查过后的路由发到APP VPC 的GWLB路由表PA-TEST-VPC-GWLBE-RTB 192.168.207.240/28192.168.192.0/20 local Active No0.0.0.0/0 igw-0d1c0e097ca910e3b Active No

GWLB 把数据发给Web 服务器

返回的路径第一步,服务器要把数据传给VIP 也就是192.168.195.X or 192.168.196.X 他直接发送给GWLB,让GWLB 传送给防火墙去做检测,然后走GWLB 路由表到LB,然后从LB的默认路由 0.0.0.0/0 出去PA-TEST-VPC-EC2-RTB 192.168.192.0/24

192.168.195.0/24 vpce-0934c7b704f142863 Active No192.168.196.0/24 vpce-0934c7b704f142863 Active No192.168.192.0/20 local Active No0.0.0.0/0 vpce-0934c7b704f142863 Active No

服务器访问Internet 或者打补丁 Outbound 的流量,请参考实线箭头走向

1 and 2. 查看服务器路由表,发现0.0.0.0/0 直接发给 vpce-* GWLB 去防火墙了

3.防火墙查看NAT,看到PAT,参考本文“防火墙 outbound PAT 配置”配置部分直接从GWLB 接口,转到UNTRUST 出去了。

在看防火墙UNTRUST 的路由,可以参考本文“防火墙路由情况“ 部分0.0.0.0/0 172.20.200.33 发给了路由网关 172.20.200.33

再看防火墙VPC的UNTRUST 路由部分,直接从防火墙VPC的默认IGW 出去了PaloAlto-SecVPC-SEC-UNTRUST-A-RT 172.20.200.32/28 172.20.200.0/24 local Active No0.0.0.0/0 igw-06810a091198c0e54 Active No

放回的路径也是一样的,数据经过防火墙防火墙查看策略,NAT,数据到了原始的GWLB端口,再查看防火墙路由,把数据扔给GWLB 接口网关172.20.200.1 192.168.192.0/20 172.20.200.1

GWLB 172.20.200.0/28

通过debug 发现,Gateway load balancer 是从172.20.200.14 发送给172.20.200.4 (防火墙GWLB端口的)发送过程是加密的172.20.200.14->172.20.200.4

一下子是从防火墙抓包的数据,用如下命令可以看到

debug dataplane packet-diag set log feature flow basicdebug dataplane packet-diag set log ondebug dataplane packet-diag clear log logdebug dataplane packet-diag set log offdebug dataplane packet-diag aggregate-logsless mp-log pan_packet_diag.log

防火墙解密GENEVE数据包,走NAT策略出去了

source translation 192.168.192.241/15258 => 172.20.200.40/15258

== 2021-11-02 19:31:47.733 -0700 ==Packet received at slowpath stage, tag 2495634194, type ATOMICPacket info: len 98 port 16 interface 16 vsys 1wqe index 9506 packet 0x0xc004036544, HA: 0, IC: 0Encap - l2o 68, macSwap 1, flow cookie 760302404Packet decoded dump:L2: 02:f9:2c:c2:72:5a->02:98:1b:da:a7:de, type 0x0800IP: 192.168.192.241->8.8.8.8, protocol 1version 4, ihl 5, tos 0x00, len 84,id 58918, frag_off 0x4000, ttl 254, checksum 55300(0x4d8)ICMP: type 8, code 0, checksum 40186, id 15258, seq 43Session setup: vsys 1PBF lookup (vsys 1) with application pingSession setup: ingress interface ethernet1/1 egress interface ethernet1/2 (zone 2)NAT policy lookup, matched rule index 0Policy lookup, matched rule index 0,TCI_INSPECT: Do TCI lookup policy - appid 318TCI_DECAP: policy not available for vsys 1Allocated new session 54908.set exclude_video in session 54908 0xe08aabff80 0 from work 0xe02d7c2700 0Rule: index=0 name=PAT-DEFAULT-OUTBOUND, cfg_pool_idx=1 cfg_fallback_pool_idx=0NAT Rule: name=PAT-DEFAULT-OUTBOUND, cfg_pool_idx=1; Session: index=54908, nat_pool_idx=1Packet matched vsys 1 NAT rule 'PAT-DEFAULT-OUTBOUND' (index 1),source translation 192.168.192.241/15258 => 172.20.200.40/15258Created session, enqueue to install. work 0xe02d7c2700 exclude_video 0,session 54908 0xe08aabff80 exclude_video 0

8.8.8.8 返回的数据包,在防火墙这里,发现以前的session,走NAT ,然后到GWLB 接口,发现是以前的GENEVE 流,直接走GWLB了

== 2021-11-02 19:31:47.745 -0700 ==Packet received at fastpath stage, tag 54908, type ATOMICPacket info: len 98 port 17 interface 17 vsys 1wqe index 9506 packet 0x0xc0062c0f40, HA: 0, IC: 0Packet decoded dump:L2: 02:e4:e2:3c:fb:08->02:37:ca:37:66:92, type 0x0800IP: 8.8.8.8->172.20.200.40, protocol 1version 4, ihl 5, tos 0x80, len 84,id 0, frag_off 0x0000, ttl 96, checksum 56533(0xd5dc)ICMP: type 0, code 0, checksum 42234, id 15258, seq 43IP checksum validNAT session, run address/port translationForwarding lookup, ingress interface 17L3 mode, router 1Route lookup in router 1, IP 192.168.192.241Route found, interface ethernet1/1, zone 1, nexthop 172.20.200.1Resolve ARP for IP 172.20.200.1 on interface ethernet1/1ARP entry found on interface 16Transmit packet size 84 on port 162021-11-02 19:31:47.745 -0700 pan_flow_phoenix_packet_encap(src_x86_64/pan_flow_linux.c:800): [GENEVE] cookie 1145786669Packet decoded dump:L2: 02:98:1b:da:a7:de->02:36:b5:b4:c9:c0, type 0x0800IP: 8.8.8.8->192.168.192.241, protocol 1version 4, ihl 5, tos 0x80, len 84,id 0, frag_off 0x0000, ttl 95, checksum 32713(0xc97f)ICMP: type 0, code 0, checksum 42234, id 15258, seq 43=== TX GENEVE re-encap flow cookie 1326721123 tag 54908 len: 154 port 16Packet decoded dump:L2: 02:98:1b:da:a7:de->02:36:b5:b4:c9:c0, type 0x0800IP: 172.20.200.4->172.20.200.14, protocol 17version 4, ihl 5, tos 0x00, len 140,id 0, frag_off 0x4000, ttl 8, checksum 9610(0x8a25)ICMP: type 127, code 214, checksum 6081, id 120, seq 0

如果在防火墙上没有 192.168.192.0 路由,那么查看log,防火墙直接丢弃,是返回的时候丢弃的哦。 23 192.168.192.0/20 172.20.200.1 ug ethernet1/1 1500

== 2021-11-02 19:45:54.122 -0700 ==Packet received at fastpath stage, tag 56169, type ATOMICPacket info: len 98 port 17 interface 17 vsys 1wqe index 20779 packet 0x0xc0032a1d40, HA: 0, IC: 0Packet decoded dump:L2: 02:e4:e2:3c:fb:08->02:37:ca:37:66:92, type 0x0800IP: 8.8.8.8->172.20.200.40, protocol 1version 4, ihl 5, tos 0x80, len 84,id 0, frag_off 0x0000, ttl 96, checksum 56533(0xd5dc)ICMP: type 0, code 0, checksum 57453, id 15319, seq 8IP checksum validNAT session, run address/port translationForwarding lookup, ingress interface 17L3 mode, router 1Route lookup in router 1, IP 192.168.192.241Route found, interface ethernet1/2, zone 2, nexthop 172.20.200.33Packet forwarded to different zone 2 than zone 1 in session 56169Packet dropped, forwarding does not match security rule <----防火墙上直接丢弃了

参考链接

防火墙 outbound PAT 配置

admin@PA-VM# show rulebase nat rules PAT-DEFAULT-OUTBOUNDset rulebase nat rules PAT-DEFAULT-OUTBOUND source-translation dynamic-ip-and-port interface-address interface ethernet1/2set rulebase nat rules PAT-DEFAULT-OUTBOUND to UNTRUSTset rulebase nat rules PAT-DEFAULT-OUTBOUND from GWLBset rulebase nat rules PAT-DEFAULT-OUTBOUND source anyset rulebase nat rules PAT-DEFAULT-OUTBOUND destination anyset rulebase nat rules PAT-DEFAULT-OUTBOUND service any

防火墙路由情况,必须得有192.168.192.0/20 (APP VPC)的路由,否则不通,为什么呢??? admin@PA-VM# run show routing routeVIRTUAL ROUTER: default (id 1)

destination nexthop metric flags age interface next-AS0.0.0.0/0 172.20.200.33 10 A S ethernet1/2172.20.200.0/24 172.20.200.1 10 A S ethernet1/1172.20.200.0/28 172.20.200.4 0 A C ethernet1/1172.20.200.4/32 0.0.0.0 0 A H172.20.200.16/28 172.20.200.1 10 A S ethernet1/1172.20.200.32/28 172.20.200.40 0 A C ethernet1/2172.20.200.40/32 0.0.0.0 0 A H172.21.4.0/22 172.20.200.1 10 A S ethernet1/1192.168.192.0/20 172.20.200.1 10 A S ethernet1/1

下面是Palo Alto VPC 路由配置 PaloAlto-SEC-VPC 172.20.200.0/24

Main route 172.20.200.0/24 local 0.0.0.0/0 igw-06810a091198c0e54

GWLBE 172.20.200.48/28route: 172.20.200.0/24 local

GWLB 172.20.200.0/28route: 72.20.200.0/24 local

MGMT 172.20.200.16/28route: 172.20.200.0/24 local 0.0.0.0/0 igw-06810a091198c0e54

UNTRUST 172.20.200.32/28172.20.200.0/24 local 0.0.0.0/0 igw-06810a091198c0e54

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:failed calling webhook "webhook.cert-manager.io"
下一篇:java的GUI实现简单切换界面
相关文章

 发表评论

暂时没有评论,来抢沙发吧~