Networking

Linux路由 - 同一子網上的跳躍伺服器

  • March 18, 2019

我試圖讓一個非常簡單的設置工作,

我有 2 個 AWS ec2 實例(藍色),

實例 B 有一個 Ipsec VPN 進入我們的數據中心,並且可以 ping 這個數據中心的內部 IP,即伺服器 C (192.168.40.21)

在此處輸入圖像描述

我需要 ec2 A 實例能夠通過使用 B 作為躍點來 ping 並連接到伺服器 C。A和B都在同一個子網上。我嘗試在A上添加B的IP作為網關,

 root@A>  ip route add 192.168.40.0/24 via 172.25.25.200

並在 B 上設置防火牆規則以轉發流量(sysctl ip4 forwarding = 1),

root@B>
iptables -A FORWARD -s 0/0 -d 172.25.25.0/24 -j ACCEPT
iptables -A FORWARD -s 172.25.25.0/24 -d 0/0 -j ACCEPT
iptables -t nat -A POSTROUTING -d 0/0 -s 172.25.25.0/24 -j MASQUERADE

但我無法從 A ping C。我錯過了什麼?

所有主機都是 Centos 7。

謝謝你。

預設情況下,EC2 實例在其網路介面上啟用源/目標檢查,這意味著除非您禁用它,否則它們將無法用作路由器。請參閱https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html#EIP_Disable_SrcDestCheck

通常iptables有阻止轉發流量的標準規則。您應該刪除它以允許流量通過。

您應該刪除規則:

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

引用自:https://serverfault.com/questions/958330