Разберем
настройку сетевого интерфейса и маршрутов в Linux. В данном случае
на примере CentOS.
Системные файлы конфигурации:
/etc/hosts – список ip-адресов и назначенных им имен.
/etc/resolv.conf – в этом файле указываются DNS сервера. DNS-сервер задается директивой nameserver
пример:
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
[root@localhost ~]#
/etc/host.conf – файл указывает последовательность использования механизмов разрешения имени.
Пример: (сначала используем /etc/hosts а только потом DNS-сервер)
[root@localhost ~]# cat /etc/host.conf
order hosts,bind
[root@localhost ~]#
/etc/init.d/network – скрипт останавливающий и запускающий работу сети
/proc/sys/net/ipv4/ip_forward – включение маршрутизации для своих интерфейсов, если у вас два или более интерфейсов её нужно включить.
Проверить включен или нет:
[root@localhost ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
[root@localhost ~]#
или
[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward
0
[root@localhost ~]#
или
[root@localhost ~]# grep forward /etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
[root@localhost ~]#
Включить: (Действовать будет до перезагрузки)
[root@localhost ~]# echo '1' > /proc/sys/net/ipv4/ip_forward
У вас есть новая почта в /var/spool/mail/root
[root@localhost ~]#
или
[root@localhost ~]# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
[root@localhost ~]#
/etc/sysconfig/network — указываем, является ли наш сервер доступным по сети, по каким протоколам и указываем наше имя сервера.
[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=alice2k.ru
[root@localhost ~]#
Здесь можно указывать default gateway
GATEWAY=192.168.1.1 — в этом случае gateway имеет адрес 192.168.1.1, у вас может быть другой.
Описание:
NETWORKING=yes — будет ли наш сервер работать в сети
NETWORKING_IPV6=no — тоже самое только для Ip6
HOSTNAME=centos52 — имя нашего сервера
/etc/sysconfig/network-scripts/ — скрипты влияющие на работу сетевого интерфейса
Для нас самое большое значение имеют скрипты ifcfg-*. Именно в них описываются настройки сетевых интерфейсов присутствующих в сервере.
[root@localhost ~]# ls -l /etc/sysconfig/network-scripts/ifcfg-*
-rw-r--r-- 1 root root 274 Мар 17 00:06 /etc/sysconfig/network-scripts/ifcfg-eth0
-rw-r--r-- 1 root root 254 Июл 4 2009 /etc/sysconfig/network-scripts/ifcfg-lo
[root@localhost ~]#
Описание параметров и их значения:
BOOTPROTO — (static,none,dhcp,bootp)
DEVICE — (eth0) название интерфейса
HWADDR — (00:0C:29:43:5B:3D) — MAC-адрес нашей сетевой карты.
ONBOOT — (yes) — включать ли этот интерфейс автоматически при включение сервера.
IPADDR — (127.0.0.1) — ip-адрес интерфейса.
NETMASK — (255.0.0.0) — сетевая маска
NETWORK — (127.0.0.0) — сеть в которой находится наш ip-адрес
BROADCAST — (127.255.255.255) — адрес широковещательной рассылки
GATEWAY — (192.168.0.1) — шлюз через который мы попадаем в другие сети
Настройки для DHCP
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
Настройки для статики:
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.88
NETMASK=255.255.255.0
NETWORK=192.168.0.0
GATEWAY=192.168.0.1
ONBOOT=yes
Прописываем маршруты
root@localhost ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.77.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth0
default 192.168.77.77 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]#
или
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.77.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
default 192.168.77.77 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]#
/etc/sysconfig/network-scripts/route-eth0 — статический маршрут для eth0
Для того чтобы прописать маршруты для какого либо интерфейса, необходимо создать файл route-<название интерфейса> в каталоге /etc/sysconfig/network-scripts/ После того как все готово к работе, мы перезагружаем сетевой сервис.
Пример:
[root@localhost ~]# cat /etc/sysconfig/network-scripts/route-eth1
192.168.148.0/24 via 192.168.147.1
[root@localhost ~]#
или
[root@localhost ~]# route add -net 192.168.148.0/24 gw 192.168.147.1
Другие примеры:
настройка сети в консоли
system-config-network-tui
настрока сети в графике
system-config-network-gui
Посмотреть настройки сети:
toor@babylol:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 90:e6:ba:44:a4:3d
inet addr:192.168.15.199 Bcast:192.168.15.255 Mask:255.255.255.0
inet6 addr: fe80::92e6:baff:fe44:a43d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6739839 errors:0 dropped:0 overruns:0 frame:0
TX packets:6370782 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3046437053 (3.0 GB) TX bytes:1870686129 (1.8 GB)
Interrupt:20 Память:f9fc0000-f9fe0000
toor@babylol:~$
Настройки сетевых интерфейсов хранятся в /etc/sysconfig/network-scripts/
[root@nskgw etc]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="yes"
ONBOOT=yes
HWADDR=00:1B:21:8E:31:44
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
[root@nskgw etc]#
[root@babylol etc]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.12.255
HWADDR=00:19:5B:72:57:C5
IPADDR=192.168.12.200
NETMASK=255.255.255.0
NETWORK=192.168.12.0
ONBOOT=yes
[root@a2k etc]#
Рестарт сеть:
[root@a2k ~]# /etc/init.d/network restart
Деактивируется интерфейс eth0: [ OK ]
Деактивируется интерфейс-петля: [ OK ]
Активируется интерфейс loopback: [ OK ]
Активируется интерфейс eth0: [ OK ]
Настройка сети с помощью ifconfig и route.
[root@a2k ~]# ifconfig -a eth0 192.168.1.200 netmask 255.255.255.0
[root@a2k ~]# route add default gw 192.168.1.100