基础设施设置:
- 使用 192.168.254.0/24 网络创建 VPC
- 使用 192.168.254.0/25 网络创建 VPC(虚拟私有云)内的私有子网
- 使用 192.168.254.128/28 网络创建 VPC 内的公共子网
- 私有子网中有 5 个奇数个 ubuntu 服务器,它们通过公共子网中创建的跳转服务器(这也是一个 ubuntu 服务器)访问互联网
- 公共子网中还有一个与跳转服务器一起的 Web 服务器。
- 只有公共子网中的跳转服务器和 Web 服务器才与弹性 IP / 公共 IP 相关联。(两个服务器都有自己的弹性 / 公共 IP)
跳转服务器具有来自公共子网的两个私有 IP,分配给 2 个不同的物理以太网适配器
- 192.168.254.135 (eth0 - 主) 此 IP 还分配有弹性 IP/公共 IP
- 192.168.254.134 (eth1 - 次要) 此 IP 未分配弹性 IP
- 位于公共子网中的 Web 服务器已分配私有 IP 192.168.254.136
- 私有子网中的所有服务器都没有互联网网关,因为它们的互联网流量是通过公共子网中的跳转服务器路由的。
- 私有子网也没有在其路由中分配互联网网关
- 私有子网中的所有服务器都能够通过跳转服务器成功获得互联网连接,没有任何问题。
- 通过路由和安全组(即所有协议和所有端口上的防火墙),公共子网中允许完整范围的私有子网,反之亦然从公共子网到私有子网。
- 公共子网中的所有服务器都能够 ping 或连接 192.168.254.135 ip,这是跳转服务器的主 IP,但他们无法 ping 通辅助 IP 192.168.254.134
- 从跳转服务器,我可以 ping 通分配给它的两个私有 IP。
- 位于公共子网中的 Web 服务器也只能 ping 跳转服务器的主 IP。
- Jump 服务器是一个 t2.micro 实例,根据 aws 文档这里我们将能够使用 2 个物理 NIC。
- 从 Jump 服务器我们允许 IPv4 转发并且它运行良好。
- 从跳转服务器显示两个网卡均已启动并正在运行
以下是 Jump Server 的更多详细信息:
root@ip-192-168-254-135:~# ifup eth1
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth1/0e:f8:f2:11:7d:bd
Sending on LPF/eth1/0e:f8:f2:11:7d:bd
Sending on Socket/fallback
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 3 (xid=0x651f3853)
DHCPREQUEST of 192.168.254.134 on eth1 to 255.255.255.255 port 67 (xid=0x651f3853)
DHCPOFFER of 192.168.254.134 from 192.168.254.129
DHCPACK of 192.168.254.134 from 192.168.254.129
bound to 192.168.254.134 -- renewal in 1602 seconds.
root@ip-192-168-254-135:~# ifconfig -a | egrep 'eth|inet.*192.168'
eth0 Link encap:Ethernet HWaddr 0e:1c:ca:ae:cd:3e
inet addr:192.168.254.135 Bcast:192.168.254.143 Mask:255.255.255.240
eth1 Link encap:Ethernet HWaddr 0e:f8:f2:11:7d:bd
inet addr:192.168.254.134 Bcast:192.168.254.143 Mask:255.255.255.240
root@ip-192-168-254-135:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.254.129 0.0.0.0 UG 0 0 0 eth0
192.168.254.128 0.0.0.0 255.255.255.240 U 0 0 0 eth0
192.168.254.128 0.0.0.0 255.255.255.240 U 0 0 0 eth1
root@ip-192-168-254-135:~# ip rule list
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
root@ip-192-168-254-135:~# ping -c2 192.168.254.134
PING 192.168.254.134 (192.168.254.134) 56(84) bytes of data.
64 bytes from 192.168.254.134: icmp_seq=1 ttl=64 time=0.031 ms
64 bytes from 192.168.254.134: icmp_seq=2 ttl=64 time=0.039 ms
--- 192.168.254.134 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.031/0.035/0.039/0.004 ms
root@ip-192-168-254-135:~# ip route list
default via 192.168.254.129 dev eth0
192.168.254.128/28 dev eth0 proto kernel scope link src 192.168.254.135
192.168.254.128/28 dev eth1 proto kernel scope link src 192.168.254.134
root@ip-192-168-254-135:~# cat /etc/iproute2/rt_tables
######
###### reserved values
######
255 local
254 main
253 default
0 unspec
######
###### local
######
######1 inr.ruhep
root@ip-192-168-254-135:~#
有人能解释一下为什么我们无法从任何地方 ping 通 Jump 服务器的辅助 IP 吗?除了跳转服务器本身之外。来自私有子网和公共子网的所有其他服务器都能够 ping 跳转服务器的主 IP,但不能 ping 辅助 IP。跳转服务器和来自两个子网的所有其他服务器允许从其各自的本地防火墙传入来自 VPC 所有子网的所有流量/连接。
答案1
您有两个选项可以解决该问题。
1) 为 eth0 分配 2 个 IP(可以从 ec2 控制台进行),您需要使用“ip addr add ...”来配置第二个 IP。2) 配置基于源的路由。可能的答案:https://superuser.com/questions/638044/source-based-policy-routing-nat-dnat-snat-aka-multi-wans-on-centos-5