何をするか
クライアントからルータを介してWebページを閲覧する
クライアント : CentOS7
サーバ : CentOS7
ルータ : CiscoC7200
↓ざっくり構成図

CCNP学習の為に導入したgns3ですが
Linuxサーバも動かせると知ったのでやってみました。
GNS3上でホスト(ubuntu)とルータ(Cisco c7200)を接続して
ホストからルータにpingが通るようにする。
ホスト:192.168.1.1
ルータ:192.168.1.254
Linuxディストリビューションによって、
インタフェースの設定方法は変わりますが
本記事ではCentOS6と7の設定方法について説明します。
・設定ファイルの編集
・ネットワークの再起動
・状態確認
・設定ファイル
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
※編集方法はページ下部を参照
・ネットワークを再起動するコマンド
service network restart
・インタフェースの状態確認
ifconfig
・ルーティングテーブルの確認
route
まずは現在のネットワーク状態を確認
|
1 2 3 4 5 6 7 8 |
[root@osboxes ~]# ifconfig enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::997:363c:644c:a71f prefixlen 64 scopeid 0x20<link> ether 0c:21:96:63:c5:00 txqueuelen 1000 (Ethernet) RX packets 12371 bytes 19342121 (18.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 10404 bytes 753854 (736.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
enp0s3でIPv4アドレスがとれていない。認識されているデバイス名を確認する。
|
1 2 3 4 5 6 |
[root@osboxes ~]# nmcli d DEVICE TYPE STATE CONNECTION enp0s3 ethernet disconnected -- virbr0 bridge connected virbr0 lo loopback unmanaged -- virbr0-nic tun unmanaged -- |
enp0s3のインタフェース自体は認識されてるが、切断済みのステータスになっている。
インタフェース設定ファイルが存在するか確認する。
|
1 2 3 4 5 6 7 8 9 10 11 |
[root@osboxes ~]# ls /etc/sysconfig/network-scripts/ fdown-ppp ifup-ib ifup-Team ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort ifdown ifdown-sit ifup-ipv6 ifup-tunnel ifdown-bnep ifdown-Team ifup-isdn ifup-wireless ifdown-eth ifdown-TeamPort ifup-plip init.ipv6-global ifdown-ib ifdown-tunnel ifup-plusb network-functions ifdown-ippp ifup ifup-post network-functions-ipv6 ifdown-ipv6 ifup-aliases ifup-ppp ifdown-isdn ifup-bnep ifup-routes ifdown-post ifup-eth ifup-sit |
インタフェース設定ファイルが存在しないので、enp0s3をEthernetとして明示的に追加する。
|
1 2 |
[root@osboxes ~]# nmcli connection add type ethernet ifname enp0s3 Connection 'enp0s3' (6a178893-339c-4c20-9d10-0babc6eb7cf9) successfully added. |
追加に成功したとのメッセージが出たので、再度インタフェース設定ファイルを確認する。
|
1 2 3 4 5 6 7 8 9 10 11 |
[root@osboxes ~]# ls /etc/sysconfig/network-scripts/ ifcfg-ethernet-enp0s3 ifdown-post ifup-eth ifup-sit ifdown-ppp ifup-ib ifup-Team ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort ifdown ifdown-sit ifup-ipv6 ifup-tunnel ifdown-bnep ifdown-Team ifup-isdn ifup-wireless ifdown-eth ifdown-TeamPort ifup-plip init.ipv6-global ifdown-ib ifdown-tunnel ifup-plusb network-functions ifdown-ippp ifup ifup-post network-functions-ipv6 ifdown-ipv6 ifup-aliases ifup-ppp ifdown-isdn ifup-bnep ifup-routes |
インタフェース設定ファイル(ifcfg-ethernet-enp0s3)を発見。
今回はDHCPなのでifcfgファイルは編集する必要なし(デフォがDHCPなので)
とりあえず再起動する。
|
1 |
[root@osboxes ~]# reboot |
ネットワーク状態を確認する。
・設定ファイル
/etc/sysconfig/network-scripts/ifcfg-enp0s3
/etc/sysconfig/network-scripts/ifcfg-ens160
/etc/sysconfig/network-scripts/ifcfg-ens192 とかとか
※編集方法はページ下部を参照
・ネットワークを再起動するコマンド
systemctl restart NetworkManager
systemctl restart network
・インタフェースの状態確認
ip addr(ip aでも可)
・ルーティングテーブルの確認
ip route
ONBOOT=yes ← 起動時に有効にする
BOOTPROTO=none ← DHCPの場合は「dhcp」に
#HWADDR=00:0C:29:xx:xx:xx ← 自動取得にするので文頭に「#」
IPADDR=xxx.xxx.xxx.xxx ← 環境に即して
NETMASK=xxx.xxx.xxx.xxx ← 環境に即して
GATEWAY=xxx.xxx.xxx.xxx ← 環境に即して
Linuxでよく利用されるテキストエディターの事です。エディターには他にもvimやEmacsが存在しますがLPICの試験範囲外となっているので、LPIC(LinuC)の受験を考えている場合はviをメインで覚えた方が良いと思います。
viには2つの動作モードが存在し動作モードを切り替えながら使用します。
・コマンドモード
viを起動した時点のモード、キーボードからの入力がコマンドとして解釈されます。
・入力モード(普通の状態)
キーボードのキーを押すとテキストが入力されます。
・コマンドモードから入力モード
キーボードの「a」「i」「o」のいずれかを入力
・入力モードからコマンドモード
キーボードの「Escキー」を押下
・カーソルの移動
キーボードの矢印キーを使って移動
・ファイルの先頭行/最終行へ移動
キーボードから「gg」(先頭行)「G」(最終行)を入力
・行の先頭/末尾へ移動
キーボードから「O」(先頭)「S」(末尾)を入力
・ファイルを上書き保存
キーボードから「:w」を入力してEnter
・ファイルを保存して終了、ファイルを保存せずにviを終了
キーボードから「:wq」(保存有)「:q!」(保存無)を入力してEnter
・viを終了
「:q」を入力してEnter (編集した場合は保存するか聞かれます)
・カーソルの位置の行を削除
キーボードから「dd」を入力 ※「10dd」と入力すると10行削除
・カーソルの位置の行をコピー
キーボードから「yy」を入力 ※「10yy」と入力すると10行コピー
・コピーした文字列を貼り付け
キーボードから「p」を入力
・1動作前の状態へ戻る(windowsのctrl+z)
キーボードから「u」を入力
・ファイル内で特定の文字列を検索
キーボードから「/文字列」を入力してEnter
「n」で次を検索「N」で逆方向へ検索
・最初に見つかった文字列1を文字列2に置換
キーボードから「:%s/文字列1/文字列2/」を入力しEnter
・全ての文字列1を文字列2に置換
キーボードから「:%s/文字列1/文字列2/g」を入力しEnter
私が業務で頻繁に使うコマンドをまとめてみました。
・システムの情報を表示(uname)
-a:全ての情報を表示、-n:システムのホスト名を表示
・システムの日付と時刻を表示(date)
引数なし:システムの日時を表示、
-s “yyyy/mm/dd hh:mm” :システム時間の修正
・指定したディレクトリ内のファイルを表示(ls)
-a:隠しファイルも含めて全てのファイルを表示
-l:パーミッション、更新日時、サイズ等も表示
・現在のディレクトリを確認(pwd)
引数なし:現在のディレクトリを確認
・ディレクトリの移動(cd)
cd フルパス:ディレクトリの移動
・ファイルの内容を表示(cat)
cat ファイル名:ファイルの内容を表示
・ファイルの内容をページ単位で表示(less)
less ファイル名:ファイルの内容をページ単位で表示
・ファイルの先頭を表示(head)
head ファイル名:ファイルの先頭を表示
・ファイルの末尾を表示(tail)
tail ファイル名:ファイルの末尾を表示
・ファイルを編集(vi)
vi ファイル名:ファイルを編集
・ファイルをコピー(cp)
cp コピー元 コピー先パス:ファイルをコピー
-p:タムスタンプやパーミッションの情報を保持したままコピー
・ファイルの削除(rm)
rm ファイル名:ファイルの削除
-R:ディレクトリを削除、-f:強制的に削除
LinuxとはOSの1つです。OSとはパソコンやスマホを
管理、制御する為のソフトウェアでPCの「windows」や
スマホの「Adndroid」iphoneの「IOS」もOSの1つです。
サーバーOSのシェアではLinuxが半数以上を占めています。
それもそのはず、Linuxは無料で使えるのです。
今後もIOTの発達等でLinuxがどんどん活用されていくので
Linuxを扱える事はエンジニアにとっての強みです。
■操作方法について
Linuxには2つの操作方法があります。
・GUI
画面の矢印をマウスやタッチパッドでくるくる動かすような
直感的な操作をする方法(PCの操作は基本こっちです。)
スマホを指でぽちぽちするのもGUIの操作です。
・CUI
キーボードからのコマンド入力で操作をする方法
よくドラマである黒い画面に向かってキーボードをカタカタしてる人も CUIの操作です。
私たちが普段使うのはGUIの方ですが、
GUIの操作でも裏ではCUIのコマンドが実行されています。仕事でLinuxを操作する事がありますが、9割以上がCUIなのでCUIをマスターしましょう。
■シェル
カーネル:OSの中の中核的なプログラム
「シェルはカーネルとユーザーの橋渡しをする。」
例えば、Linuxで「cat」コマンドを入力すると
ファイルの中身を表示してくれます。
これは、ユーザーとカーネルの間にシェルが入り
シェルというコマンドをユーザーからカーネルに受け渡し
カーネルからユーザーへコマンドの実行結果の返すという
作業をシェルがしているので画面にファイルの中身が表示されます。
■ディレクトとリツリー構造
ディレクトリ:フォルダの事
※今後フォルダの事はディレクトリと言い換えます。
Linuxの全てのファイルはディレクトリで整理され ツリー構造とも呼ばれます。図でいうとこんな感じです。

妹が自分のディレクトリに行く場合、まず「家族」ディレクトリ、 次に「兄弟」ディレクトリに行って「妹」ディレクトリへ辿りつきます。 パス:ファイルへの道順 例えば、妹ディレクトリにある「flower.jpg」のへパスは 「/家族/兄弟/妹/flower.jpg」の様になります。
■パーミッション(アクセス権)
パーミッションとはwindowsのACL(Access Cotorol List)と同じで ファイルやディレクトリに対して、どのユーザーがどの操作を行うかの 許可設定をするために存在します。
アクセス権は3種類のユーザーごとに3種類の設定が可能
・アクセス権の設定ができるユーザーの種類
| ユーザー | 権限 |
| 所有者 | そのファイルを所持するユーザー |
| グループ | そのファイルを所持するグループ() |
| その他(other) |
所有者、グループに該当しないユーザー |
・設定可能な権限
| 権限 | 記号 | 数字 | ディレクトリ | ファイル |
| 読み | r(read) | 4 | ディレクトリ内の表示 | 中身表示 |
| 書き | w(wright) | 2 | ディレクトリ作成 | 中身編集 |
| 実行 | x(execute) | 1 |
カレントディレクトリ可 |
実行可能 |
Linuxのアクセス権は「rwxrw-r–」の様に表示され、左から
所有者、グループ、その他になります。上記の例の場合は
所有者がrwxで全て可、グループはrwで読み書き可、
その他がrで読みとりのみ可であることを示しています。
linux