本节我们将基于上节提到的第二种场景,搭建模拟环境进行实验
左侧的on-premise
网段是172.31.0.0/16
, 右侧AWS网段是10.100.0.0/16
:
左边on-premise
机器,我们用AWS VPC
的机器来模拟
右边AWS的环境我们在第二章已经创建好对应的VPC,且在上节的实验创建了Private Hosted Zone
, 并成功解析了ikun
内网域名:
将两个VPC进行peering。这样我们就能假装两者是通过VPN/DX
连通了,反正我们只要网络连通就行,原理都是一样的
进入VPC页面,点击Create peering connections
:
选择两个VPC建立Peering:
创建Peering完成后,还需要接收请求:
这样172.31.0.0/16
和10.100.0.0/16
两个网段的Peering建立完成。
我们还需要分别更新他们的路由表,这样才能真正互相访问:
此时在172.31.0.0/16
下能ping通对方的机器。
接下来,我们的目标是让172.31.0.0/16
的机器能够成功解析出ikun
内网域名
在10.100.0.0/16
网段创建一台ubuntu 18.04机器
注意不是Amazon Linux系统,amazon linux不能安装bind9
选择ubuntu 18.04,如果是22.04启动bind9时会出错
创建ubuntu完成后,登录到上面,然后进入root:
ssh -i keypair1.pem ubuntu@34.208.0.253
sudo su
运行下面命令进行安装bind server:
apt update
apt install bind9 bind9utils bind9-doc
编辑/etc/bind/named.conf.options
, 内容如下:
acl "trusted" {
172.31.0.0/16;
10.100.0.0/16;
localhost;
localnets;
};
options {
directory "/var/cache/bind";
recursion yes;
allow-query { trusted; };
forwarders {
10.100.0.2;
};
forward only;
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside auto;
auth-nxdomain no;
listen-on-v6 { any; };
};
forwarders
里面的IP,换成本VPC的DNS Server,可以从/etc/resolv.conf
里面找到(本网段的第二个IP)
acl “trusted"里面的IP段是bind server的白名单,很明显我们要允许两个网段都能访问它。如果不在白名单内,请求这个bind server时会报以下错误:
然后重启服务 service bind9 restart
此时使用本机当DNS服务器进行解析:
这说明从本机当DNS服务器,可以成功解析内网域名。
bind server在本地的53端口监听:
On-premise
解析测试注意一定要放通bind server安全组的53端口给两个网段访问:
从内网的另一台机器进行nslookup,也可以成功解析
从172.31.0.0/31
的机器,也可以成功解析:
通过以上实验,我们搭建bind server来完成了on-premise
到AWS的域名解析,这种方式需要我们搭建服务器,很明显高可用、弹性扩展是一个我们需要考虑的问题。所以引出了下一节的outbound/inbound endpoint