おっさん、CISCOに出会う

四十路までカウントダウンが始まっているおっさん。なのにこの歳で生まれて初めてCISCOに出会うことになりました。

あれですよ。沢口靖子がCMしてるビスケットじゃないですよ。一部の人は知っている、知らない人は絶対知らない、あの有名なネットワーク機器です。

社内SEというのは結局なんでも屋さんなわけでして、とりあえず「やってw」と頼まれます。当然「㍉w」ということも可能ですが、その結果、お金がかかったりってなことにもなりかねません。そして会社はそういうお金を出すのをいたく嫌います。

で、おっさん、わかんないことあるとすげー興奮するんよ。ググりまくってやる!って方向でね。

結論:自力でやる

こういうのを年寄りの冷や水というんですが、まあ、単純な2点間のスタティックルーティングなんで頑張ってみようかと思いました。

結果、3日ほどサーバルームに篭るという惨劇でした。ぼく、ネットワークを舐めてましたわ。おっさんみたいな素人がいきなり出来るようなもんじゃないです。そんなん、ネットワークエンジニアに失礼ですよ。(反省)

まず、通信要件の伝え方が出来てないからレビュでOKが出たコンフィグがまるきり使えない。しょうがないからIP割り当てなおしてダイナミックNATを試すもnatテーブルがうんともすんとも言わない。DNSの存在を忘れていたので、名前解決ができない。ついでに糞寒いサーバルームで仕事をする羽目になる段取りの悪さ。(普通はラッキングする前にある程度コンフィグ入れてくものだそうです)

gdgdここに極まれり。なんというか、カテゴリは違えど、エンジニアとしてやっちゃいかんことをすべてやりつくしたような仕事でした・・・・・(猛省)

で、今回はおっさんがかなり悩んだところをピンポイントで記載します。本職の方は当然知っているレベルのことですが、これからネットワーク構築などに挑戦する場合は参考にどうぞ。

  1. 2点間のスタティックルートまずダメだったのが、「とあるネットワーク」にそこだけに繋がるPCを作れ、ただし、ネットワークの足が出ているところとPCの間にFWを置け、という要件に対して、「とあるネットワーク」にPCを所属させてしまおう、と考えたこと。ググればすぐ出てきますが、これ、いわゆる「2重ルータ」になるんですね。つまりL2同士なら同じネットワークだし、すぐつながる。ただしL2だとACLやルーティングの設定ができない、という矛盾があるワケです。NATをして別ネットワークの体を取らなければ、通信の制御はできません。「とあるネットワーク」の対向となるポートに「とあるネットワーク」のIPを割り当て、PCの対向となるポートおよびPCを別ネットワークになるIPを割り当ててあげる。しかる後にルータ内でNATをかけてあげるのです。おっさんは2日目中盤でこの策にたどり着きました。。。。
  2. DNSの設定「とあるネットワーク」にはDNSサーバもいました。そこを使わないと目的のサイトにブラウザからURLでアクセスできません。おっさんはPCにDNSサーバを設定する方法は知っていたのですが、ルータにもそれが必要なことを知りませんでした。アクセスリストのあるルータでDNSを使えるようにするには2種類の方法があります。まず、PCのDNSを「とあるネットワーク」のDNSにしてあげるタイプ。この場合、アクセスリストにはDNSサーバの通信許可を入れてあげる必要があります。
    ip access-list 100 permit tcp PC_IP DNS_IP eq domain
    ip access-list 100 permit udp PC_IP DNS_IP eq domain
    

    今回はプロトコルで制御するので、拡張ACL(100~199)になります。DNSサーバの通信はTCPとUDPが必要です。ポートは通常「domain」となり、番号は53です。おっさんは↑の方法でうまくできなかったので(できなかった理由は後述)ルータに名前解決をゆだねることにしました。

    ip name-server DNS_IP
    

    ルータ側にDNSサーバを指定します。PC側のDNSはルータに設定します。これで名前解決はできるようになりました。なお、ルータの負荷などを考慮する必要がある場合はあんまりいい方法じゃないようです。

  3. 忘れちゃいけない、戻りパケットネットワーク素人がハマるのがたいていこれ。おっさんも漏れなくハマりました。TCPには戻りパケットというのがいます。通信方向がA→Bであっても、A→Bだけを許可すると戻りパケットがB→Aで返ってきます。素人はこれ忘れがちで「permit tcp A B」だけ書いて、あれ?つながらない!!となるわけです。pingの許可も入れているとpingは通るのにサイトが見れない!なんてこともあります。素人には余計わかりにくくなる状態ですね。(icmpとtcpの違いですが、それを理解している人は素人じゃないですw)
    ip access-list 100 deny ip any any log
    

    事前に↑をACLに入れておいてあげると多少、わかりやすくなります。これはACLで許可されなかったパケットのlogをコンソールで見られるようにする設定です。そうすると、コンソールにACLとは逆方向の破棄されたパケットが表示されます。これで、「戻りパケットが迷子になってる!」と分かれば、↓を入れてあげればおkです。

    ip access-list 100 permit tcp PC_IP SITE_IP eq www
    ip access-list 100 permit tcp PC_IP SITE_IP eq 433
    ip access-list 100 permit tcp PC_IP SITE_IP established
    

    1行目はhttp通信の許可、2行目はhttps通信の許可、そして3行目が上記2つの通信に対する戻りパケットの許可です。「established」オプションは送信元に宛先から戻ってくるパケットを許可します、というオプションになります。

苦労はしましたが、個人的にとても勉強になった仕事でした。

社内SEの仕事を大きくわけると、会社のIT資産の管理、委託ベンダの管理、会社のITリテラシの管理になるかと思います。

ベンダ管理においては、作業手順の最終的なレビュも含まれます。基本的に要求されるのは複数ベンダを抱えている場合の調整ですが、おっさんの会社では手順そのものも見ます。

これまでネットワーク周りについては通信先の漏れ程度しか見れていませんでした。しかし自分でやってみることで、通信要件自体の漏れも見えるようになってくると思います。

また、エンジニアとしてもネットワーク周りの勉強は必要だと前から考えていました。今回は具体的にその中身を見ることが出来たのが一番の成果です。社内SEになってよかったと思うのはこういった畑違いのこともチャレンジできる環境があるということでしょうか。

最後に、3日の間、やきもきしながら見ていた上司、泣きついた同僚へありがとうございました、とすいませんでした、を言いたいです。

広告
カテゴリー: お仕事 タグ: , パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中