Я хотел бы начать проект "Firewall". Это потребует перехвата данных в сети, обработки их и передачи по пути.
Кто-нибудь пробовал (или теоретизировал), как добавить второй порт Ethernet в модель B?
Возможные решения
- USB-адаптер Ethernet
Я хотел бы начать проект "Firewall". Это потребует перехвата данных в сети, обработки их и передачи по пути.
Кто-нибудь пробовал (или теоретизировал), как добавить второй порт Ethernet в модель B?
Возможные решения
Ответы:
В качестве альтернативы покупке USB-адаптера Ethernet вы можете создать два интерфейса на одной сетевой карте. Один будет обращен к вашей локальной подсети, а другой получит свой ip от вашего провайдера. Концепция под названием «Маршрутизатор на палке» или «Однорукий маршрутизатор».
Но для этого вам понадобится коммутатор, который поддерживает vlan, чтобы разделить две сети. Большинство не делает. Этот делает.
Для создания второго интерфейса на сетевой карте RPi вы можете использовать ip link
команду (из пакета iproute) следующим образом:
# vlan with mac tag
ip link add link eth0 address <mac address> name mywan type macvlan
# vlan with id tag (IEEE 802.1q)
ip link add link eth0 name mywan type vlan id <xx>
# set interface up
ip link set up dev mywan
# get an public ip from your ISP (assuming dhcp protocol is used)
dhclient -v mywan
Я сделаю некоторое тестирование и обновлю этот пост в случае успеха.
Редактировать: я подтверждаю, что вышеуказанная установка работает нормально. Один RPi nic и модем должны быть членами одного и того же vlan. Модем должен быть подключен как «транк» или «доступ» (режимы без тегов).
macvlan
модуля я использую разные идентификаторы VLAN на каждом порту. Таким образом, пакеты port1
будут видны, скажем, на vlan1
интерфейсе, а пакеты port2
будут видны на vlan2
и т. Д. Кстати, также должно быть возможно использование macvlan
без коммутатора VLAN.
macvlan
на коммутаторе без VLAN, две сети не будут разделены, и любые хосты смогут напрямую получить доступ к модему, минуя однорукий маршрутизатор / межсетевой экран.
Вот аналогичная дискуссия на официальных форумах .
я попытался "Wintech USB 2.0 LanCard Model: LAU-15 (CK0049C) успешно. Они работают с драйвером mcs7830.
Я не знаю, может ли (неизмененный) RPi обеспечить достаточную мощность. На моем RPi я укоротил оба USB-предохранителя и использовал неиспользуемый отдельный источник питания / вход (5V 1,5A).
Из второго комментария вам может понадобиться использовать концентратор с питанием, если ваш Pi не модифицирован, но кроме этого не должно быть проблем.
Существует по крайней мере один вариант, который вы можете использовать, который не требует добавления дополнительного порта Ethernet к вашему RaspberryPi - с помощью коммутатора VLAN. Это может быть довольно дорого, так как самые дешевые VLAN-коммутаторы, которые я знаю, стоят около 35 $. Но у него есть некоторые дополнительные преимущества (еще больше портов Ethernet, больше возможностей для изучения и т. Д.). Вы можете настроить их для маркировки каждого порта с различным идентификатором VLAN, а затем создать несколько интерфейсов VLAN на вашем Pi. Каждый помеченный пакет будет отображаться на соответствующем помеченном интерфейсе вашего Pi, что обеспечивает множество виртуальных интерфейсов.