PPPoE сървър на основата на Mikrotik

До сега изграждахме рутер с най-обикновени настройки. Време е да видим предимствата му спрямо масовите рутери от 20-30 лв. До тука успяхме да се свържем с доставчика на Интернет, да го предадем на клиентите си от локалната мрежа, да си защитим рутера от нежелано влизане. Най-често провайдерите предоставят услугата си посредством PPPoE връзки. Ако сте се замисляли защо е така, отговора е много прост. Клиентите са в една и съща физическа мрежа но не се виждат един друг. А сега си представете, че във вашата фирма дойде външен клиент, който иска достъп до Интернет, ползвайки вашия. Разбира се ще му дадете, защото клиента винаги е важен, обаче не трябва да вижда и да знае какво става във вашата мрежа. Ето тука идва на помощ PPPoE връзката. Схемата ще е следната:


Pic00

Имаме рутер който е свързан с интернет. Вида връзка не е интересен затова ще ползваме най-простия, получаваме настройките по DHCP. Отдругата страна рутерa ще е вързан към локална мрежа чрез интерфейс br1-lan с IP 192.168.1.1/24. В локалната мрежа ще има два клиента. Единия ще получава настройките си чрез DHCP, което също ще е на рутера. Другия клиент ще получи достъп до мрежата посредством PPPoE сесия. PPPoE сървъра също ше бъде инсталиран на рутера. Клиент PC-1 и PC-2 няма да могат да се виждат един друг но ще могат да излизат в Интернет.


Връзка на Mikrotik с Интернет

Mikrtotik e свързан към Интернет по физическия интерфейс ether1. Като за начало да го преименуваме на eth1-wan

/interface ethernet set ether1 name=eth1-wan


Ако пък трябваше през winbox то щеше да изглежда така: Interfaces / Ether1 / Name: eth1-wan / OK

Pic01

И сега да стартираме DHCP клиент на интерфейса за да може да си получи настройките автоматично

/ip dhcp-client add interface=eth1-wan disabled=no


И варианта през winbox

IP / DHCP Client / + / Interface: eth1-wan / OK

Pic02

Проверяваме дали си е получило настройките

/ip address print Flags: X - disabled, I - invalid, D - dynamic # FLAG ADDRESS NETWORK INTERFACE 0 D 10.25.0.89/21 10.25.0.0 eth1-wan


Как ще изглежда през winbox: IP / Address

Pic03

Връзката е изградена, време е да се занимаем с локалната мрежа.

Локлана мрежа

Първата ни задача е да дефинираме интерфейса на рутера който ще е свързан с локалната мрежа. Тъй като имаме още 4 интерфейса то ще ги свържем в бридж и ще дадем име br1-lan на интерфейса.

/interface bridge add name=br1-lan


През winbox би изглеждало така: Bridge / + / Name: br1-lan / OK

Pic04

Сега към новосъздадения интерфейс br1-lan да добави портовете ether2, ether3, ether4, ether5

/interface bridge port add interface=ether2 bridge=br1-lan /interface bridge port add interface=ether3 bridge=br1-lan /interface bridge port add interface=ether4 bridge=br1-lan /interface bridge port add interface=ether5 bridge=br1-lan


И отново през winbox би изглеждало така: Bridge / Ports / + / Interface: ether2, Bridge: br1-lan / OK

Pic05

Резултата трябва да е следния:

/interface bridge port print Flags: X - disabled, I - inactive, D - dynamic, H - hw-offload # FLAG INTERFACE BRIDGE HW PVID PRIORITY PATH-COST INTERNAL-PATH-COST HORIZON 0 ether2 br1-lan yes 1 0x80 10 10 none 1 ether3 br1-lan yes 1 0x80 10 10 none 2 ether4 br1-lan yes 1 0x80 10 10 none 3 ether5 br1-lan yes 1 0x80 10 10 none


Погледнато през winbox би изглеждало така: Bridge / Ports

Pic06

Бриджа е създаден, сега да пуснем услугата DHCP Server на интерфейса за да може клиента PC-1 да получи автоматично настройките си за локалната мрежа. За начало да дефинираме локалната мрежа. Казахме, че ще е 192.168.1.0/24

/ip address add address=192.168.1.1/24 interface=br1-lan


През winbox би изглеждало така: IP / Address / + / Address: 192.168.1.1/24, Network: 192.168.1.0, Interface: br1-lan / OK

Pic07

Да създадем масив от IP адреси които ще раздава DHCP сървъра

/ip pool add name=dhcp-pc ranges=192.168.1.100-192.168.1.200


През winbox: IP / Pool / + / Name: dhcp-pc; Addresses: 192.168.1.100-192.168.1.200 / OK

Pic08

А сега нека DHCP сървъра да се вдигне на интерфейс br1-lan

/ip dhcp-server add name=dhcp-pc interface=br1-lan lease-time=08:00:00 address-pool=dhcp-pc disabled=no


Варианта през winbox: IP / DHCP Server / + / Name: dhcp-pc; Interface: br1-lan; Lease Time: 08:00:00; Address Pool: dhcp-pc / OK

Pic09

Сървъра е вдигнат но да укажем какви настройки ще дефинира за потребителите в локалната мрежа

/ip dhcp-server network add address=192.168.1.0/24 dns-server=8.8.8.8 gateway=192.168.1.1 netmask=24


И през winbox: IP / DHCP Server / Networks / + / ОК

Pic10

Вече първия клиент получава настройките си в локалната мрежа. Може да тестваме като от самия клиент изпълним слената команда:

ping 192.168.1.1 84 bytes from 192.168.1.1 icmp_seq=1 ttl=64 time=1.073 ms 84 bytes from 192.168.1.1 icmp_seq=2 ttl=64 time=0.505 ms 84 bytes from 192.168.1.1 icmp_seq=3 ttl=64 time=0.572 ms 84 bytes from 192.168.1.1 icmp_seq=4 ttl=64 time=0.468 ms 84 bytes from 192.168.1.1 icmp_seq=5 ttl=64 time=1.088 ms


Обаче ако се помъчим да проверим достъпа до машина примерно в Интернет няма да можем, защото в рутера още не сме позволили. За целта да позволим на клиентите от локалната мрежа да имат достъп до Интернет. На рутера дефинираме следното правило:

/ip firewall nat add action=masquerade chain=srcnat out-interface=eth1-wan src-address=192.168.1.0/24


И ако ползвахме winbox: IP / Firewall / General / Chain: srcnat; Src.Address: 192.168.1.0/24; Out.Interface: eth1-wan / Action / Action: masquerade / OK

Pic11

Pic12

Вече клиента PC-1 може да достъпва и Интернет. Сега трябва да накараме клиента PC-2 да се върже в локалната мрежа, да получи настройки за нея, да може да ползва Интернет и да не може да вижда какво се случва с другите компютри.

PPPoE сървър за локалната мрежа

PPPoE сървъра също ще е на рутера, ще се вдигне на интерфейс br1-lan. Стъпките за изграждането му са следните: - създаваме масив от адреси които ще раздава сървъра; - създаваме профил за сървъра; - дефнираме самия PPPoE сървър; - създаваме потребител с парола който ще се свързва към сървъра.

Масив от адреси за PPPoE сървъра

Дефинираме максимум 10 потребителя които ще могат да ползват услугата

/ip pool add name=pppoe-pool ranges=192.168.101.60-192.168.101.70


И варианта във winbox: IP / Pool / Pools / + / IP Pool / Name: pppoe-pool; Address: 192.168.101.60-192.168.101.70 / OK

Pic13

Профил за PPPoE сървъра

/ppp profile add name=pppoe-profile local-address=192.168.101.1 remote-address=pppoe-pool


Вариант през winbox: PPP / Prifiles / + / PPP Profile / Name: pppoe-profile; Local Address: 192.168.101.1; Remote Address: pppoe-pool / OK

Pic14

Както забелязваме нямаме дефинирано Locall Address. Да оправим този пропуск.

/ip address add address=192.168.101.1/24 interface=br1-lan


Вариант през windbox: IP / Addresses / + / Address: 192.168.101.1/24; Network: 192.168.101.0; Interface: br1-lan / OK

Pic15

Имаме всичко да вдигнем и PPPoE сървъра.

/interface pppoe-server server add service-name=internet interface=br1-lan default-profile=pppoe-profile disabled=no


Отново вариант през winbox: PPP / Profiles / + / General / Name: pppoe-profile; Loal Address: 192.168.101.1; Remote Address: pppoe-pool / OK

Pic17

PPP / PPPoE Servers / + / Service Name: internet; Interface: br1-lan; Default Profile: pppoe-profile / OK

Pic16

Сървъра е вдигнат, слуша на интерфейса br1-lan. Когато дойде външния клиент за компанията и поиска да ползва Интернета на компанията ще трябва да му дадем име и парола за тази цел. Обобщено казано клиента получава от нас име и парола и чрез нея автоматично ще получи настройките си за да излезе в Интернет.

/ppp secret add name=Ivan password=Navi service=pppoe profile=pppoe-profile


И отново през winbox: PPP / Secrets / + / PPP Secret / Name: Ivan; Password: Navi; Service: pppoe / OK

Pic18

Готово, клиента ще може да се включва в мрежата ни и да получава настройки за нея. Обаче за да може да излиза в Интернет ще настроим и пакетния филтър. Аналогично както в горния случай командата е следната:

/ip firewall nat add action=masquerade chain=srcnat out-interface=eth1-wan src-address=192.168.101.0/24


Вариант за winbox: IP / Firewall / NAT / + / NAT Rule / General / Chain: srcnat; Src.Address: 192.168.101.0/24; Out.Interface: eth1-wan / OK

Pic19

IP / Firewall / NAT / NAT Rule / Action / Action: masquerade / OK

Pic20

Клиента има Интернет. Остава да го ограничим да не може да вижда клиентите от локалната мрежа.

/ip firewall filter add chain=forward action=drop src-address=192.168.101.0/24 dst-address=192.168.1.0/24


И през winbox: IP / Firewall / Filter Rule / + / Firewall Rule / Action / Action: drop / OK

Pic21

IP / Firewall / Filter Rule / Firewall Rule / General / Chain: forward; Src.Address:192.168.101.0/24; Dst.Address: 192.168.1.0/24 / OK

Pic22

Пакетния филтър в RouterOS е нещо много важно и трябва да се владее, ако ще се прави нещо по сложно.