更新时间:2018-08-10 19:00
10.46.189.9
和
10.81.61.15
通过IPIP隧道互通。网络拓扑图如下所示。
注:
在北京和杭州节点各购买两个ECS实例,一个作为测试机,一台作为IPIP网关。 北京节点下ECS实例10.46.189.9
作为测试机,10.46.184.62
作为IPIP隧道网关。 杭州节点下ECS实例10.81.61.15
作为测试机,10.29.180.7
作为IPIP隧道网关。192.168.1.1
和192.168.1.2
作为隧道的互联地址。
10.46.184.62
地址,
依次执行如下命令,进行配置。
echo 1 > /proc/sys/net/ipv4/ip_forward ##开始路由转发
modprobe ipip ##加载 ipip 模块
ip tunnel add tun1 mode ipip local 47.X.X.107 remote 101.X.X.109 ##创建 IPIP 隧道
ip link set tun1 up ##启动 tun1 隧道
ip addr add 192.168.1.1 peer 192.168.1.2 dev tun1 ##隧道配置互联地址
route add -host 10.29.180.7 dev tun1 ##配置路由
route add -host 10.81.61.15 dev tun1 ##配置路由
route -n
命令检查配置。系统显示类似如下。
10.29.180.7
地址,
依次执行如下命令,进行配置。
echo 1 > /proc/sys/net/ipv4/ip_forward ##开始路由转发
modprobe ipip ##加载 ipip 模块
ip tunnel add tun1 mode ipip local 101.X.X.109 remote 47.X.X.107 ##创建 IPIP 隧道
ip link set tun1 up ##启动 tun1 隧道
ip addr add 192.168.1.2 peer 192.168.1.1 dev tun1 ##隧道配置互联地址
route add -host 10.46.184.62 dev tun1 ##配置路由
route add -host 10.46.189.9 dev tun1 ##配置路由
route -n
命令检查配置。系统显示类似如下。
10.46.184.62
和
10.29.180.7
能够互通,说明经典网络下搭建IPIP隧道是可以的。但是在北京IPIP网关
10.46.184.62
上访问杭州节点测试机
10.81.61.15
不通,在北京测试机
10.46.189.9
上访问杭州节点测试机
10.81.61.15
不通。测试结果未达到预期。
10.46.184.62
上,执行如下命令,进行抓包。
tcpdump -nnei tun1
10.46.184.62
上,执行如下命令,进行抓包。
tcpdump -nnei tun1
10.81.61.15
上抓包,没有抓到任何报文。说明在杭州IPIP网关到杭州测试ECS之间网络异常,原因是由于ECS上有对源地址保护,看到不是ECS的地址直接被丢弃。所以在杭州IPIP网关
10.46.184.62
上要做SNAT,将地址转换为
10.46.184.62
才能正常访问,配置如下所示。
iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 10.29.180.7
iptables -t nat -I POSTROUTING -s 10.46.184.62/32 -j SNAT --to-source 10.29.180.7
iptables -t nat -I POSTROUTING -s 10.46.189.9/32 -j SNAT --to-source 10.29.180.7
注:配置第一条192.168.1.0/24
后,在北京IPIP网关上向杭州测试ECS就能通。后面两条策略是为了后面测试所需。
10.46.189.9
上访问杭州节点测试机
10.81.61.15
时,要把请求先转发到北京IPIP网关
10.46.184.62
上。但是经典网络下无法自定义路由,所以没有办法直接通过路由访问,所以需要在北京IPIP网关
10.46.184.62
上做个DNAT映射。设置如下所示。
iptables -t nat -A PREROUTING -d 10.46.184.62 -p tcp --dport 1234 -j DNAT --to-destination 10.81.61.15:1234
注:在10.81.61.15
上启动了一个1234端口做测试。
10.46.184.62
上,执行如下命令,进行抓包。
tcpdump -nnei any port 1234
10.46.184.62
上,执行如下命令,进行抓包。
tcpdump -nnei any port 1234
10.81.61.15
上,执行如下命令,进行抓包。
tcpdump -nnei any port 1234
10.81.61.15
,并且把请求放到隧道里面。
10.46.184.62
,然后去请求
10.81.61.15
。
在文档使用中是否遇到以下问题
更多建议
匿名提交