Local proxy arp mikrotik

About SOCKS

SOCKS is a proxy server that allows TCP based application data to relay across the firewall, even if the firewall would block the packets. The SOCKS protocol is independent from application protocols, so it can be used for many services, e.g, WWW, FTP, TELNET, and others.

At first, an application client connects to the SOCKS proxy server, then the proxy server looks in its access list to see whether the client is permited to access the remote application resource or not, if it is permitted, the proxy server relies the packet to the application server and creates a connection between the application server and client.

Remember to configure your application client to use SOCKS version 4.

You should secure the SOCKS proxy using its access list and/or firewall to disallow access from outisde. Failing to secure the proxy server may introduce security issues to your network, and may provide a way for spammers to send junk mail through the router.

Property Description

  • connection-idle-timeout (time; default: 2m) — time after which idle connections are terminated
  • enabled (yes | no; default: no) — whether to enable or no the SOCKS proxy
  • max-connections (integer: 1..500; default: 200) — maxumum number of simultaneous connections
  • port (integer: 1..65535; default: 1080) — TCP port on which the SOCKS server listens for connections

Application Examples

Connecting Remote Client

The following example shows how to connect a computer to a remote office network over a PPTP encrypted tunnel giving that computer an IP address from the same network that the remote office has (without any need of bridging over EoIP tunnels).

Consider following setup:

Office router is connected to internet through ether1. Workstations are connected to ether2.
Laptop is connected to the internet and can reach Office router’s public IP (in our example it is 192.168.80.1).

First step is to create a user

/ppp secret add name=Laptop service=pptp password=123 local-address=10.1.101.1 \
   remote-address=10.1.101.100
/ppp secret print detail
Flags: X - disabled
  0   name="Laptop" service=pptp caller-id="" password="123" profile=default
      local-address=10.1.101.1 remote-address=10.1.101.100 routes==""

Notice that the PPTP local address is the same as the router’s address on the local interface and the remote address is from the same range as the local network (10.1.101.0/24).

Next step is to enable the PPTP server and the PPTP client on the laptop.

/interface pptp-server server set enabled=yes
/interface pptp-server server print
            enabled: yes
            max-mtu: 1460
            max-mru: 1460
               mrru: disabled
     authentication: mschap2
  keepalive-timeout: 30
    default-profile: default

PPTP client from the laptop should connect to routers public IP which in our example is 192.168.80.1.
(Consult the respective manual on how to set up a PPTP client with the operating system software you are using).

At this point (when PPTP client is successfully connected) if you try to ping any workstation form the laptop, the ping will time out because the Laptop is unable to get ARPs from workstations. The solution is to set up proxy-arp on the local interface.

/interface ethernet set Office arp=proxy-arp
/interface ethernet print
Flags: X - disabled, R - running
  #    NAME                 MTU   MAC-ADDRESS         ARP
  0  R ether1              1500  00:30:4F:0B:7B:C1 enabled
  1  R ether2              1500  00:30:4F:06:62:12 proxy-arp

After proxy-arp is enabled, the remote client can successfully reach all workstations in the local network behind the router.

Site-to-Site PPTP

The following is an example of connecting two Intranets using PPTP tunnel over the Internet.

Consider following setup:

Office and Home routers are connected to the internet through ether1, workstations and laptops are connected to ether2.
Both local networks are routed through a PPTP client, thus they are not in the same broadcast domain. If both networks should be in the same broadcast domain then you need to use and bridge the PPTP tunnel with the local interface.

First step is to create a user

/ppp secret add name=Home service=pptp password=123 local-address=172.16.1.1 \
  remote-address=172.16.1.2 routes="10.1.202.0/24 172.16.1.2 1"
/ppp secret print detail
Flags: X - disabled
  0   name="Home" service=pptp caller-id="" password="123" profile=default
      local-address=172.16.1.1 remote-address=172.16.1.2 routes=="10.1.202.0/24 172.16.1.2 1"

Notice that we set up PPTP server’s PPP secret where a route is added automatically whenever the client connects. If this option is not set, then you will need to add static routing on the server to route traffic between the two sites through the PPTP tunnel. (See for more info on routes variable).

Next step is to enable the PPTP server on the office router and configure the PPTP client on the Home router.

/interface pptp-server server set enabled=yes
/interface pptp-server server> print
            enabled: yes
            max-mtu: 1460
            max-mru: 1460
               mrru: disabled
     authentication: mschap2
  keepalive-timeout: 30
    default-profile: default
/interface pptp-client add user=Home password=123 connect-to=192.168.80.1 disabled=no
/interface pptp-client print
Flags: X - disabled, R - running
 0    name="pptp-out1" max-mtu=1460 max-mru=1460 mrru=disabled connect-to=192.168.80.1 user="Home" 
       password="123" profile=default-encryption add-default-route=no dial-on-demand=no 
       allow=pap,chap,mschap1,mschap2

Now we need to add the route to reach the local network behind the Home router

/ip route add dst-address=10.1.101.0/24 gateway=pptp-out1

Now after the tunnel is established and routes are set, you should be able to ping remote network.

пятница, 17 мая 2013 г.

Настройка PPTP в Mikrotik (proxy-arp, gre,1723)

# Включаем ARP-proxy чтобы можно было пинговать машины внутри сети /interface ethernet set Local-Port-Name arp=proxy-arp

# Разрешаем локальный dns для пользователей vpn /ip dns set allow-remote-requests=yes

# Создаем pool адресов для пользователей vpn /ip pool add name=vpn-pool ranges=192.168.0.100-192.168.0.150

# Создаем профиль PPTP сервер /ppp profile add ppname=pptp-in local-address=192.168.0.1 remote-address=vpn-pool use-mpls=default use-compression=default use-vj-compression=default use-encryption=required only-one=default change-tcp-mss=yes dns-server=192.168.0.1

# Активируем PPTP сервер /interface pptp-server server set enabled=yes max-mtu=1460 max-mru=1460 authentication=chap,mschap1,mschap2 default-profile=pptp-in

# Разрешаем подключаться к PPTP серверу из интернета и разрешаем GRE трафик (правило должно быть выше последнего запрещаещего) /ip firewall filter add chain=input action=accept protocol=tcp in-interface=Inet-Port-Name dst-port=1723 add chain=input action=accept protocol=gre

# Создаем пользовалей vpn /ppp secret add name=vpnuser password=password profile=pptp-in

микротики между собой пингуются, пинги до компов не ходят, хотя в видео пинги есть – что я сделал лишнего, или не доделал? – при каких настройках (минимальных) все должно 100% работать?

  • Вопрос задан более трёх лет назад
  • 19584 просмотра

На клиенте – не понял как скопировать конфиг, на словах: PPTP-Client, login+pass из сервера, profile=default, use default route=no, allow=pap, chap, mschap1, mschap2; local address=192.168.5.1

на первом микротике

/routing ospf network add area=backbone network=сетка локалка на первом микротике add area=backbone network=впн сетка

на втором микротике /routing ospf network add area=backbone network=сетка локалка на втором микротике add area=backbone network=впн сетка

после этого микротики будут знать где какая сетка. а сейчас они у тебя ответы на покеты приходящие из удаленной локалки отправляют не в тунель на дефолтный шлюз.

сделал: на первом микротике (который сервер)

на втором микротике (который клиент)

@Diman89 1. на первом роутере поднимаете pptp сервер 2. на втором поднимаете pptp клиент 3. на первом роутере прописываете постоянный маршрут к подсети за вторым роутером через pptp-ip-адрес второго роутера 4. на втором роутере прописываете постоянный маршрут к подсети за первым роутером через pptp-ip-адрес первого роутера

p.s. в обоих сетях роутеры являются шлюзами по-умолчанию?

Вкратце такая схема. Вы знаете как эти пункты реализовать?

Выключите masquerade для VPN, потому что он вам не нужен для общения между сетями. Вполне логично, что клиенты не пингуются, т.к. они находятся за NAT.

Например, сеть #1 – 192.168.1.0/24, а сеть #2 – 192.168.2.0/24. Представим ситуацию, что вы делаете пинг с компьютера в сети #1 (192.168.1.2) на компьютер в сети #2 (192.168.2.2). Если очень грубо, то пакет улетает на роутер #1, который смотрит маршрут и отправляет этот пакет на роутер #2, который в свою очередь отправляет его получателю

Да, сейчас все правильно, но есть одно важное но. Т.к

у вас стоит маскарадинг, то компьютер #2 отправляет ответ на свой роутер #2, который в свою очередь из-за masquerdae меняет адрес источника с 192.168.2.2 на 192.168.2.1 и дальше по цепочке к компьютеру в сети #1.Только вот этот компьютер не примет этот пакет, так как он ждет пакета с источником 192.168.2.2, а прилетает ему с адресом 192.168.2.1. Вот где загвоздка и получается.

Решением может быть простое отключение masquerade или можно банально вписать в правило маскарадинга не преобразовывать адрес транзитных пакетов отправленных в соседнюю сеть.

192.168.0.0/16 замените на вашу подсеть

PPTP Server

Sub-menu:

This sub-menu shows interfaces for each connected PPTP clients.

An interface is created for each tunnel established to the given server. There are two types of interfaces in PPTP server’s configuration

  • Static interfaces are added administratively if there is a need to reference the particular interface name (in firewall rules or elsewhere) created for the particular user.
  • Dynamic interfaces are added to this list automatically whenever a user is connected and its username does not match any existing static entry (or in case the entry is active already, as there can not be two separate tunnel interfaces referenced by the same name).

Dynamic interfaces appear when a user connects and disappear once the user disconnects, so it is impossible to reference the tunnel created for that use in router configuration (for example, in firewall), so if you need persistent rules for that user, create a static entry for him/her. Otherwise it is safe to use dynamic configuration.

Note: in both cases PPP users must be configured properly — static entries do not replace PPP configuration.

Server configuration

Sub-menu:

Properties

Property Description
authentication (pap | chap | mschap1 | mschap2; Default: mschap1,mschap2) Authentication methods that server will accept.
default-profile (name; Default: default-encryption) Default to use
enabled (yes | no; Default: no) Defines whether PPTP server is enabled or not.
keepalive-timeout (time; Default: 30) If server during keepalive period does not receive any packet, it will send keepalive packets every second five times. If the server does not receives response from the client, then disconnect after 5 seconds.
Logs will show 5x «LCP missed echo reply» messages and then disconnect.
max-mru (integer; Default: 1460) Maximum Receive Unit. Max packet size that PPTP interface will be able to receive without packet fragmentation.
max-mtu (integer; Default: 1460) Maximum Transmission Unit. Max packet size that PPTP interface will be able to send without packet fragmentation.
mrru (disabled | integer; Default: disabled) Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.

To enable PPTP server:

/interface pptp-server server set enabled=yes
/interface pptp-server server print
            enabled: yes
            max-mtu: 1460
            max-mru: 1460
               mrru: disabled
     authentication: mschap2,mschap1
  keepalive-timeout: 30
    default-profile: default

Механизм Proxy ARP

Т.е. вот есть маршрутизатор, на котором включен Proxy ARP. Он получает ARP-запрос на разрешение адреса узла, который находится в другом сегменте относительно спрашивающего и помогает – просто отвечает ему от имени этого узла. Соответственно, этот роутер и будет передавать трафик между данными узлами, а отправитель будет думать, что отправляет трафик напрямую.

Данный механизм включен “по умолчанию” на большинстве систем и нуждается в отключении – т.е. описанная ситуация, в общем-то, по производственной необходимости возникает довольно-таки редко.

Как включить Proxy ARP на оборудовании Cisco

Зайдите на нужный интерфейс и введите там команду:

(config-if)#ip proxy-arp

Выключить глобально – (config)#ip arp proxy disable.

PPTP Client

Sub-menu:

Properties

Property Description
add-default-route (yes | no; Default: no) Whether to add PPTP remote address as a default route.
allow (mschap2 | mschap1 | chap | pap; Default: mschap2, mschap1, chap, pap) Allowed authentication methods.
connect-to (IP; Default: ) Remote address of PPTP server
default-route-distance (byte ; Default: 1) sets distance value applied to auto created default route, if add-default-route is also selected
dial-on-demand (yes | no; Default: no) connects to PPTP server only when outbound traffic is generated. If selected, then route with gateway address from 10.112.112.0/24 network will be added while connection is not established.
disabled (yes | no; Default: yes) Whether interface is disabled or not. By default it is disabled
keepalive-timeout (integer; Default: 60) Sets keepalive timeout in seconds.
max-mru (integer; Default: 1460) Maximum Receive Unit. Max packet size that PPTP interface will be able to receive without packet fragmentation.
max-mtu (integer; Default: 1460) Maximum Transmission Unit. Max packet size that PPTP interface will be able to send without packet fragmentation.
mrru (disabled | integer; Default: disabled) Maximum packet size that can be received on the link. If a packet is bigger than tunnel MTU, it will be split into multiple packets, allowing full size IP or Ethernet packets to be sent over the tunnel.
name (string; Default: ) Descriptive name of the interface.
password (string; Default: «») Password used for authentication.
profile (name; Default: default-encryption) Used .
user (string; Default: ) User name used for authentication.

Quick example

This example demonstrates how to set up PPTP client with username «pptp-hm», password «123» and server 10.1.101.100

/interface pptp-client add name=pptp-hm user=pptp-hm password=123 connect-to=10.1.101.100 disabled=no
/interface pptp-client print detail   
Flags: X - disabled, R - running 
 0    name="pptp-hm" max-mtu=1460 max-mru=1460 mrru=disabled 
      connect-to=10.1.101.100 user="pptp-hm" password="123" 
      profile=default-encryption add-default-route=no dial-on-demand=no 
      allow=pap,chap,mschap1,mschap2 

Что такое и как работает Gratuitous ARP

Это страшное слово переводится как “самопроизвольный” ARP. Суть события в следующем. Любой узел, который инициирует новый интерфейс, на котором есть поддержка ARP, должен при завершении процесса конфигурирования IP-адреса (статически ли, по DHCP, через APIPA’у – без разницы) уведомить соседей о том, что он появился. Делается это при помощи отправки одиночного ARP Reply, в котором указывается, что логично, связка “мой MAC – мой новый IP”. Т.е. выглядит этот ARP-ответ несколько странно с точки зрения классической схемы работы ARP – узел рассылает на броадкастовый MAC и свой IP информацию о своём настоящем MAC и своём же IP. Т.е. совпадают SRC IP и DST IP.

Примечание: По сути, этот механизм – это “форсированное” обновление ARP-кэша соседей новой информацией – “теперь я по этому MAC-адресу”. Заодно, именно благодаря этому механизму, происходит обнаружение дублирующихся IP-адресов – тот, кто пытается присвоить себе IP-адрес, рассылая это уведомление “засветится”.

Но, в общем-то, мы и договорились, что это – исключительная и разовая ситуация. Казалось бы, в чём проблема-то?

Проблема в том, что когда такое происходит на сервере удалённого доступа, к которому подключено несколько клиентов (более 1, по сути), то этот сервер при подключении каждого своего клиента получает от него данный стартовый запрос ARP и ретранслирует запрос далее, выступая, по сути, прокси. В результате, допустим, порт коммутатора, в который включен этот сервер, впадает в тягостные размышления о здоровье сервера, который постоянно сообщает всей сети о том, что за его MAC-адресом интерфейса (того, который воткнут в коммутатор) очень много IP-адресов, и все они разные. И каждый раз, когда клиент будет подключаться (например, VPN-канал переподключит, или другим способом вызовет переход через NCP-фазу PPP), такой ARP-ответ будет создаваться и отправляться серверу, а тот будет отдавать его дальше – чтобы уведомить сеть, что трафик на такой-то IP-адрес надо отправлять на его, сервера, MAC, а дальше он уж сам разберется.

Соответственно, в ряде ситуаций (например, много клиентов, краткие сессии) такой механизм надо отключать. Зачастую проще привязать статически целую пачку ARP-соответствий (например, когда на сервере удалённого доступа выделен пул в 20 адресов, и абоненты подключаются, делают какую-то краткую операцию и отключаются), чем постоянно форвардить в сеть эти ARP Reply.

Примечание: На самом деле, делать это надо с умом, как и всё остальное. Есть ситуации, когда gratuitous ARP является штатным и нужным. Например, у Вас сделан HSRP-балансировщик. Активный узел упал – второй становится активным. И в этот момент он тоже “просто так, внезапно” отправит gratuitous ARP – чтобы сразу уведомить всю сеть, что теперь у виртуального IP новый MAC, а не ждать, пока у всех узлов кончится тайм-аут кэша.

Как настроить Gratuitous ARP на оборудовании Cisco

Включить:

router(config)#ip gratuitous-arps

Если добавить в конце команды слово non-local, то будет обрабатываться вышеописанная ситуация с PPP.

Отключить приём всех gratuitous ARP’ов:router(config)#ip arp gratuitous none

Включить приём только gratuitous ARP’ов, source которых из connected-сетей:router(config)#ip arp gratuitous local

Как настроить Gratuitous ARP на Windows Server

Для указанного сценария с RRaS – никак. Ваш RRaS-сервер не будет передавать стартовый ARP-запрос, полученый от PPP-клиента, в другие сети, поэтому ситуация, описанная выше, просто не возникнет.

Управлять же Gratuitous ARP со стороны узла вполне можно. Для этого есть ключ реестра:

HKLM\System\CurrentControlSet\Services\TcpIp\Parameters

а в нём – параметр ArpRetryCount типа DWORD32. Если поставить этот параметр в нуль, то механизм будет выключен. По умолчанию Windows-хосты делают Gratuitous ARP три раза – сразу после инициализации адреса, потом через 1/2 секунды, потом через ещё 1/10 секунды. Можете поставить единицу, если уверены в качестве работы сети и её не-критичной загруженности на момент выхода ARP Reply – “сэкономите трафик”.Примечание: Считаются фактически отправленные ARP, а не попытки. Т.е. если среда была недоступна, то все равно отправят три, просто чуть позже.Примечание: Если поставить нуль, то вдобавок отвалится функция обнаружения конфликтов DHCP, но это будет в другой истории.

Протокол InARP (Inverse ARP)

InARP – специальная модификация ARP для не-broadcast сетей (например, Frame Relay или ATM). Суть проста – в сетях, где нет широковещания, обычный ARP работать не сможет, а задачи, которые им решаются, никуда не пропадают. Соответственно, нужна схема работы. Она будет достаточно интересна и проста. Узел, который поддерживает InARP, будет самостоятельно с указанной периодичностью отправлять в субинтерфейсы, поддерживающие InARP (например, в FR’овские), InARP-сообщения, в которых будет указано что-то вида “привет, я от узла с сетевым адресом таким-то”. Соответственно, принимающая сторона, получая такое сообщение из-под субинтерфейса с DLCI=xxx, будет записывать у себя в таблицу – “За DLCI xxx живёт товарищ с IP yyy”. В общем-то и всё.

Другие отличия будут состоять в использовании других кодов операций – 8 для запроса InARP, 9 для ответа. Ну и в механизме вложения – понятное дело, в Q.922 вкладываться – это не в 802.3

Properties

Property Description
address (IP; Default: ) IP address to be mapped
interface (string; Default: ) Interface name the IP address is assigned to
mac-address (MAC; Default: 00:00:00:00:00:00) MAC address to be mapped to
published (yes | no; Default: no) Static proxy-arp entry for individual IP address. When an ARP query is received for the specific IP address, the device will respond with its own MAC address. No need to set proxy-arp on the interface itself for all the MAC addresses to be proxied. The interface will respond to an ARP request only when the device has an active route towards the destination

Read only properties:

Property Description
dhcp (yes | no) Whether ARP entry is added by DHCP server
dynamic (yes | no) Whether entry is dynamically created
invalid (yes | no) Whether entry is not valid

Note: The default maximum number of ARP entries is 8192. It can be adjusted with the command «/ip settings set max-neighbor-entries=»

Cisco ARP Optimization Feature – что это?

Это достаточно полезное архитектурное изменение, появившееся в релизах IOS 12.0 – 12.2 и закрепившееся в более поздних. Идея проста. Устройство хранит информацию о связках IP-MAC-интерфейс в отдельной таблице. Эта таблица организована для быстрого поиска информации по известному IP-адресу. Соответственно, этот механизм эффективен, когда надо обработать единичный пакет. В ситуации же, когда интерфейс попеременно переходит из состояния включения в выключенное и наоборот (interface flapping), надо сразу же обработать в этой таблице все ARP-записи, относящиеся ко всем IP и MAC, находящимся за данным интерфейсом. Вот фича Cisco ARP Optimization как раз умеет делать эту операцию – например, очистить все записи за соответствующий интерфейс. Выигрыш – резко сниженная загрузка CPU, которому надо обработать событие “падение интерфейса”.

Как настроить Cisco ARP Optimization Feature

Никак – это просто другая структура хранения данных ARP в оперативной памяти, используемая в современных версиях IOS.

Disadvantages

Disadvantage of Proxy ARP include scalability as ARP resolution by a proxy is required for every device routed in this manner, and reliability as no fallback mechanism is present, and masquerading can be confusing in some environments.

Proxy ARP can create DoS attacks on networks if misconfigured. For example, a misconfigured router with proxy ARP has the ability to receive packets destined for other hosts (as it gives its own MAC address in response to ARP requests for other hosts/routers), but may not have the ability to correctly forward these packets on to their final destination, thus blackholing the traffic.

Proxy ARP can hide device misconfigurations, such as a missing or incorrect default gateway.

Cisco ARP Optimization Feature – что это?

Это достаточно полезное архитектурное изменение, появившееся в релизах IOS 12.0 – 12.2 и закрепившееся в более поздних. Идея проста. Устройство хранит информацию о связках IP-MAC-интерфейс в отдельной таблице. Эта таблица организована для быстрого поиска информации по известному IP-адресу. Соответственно, этот механизм эффективен, когда надо обработать единичный пакет. В ситуации же, когда интерфейс попеременно переходит из состояния включения в выключенное и наоборот (interface flapping), надо сразу же обработать в этой таблице все ARP-записи, относящиеся ко всем IP и MAC, находящимся за данным интерфейсом. Вот фича Cisco ARP Optimization как раз умеет делать эту операцию – например, очистить все записи за соответствующий интерфейс. Выигрыш – резко сниженная загрузка CPU, которому надо обработать событие “падение интерфейса”.

Как настроить Cisco ARP Optimization Feature

Никак – это просто другая структура хранения данных ARP в оперативной памяти, используемая в современных версиях IOS.

Mikrotik — Dynamic ARP Inspection

Dynamic ARP Inspection — технология (by Cisco), позволяющая пропускать ARP-запросы только для тех адресов, которые были выданы по DHCP. Данная технология помогает защититься от атак с использованием протокола ARP (например, ARP-spoofing) и ограничивает пользователей в возможности указания IP адреса «вручную».

Суть технологии сводится к двум этапам: 1) Перехват всех ARP-запросов и ARP-ответов прежде чем перенаправлять их; 2) Проверка соответствия MAC-адреса и IP-адреса из статической ARP таблицы, либо таблицы выданных адресов DHCP.

Как оказалось, в маршрутизаторах от Mikrotik нашлась возможность реализовать данную технологию.

Для настройки необходимо: 1. В конфигурации «IP -> DHCP Server» поставить галочку «Add ARP For Leases». При выборе этой опции DHCP сервер будет автоматически добавлять записи в ARP-таблицу маршрутизатора; 2. В настройки интерфейса (бриджа) необходимо для ARP выставить reply-only. Эта опция переведет таблицу ARP на выбранном интерфейсе (бридже) в режим «только чтение» и не будет принимать ARP-запросы.

Таким образом, маршрутизатор будет коммутировать только те пакеты, для которых DHCP добавит ARP запись.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *