Фон
Я использовал WIFI-роутер в качестве домашнего шлюза, пока мой интернет-провайдер не ограничил количество подключенных устройств. И в настоящее время нет никакого реалистичного плана обновления от интернет-провайдера для большего количества устройств. Поэтому я пытаюсь настроить NAT-маршрутизатор на основе Linux.
Компоненты
- Raspberry Pi 2 модель B (RPi) со встроенным адаптером Ethernet и 4 портами USB.
- USB-адаптер Ethernet 100 Мбит.
- коммутатор с 4 портами.
Настройка оборудования
В качестве адаптера WAN будет использоваться встроенный сетевой адаптер RPi, то есть eth0. Коммутатор будет подключен к RPi через USB-адаптер Ethernet, т.е. eth1. Таким образом, этот USB-адаптер Ethernet должен работать как сетевой адаптер. Проводные устройства, такие как мой ноутбук и WIFI-маршрутизатор, будут подключены через коммутатор, а беспроводные устройства будут подключены через WIFI-маршрутизатор.
Настройка программного обеспечения
Я настроил dnsmasq на RPi просто для предоставления услуг DHCP и DNS. Адаптер WAN (eth0) получает IP-адрес и DNS от интернет-провайдера по DHCP. Сетевой адаптер (eth1) настроен на статический адрес 10.0.1.1/24. Маршрутизация и NAT настроены как:
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -o eth0 -i eth1 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Я также включил пересылку ipv4.
Тесты и результаты
Тест 1
Сначала я моделирую интернет-провайдера с помощью своего WIFI-маршрутизатора, а именно подключаю WAN-адаптер RPi к одному из слотов локальной сети маршрутизатора. Затем я подключаю свой ноутбук напрямую к сетевому адаптеру RPi. Мой ноутбук получает IP-адрес 10.0.1.129 по DHCP, как я и ожидал. Я могу пинг с моего ноутбука на маршрутизатор через RPi успешно. Я также могу получить доступ к административной веб-странице, обслуживаемой маршрутизатором, с моего ноутбука. Так что все работает хорошо.
Тест 2.
Я подключаю RPi к REAL ISP кабелю через его адаптер WAN. Ноутбук все еще подключен к сетевому адаптеру RPi. У меня есть подключение к Интернету на RPi. Я могу получить имя хоста WAN с моего ноутбука, но не могу пропинговать его и открыть там все веб-страницы WAN. Так что Тест 2 не проходит.
Позже я выберу другой подход.
У меня есть бимодальный USB-адаптер WIFI, который может работать как WIFI-клиент или WIFI-маршрутизатор при подключении к компьютеру под управлением Windows XP/7/8. Я подключаю кабель ISP к своему ноутбуку, чтобы получить доступ к Интернету с моего ноутбука. Затем я подключаю USB-адаптер WIFI к ноутбуку и настраиваю его как WIFI-роутер. При таком подходе мои iPhone, iPad и ноутбук могут совместно использовать интернет-соединение. Я считаю, что этот подход реализован службой Windows ICS (совместное использование интернет-соединения).
Итак, вот мои два вопроса:
- В чем разница между службой Windows ICS и NAT & Routing на основе Linux, особенно с конфигурацией, которую я реализовал? Я думал, что Windows ICS - это только часть NAT.
- Есть ли вероятность, что мой RPi сможет работать как домашний шлюз вместо моего ноутбука? Ведь ноутбук потребляет гораздо больше энергии.