Предположим у нас есть 2 компьютера/ноутбука (не важно), на одном из которых две сетевые карты. Мы хотим обеспечить интернетом 2 этих компьютера без использования коммутатора/маршрутизатора.
Пусть первый компьютер имеет две сетевые карты и на нем установлен linux. На втором компьютере установлен windows. Имеется выход в интернет.
В качестве шлюза у нас будет выступать компьютер с linux на борту, от него будет принимать интернет, компьютер с windows на борту.
Схемка примерно такая:
Пусть у нас провайдер раздает ip-шники по DHCP. Тогда нам не надо париться со статическим ip-адресом для linux'а.
Первым делом нужно, естественно, настроить linux.
Первая сетевая карта (eth0) будет подключена к интернету, так как используется DHCP, то в файле /etc/network/interfaces для интерфейса eth0 можно написать:
auto eth0
iface eth0 inet dhcp
Тут все понятно. Если же провайдер раздает статические ip-шники, то нужно у него и спросить, тут писать не буду, еще гуглить по запросу «статический ip-адрес linux».
Вторая сетевая карта (eth1) будет связывать linux и windows.
Так как, DHCP сервер мы не настраивали, то ip-шник сделаем статическим.
В файл /etc/network/interfaces допишем настройки для eth1:
Пусть первый компьютер имеет две сетевые карты и на нем установлен linux. На втором компьютере установлен windows. Имеется выход в интернет.
В качестве шлюза у нас будет выступать компьютер с linux на борту, от него будет принимать интернет, компьютер с windows на борту.
Схемка примерно такая:
Пусть у нас провайдер раздает ip-шники по DHCP. Тогда нам не надо париться со статическим ip-адресом для linux'а.
Первым делом нужно, естественно, настроить linux.
Первая сетевая карта (eth0) будет подключена к интернету, так как используется DHCP, то в файле /etc/network/interfaces для интерфейса eth0 можно написать:
auto eth0
iface eth0 inet dhcp
Тут все понятно. Если же провайдер раздает статические ip-шники, то нужно у него и спросить, тут писать не буду, еще гуглить по запросу «статический ip-адрес linux».
Вторая сетевая карта (eth1) будет связывать linux и windows.
Так как, DHCP сервер мы не настраивали, то ip-шник сделаем статическим.
В файл /etc/network/interfaces допишем настройки для eth1:
auto eth1
iface eth1 inet static #адрес статический
address 192.168.1.2 #ip-адрес
netmask 255.255.255.0 #маска
В итоге, после этих настроек, файл /etc/network/interfaces должен выглядеть примерно так:
auto lo #петля
iface lo inet loopback
auto eth0 #на интернет
iface eth0 inet dhcp
auto eth1 #на windows
iface eth1 inet static #адрес статический
address 192.168.1.2 #ip-адрес
netmask 255.255.255.0 #маска
В итоге, после этих настроек, файл /etc/network/interfaces должен выглядеть примерно так:
auto lo #петля
iface lo inet loopback
auto eth0 #на интернет
iface eth0 inet dhcp
auto eth1 #на windows
iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.0
Так, как мы отредактировали системный файл, мы должны перезагрузить демон сети:
$ sudo /etc/init.d/networking restart
Пока оставим в сторону linux, перейдем к настройке windows.
Соединим витухой сетевую карту eth1 (linux) и единственную сетевую карту на windows.
Должно установиться соединение и в настройках этого соединения в windows нужно прописать:
Ip-адрес: 192.168.1.3
Маска подсети: 255.255.255.0
Шлюз: 192.168.1.2 #ip-шник eth1 (linux)
DNS: 192.168.1.2 #ip-шник eth1 (linux)
Сохраняем это все дело.
Пробуем пинговать с windows наш linux, в командной строке пишем:
ping 192.168.1.2
Если пинг идет, значит коннект есть, но это не значит, что интернет уже доступен на windows, нужно еще настроить правила маршрутизации и DNS-сервер.
Опять возвращаемся к linux.
Первым делом нужно разрешить пересылку пакетов между интерфейсами, то есть чтобы, принятый пакет на eth0, можно было отправить на eth1:
address 192.168.1.2
netmask 255.255.255.0
Так, как мы отредактировали системный файл, мы должны перезагрузить демон сети:
$ sudo /etc/init.d/networking restart
Пока оставим в сторону linux, перейдем к настройке windows.
Соединим витухой сетевую карту eth1 (linux) и единственную сетевую карту на windows.
Должно установиться соединение и в настройках этого соединения в windows нужно прописать:
Ip-адрес: 192.168.1.3
Маска подсети: 255.255.255.0
Шлюз: 192.168.1.2 #ip-шник eth1 (linux)
DNS: 192.168.1.2 #ip-шник eth1 (linux)
Сохраняем это все дело.
Пробуем пинговать с windows наш linux, в командной строке пишем:
ping 192.168.1.2
Если пинг идет, значит коннект есть, но это не значит, что интернет уже доступен на windows, нужно еще настроить правила маршрутизации и DNS-сервер.
Опять возвращаемся к linux.
Первым делом нужно разрешить пересылку пакетов между интерфейсами, то есть чтобы, принятый пакет на eth0, можно было отправить на eth1:
$ sudo echo "1" > /proc/sys/net/ipv4/ip_forward
либо
либо
$ sudo nano /etc/sysctl.conf
найти строку и снять с нее комментарий:
найти строку и снять с нее комментарий:
net.ipv4.ip_forward=1
Маршрутизацию пакетов мы разрешили, теперь нужно настроить правила, по которым пакеты будут отправляться от linux к windows.
Откроем файл /etc/rc.local и допишем перед! exit 0 такие строки:
Откроем файл /etc/rc.local и допишем перед! exit 0 такие строки:
iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o eth0 -j REJECT
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Теперь установим пакет dnsmasq, он необходим для перенаправления DNS запросов, вышестоящим серверам:
Теперь установим пакет dnsmasq, он необходим для перенаправления DNS запросов, вышестоящим серверам:
$ sudo apt-get install dnsmasq
Попробуем проверить, работает ли DNS на windows.
В windows, в консоли, пишем:
Попробуем проверить, работает ли DNS на windows.
В windows, в консоли, пишем:
nslookup ya.ru
Если идет ответ, а-ля:
Имя: ya.ru
Addresses: 87.250.251.3
…
То все нормально.
Перезагружаемся.
Если идет ответ, а-ля:
Имя: ya.ru
Addresses: 87.250.251.3
…
То все нормально.
Перезагружаемся.
а про конфигурацию фаервола можешь написать по подробнее ?
ОтветитьУдалитьЧто конкретно не понятно? man iptables решит большинство ваших проблем.
Удалить