Oracle Cloud: 온프레미스에서 VPN을 통해 Object Storage에 액세스해 보았습니다.
13655 단어 오라클loadbalancerObjectStorageoci프록시
■목적
Object Storage는 Private IP가 없기 때문에 인터넷으로 액세스하게 되지만 HTTPS로 액세스하므로 암호화되어 안전합니다.
이번에는 굳이 Private IP에서 액세스할 수 있도록 Squid의 Proxy Server 경유로 Object Strage에 액세스시켜 보겠습니다.
■ 네트워크 구성
■ 네트워크 구성 만들기
・상기의 구성을 Terraform등 사용해 조금 작성합니다
이 절차는 Proxy Server 설치에서 설명합니다.
■ Proxy Server 구축
● Proxy Server용 Linux 인스턴스 생성
Private Subnet에 Compute Instance 만들기
●NAT Gateway 작성
NAT 게이트웨이 설정
yum 설치하려면 Internet 액세스가 필요합니다.
이번에는 Private Subnet에 Server를 구축하기 때문에 Public IP가 없습니다.
따라서 NAT Gatway를 통해 squid를 설치합니다.
● squid 설치
# yum install squid
[root@squid-proxy opc]# yum install -y squid
・・・
インストール:
squid.x86_64 7:3.5.20-12.el7
依存性関連をインストールしました:
libecap.x86_64 0:1.0.0-1.el7
libtool-ltdl.x86_64 0:2.4.2-22.el7_3
perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7
perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
perl-DBI.x86_64 0:1.627-4.el7
perl-Data-Dumper.x86_64 0:2.145-3.el7
perl-Digest.noarch 0:1.17-245.el7
perl-Digest-MD5.x86_64 0:2.52-3.el7
perl-IO-Compress.noarch 0:2.061-2.el7
perl-Net-Daemon.noarch 0:0.48-5.el7
perl-PlRPC.noarch 0:0.2020-14.el7
squid-migration-script.x86_64 7:3.5.20-12.el7
完了しました!
설치가 완료된 후 인터넷 액세스가 필요하지 않은 경우 NAT 게이트웨이를 [Block Traffic] 또는 삭제합니다.
●squid 설정
① Proxy 서버에 액세스 가능한 CIDR 등록 및 whitelist 동작 설정
vi에서 다음 정보 추가
[root@squid-proxy ~]# cp /etc/squid/squid.conf /etc/squid/squid.conf.org
[root@squid-proxy ~]# vi /etc/squid/squid.conf
# should be allowed
acl localnet src 10.0.0.0/16
acl localnet src 172.24.0.0/16
# Squid normally listens to port 3128
http_port 3128
# Wite List
acl whitelist dstdomain "/etc/squid/whitelist"
http_access allow whitelist
② 화이트리스트 설정
필요한 Region의 Object StorageURL 등록
[root@squid-proxy ~]# vi /etc/squid/whitelist
objectstorage.us-ashburn-1.oraclecloud.com
③Squid 기동
[root@squid-proxy ~]# service squid restart
[root@squid-proxy ~]# systemctl status squid.service
● squid.service - Squid caching proxy
Loaded: loaded (/usr/lib/systemd/system/squid.service; disabled; vendor preset: disabled)
Active: active (running) since 日 2019-01-20 23:04:19 GMT; 16h ago
Process: 12721 ExecStop=/usr/sbin/squid -k shutdown -f $SQUID_CONF (code=exited, status=0/SUCCESS)
Process: 12729 ExecStart=/usr/sbin/squid $SQUID_OPTS -f $SQUID_CONF (code=exited, status=0/SUCCESS)
Process: 12724 ExecStartPre=/usr/libexec/squid/cache_swap.sh (code=exited, status=0/SUCCESS)
Main PID: 12732 (squid)
CGroup: /system.slice/squid.service
├─12732 /usr/sbin/squid -f /etc/squid/squid.conf
├─12734 (squid-1) -f /etc/squid/squid.conf
└─12735 (logfile-daemon) /var/log/squid/access.log
1月 20 23:04:19 squid-proxy systemd[1]: Starting Squid caching proxy...
1月 20 23:04:19 squid-proxy systemd[1]: Started Squid caching proxy.
1月 20 23:04:19 squid-proxy squid[12732]: Squid Parent: will start 1 kids
1月 20 23:04:19 squid-proxy squid[12732]: Squid Parent: (squid-1) process 12734 started
④firewalld 설정
Squid 사용 Port 3128을 통과하도록 설정
[root@squid-proxy ~]# firewall-cmd --permanent --add-port=3128/tcp
success
[root@squid-proxy ~]# systemctl restart firewalld
■Private Load Balancer 구축
Proxy Server의 로드 균형 조정 및 중복을 위해 Load Balancer 배포
●Private Load Balancer 작성
Load Balancer 화면에서 [Create Load Balancer] 버튼을 클릭하고 다음 정보를 입력하여 생성
・Listener Information
- Protocol:TCP
- PORT:3128
・Backend Set Information
- IP Address: Squid Proxy ServerのPrivate IP Addressを登録
- Port:3128
・Health Check
- Protocol:TCP
- PORT:3128
●Backend Sets Health 확인
Backend Set가 등록되어 프록시 서버와 통신할 수 있는지 확인
■ 동작 확인
온프레미스 인스턴스에서 직접 object 스토리지에 액세스할 수 있는지 확인합니다.
여기에서는 OCI Command Line Interface (CLI)를 사용하여 액세스합니다.
● proxy 설정 전 확인 : 에러 나오는 것 확인
Private Subnet에서 직접 연결할 수 없는지 확인
[root@test-Inst01 ~]$ oci os bucket list --query 'data[*]."name"|[0]'
Usage: oci os bucket list [OPTIONS]
Error: Unable to retrieve namespace internally. Please provide the namespace using the option "--['namespace-name']".
● 프록시 환경 변수 설정
프록시를 통한 설정
이번에는 Load Barancer를 사용하고 있기 때문에 Load Barancer의 Listener IP (10.0.0.8)를 설정합니다.
[root@test-Inst01 ~]$ export https_proxy="10.0.0.8:3128"
[root@test-Inst01 ~]$ env | grep proxy
https_proxy=10.0.0.8:3128
● bucket 액세스 확인
프록시를 통해 액세스할 수 있는지 확인
[root@test-Inst01 ~]$ oci os bucket list --query 'data[*]."name"|[0]'
"Proxy-Bucket"
● 프록시 서버 (Squid)를 통해 액세스되었는지 확인
Squid LOG 확인하고 Load Balancer IP에서 objectstorage에 액세스하는지 확인
[root@squid-proxy squid]# tail -f /var/log/squid/access.log
1548078960.163 282 10.0.0.7 TCP_TUNNEL/200 4107 CONNECT objectstorage.us-ashburn-1.oraclecloud.com:443 - HIER_DIRECT/134.70.100.100 -
1548078960.553 273 10.0.0.7 TCP_TUNNEL/200 4540 CONNECT objectstorage.us-ashburn-1.oraclecloud.com:443 - HIER_DIRECT/134.70.100.100 -
● 테스트 파일 전송
[root@test-Inst01 ~]$ oci os object put -bn Proxy-Bucket --file /tmp/test-file01.txt --name test-file01.txt --no-multipart
{
"etag": "A1A66A5F1E975E053024",
"last-modified": "Mon, 21 Jan 2019 15:32:47 GMT",
"opc-content-md5": "2M2Y8AsgTpgAmY=="
}
● 테스트 파일 확인
[root@test-Inst01 ~]$ oci os object list -bn Proxy-Bucket --output table
+---------------------+-----------------+------+----------------------------------+
| md5 | name | size | time-created |
+---------------------+-----------------+------+----------------------------------+
| 2M2Y8AsgTpgAmY7Ph== | test-file01.txt | 0 | 2019-01-21T15:32:47.298000+00:00 |
+---------------------+-----------------+------+----------------------------------+
prefixes: []
■부록
●Load Balancer의 IP 확인
OCI의 Load Balancer(LB)는 투명하게 Active/Standby로 구성되어 있으며 IP는 자동 번호가 매겨집니다.
LB로부터, Backend Servers가 되는 Squid에의 Poring 하고 있기 때문에
그 자동 번호 매겨진 Active/Standby 각각의 IP는, Squid 서버로 tcpdump를 취하는 것으로 확인할 수 있습니다
[root@squid-proxy opc]# tcpdump -n -i ens3 port 3128
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens3, link-type EN10MB (Ethernet), capture size 262144 bytes
01:19:23.588100 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [S], seq 915959842, win 26880, options [mss 8960,sackOK,TS val 2815064024 ecr 0,nop,wscale 7], length 0
01:19:23.588149 IP 10.0.10.11.squid > 10.0.0.6.50286: Flags [S.], seq 495790511, ack 915959843, win 26844, options [mss 8960,sackOK,TS val 322500794 ecr 2815064024,nop,wscale 7], length 0
01:19:23.588250 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [.], ack 1, win 210, options [nop,nop,TS val 2815064024 ecr 322500794], length 0
01:19:23.588719 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [F.], seq 1, ack 1, win 210, options [nop,nop,TS val 2815064024 ecr 322500794], length 0
01:19:23.588777 IP 10.0.10.11.squid > 10.0.0.6.50286: Flags [F.], seq 1, ack 2, win 210, options [nop,nop,TS val 322500795 ecr 2815064024], length 0
01:19:23.588874 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [.], ack 2, win 210, options [nop,nop,TS val 2815064024 ecr 322500795], length 0
01:19:25.019310 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [S], seq 2132021857, win 26880, options [mss 8960,sackOK,TS val 2733706381 ecr 0,nop,wscale 7], length 0
01:19:25.019349 IP 10.0.10.11.squid > 10.0.0.7.50304: Flags [S.], seq 117296909, ack 2132021858, win 26844, options [mss 8960,sackOK,TS val 1898647448 ecr 2733706381,nop,wscale 7], length 0
01:19:25.019444 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [.], ack 1, win 210, options [nop,nop,TS val 2733706382 ecr 1898647448], length 0
01:19:25.020022 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [F.], seq 1, ack 1, win 210, options [nop,nop,TS val 2733706382 ecr 1898647448], length 0
01:19:25.020099 IP 10.0.10.11.squid > 10.0.0.7.50304: Flags [F.], seq 1, ack 2, win 210, options [nop,nop,TS val 1898647449 ecr 2733706382], length 0
01:19:25.020189 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [.], ack 2, win 210, options [nop,nop,TS val 2733706382 ecr 1898647449], length 0
위의 실행 결과에 따라 다음이 LB의 IP가됩니다.
VIP: 10.0.0.8 (OCI 콘솔에서 확인할 수 있는 IP)
Active: 10.0.0.7 (Client에서 Squid에 액세스한 LOG에서 확인한 IP)
Stanby: 10.0.0.6 (tcpdump에서 확인한 IP)
Reference
이 문제에 관하여(Oracle Cloud: 온프레미스에서 VPN을 통해 Object Storage에 액세스해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shirok/items/dc3908c85b6bd448fed9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
■ 네트워크 구성 만들기
・상기의 구성을 Terraform등 사용해 조금 작성합니다
이 절차는 Proxy Server 설치에서 설명합니다.
■ Proxy Server 구축
● Proxy Server용 Linux 인스턴스 생성
Private Subnet에 Compute Instance 만들기
●NAT Gateway 작성
NAT 게이트웨이 설정
yum 설치하려면 Internet 액세스가 필요합니다.
이번에는 Private Subnet에 Server를 구축하기 때문에 Public IP가 없습니다.
따라서 NAT Gatway를 통해 squid를 설치합니다.
● squid 설치
# yum install squid
[root@squid-proxy opc]# yum install -y squid
・・・
インストール:
squid.x86_64 7:3.5.20-12.el7
依存性関連をインストールしました:
libecap.x86_64 0:1.0.0-1.el7
libtool-ltdl.x86_64 0:2.4.2-22.el7_3
perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7
perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
perl-DBI.x86_64 0:1.627-4.el7
perl-Data-Dumper.x86_64 0:2.145-3.el7
perl-Digest.noarch 0:1.17-245.el7
perl-Digest-MD5.x86_64 0:2.52-3.el7
perl-IO-Compress.noarch 0:2.061-2.el7
perl-Net-Daemon.noarch 0:0.48-5.el7
perl-PlRPC.noarch 0:0.2020-14.el7
squid-migration-script.x86_64 7:3.5.20-12.el7
完了しました!
설치가 완료된 후 인터넷 액세스가 필요하지 않은 경우 NAT 게이트웨이를 [Block Traffic] 또는 삭제합니다.
●squid 설정
① Proxy 서버에 액세스 가능한 CIDR 등록 및 whitelist 동작 설정
vi에서 다음 정보 추가
[root@squid-proxy ~]# cp /etc/squid/squid.conf /etc/squid/squid.conf.org
[root@squid-proxy ~]# vi /etc/squid/squid.conf
# should be allowed
acl localnet src 10.0.0.0/16
acl localnet src 172.24.0.0/16
# Squid normally listens to port 3128
http_port 3128
# Wite List
acl whitelist dstdomain "/etc/squid/whitelist"
http_access allow whitelist
② 화이트리스트 설정
필요한 Region의 Object StorageURL 등록
[root@squid-proxy ~]# vi /etc/squid/whitelist
objectstorage.us-ashburn-1.oraclecloud.com
③Squid 기동
[root@squid-proxy ~]# service squid restart
[root@squid-proxy ~]# systemctl status squid.service
● squid.service - Squid caching proxy
Loaded: loaded (/usr/lib/systemd/system/squid.service; disabled; vendor preset: disabled)
Active: active (running) since 日 2019-01-20 23:04:19 GMT; 16h ago
Process: 12721 ExecStop=/usr/sbin/squid -k shutdown -f $SQUID_CONF (code=exited, status=0/SUCCESS)
Process: 12729 ExecStart=/usr/sbin/squid $SQUID_OPTS -f $SQUID_CONF (code=exited, status=0/SUCCESS)
Process: 12724 ExecStartPre=/usr/libexec/squid/cache_swap.sh (code=exited, status=0/SUCCESS)
Main PID: 12732 (squid)
CGroup: /system.slice/squid.service
├─12732 /usr/sbin/squid -f /etc/squid/squid.conf
├─12734 (squid-1) -f /etc/squid/squid.conf
└─12735 (logfile-daemon) /var/log/squid/access.log
1月 20 23:04:19 squid-proxy systemd[1]: Starting Squid caching proxy...
1月 20 23:04:19 squid-proxy systemd[1]: Started Squid caching proxy.
1月 20 23:04:19 squid-proxy squid[12732]: Squid Parent: will start 1 kids
1月 20 23:04:19 squid-proxy squid[12732]: Squid Parent: (squid-1) process 12734 started
④firewalld 설정
Squid 사용 Port 3128을 통과하도록 설정
[root@squid-proxy ~]# firewall-cmd --permanent --add-port=3128/tcp
success
[root@squid-proxy ~]# systemctl restart firewalld
■Private Load Balancer 구축
Proxy Server의 로드 균형 조정 및 중복을 위해 Load Balancer 배포
●Private Load Balancer 작성
Load Balancer 화면에서 [Create Load Balancer] 버튼을 클릭하고 다음 정보를 입력하여 생성
・Listener Information
- Protocol:TCP
- PORT:3128
・Backend Set Information
- IP Address: Squid Proxy ServerのPrivate IP Addressを登録
- Port:3128
・Health Check
- Protocol:TCP
- PORT:3128
●Backend Sets Health 확인
Backend Set가 등록되어 프록시 서버와 통신할 수 있는지 확인
■ 동작 확인
온프레미스 인스턴스에서 직접 object 스토리지에 액세스할 수 있는지 확인합니다.
여기에서는 OCI Command Line Interface (CLI)를 사용하여 액세스합니다.
● proxy 설정 전 확인 : 에러 나오는 것 확인
Private Subnet에서 직접 연결할 수 없는지 확인
[root@test-Inst01 ~]$ oci os bucket list --query 'data[*]."name"|[0]'
Usage: oci os bucket list [OPTIONS]
Error: Unable to retrieve namespace internally. Please provide the namespace using the option "--['namespace-name']".
● 프록시 환경 변수 설정
프록시를 통한 설정
이번에는 Load Barancer를 사용하고 있기 때문에 Load Barancer의 Listener IP (10.0.0.8)를 설정합니다.
[root@test-Inst01 ~]$ export https_proxy="10.0.0.8:3128"
[root@test-Inst01 ~]$ env | grep proxy
https_proxy=10.0.0.8:3128
● bucket 액세스 확인
프록시를 통해 액세스할 수 있는지 확인
[root@test-Inst01 ~]$ oci os bucket list --query 'data[*]."name"|[0]'
"Proxy-Bucket"
● 프록시 서버 (Squid)를 통해 액세스되었는지 확인
Squid LOG 확인하고 Load Balancer IP에서 objectstorage에 액세스하는지 확인
[root@squid-proxy squid]# tail -f /var/log/squid/access.log
1548078960.163 282 10.0.0.7 TCP_TUNNEL/200 4107 CONNECT objectstorage.us-ashburn-1.oraclecloud.com:443 - HIER_DIRECT/134.70.100.100 -
1548078960.553 273 10.0.0.7 TCP_TUNNEL/200 4540 CONNECT objectstorage.us-ashburn-1.oraclecloud.com:443 - HIER_DIRECT/134.70.100.100 -
● 테스트 파일 전송
[root@test-Inst01 ~]$ oci os object put -bn Proxy-Bucket --file /tmp/test-file01.txt --name test-file01.txt --no-multipart
{
"etag": "A1A66A5F1E975E053024",
"last-modified": "Mon, 21 Jan 2019 15:32:47 GMT",
"opc-content-md5": "2M2Y8AsgTpgAmY=="
}
● 테스트 파일 확인
[root@test-Inst01 ~]$ oci os object list -bn Proxy-Bucket --output table
+---------------------+-----------------+------+----------------------------------+
| md5 | name | size | time-created |
+---------------------+-----------------+------+----------------------------------+
| 2M2Y8AsgTpgAmY7Ph== | test-file01.txt | 0 | 2019-01-21T15:32:47.298000+00:00 |
+---------------------+-----------------+------+----------------------------------+
prefixes: []
■부록
●Load Balancer의 IP 확인
OCI의 Load Balancer(LB)는 투명하게 Active/Standby로 구성되어 있으며 IP는 자동 번호가 매겨집니다.
LB로부터, Backend Servers가 되는 Squid에의 Poring 하고 있기 때문에
그 자동 번호 매겨진 Active/Standby 각각의 IP는, Squid 서버로 tcpdump를 취하는 것으로 확인할 수 있습니다
[root@squid-proxy opc]# tcpdump -n -i ens3 port 3128
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens3, link-type EN10MB (Ethernet), capture size 262144 bytes
01:19:23.588100 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [S], seq 915959842, win 26880, options [mss 8960,sackOK,TS val 2815064024 ecr 0,nop,wscale 7], length 0
01:19:23.588149 IP 10.0.10.11.squid > 10.0.0.6.50286: Flags [S.], seq 495790511, ack 915959843, win 26844, options [mss 8960,sackOK,TS val 322500794 ecr 2815064024,nop,wscale 7], length 0
01:19:23.588250 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [.], ack 1, win 210, options [nop,nop,TS val 2815064024 ecr 322500794], length 0
01:19:23.588719 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [F.], seq 1, ack 1, win 210, options [nop,nop,TS val 2815064024 ecr 322500794], length 0
01:19:23.588777 IP 10.0.10.11.squid > 10.0.0.6.50286: Flags [F.], seq 1, ack 2, win 210, options [nop,nop,TS val 322500795 ecr 2815064024], length 0
01:19:23.588874 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [.], ack 2, win 210, options [nop,nop,TS val 2815064024 ecr 322500795], length 0
01:19:25.019310 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [S], seq 2132021857, win 26880, options [mss 8960,sackOK,TS val 2733706381 ecr 0,nop,wscale 7], length 0
01:19:25.019349 IP 10.0.10.11.squid > 10.0.0.7.50304: Flags [S.], seq 117296909, ack 2132021858, win 26844, options [mss 8960,sackOK,TS val 1898647448 ecr 2733706381,nop,wscale 7], length 0
01:19:25.019444 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [.], ack 1, win 210, options [nop,nop,TS val 2733706382 ecr 1898647448], length 0
01:19:25.020022 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [F.], seq 1, ack 1, win 210, options [nop,nop,TS val 2733706382 ecr 1898647448], length 0
01:19:25.020099 IP 10.0.10.11.squid > 10.0.0.7.50304: Flags [F.], seq 1, ack 2, win 210, options [nop,nop,TS val 1898647449 ecr 2733706382], length 0
01:19:25.020189 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [.], ack 2, win 210, options [nop,nop,TS val 2733706382 ecr 1898647449], length 0
위의 실행 결과에 따라 다음이 LB의 IP가됩니다.
VIP: 10.0.0.8 (OCI 콘솔에서 확인할 수 있는 IP)
Active: 10.0.0.7 (Client에서 Squid에 액세스한 LOG에서 확인한 IP)
Stanby: 10.0.0.6 (tcpdump에서 확인한 IP)
Reference
이 문제에 관하여(Oracle Cloud: 온프레미스에서 VPN을 통해 Object Storage에 액세스해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shirok/items/dc3908c85b6bd448fed9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
● Proxy Server용 Linux 인스턴스 생성
Private Subnet에 Compute Instance 만들기
●NAT Gateway 작성
NAT 게이트웨이 설정
yum 설치하려면 Internet 액세스가 필요합니다.
이번에는 Private Subnet에 Server를 구축하기 때문에 Public IP가 없습니다.
따라서 NAT Gatway를 통해 squid를 설치합니다.
● squid 설치
# yum install squid
[root@squid-proxy opc]# yum install -y squid
・・・
インストール:
squid.x86_64 7:3.5.20-12.el7
依存性関連をインストールしました:
libecap.x86_64 0:1.0.0-1.el7
libtool-ltdl.x86_64 0:2.4.2-22.el7_3
perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7
perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
perl-DBI.x86_64 0:1.627-4.el7
perl-Data-Dumper.x86_64 0:2.145-3.el7
perl-Digest.noarch 0:1.17-245.el7
perl-Digest-MD5.x86_64 0:2.52-3.el7
perl-IO-Compress.noarch 0:2.061-2.el7
perl-Net-Daemon.noarch 0:0.48-5.el7
perl-PlRPC.noarch 0:0.2020-14.el7
squid-migration-script.x86_64 7:3.5.20-12.el7
完了しました!
설치가 완료된 후 인터넷 액세스가 필요하지 않은 경우 NAT 게이트웨이를 [Block Traffic] 또는 삭제합니다.
●squid 설정
① Proxy 서버에 액세스 가능한 CIDR 등록 및 whitelist 동작 설정
vi에서 다음 정보 추가
[root@squid-proxy ~]# cp /etc/squid/squid.conf /etc/squid/squid.conf.org
[root@squid-proxy ~]# vi /etc/squid/squid.conf
# should be allowed
acl localnet src 10.0.0.0/16
acl localnet src 172.24.0.0/16
# Squid normally listens to port 3128
http_port 3128
# Wite List
acl whitelist dstdomain "/etc/squid/whitelist"
http_access allow whitelist
② 화이트리스트 설정
필요한 Region의 Object StorageURL 등록
[root@squid-proxy ~]# vi /etc/squid/whitelist
objectstorage.us-ashburn-1.oraclecloud.com
③Squid 기동
[root@squid-proxy ~]# service squid restart
[root@squid-proxy ~]# systemctl status squid.service
● squid.service - Squid caching proxy
Loaded: loaded (/usr/lib/systemd/system/squid.service; disabled; vendor preset: disabled)
Active: active (running) since 日 2019-01-20 23:04:19 GMT; 16h ago
Process: 12721 ExecStop=/usr/sbin/squid -k shutdown -f $SQUID_CONF (code=exited, status=0/SUCCESS)
Process: 12729 ExecStart=/usr/sbin/squid $SQUID_OPTS -f $SQUID_CONF (code=exited, status=0/SUCCESS)
Process: 12724 ExecStartPre=/usr/libexec/squid/cache_swap.sh (code=exited, status=0/SUCCESS)
Main PID: 12732 (squid)
CGroup: /system.slice/squid.service
├─12732 /usr/sbin/squid -f /etc/squid/squid.conf
├─12734 (squid-1) -f /etc/squid/squid.conf
└─12735 (logfile-daemon) /var/log/squid/access.log
1月 20 23:04:19 squid-proxy systemd[1]: Starting Squid caching proxy...
1月 20 23:04:19 squid-proxy systemd[1]: Started Squid caching proxy.
1月 20 23:04:19 squid-proxy squid[12732]: Squid Parent: will start 1 kids
1月 20 23:04:19 squid-proxy squid[12732]: Squid Parent: (squid-1) process 12734 started
④firewalld 설정
Squid 사용 Port 3128을 통과하도록 설정
[root@squid-proxy ~]# firewall-cmd --permanent --add-port=3128/tcp
success
[root@squid-proxy ~]# systemctl restart firewalld
■Private Load Balancer 구축
Proxy Server의 로드 균형 조정 및 중복을 위해 Load Balancer 배포
●Private Load Balancer 작성
Load Balancer 화면에서 [Create Load Balancer] 버튼을 클릭하고 다음 정보를 입력하여 생성
・Listener Information
- Protocol:TCP
- PORT:3128
・Backend Set Information
- IP Address: Squid Proxy ServerのPrivate IP Addressを登録
- Port:3128
・Health Check
- Protocol:TCP
- PORT:3128
●Backend Sets Health 확인
Backend Set가 등록되어 프록시 서버와 통신할 수 있는지 확인
■ 동작 확인
온프레미스 인스턴스에서 직접 object 스토리지에 액세스할 수 있는지 확인합니다.
여기에서는 OCI Command Line Interface (CLI)를 사용하여 액세스합니다.
● proxy 설정 전 확인 : 에러 나오는 것 확인
Private Subnet에서 직접 연결할 수 없는지 확인
[root@test-Inst01 ~]$ oci os bucket list --query 'data[*]."name"|[0]'
Usage: oci os bucket list [OPTIONS]
Error: Unable to retrieve namespace internally. Please provide the namespace using the option "--['namespace-name']".
● 프록시 환경 변수 설정
프록시를 통한 설정
이번에는 Load Barancer를 사용하고 있기 때문에 Load Barancer의 Listener IP (10.0.0.8)를 설정합니다.
[root@test-Inst01 ~]$ export https_proxy="10.0.0.8:3128"
[root@test-Inst01 ~]$ env | grep proxy
https_proxy=10.0.0.8:3128
● bucket 액세스 확인
프록시를 통해 액세스할 수 있는지 확인
[root@test-Inst01 ~]$ oci os bucket list --query 'data[*]."name"|[0]'
"Proxy-Bucket"
● 프록시 서버 (Squid)를 통해 액세스되었는지 확인
Squid LOG 확인하고 Load Balancer IP에서 objectstorage에 액세스하는지 확인
[root@squid-proxy squid]# tail -f /var/log/squid/access.log
1548078960.163 282 10.0.0.7 TCP_TUNNEL/200 4107 CONNECT objectstorage.us-ashburn-1.oraclecloud.com:443 - HIER_DIRECT/134.70.100.100 -
1548078960.553 273 10.0.0.7 TCP_TUNNEL/200 4540 CONNECT objectstorage.us-ashburn-1.oraclecloud.com:443 - HIER_DIRECT/134.70.100.100 -
● 테스트 파일 전송
[root@test-Inst01 ~]$ oci os object put -bn Proxy-Bucket --file /tmp/test-file01.txt --name test-file01.txt --no-multipart
{
"etag": "A1A66A5F1E975E053024",
"last-modified": "Mon, 21 Jan 2019 15:32:47 GMT",
"opc-content-md5": "2M2Y8AsgTpgAmY=="
}
● 테스트 파일 확인
[root@test-Inst01 ~]$ oci os object list -bn Proxy-Bucket --output table
+---------------------+-----------------+------+----------------------------------+
| md5 | name | size | time-created |
+---------------------+-----------------+------+----------------------------------+
| 2M2Y8AsgTpgAmY7Ph== | test-file01.txt | 0 | 2019-01-21T15:32:47.298000+00:00 |
+---------------------+-----------------+------+----------------------------------+
prefixes: []
■부록
●Load Balancer의 IP 확인
OCI의 Load Balancer(LB)는 투명하게 Active/Standby로 구성되어 있으며 IP는 자동 번호가 매겨집니다.
LB로부터, Backend Servers가 되는 Squid에의 Poring 하고 있기 때문에
그 자동 번호 매겨진 Active/Standby 각각의 IP는, Squid 서버로 tcpdump를 취하는 것으로 확인할 수 있습니다
[root@squid-proxy opc]# tcpdump -n -i ens3 port 3128
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens3, link-type EN10MB (Ethernet), capture size 262144 bytes
01:19:23.588100 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [S], seq 915959842, win 26880, options [mss 8960,sackOK,TS val 2815064024 ecr 0,nop,wscale 7], length 0
01:19:23.588149 IP 10.0.10.11.squid > 10.0.0.6.50286: Flags [S.], seq 495790511, ack 915959843, win 26844, options [mss 8960,sackOK,TS val 322500794 ecr 2815064024,nop,wscale 7], length 0
01:19:23.588250 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [.], ack 1, win 210, options [nop,nop,TS val 2815064024 ecr 322500794], length 0
01:19:23.588719 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [F.], seq 1, ack 1, win 210, options [nop,nop,TS val 2815064024 ecr 322500794], length 0
01:19:23.588777 IP 10.0.10.11.squid > 10.0.0.6.50286: Flags [F.], seq 1, ack 2, win 210, options [nop,nop,TS val 322500795 ecr 2815064024], length 0
01:19:23.588874 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [.], ack 2, win 210, options [nop,nop,TS val 2815064024 ecr 322500795], length 0
01:19:25.019310 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [S], seq 2132021857, win 26880, options [mss 8960,sackOK,TS val 2733706381 ecr 0,nop,wscale 7], length 0
01:19:25.019349 IP 10.0.10.11.squid > 10.0.0.7.50304: Flags [S.], seq 117296909, ack 2132021858, win 26844, options [mss 8960,sackOK,TS val 1898647448 ecr 2733706381,nop,wscale 7], length 0
01:19:25.019444 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [.], ack 1, win 210, options [nop,nop,TS val 2733706382 ecr 1898647448], length 0
01:19:25.020022 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [F.], seq 1, ack 1, win 210, options [nop,nop,TS val 2733706382 ecr 1898647448], length 0
01:19:25.020099 IP 10.0.10.11.squid > 10.0.0.7.50304: Flags [F.], seq 1, ack 2, win 210, options [nop,nop,TS val 1898647449 ecr 2733706382], length 0
01:19:25.020189 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [.], ack 2, win 210, options [nop,nop,TS val 2733706382 ecr 1898647449], length 0
위의 실행 결과에 따라 다음이 LB의 IP가됩니다.
VIP: 10.0.0.8 (OCI 콘솔에서 확인할 수 있는 IP)
Active: 10.0.0.7 (Client에서 Squid에 액세스한 LOG에서 확인한 IP)
Stanby: 10.0.0.6 (tcpdump에서 확인한 IP)
Reference
이 문제에 관하여(Oracle Cloud: 온프레미스에서 VPN을 통해 Object Storage에 액세스해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shirok/items/dc3908c85b6bd448fed9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
・Listener Information
- Protocol:TCP
- PORT:3128
・Backend Set Information
- IP Address: Squid Proxy ServerのPrivate IP Addressを登録
- Port:3128
・Health Check
- Protocol:TCP
- PORT:3128
온프레미스 인스턴스에서 직접 object 스토리지에 액세스할 수 있는지 확인합니다.
여기에서는 OCI Command Line Interface (CLI)를 사용하여 액세스합니다.
● proxy 설정 전 확인 : 에러 나오는 것 확인
Private Subnet에서 직접 연결할 수 없는지 확인
[root@test-Inst01 ~]$ oci os bucket list --query 'data[*]."name"|[0]'
Usage: oci os bucket list [OPTIONS]
Error: Unable to retrieve namespace internally. Please provide the namespace using the option "--['namespace-name']".
● 프록시 환경 변수 설정
프록시를 통한 설정
이번에는 Load Barancer를 사용하고 있기 때문에 Load Barancer의 Listener IP (10.0.0.8)를 설정합니다.
[root@test-Inst01 ~]$ export https_proxy="10.0.0.8:3128"
[root@test-Inst01 ~]$ env | grep proxy
https_proxy=10.0.0.8:3128
● bucket 액세스 확인
프록시를 통해 액세스할 수 있는지 확인
[root@test-Inst01 ~]$ oci os bucket list --query 'data[*]."name"|[0]'
"Proxy-Bucket"
● 프록시 서버 (Squid)를 통해 액세스되었는지 확인
Squid LOG 확인하고 Load Balancer IP에서 objectstorage에 액세스하는지 확인
[root@squid-proxy squid]# tail -f /var/log/squid/access.log
1548078960.163 282 10.0.0.7 TCP_TUNNEL/200 4107 CONNECT objectstorage.us-ashburn-1.oraclecloud.com:443 - HIER_DIRECT/134.70.100.100 -
1548078960.553 273 10.0.0.7 TCP_TUNNEL/200 4540 CONNECT objectstorage.us-ashburn-1.oraclecloud.com:443 - HIER_DIRECT/134.70.100.100 -
● 테스트 파일 전송
[root@test-Inst01 ~]$ oci os object put -bn Proxy-Bucket --file /tmp/test-file01.txt --name test-file01.txt --no-multipart
{
"etag": "A1A66A5F1E975E053024",
"last-modified": "Mon, 21 Jan 2019 15:32:47 GMT",
"opc-content-md5": "2M2Y8AsgTpgAmY=="
}
● 테스트 파일 확인
[root@test-Inst01 ~]$ oci os object list -bn Proxy-Bucket --output table
+---------------------+-----------------+------+----------------------------------+
| md5 | name | size | time-created |
+---------------------+-----------------+------+----------------------------------+
| 2M2Y8AsgTpgAmY7Ph== | test-file01.txt | 0 | 2019-01-21T15:32:47.298000+00:00 |
+---------------------+-----------------+------+----------------------------------+
prefixes: []
■부록
●Load Balancer의 IP 확인
OCI의 Load Balancer(LB)는 투명하게 Active/Standby로 구성되어 있으며 IP는 자동 번호가 매겨집니다.
LB로부터, Backend Servers가 되는 Squid에의 Poring 하고 있기 때문에
그 자동 번호 매겨진 Active/Standby 각각의 IP는, Squid 서버로 tcpdump를 취하는 것으로 확인할 수 있습니다
[root@squid-proxy opc]# tcpdump -n -i ens3 port 3128
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens3, link-type EN10MB (Ethernet), capture size 262144 bytes
01:19:23.588100 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [S], seq 915959842, win 26880, options [mss 8960,sackOK,TS val 2815064024 ecr 0,nop,wscale 7], length 0
01:19:23.588149 IP 10.0.10.11.squid > 10.0.0.6.50286: Flags [S.], seq 495790511, ack 915959843, win 26844, options [mss 8960,sackOK,TS val 322500794 ecr 2815064024,nop,wscale 7], length 0
01:19:23.588250 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [.], ack 1, win 210, options [nop,nop,TS val 2815064024 ecr 322500794], length 0
01:19:23.588719 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [F.], seq 1, ack 1, win 210, options [nop,nop,TS val 2815064024 ecr 322500794], length 0
01:19:23.588777 IP 10.0.10.11.squid > 10.0.0.6.50286: Flags [F.], seq 1, ack 2, win 210, options [nop,nop,TS val 322500795 ecr 2815064024], length 0
01:19:23.588874 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [.], ack 2, win 210, options [nop,nop,TS val 2815064024 ecr 322500795], length 0
01:19:25.019310 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [S], seq 2132021857, win 26880, options [mss 8960,sackOK,TS val 2733706381 ecr 0,nop,wscale 7], length 0
01:19:25.019349 IP 10.0.10.11.squid > 10.0.0.7.50304: Flags [S.], seq 117296909, ack 2132021858, win 26844, options [mss 8960,sackOK,TS val 1898647448 ecr 2733706381,nop,wscale 7], length 0
01:19:25.019444 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [.], ack 1, win 210, options [nop,nop,TS val 2733706382 ecr 1898647448], length 0
01:19:25.020022 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [F.], seq 1, ack 1, win 210, options [nop,nop,TS val 2733706382 ecr 1898647448], length 0
01:19:25.020099 IP 10.0.10.11.squid > 10.0.0.7.50304: Flags [F.], seq 1, ack 2, win 210, options [nop,nop,TS val 1898647449 ecr 2733706382], length 0
01:19:25.020189 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [.], ack 2, win 210, options [nop,nop,TS val 2733706382 ecr 1898647449], length 0
위의 실행 결과에 따라 다음이 LB의 IP가됩니다.
VIP: 10.0.0.8 (OCI 콘솔에서 확인할 수 있는 IP)
Active: 10.0.0.7 (Client에서 Squid에 액세스한 LOG에서 확인한 IP)
Stanby: 10.0.0.6 (tcpdump에서 확인한 IP)
Reference
이 문제에 관하여(Oracle Cloud: 온프레미스에서 VPN을 통해 Object Storage에 액세스해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shirok/items/dc3908c85b6bd448fed9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[root@squid-proxy opc]# tcpdump -n -i ens3 port 3128
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens3, link-type EN10MB (Ethernet), capture size 262144 bytes
01:19:23.588100 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [S], seq 915959842, win 26880, options [mss 8960,sackOK,TS val 2815064024 ecr 0,nop,wscale 7], length 0
01:19:23.588149 IP 10.0.10.11.squid > 10.0.0.6.50286: Flags [S.], seq 495790511, ack 915959843, win 26844, options [mss 8960,sackOK,TS val 322500794 ecr 2815064024,nop,wscale 7], length 0
01:19:23.588250 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [.], ack 1, win 210, options [nop,nop,TS val 2815064024 ecr 322500794], length 0
01:19:23.588719 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [F.], seq 1, ack 1, win 210, options [nop,nop,TS val 2815064024 ecr 322500794], length 0
01:19:23.588777 IP 10.0.10.11.squid > 10.0.0.6.50286: Flags [F.], seq 1, ack 2, win 210, options [nop,nop,TS val 322500795 ecr 2815064024], length 0
01:19:23.588874 IP 10.0.0.6.50286 > 10.0.10.11.squid: Flags [.], ack 2, win 210, options [nop,nop,TS val 2815064024 ecr 322500795], length 0
01:19:25.019310 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [S], seq 2132021857, win 26880, options [mss 8960,sackOK,TS val 2733706381 ecr 0,nop,wscale 7], length 0
01:19:25.019349 IP 10.0.10.11.squid > 10.0.0.7.50304: Flags [S.], seq 117296909, ack 2132021858, win 26844, options [mss 8960,sackOK,TS val 1898647448 ecr 2733706381,nop,wscale 7], length 0
01:19:25.019444 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [.], ack 1, win 210, options [nop,nop,TS val 2733706382 ecr 1898647448], length 0
01:19:25.020022 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [F.], seq 1, ack 1, win 210, options [nop,nop,TS val 2733706382 ecr 1898647448], length 0
01:19:25.020099 IP 10.0.10.11.squid > 10.0.0.7.50304: Flags [F.], seq 1, ack 2, win 210, options [nop,nop,TS val 1898647449 ecr 2733706382], length 0
01:19:25.020189 IP 10.0.0.7.50304 > 10.0.10.11.squid: Flags [.], ack 2, win 210, options [nop,nop,TS val 2733706382 ecr 1898647449], length 0
Reference
이 문제에 관하여(Oracle Cloud: 온프레미스에서 VPN을 통해 Object Storage에 액세스해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shirok/items/dc3908c85b6bd448fed9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)