Разберем настройку сетевого интерфейса и маршрутов в 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=osc.nsk.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@babylol etc]#
Рестарт сеть:
[root@babylol ~]# /etc/init.d/network restart Деактивируется интерфейс eth0: [ OK ] Деактивируется интерфейс-петля: [ OK ] Активируется интерфейс loopback: [ OK ] Активируется интерфейс eth0: [ OK ]
Настройка сети с помощью ifconfig и route.
[root@babylol ~]# ifconfig -a eth0 192.168.1.200 netmask 255.255.255.0 [root@babylol ~]# route add default gw 192.168.1.100
Настройка сети в CentOS =)