У меня есть клиент openVPN, который работает на сервере windows2008 R2, и через этот windows 2008 я пытаюсь сделать статический нат на машине, которая находится за этой реальной сетью win2008s. Вот моя конфигурация для сервера 2008 года;
вывод моей конфигурации NAT на сервере 2008 года
# ----------------------------------
# NAT configuration
# ----------------------------------
pushd routing ip nat
uninstall
install
set global tcptimeoutmins=1440 udptimeoutmins=1 loglevel=ERROR
#
#NAT Configuration For Interface Local Area Connection 2
#
add interface name="Local Area Connection 2" mode=FULL
add addressrange name="Local Area Connection 2" start=10.9.0.24 end=10.9.0.31 mask=255.255.255.248
add addressmapping name="Local Area Connection 2" public=10.9.0.28 private=192.168.10.59 inboundsessions=enable
#
#NAT Configuration For Interface Local Area Connection
#
add interface name="Local Area Connection" mode=PRIVATE
popd
Когда я пытаюсь выполнить эхо-запрос 10.9.0.28 с сервера openvpn или подключиться к порту TCP на нем, я вижу, что конечный nat выполняется на сервере Windows 2008, и мои пакеты отправляются на 10.9.0.28, но с исходным IP-адресом 10.9.0.1.
19:54:25.046131 IP 10.9.0.1.43109 > 192.168.10.59.2000: Flags [S], seq 870055875, win 5840, options [mss 1350,sackOK,TS val 8948005 ecr 0,nop,wscale 7], length 0
19:54:25.046198 IP 192.168.10.59.2000 > 10.9.0.1.43109: Flags [R.], seq 0, ack 870055876, win 0, length 0
19:54:28.044561 IP 10.9.0.1.43109 > 192.168.10.59.2000: Flags [S], seq 870055875, win 5840, options [mss 1350,sackOK,TS val 8951005 ecr 0,nop,wscale 7], length 0
и, конечно, возвращаемые пакеты не находят пути к отправителю. Я также пытался не отображать хосты напрямую, а преобразовывать сервис / порт, но это тоже не сработало. В моих Linux-ящиках я, конечно, могу изменить исходный IP-адрес, выполняя нат с iptables, но для того же сценария я не мог найти, как это сделать в Windows.
Итак, вы знаете, как изменить исходный IP-адрес при выполнении NAT с серверами Windows?
Спасибо за помощь в продвижении
гоктан
Для этого вы можете использовать netsh:
netsh routing ip nat install
netsh routing ip nat add interface "Local sth or Ethernet etc" AddressOnly
netsh routing ip nat add addressrange "Local sth or Ethernet etc" start=10.9.0.24 end=10.9.0.31 255.255.255.248
netsh routing ip nat add addressmapping "Local sth or Ethernet etc" public=<what_you_want_the_ip_to_look_like> <what_the_ip_actually_is> inboundsessions=disable
Последний вариант предназначен для использования (или нет, как мы делаем здесь) того же преобразования адресов в противоположном направлении. Это может быть нарушение, например, вашего подключения к Интернету, если вы не знаете, что делаете.