2016/10/08TweetPocketAdachinですっ。現在インフラエンジニア3年目なのですが、インフラの友人/大学の同級生(くにし)とこの前飲みまして、いろいろと語りまくりました。「10年後も必ずネットワークは存在する。サーバ自動化はもっと簡単になるし、インフラやることなくなってもネットワークに強ければ食っていける。ハードに強いかネットワークに強いか、このどちらかだ。開発よりも下のレイヤー(サーバ、ネットワーク)をゴチャゴチャいじるのが興味深い。開発より明らかに覚えることが多いので毎日が勉強である。今回はネットワークでおなじみの「NAT」についてブログしていきます。Translation(NAT)まさに言葉通りネットワークアドレス変換ですが、アドレス変換ってどんなことをしているのかと言うと、パソコンから送信されたパケットの中から、IPアドレスを見つけて、IPアドレスを付け替えてしまうこと。内部から外部に接続できるようにしないといけません。これはネットワークの歴史から説明していきたいと思います。Provider)は/16のアドレスを持ってる場合が多く、65534個のホスト番号が使用できます。このホスト番号数よりさらにユーザーが増えた場合に問題が発生するためアドレス変換/NATが必要となります。(応急処置的な)ちなみにプライベートアドレスとホスト番号の範囲について以下にまとめてみた。(65536ホスト)NATの問題点としてはルータが保持しているグローバルIPアドレス数しか同時に接続が出来ないということ。どのアドレスに置き換えればよいのか判断出来ません。Translation)/IPマスカレードを使用します。ポート番号を置き換えることで複数の通信が可能となります。Linuxの場合だと主にiptablesやfirewalldで制御します。NATは入ってくるパケットのうち不要なものをデフォルトで遮断するため、ファイアーウォールに融合されるようになりました。今後IPv6が普及してもNAT技術は使われるであろう。ちなみにこのadachin-serverブログもまさにNATとNAPT/IPマスカレードを使用して公開しています。■アドレス変換の種類NATを大きく分類すると以下のようなかんじ。DNATによる変換をしなければならない。相手に届き、レスポンスはDNATにより戻ってきます。networknetworkadachin1989年生まれのSRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、AnsibleやTerraformでのインフラコード化を推進。副業では数社サーバー保守、未経験によるエンジニアのメンターなども実施している。「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。レイテンシ、パフォーマンス、モニタリング、緊急対応、インフラコード化、リファクタリング、セキュリティ強化、新技術の検証、Docker開発環境の提供、AWSでのインフラ構築、ECS(Fargate)、Wordpressによるコーポレートサイトの修正、メンター、分析基盤の運用を担当している。コメントデータの処理方法の詳細はこちらをご覧ください。