Humanity

Edit the world by your favorite way

一時的にIPアドレス、ゲートウェイアドレスを変える

IPアドレスゲートウェイアドレスを一時的に変更する方法知らなかった。
初歩的なことばっかだけどメモ。
なんとなく恒久的に変える方法も載っけてみた。
引数はそれぞれの環境によって変えてください。

IPアドレス (一時的に変える場合)

# ifconfig eth0 192.168.1.10 netmask 255.255.255.0

確認はifconfig eth0。
またはip addr show eth0とかだとDHCPの場合リース期間も表示されます。

IPアドレス (恒久的に変える場合)

Debian

# vi /etc/network/interfaces

RedHat

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

ゲートウェイアドレス (一時的に変える場合)

# route add default gw 192.168.1.10

確認はroute。
route -nのがホスト名じゃなくIPアドレスで表示されるので見やすい(個人的には)


「default」の部分は「0.0.0.0」でもいけるとか書いてあったサイトがあった気がした*1んだけど、確認してみたら全然違った。
まずroute del default gw {現在のゲートウェイアドレス}として削除しておいて、route -nでルーティングテーブルを表示させてから確認した。

route add default gw xxx.xxx.xxx.xxx

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx.xxx.xxx.xxx  255.255.255.255 UGH   0      0        0 eth0

route add 0.0.0.0 gw xxx.xxx.xxx.xxx

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx.xxx.xxx.xxx  0.0.0.0         UG    0      0        0 eth0

とそれぞれ微妙に異なる結果が得られた。

また、

  • defaultの場合はルーティングテーブルの一番下に追加されたけど、0.0.0.0の場合は一番上に追加された。
  • route add default gw xxx.xxx.xxx.xxxした経路情報はroute del default gw xxx.xxx.xxx.xxxでしか消せない
    • 同じくroute add 0.0.0.0 gw xxx.xxx.xxx.xxxした経路情報はroute del 0.0.0.0 gw xxx.xxx.xxx.xxxでしか消せない

'255.255.255.255' は、ホストが対 象である場合のマスクで、
'0.0.0.0' が、 デフォルト経路のネットマスクである。

デフォルトゲートウェイの設定

ホストが対象である場合のマスクってことは自分自身と通信した場合だろうか?*2
と思って、

した状態で自分自身にping*3してみたけど普通に返ってきた。
ちなみにこの状態でping example.comしても返ってきた。
優先順位とかどういうマッチの仕方をするのかいまいち分かってない。
誰か教えてください。

ゲートウェイアドレス (恒久的に変える場合)

Debian

# vi /etc/network/interfaces

RedHat

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

ホスト名 (一時的に変える場合)

# hostname hoge

ホスト名 (恒久的に変える場合)

/etc/hostnameと/etc/hostsの該当ホストを編集して保存する。

*1:これも多分自分の勘違いなような...

*2:man route見たらFlagsのHはHostを表すらしい

*3:127.0.0.1とプライベートIPアドレス両方にしてみたけど変わらず