Предположим, что у вас есть машина, подключенная к интернету и требуется раздать его на другие компьютеры.
Интернет ——> |пк1 (шлюз)| —>пк2(свитч)..и т.д
Исходные данные:
Оба компьютера соединены по сети.
На пк1 установлено 2 сетевые карты:
eth1 – к ней подключен интернетeт
eth0 – к ней подключена локальная сеть
Настройте вторую карту (eth0) так:
IP: 192.168.0.1
Netmask: 255.255.255.0
или введите в консоли:
#ifconfig eth0 192.168.0.1 netmask 255.255.255.0
#ifconfig eth0 up
Разрешите направление пакетов. Чтобы сделать это, отредактируйте /etc/sysctl.conf: вставьте строчку
net.ipv4.ip_forward=1
net.ipv4.conf.default.forwarding=1 //Ubuntu 7.04 у меня
Перезапустите сеть, или перезагрузитесь.
Установите iptables, введите следующее правило (для передачи интернета второму компьютеру) и сохраните его.
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Установите и запустите dnsmasq
Установите на втором компьютере:
IP: 192.168.0.2
Netmask/Маска: 255.255.255.0
Gateway/Шлюз: 192.168.0.1
DNS: 192.168.0.1
Второй компьютер теперь должен быть подключён к интернету.
Если после перезагрузки правила iptables не восстанавливаются, добавьте
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
в любой стартовый скрипт