пятница, 24 декабря 2010 г.

Раздача интернета Ubuntu

echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -t nat -A POSTROUTING -s * -j MASQUERADE
* -- диапазон домашней локалки (192.168.0.0/24 например)


Предположим, что у вас есть машина, подключенная к интернету и требуется раздать его на другие компьютеры.

Интернет ------> |пк1 (шлюз)| --->пк2(свитч)..и т.д

Исходные данные:
Оба компьютера соединены по сети.
На пк1 установлено 2 сетевые карты:
  • eth0 - к ней подключен интернетeт
  • eth1 - к ней подключена локальная сеть
Настройте вторую карту (eth1) так:
IP: 192.168.0.1
Netmask: 255.255.255.0
или введите в консоли:

ifconfig eth1 192.168.0.1 netmask 255.255.255.0
ifconfig eth1 up

Разрешите направление пакетов.
Чтобы сделать это, отредактируйте /etc/sysctl.conf: вставьте строчку

net.ipv4.ip_forward=1

Выполните:

sysctl -w net.ipv4.ip_forward="1"

для того, чтобы применить это правило до перезагрузки
Установите iptables, введите следующее правило (для передачи интернета второму компьютеру) и сохраните его.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Установите и запустите dnsmasq (или, вы можете использовать DNS провайдера).
Установите на втором компьютере:
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 eth0 -j MASQUERADE

в любой стартовый скрипт (rc.local например)

Комментариев нет:

Отправить комментарий