質問: 現在まだ学生でWebプログラマーを目指しています。 アプリケーションをつくるエンジニアです。 ですがただアプリケーションが作れれば良いという訳ではなく、ネットワークなどにも強くなりたいと思っています。 広い意味でネットワークを使っていますが、ご了承ください。 最近ネットワークの細かい設定などに触れる機会があり、自分の知識のなさに愕然としています。 例えば、Linuxで言う所のNICである、eth0やeth2、CentOSを使っていますが、CentOS7ではeno0やeno1などになどがあると思います。これらにIPを振ったり、内部用と外部用とで分けて使用したりするようなのですが、いまいち理解できません。 パブリックのネットワークや、マネジメントネットワークなど「何がちがうの?」っていうレベルで理解できません。ネットワークのどこかピンポイントで分からないという訳ではなく、全体的にしっくりきていません。 また、これはNICとIPについての疑問でしたが、その他にもDNSなどインフラ系の知識もろもろがしっくりきていない状況です。 すべてとは行かないまでも、理解できるようになれば、アプリケーションをつくる上でも糧になると思います。 ネットワークとはこういうものだという回答は求めませんので、アドバイス等あればおっしゃって頂きたいです。 あとは自分自身で構築したり、調べたりしたいと思っています。
回答: とりあえず、疑問点について私の見解を述べます。 > > パブリックのネットワークや、マネジメントネットワークなど「何がちがうの?」っていうレベルで理解できません。ネットワークのどこかピンポイントで分からないという訳ではなく、全体的にしっくりきていません。 > > > パブリック、マネジメント等、使用用途に従って認知し易い名称を使用することと捉えています。 例えば、 パブリック:アプリケーション等、サービスを提供するネットワーク マネジメント:業務を継続する上で必要な保守管理業務を行うネットワーク 搭載するNICによって通信帯域は限られているため、ある程度の規模のシステムでは業務毎に最大帯域を確保することを目的とし、2ポートのマルチホーム(複数ネットワークを持つ)構成にすることがほとんどです。 私がネットワークを勉強したときは以下を参考にしていました。 以下はアプリケーション開発にも有用な知識になると思います。 ・OSI 7階層参照モデル ・TCP/IP ●他、知りたい項目に対して、やってみると面白いこと。 ネットワーク接続、通信の観点からは以下。 ・L2、L3の違いを勉強する。 ・家庭用ルータをいじり倒す。 ・ネットワークスイッチL2、L3を設定してみる。(購入は難しいと思うのでOpen vSwitch等のOSSでやってみるといいかもです。) セキュリティ関連からは以下。 ・FWアプライアンス、またはLinux iptablesを設定してみる。 名前解決関連は以下。 ・Linux Bindを設定してみる。 ・Windows (Active Direcotry)DNSを設定してみる。 ・NetBIOSの仕組みについて勉強する。 Webプログラマーとのことで、まずは、ご自分で作成されたアプリケーションをグローバルに公開することを目的として勉強してみると面白いかもです。 何故、ブラウザにURLを入力すると、サイトが表示されるのか? この仕組み(プログラム的ではなくインフラ的にですよ)を勉強するとある程度理解できると思います。