Mikhail P. wrote:

On Wednesday 22 September 2004 21:26, Julian Elischer wrote:


I use MPD using the "UDP" transport.

in other words packets get sent as udp packets.

I then set up IPSEC to encrypt the UDP packets..

when I had a NAT in the way I did further encapsulate the GRE packets in
UDP again :-)



Julian,

Thank you for your quick response.
Do you have any pointers on how to implement such setup to send traffic as UDP in MPD?



look under 'link commands' in the mpd docs.

here are my (obfuscated) config files..
# cat mpd.conf

default:
       set login ConsoleLogin
       log -console
       load vpn-lax
       load vpn-chi

vpn_standard:
       set iface disable on-demand
       set iface idle 0
       set iface mtu 1500
       set ipcp yes vjcomp
       set bundle enable multilink
#       set bundle enable round-robin

tun_standard:
       set link yes acfcomp protocomp
       set link no pap
       set link no chap
       set link keep-alive 2 15
       set link mru 900
       set link mtu 900
#       set link bandwidth 1440000

############### per-link settings #################
vpn-lax:
       new -i ng0 vpn-lax lax-ISP-B lax-ISP-A
       set iface addrs 10.x.x.x 10.z.z.z
       set iface route 192.168.aa.0/24
       set ipcp ranges 10.x.x.x/32 10.z.z.z/32
       load vpn_standard
       link lax-ISP-B
       load tun_standard
       link lax-ISP-A
       load tun_standard
       open

vpn-chi:
       new -i ng1 vpn-chi chi-ISP-B chi-ISP-A
       set iface addrs 10.x.x.x 10.y.y.y
       set iface route 192.168.bb.0/24
       set ipcp ranges 10.x.x.x/32 10.y.y.y/32
       load vpn_standard
       link chi-ISP-B
       load tun_standard
       link chi-ISP-A
       load tun_standard
       open


# cat mpd.links


lax-ISP-B: set link type udp set udp self bb.bb.bb.bb 4029 set udp peer aa.aa.aa.aa 4029

lax-ISP-A:
       set link type udp
       set udp self dd.dd.dd.dd 4029
       set udp peer cc.cc.cc.cc 4029

chi-ISP-B:
       set link type udp
       set udp self bb.bb.bb.bb 4028
       set udp peer ee.ee.ee.ee 4028

chi-ISP-A:
       set link type udp
       set udp self dd.dd.dd.dd 4028
       set udp peer ff.ff.ff.ff 4028




these are the config files for a machine on the internet that is connected to 2 other sites. in LA and Chicago for example,

Each site has a network behind it in the 192.168 range.
The links themselves are in the 10.xx.xx.xx range.

There are two LINKs for each bundle as we connect to the interent via 2 ISPs
at each site and use MPDs bonding to provide failover and soft degradation.
probably you don't have 2 ISPs..

In addition to this we have ipsec set up as follows:

# cat /etc/ipsec.conf
flush;
spdflush;


# LAX spdadd aa.aa.aa.aa bb.bb.bb.bb any -P in ipsec esp/transport//require; spdadd bb.bb.bb.bb aa.aa.aa.aa any -P out ipsec esp/transport//require; spdadd cc.cc.cc.cc dd.dd.dd.dd any -P in ipsec esp/transport//require; spdadd dd.dd.dd.dd cc.cc.cc.cc any -P out ipsec esp/transport//require;

# Chicago
spdadd bb.bb.bb.bb ee.ee.ee.ee any -P out ipsec esp/transport//require;
spdadd ee.ee.ee.ee bb.bb.bb.bb any -P in ipsec esp/transport//require;
spdadd dd.dd.dd.dd ff.ff.ff.ff any -P out ipsec esp/transport//require;
spdadd ff.ff.ff.ff dd.dd.dd.dd any -P in ipsec esp/transport//require;


and we run racoon for key serving..

this is the simplest config file we sometimes use:
(when we have just pre-shared secrets to start off the sequence)
normally we use certs but it gets trickier..


path pre_shared_key "/usr/local/etc/racoon/psk.txt" ;

path certificate "/usr/local/etc/cert" ;

log notify;

padding
{
       maximum_length 20;      # maximum padding length.
       randomize off;          # enable randomize length.
       strict_check off;       # enable strict check.
       exclusive_tail off;     # extract last one octet.
}

listen
{
       isakmp bb.bb.bb.bb [500];
       isakmp dd.dd.dd.dd [500];
       strict_address;         # required all addresses must be bound.
}

timer
{
       # These value can be changed per remote node.
       counter 5;              # maximum trying count to send.
       interval 20 sec;        # maximum interval to resend.
       persend 1;              # the number of packets per a send.

       # timer for waiting to complete each phase.
       phase1 30 sec;
       phase2 15 sec;
}

remote anonymous
{
       #exchange_mode main,aggressive;
       exchange_mode aggressive,main;
       doi ipsec_doi;
       situation identity_only;

       my_identifier address;

       nonce_size 16;
       lifetime time 10 min;   # sec,min,hour
       initial_contact on;
       support_mip6 off;
       proposal_check obey;    # obey, strict or claim

       proposal {
               encryption_algorithm 3des;
               hash_algorithm sha1;
               authentication_method pre_shared_key ;
               dh_group 2 ;
       }
}

sainfo anonymous
{
       pfs_group 1;
       lifetime time 10 min;
       encryption_algorithm 3des ;
       authentication_algorithm hmac_sha1;
       compression_algorithm deflate ;
}


don't forget to set.. sysctl net.key.prefered_oldsa=0

I'll leave the firewalls and routing to you :-)


regards,
M.



_______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to