ネットワーク上でホストを示すものと言うのは結構いろいろあります。その中でも「IPアドレス」と「MACアドレス」は似て非なるものです。いや、そもそも全くの別物です。
ただ、IPアドレスとMACアドレスは、通信経路を決定したりといったネットワークの構成要素として違いがわかりにくい部分もなくはないので今回はそんな話をしていきます。
それぞれの役割
まずはそれぞれの役割をお話しておこうと思います。
IPアドレス
IPアドレスは、TCP/IPモデルにおけるインターネット層(OSI基本参照モデルのネットワーク層)で使われるものです。
そもそもこのインターネット層の役割について理解して置きたいですね。インターネット層は「エンドシステム間の通信を提供する」となっています。具体的に言えば、自分から相手までの通信を提供する層ということになります。
レイヤーとしては第3層となっており、これより上の層はよりアプリケーションに近い部分を提供しています。
IPアドレスは「ネットワーク上でのホストの識別」に使われるもので、通信経路という話で言えば最終的に届けられる宛先を知っていることになります。
MACアドレス
MACアドレスは、TCP/IPモデルにおけるネットワークインターフェース層(OSI基本参照モデルではデータリンク層と物理層)で使われるものです。
レイヤーとしては第2層と呼ばれることがありますが、IPアドレス・インターネット層と比較するとより下位層となっており、ハードウェアに近いものと理解する事ができます。
OSI基本参照モデルのデータリンク層を大雑把に説明すると「隣接したコンピュータ間の通信を提供する」となります。となれば、MACアドレスは隣り合うホストを識別するためのアドレスと考えることができそうですね。
通信経路
普段から何気なく使っているネットワークあるいはインターネットですが、じゃあその情報はどうやって届けられるのでしょうか。
現実世界で考えてみましょう。例として配送物をコンビニに持ち込んで相手の家に届けるとします。
まず荷物はコンビニに持ち込まれます。そして、配送業者がコンビニに集荷に訪れ、その地区の集荷拠点に集められます。そして、送り先(相手)の配送拠点に移され配送されるでしょう。
ネットワークもだいたい同じような形になります。
先程のコンビニからの配送を考えてみましょう。まず、送り先の住所にあたるのがIPアドレスです。一方で、MACアドレスというのはその途中で経由する場所で次に通る場所を示します。
荷物がコンビニにあるとき、IPアドレスは「相手」、MACアドレスが「その地域の集荷拠点」となります。

この図は、部員に対してIPアドレスとMACアドレスを説明するときに作ったスライドの一部ですが、だいたいこの1枚で理解いただけると思います。
それぞれのホストは、データを送るときに「最終的にどこに届けてほしいか(IPアドレス)」と「次にどこに届けてほしいか(MACアドレス)」をヘッダーという伝票のようなものに書きこみます。それを基に各ホストがデータをリレー形式で届けていくことになります。
アドレスの決まり方
では、IPアドレスとMACアドレスはどのように決まるのでしょうか。ややこしいですが、まずはそれぞれの特徴を抑えておく必要があります。
前述の通りIPアドレスはネットワーク上での自分の住所を示したものになります。そのため、ネットワークが変わればIPアドレスは変わりますね。
他方で、MACアドレスはどちらかというと氏名に近い部分があります。そのため、ネットワークが変わろうが何をしようが変わることはありません。
IPアドレスは、ルーターやL3スイッチと呼ばれる機器が決定します。ルーターやL3スイッチは自分が持っているIPアドレスのリストの中から使用されていないIPアドレスを貸し出し(割り当て)ます。このIPアドレスの割り当てにはDHCPというプロトコルが用いられます。IPアドレスを語るとそれだけでかなり長い戯言がかけてしまうので今回は割愛します。
MACアドレスは、製造時に決定し変わることがありません。MACアドレスの構成は前後半に分かれており、前半はその機器やNICを製造したベンダーID、後半は固有の製品番号となっています。
ちなみに、IPアドレスとMACアドレスはARP(IP→MAC)、またはRARP(MAC→IP)というプロトコルでそれぞれ相互に取得することが可能です。