IBM Cloud: VPC Custom Routes를 사용한 AZ 전역 HA 환경의 구성 예(VPC 외부에서 액세스)

6875 단어 닌비아예ribmcloud
(2020/11/27)
본고 집필시에는 잘 되어 있었지만, 그 후 잠시 시험해 보면 잘 전환되지 않는 것을 알았습니다. 분명히 Address Prefix를 삭제해도 BGP session이 남아있을 수 있다는 알려진 문제가있는 것 같습니다. 이 문제가 해결될 때까지 이 문서의 해결은 효과적으로 작동하지 않을 수 있습니다. -> 수정되었습니다!

1. 소개



IBM Cloud: VPC Custom Routes를 사용한 AZ 전역 HA 환경의 구성 예(VPC 내부에서 액세스)의 속편입니다.
VPC 내부로부터의 액세스는 이것으로 Zone간 전환이 잘 되었지만, Direct Link 경유나 Transit Gateway 경유에서는 192.168.10.10 경유로 액세스 할 수 없다.

이것은 다음과 같은 이유 때문입니다.
  • Direct Link나 Transit Gateway와 같은 VPC 외부로부터의 경로에 대해서는, Ingress Route table를 사용할 필요가 있다. (이전에 사용 된 것은 Egress Route table이며 VPC의 서브넷을 소스로 사용하는 라우팅)
  • 192.168.10.10 이라는 VPC 내에서 정의되지 않은 주소에 대해서는 그대로 VPC 외부에서 도달할 수 없다. 따라서 예를 들어 192.168.10.0/28이라는 Prefix를 정의해야합니다. IBM Cloud의 VPC는 ​​Prefix 단위로 라우트 광고되므로 반드시 subnet을 만들어 둘 필요는 없다.

  • 이번에 하고 싶은 구성은 이하이다.
  • Server-A 정상시(192.168.10.10에 대한 액세스는 10.0.0.7로 전송)
  • Server-A 장애시(192.168.10.10에 대한 액세스는 10.1.0.7로 전송). Tokyo2 측에 Prefix를 재작성.

  • 2. 설정 방법



    2-1. Custom Route(Ingress) 만들기




  • 192.168.10.10으로 향하는 패킷이 Tokyo1 Zone에 도달하면 10.0.0.7로
  • 192.168.10.10으로 향하는 패킷이 Tokyo1 Zone에 도달하면 10.1.0.7로

    전송되도록 미리 두 정의를 구성합니다.


    (참고) Ingress의 Custom Route는 동일 Zone에 대한 next hop 밖에 선택할 수 없습니다.


    For egress custom routes, when you add a destination route, you must select a zone. However, the next hop doesn't have to be in the same zone. For ingress custom routes, the next hop must be in the same zone.

    2-2. Prefix 작성.



    Prefix 단위로 광고되기 때문에, subnet의 작성은 불필요.
    일단 도쿄1 측에 작성한다.
    h tps : // c ぉ d. 이 bm. 이 m/도 cs/vpc? 토피 c = vpc - 아보 t-s와 m-ro s s

    2-3. Server-A/Server-B에 192.168.10.10 부여



    실시하고 있는 경우는 불필요.

    2-4. IP spoofing 활성화



    지난번 실시하고 있는 경우는 불필요.

    2-5. Security Group/Network ACL에서 Direct Link/Transit Gateway의 대향측으로부터의 통신을 허가한다.



    (생략)

    2-6. Direct Link/Transit Gateway의 대향측에서 192.168.200.0/28로 향하는 static route 설정



    (생략)

    3. 테스트



    이번은 Direct Link Connect 2.0 경유로 AIX 단말로부터 테스트를 실시했다.

    3-1. Server-A 정상시 액세스


    # oslevel -s
    7200-04-01-1939
    # ping -c 3 192.168.10.10
    PING 192.168.10.10 (192.168.10.10): 56 data bytes
    64 bytes from 192.168.10.10: icmp_seq=0 ttl=54 time=1 ms
    64 bytes from 192.168.10.10: icmp_seq=1 ttl=54 time=1 ms
    64 bytes from 192.168.10.10: icmp_seq=2 ttl=54 time=1 ms
    
    --- 192.168.10.10 ping statistics ---
    3 packets transmitted, 3 packets received, 0% packet loss
    round-trip min/avg/max = 1/1/1 ms
    
    
    [root@server-a ~]# tcpdump -i any icmp -nn
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
    09:54:10.996319 IP 192.168.50.223 > 192.168.10.10: ICMP echo request, id 416, seq 0, length 64
    09:54:10.996352 IP 192.168.10.10 > 192.168.50.223: ICMP echo reply, id 416, seq 0, length 64
    09:54:11.996347 IP 192.168.50.223 > 192.168.10.10: ICMP echo request, id 416, seq 1, length 64
    09:54:11.996377 IP 192.168.10.10 > 192.168.50.223: ICMP echo reply, id 416, seq 1, length 64
    09:54:12.996326 IP 192.168.50.223 > 192.168.10.10: ICMP echo request, id 416, seq 2, length 64
    09:54:12.996361 IP 192.168.10.10 > 192.168.50.223: ICMP echo reply, id 416, seq 2, length 64
    
    
    [root@server-b ~]# tcpdump -i any icmp -nn
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
    
    

    3-2. Server-A 장애시 액세스



    Tokyo1에서 Tokyo2로 전환하고 싶을 때는 192.168.10.0/28 의 prefix를 Tokyo1에서 삭제해, Tokyo2에 작성한다.
    전환 스크립트 샘플은 지난번 .
    여기
    # oslevel -s
    7200-04-01-1939
    # ping -c 3 192.168.10.10
    PING 192.168.10.10 (192.168.10.10): 56 data bytes
    64 bytes from 192.168.10.10: icmp_seq=0 ttl=58 time=0 ms
    64 bytes from 192.168.10.10: icmp_seq=1 ttl=58 time=0 ms
    64 bytes from 192.168.10.10: icmp_seq=2 ttl=58 time=0 ms
    
    --- 192.168.10.10 ping statistics ---
    3 packets transmitted, 3 packets received, 0% packet loss
    round-trip min/avg/max = 0/0/0 ms
    
    [root@server-a ~]# tcpdump -i any icmp -nn
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
    
    [root@server-b ~]# tcpdump -i any icmp -nn
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
    09:56:02.887484 IP 192.168.50.223 > 192.168.10.10: ICMP echo request, id 406, seq 0, length 64
    09:56:02.887521 IP 192.168.10.10 > 192.168.50.223: ICMP echo reply, id 406, seq 0, length 64
    09:56:03.887461 IP 192.168.50.223 > 192.168.10.10: ICMP echo request, id 406, seq 1, length 64
    09:56:03.887489 IP 192.168.10.10 > 192.168.50.223: ICMP echo reply, id 406, seq 1, length 64
    09:56:04.887502 IP 192.168.50.223 > 192.168.10.10: ICMP echo request, id 406, seq 2, length 64
    09:56:04.887530 IP 192.168.10.10 > 192.168.50.223: ICMP echo reply, id 406, seq 2, length 64
    
    
  • 좋은 웹페이지 즐겨찾기