вторник, 8 ноября 2011 г.

IP адрес и MAC адрес в Linux


IP address - (сокращение от Internet Protocol Address) уникальный адрес узла в сети.
IP адрес - двоичное число бывает размером 32 бита (IPV4 адрес протокола 4 версии IP) и 128 бит (IPV6 адрес протокола 6 версии IP).
IP адрес 4 версии протокола IP обычно записывается в десятичной форме например 192.168.250.12, а IP адрес 6 версии протокола записывается в 16-ричной форме например  fe80::8db8:d9c:ab53:3b3d. Более подробно об IP адресах можно почитать по ссылкам в конце статьи.
В рамках данной статьи я хочу рассказать о том как узнать ip адрес linux сервера, как поменять ip адрес в linux системе, как сделать ip адрес статическим или динамическим(DHCP), как поменять MAC адрес.

Как узнать ip адрес сервера?
Если вы имеете прямой доступ к серверу и можете подойти и залогиниться, узнать его IP адрес на составит труда, введи в консоли:

 ifconfig  
Выведется примерно такая информация
eth0      Link encap:Ethernet  HWaddr 00:03:99:8a:2f:22
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::203:99ff:fe8a:2f22/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2215344 errors:0 dropped:0 overruns:13 frame:0
          TX packets:3188016 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:454089023 (433.0 MiB)  TX bytes:3090350308 (2.8 GiB)
          Interrupt:22 Base address:0x6000

eth1      Link encap:Ethernet  HWaddr 00:19:d1:17:a9:5b
          inet addr:10.10.10.40  Bcast:10.10.10.255  Mask:255.255.255.0
          inet6 addr: fe80::219:d1ff:fe17:a95b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3627921 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2408036 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3060328416 (2.8 GiB)  TX bytes:571229924 (544.7 MiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:166 errors:0 dropped:0 overruns:0 frame:0
          TX packets:166 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:16806 (16.4 KiB)  TX bytes:16806 (16.4 KiB)
Где eth0, eth1 это названия физических сетевых интерфейсов, lo -  loopback интерфейс.
Бывает, что сервер физически недоступен и у вас есть логин и пароль, но вы не знаете какой у него IP адрес. Тогда можно подключиться к тому коммутатору куда подключен сервер и проснифить пакеты исходящие от сервера, для этого необходимо воспользоваться программой tcpdump, либо wireshark (графический аналог tcpdump, есть версия под Windows). 
Например так:
 tcpdump -i eth0 -v
Есть другие способы как выловить ip адрес сервера, например ограничить сервер одним хабом и так же воспользоваться снифером, либо послать широковещательный ARP запрос и узнать MAC адрес, а уже зная MAC адрес с помощью arping пингануть сервер. Но я не буду описывать эти способы, так как это не входит рамки данной статьи, но обязательно напишу об этом позже.


Как поменять ip адрес?
Смена IP адреса в linux системах достаточно тривиальная процедура, в debian и ubuntu нужно отредактировать файл /etc/network/interfaces 
auto eth0
iface eth0 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        gateway 192.168.0.2
        dns-nameservers 192.168.0.35 192.168.0.25
        dns-search example.local

auto eth1
iface eth1 inet dhcp
В этом примере видно, что сетевой интерфейс eth0 имеет статический IP адрес 192.168.0.1, маску подсети 255.255.255.0, шлюз 192.168.0.2, DNS сервера 192.168.0.35 и 192.168.0.25, внутреннее доменное имя example.local. 
Второй сетевой интерфейс eth1 получает IP адрес автоматически посредством DHCP.
Что такое DHCP и как настроить свой DHCP сервер я расскажу отдельно.


Как поменять MAC адрес?
Поменять MAC адрес в linux не сложно, нужно добавить в файл /etc/network/interfaces строку hwaddress ether и нужный MAC адрес. Возьмем за основу предыдущий пример и добавим необходимый параметр(выделен жирным):
auto eth0
iface eth0 inet static
        hwaddress ether 02:01:02:03:04:08
        address 192.168.0.1
        netmask 255.255.255.0
        gateway 192.168.0.2
        dns-nameservers 192.168.0.35 192.168.0.25
        dns-search example.local


На этом все! Оставайтесь с блогом сурового ITшника и вы узнаете много интересного из мира linux.
Ссылки:
IP адрес в wikipedia http://ru.wikipedia.org/wiki/IP-%D0%B0%D0%B4%D1%80%D0%B5%D1%81
MAC адрес в wikipedia http://ru.wikipedia.org/wiki/MAC-%D0%B0%D0%B4%D1%80%D0%B5%D1%81