GCPにて国単位でIPアドレスを弾く方法

GCPの無料枠を使う場合、特定国のIPアドレスを弾く必要があるようです。
元ネタはこちらになります→Google Cloud Platformで中国からの通信をブロック
フィルタ登録時の手打ちが面倒だったので、半自動にしてみました。

前提条件

  • 今回はwsl上での作業です
  • Google Cloud Functionsの環境が出来ていること
  • 次のファイルがカレントフォルダに置かれていること
    https://ipv4.fetus.jp/cn.txt
  • 時々リストを更新する必要があると思いますが、今回はそこまで考慮していません

手順

  1. 次のやっつけスクリプトをカレントフォルダに置きます
    #!/bin/bash
    #
    # CONST_PROJECT に、ご自分のプロジェクト名を入れて下さい。
    # カレントディレクトリに https://ipv4.fetus.jp/cn.txt を置いて下さい。
    # 出来上がった china_block_xx.txt を、cloud shell に投げ込んで下さい。
    #
    # wslからcloud shellを起動する自分メモ
    #   gcloud alpha cloud-shell ssh
    # vimで流し込む場合は(貼り付け前に次のコマンドで)
    # インデントを無効にしておいた方が良いと思います
    #   :set paste
    #
    CONST_PROJECT="MyProject"
    CONST_INPUTFILE="cn.txt"
    counterNo=1
    lineNo=0
    ruleNo=1
    ruleStr="000"
    FileNo=0
    fileStr="00"
    outputFile="foobar.txt"
    itemsCounter=0
    readData=""
    workFile="puyopuyo.txt"
    # curl https://ipv4.fetus.jp/cn.txt
    
    if [ ! -f $CONST_INPUTFILE ]; then
      echo "Input file not found..."
      exit 1
    fi
    
    workFile=$(mktemp "china-block.tmp.XXXXXX")
    sed '1,6d' $CONST_INPUTFILE > $workFile
    itemsCounter=`wc -l $workFile | cut -d " " -f 1`
    
    cat $workFile | while read readData
    do
      if [ $(($counterNo % 2500)) -eq 1 ]; then
        fileNo=`expr $fileNo + 1`;
        fileStr=`seq -f %02g $fileNo $fileNo`
        outputFile="china_block_$fileStr.txt"
        echo "File $outputFile"
      fi
      if [ $lineNo -eq 0 ]; then
        ruleStr=`seq -f %03g $ruleNo $ruleNo`
        echo "gcloud compute --project=$CONST_PROJECT firewall-rules create china-block-$ruleStr --description=\\中\\華\\圏\\のIP\\を\\弾\\く --direction=INGRESS --priority=10 --network=default --action=DENY --rules=all --source-ranges=\\" >> $outputFile
        lineNo=`expr $lineNo + 1`
        echo -n "Rule $ruleStr:"
      fi
      echo -n "$readData" >> $outputFile
      if [ $counterNo -eq $itemsCounter ]; then
        echo "" >> $outputFile
        echo ""
      else
        if [ $(($counterNo % 250)) -ne 0 ]; then
          if [ $(($counterNo % 5)) -eq 0 ]; then
            echo ",\\" >> $outputFile
            lineNo=`expr $lineNo + 1`
          else
            echo -n "," >> $outputFile
          fi
          echo -n "."
        else
          echo "" >> $outputFile
          echo ""
          lineNo=0
          ruleNo=`expr $ruleNo + 1`
        fi
      fi
      counterNo=`expr $counterNo + 1`
    done
    rm -f $workFile
    exit 0
  2. スクリプトのCONST_PROJECTの内容を、自分のプロジェクト名に差し替えます
  3. wsl上でスクリプトをキックすると、china_block_xx.txtなるファイルが出来上がります
  4. cloud shellを起動します
    gcloud alpha cloud-shell ssh
  5. 出来上がったchina_block_xx.txtを、cloud shellに投げ込みます
    ※一度に全部流し込んだらGCP側でリソース不足になったので、出力を分割しました
    vimで流し込む場合は、貼り付け前に

    :set paste

    にてインデントを無効にしておいた方が良いと思います。
  6. GCPの 『VPCネットワーク』→『ファイアウォールルール』にて、結果を確認します

HPEのサポートページログイン障害?

StoreEasy management console の新バージョンが出ていないか、暫く前から巡回コースに入れているのですが、IDとPW入れたあとに

となることに気付きました。メンテナンス中でしょうか。障害でしょうか。

エラーページのソースコード

<html>
<head>
<!--dwf-hf-head-->
        <title>Could Not Open Page</title>
</head>

<body>
<!--dwf-hf-header-->
<h1>Could not open page</h1>
The sign-in service for HPE Support Center is currently unavailable. Please try again later.<br/>

<!---------------------------------------------------------------------------
-----------------------------------------------------------------------------

To prevent the IE browswer from display its friendly error page when its
setting is set to use the friendly error page, we need to make this
response at least 512 bytes.

-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
-->

<!--dwf-hf-footer-->
</body>
</html>

2019/07/09 15:16 再開を確認しました。

ProLiantでリダンダント電源周りの発報が出るとき

冗長電源構成の場合で、供給障害やユニット障害が発生していないにもかかわらず、

Server power: 998W exceeded the redundant power capacity threshold: 550W

のようなエラーが出る場合があります。

表示のみの問題ですので、放置(及び通知除外)でも構わないとは思いますが、iLOのファームが原因の場合がありますので、リリースノートの確認や、バージョンアップの検討を行ってみてください。iLO5の場合は、1.43で改修されている模様です(BIOSのアップデートが必要な場合もあります)。

StoreEasyでの発報については、management console も新しいバージョンが出ていますので、そちらも併せて確認ください。

HPE StoreEasy management console

1.1.1.60は色々ダメダメだった HPE StoreEasy management console でしたが、1.2.0.295が2019/07/02付けでリリースされています。

StoreEasy使いの方には、アップデートを強く推奨します。


2019.07.08追記
07/02版は一旦引き下げられて、現在は07/03版としてリリースされています(物は同じです)。
この改修によって構築上の支障は無くなりましたが、一部不具合が残っているため、次のバージョンが待たれるところです。


2019.07.10追記
作成したLogicalDriveがオフライン状態の場合、

  • オンライン化ボタンが現れた時は、そのボタンでオンライン化
  • オンライン化ボタンが現れないは、試しにOSを再起動
    OS側からオンライン化しないこと
    再起動してもオンライン化しない時は、Smart Storage Administratorでアレイを初期化して再チャレンジ

あと、作成される謎の16MBな領域は、何も触れずに放置しておいて大丈夫です。

サイト障害のお知らせ

さくらインターネットのネットワーク障害により、本日14:24頃から14:37頃までの間、外部からの接続が出来ない状態にありました。


公式から告知が出ました。
14:22~14:37の間、石狩リージョンの一部で不具合があったようです。